Editing
Kun:LabNotes/MONOD/2013-11-22
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
====Haplotype-based deconvolution==== *One key concept of MONOD is to identify tissue-specific (i.e. tumor versus blood) haplotypes, and use them to de-convolute the test samples. We are looking for two types of answers: (i) whether the test samples contain a low level of DNA from one tissue type (tumor) among the majority of DNA from another tissue type (blood). The results should be reported as p-values; (ii) if the answer to (i) is yes, what's the level of tumor DNA. Here the results are values (point estimates) with confident intervals. *Before getting into de-convolution, we need to define how to do comparison at the haplotype level. Here are number of considerations: **The raw haplotypes might have some missing alleles, due to sequencing quality or other technical reasons. So we might need to remove some CpG sites that have too many missing alleles. We might also need to do trimming in another direction on the haplotypes, because some low-quality sequencing reads can lead to multiple missing alleles in the same haplotypes. Finally, after trimming CpG sites, the haplotypes might be too short to be useful for haplotype analysis. So we need to remove haplotypes below a certain length limit. I chose the minimal number of 5 CpG sites per haplotypes (tried 3,4,5,6,7 and 5 was the best). For the trimming, i first remove any read/haplotype that have less than 5 good alleles. Then I remove all CpG sites that have more than 10% missing alleles. After this second trimming, any haplotype with less than 5 CpG sites are removed. **Each "true" haplotype might have different variants due to sequencing errors. In addition, several haplotypes that are different on one or two CpG sites might be in the same epigenetic state. So before comparing haplotypes, we want to collapse similar haplotypes into clusters, and perform the rest of analyses at the cluster level. In deciding how to identify clusters, we first need to come up with a similarity measurement, and a way to decide whether two haplotypes should be in the same clusters or not. I define an overall "error rate" at 0.04, which include sequencing errors, incomplete bisulfite conversion. In addition, for the CpG site that have an intermediate level of methylation at the population level, each individual molecule has certain probability to be methylated or unmethylated. I simply set this probability based on the average methylation level. With that, we can find out the number of allelic difference (Hemming distance) between any two haplotypes, and ask whether it can be explained by the error and the probability of acquiring methylation at the single molecule level. I used a p-value cutoff of 0.01 to assign two haplotypes into two different clusters. To systematically group raw haplotypes into clusters, I first ranked all haplotypes for a target region based on their abundance. Then I started from the most abundant haplotype, called it as a dominant haplotype of a cluster. This dominant haplotype was then used to recruit similar haplotypes in the list, based on the statistical cutoff mentioned about. All similar haplotypes were extracted from the list to form one haplotype cluster. The same procedure is repeated on the remaining haplotypes in the list, until all haplotypes are assigned to one of the clusters. Each cluster has at least one haplotype. If the cluster size is two or more, the most abundant one is called the dominant haplotype. **In comparing two haplotype clusters, the distance between the two clusters is the Hemming distance between the two dominant haplotypes (i tried directly comparing individual haplotypes within the clusters, but it seems to make things worse). To test whether the two clusters are similar, I calculated the z-score based on the "error rate" mentioned above. A z-score cutoff of 3.1 was used (equivalent to 99.9% confidence). *To test the idea of haplotype-based deconvolution, I created synthetic mixtures by mixing sequencing reads from cancer and whole blood at different ratios. I first found the number of usable reads in each bam files, and calculated the down-sampling rates for making synthetic data sets at different tumor/blood ratios:[[Media:131227_MiSeq_down_sample_info.txt|131227_MiSeq_down_sample_info.txt]], then used a script ([[Media:make_synthetic_mixtures.txt|make_synthetic_mixtures.pl]]) to create a series of bam fils and hapInfo files. ../make_synthetic_mixtures.pl < 131227_MiSeq_down_sample_info.txt *I then wrote another script ([[Media:search_informative_probes.txt|search_informative_probes.pl]]) to identify a subset of probes that are informative for distinguishing tumor DNA from whole blood. I ran this script on data from all five tumor cell lines, and combine all the informative probes ([[Media:5_cancer_line_informative_probes.txt|5_cancer_line_informative_probes.txt]]). I also tried to further trim down the list based on the consistent capturing on both tumor and blood DNA (T-test value between -1 and 1), but didn't find any improvement. ../../search_informative_probes.pl UCLA-SZ_B1_V4_hapInfo.txt BE2C_V4_hapInfo.txt UCLA-SZ_B1_V4_BE2C_V4_ds_5pct.hapInfo.txt > UCLA-SZ_B1_V4_BE2C_V4_informative_probes.txt ../../search_informative_probes.pl UCLA-SZ_B1_V4_hapInfo.txt BXPC3_V4_hapInfo.txt UCLA-SZ_B1_V4_BXPC3_V4_ds_5pct.hapInfo.txt > UCLA-SZ_B1_V4_BXPC3_V4_informative_probes.txt ../../search_informative_probes.pl UCLA-SZ_B1_V4_hapInfo.txt PANC1_V4_hapInfo.txt UCLA-SZ_B1_V4_PANC1_V4_ds_5pct.hapInfo.txt > UCLA-SZ_B1_V4_PANC1_V4_informative_probes.txt ../../search_informative_probes.pl UCLA-SZ_B1_V4_hapInfo.txt T98G_V4_hapInfo.txt UCLA-SZ_B1_V4_T98G_V4_ds_5pct.hapInfo.txt >UCLA-SZ_B1_V4_T98G_V4_informative_probes.txt ../../search_informative_probes.pl UCLA-SZ_B1_V4_hapInfo.txt U87MG_V4_hapInfo.txt UCLA-SZ_B1_V4_U87MG_V4_ds_5pct.hapInfo.txt > UCLA-SZ_B1_V4_U87MG_V4_informative_probes.txt awk '{print $1}' *informative* | sort | uniq > 5_cancer_line_informative_probes.txt *Here is a key script ([[Media:mixMethHapAnalysis.txt|mixMethHapAnalysis.pl]]) that I wrote for deconvolution. It takes three hapInfo files, one for pure blood, a second for cancer reference, and the third for mixed DNA. The four argument is optional, which is a file containing a list of probes to focus on. For any haplotype cluster in the mixture, it tries to assign it to either blood or cancer based on the similarity. If a haplotype cluster has similar ones in both blood and cancer, I split the haplotype counts in the mixture to blood and cancer in proportional to the methylation level in the two references. Then I performed a simple ANOVA analysis across all haplotypes used, which reports the tumor and blood fractions as well as the t-test statistics. *With the data we have for this sequencing run, I first performed "self-deconvolution", meaning that the mixture was created from one tumor and one blood sample, and that the same tumor and blood samples were used as the reference for deconvolution. This is an easy start, and every haplotypes in the mixture should be present in the reference, and no sample-to-sample variability is consider. I wrote a master script ([[Media:deconvolute_synthetic_mixtures_self.txt|deconvolute_synthetic_mixtures_self.pl]]) to do self-deconvolution for all synthetic DNA mixtures. ./deconvolute_synthetic_mixtures_self.pl <../131227_MiSeq_down_sample_info.txt > [[Media:deconvolute_synthetic_mixtures_self_results.txt|deconvolute_synthetic_mixtures_self_results.txt]] [[Image:MONOD_V1_detection_sensitivity_self_03Apr14.png|400px]] [[Image:MONOD_V1_detection_confidence_self_03Apr14.png|400px]] From these two plots, it appeared that MONOD probe set V1 is capable of detecting 2% tumor DNA at a reasonable level of confidence. This is very encouraging, and clearly there is a room to improve. [[Image:MONOD_V1_detection_sensitivity_self_self_stable_03Apr14.png|400px]] [[Image:MONOD_V1_detection_confidence_self_self_stable_03Apr14.png|400px]] Then I switched to the stable probes (the ones that have similar capturing efficiencies for tumor and blood DNA, -0.05<t-value<1), and saw a subtle improvement in the sensitivity down to ~1% tumor DNA in blood. *Upon carefully inspecting my script, I realized that the PE reads were not handled very nicely on UMI processing. Ideally a paired of properly mapped reads from the same molecule should be combined into one haplotype to avoid UMI double counting. Therefore, I modified the [[Media:bam2hapInfo_05Apr14.txt|bam2hapInfo.pl]] script. That turned out to be giving similar sensitivity. So I went back and examine the script again. *I tried to be more careful in dealing with UMIs. Previously, when multiple reads have the same UMI, I simply use the first one (sometimes more than one to deal with barcode collision), and discard the rest. In fact we can use the multiple reads that sharing the same UMI to correct for sequencing errors and derive a consensus sequence (or haplotype). In doing so though, it is more difficult to handle barcode collision, which now i think is secondary as the chance of barcode collision will be much lower when the length of random barcodes is increased from 6 to 8. The other consideration is that the PE sequencing data can be either treated as SE reads or PE reads. The length of each haplotype would be longer in the PE mode, but there are likely fewer data points for the regression. It's hard to say whether PE or SE mode is better. So we should have the flexibility to process data in the two modes. [[Media:bam2hapInfo_07Apr14.txt|bam2hapInfo.pl]] Self-validation: [[Image:MONOD_V1_detection_sensitivity_self_self_all_probes_07Apr14.png|400px]] [[Image:MONOD_V1_detection_confidence_self_self_all_probes_07Apr14.png|400px]] Cross-validation: synthetic mixtures are from UCLA-SZ_B1 and one of the cancer line, references are UCLA-SZ_D1 UCLA-SZ_H11 combined, plus one of the different cancer cell lines. [[Image:MONOD_V1_detection_sensitivity_different_all_probes_07Apr14.png|400px]] [[Image:MONOD_V1_detection_confidence_different_all_probes_07Apr14.png|400px]] *The detection sensitivity and confidence is much lower with cross-validation, which is expected, as in this case there are sample-to-sample variability, and hence the performance greatly depends on how comprehensive the reference data sets are in capturing all the variability. As we have more data, the performance should be improved. *I further played around with the parameter settings for [[Media:mixMethHapAnalysis_07Apr14.txt|mixMethHapAnalysis.pl]], and found a combination that leads to a much higher confidence. $minHapLen =4; #if this number is too high, fewer haplotypes will be used, and the power is lower next if($refB_mean_methylation-$refA_mean_methylation<0.4); #excluding regions that have similar methylation between blood and cancer. 0.4 seems to be a sweet spot. # in addition, I previous required that a haplotype needs to have differential methylation level (>0.1) # in order to be included in the regression. I just found that this requirement actually decrease the power. Self-validation (SE mode): [[Image:MONOD_V1_detection_sensitivity_self_self_all_probes_07Apr14_2.png|400px]] [[Image:MONOD_V1_detection_confidence_self_self_all_probes_07Apr14_2.png|400px]] Self-validation (PE mode): [[Image:MONOD_V1_detection_sensitivity_self_self_all_probes_PE_07Apr14_2.png|400px]] [[Image:MONOD_V1_detection_confidence_self_all_probes_PE_07Apr14_2.png|400px]] Cross-validation (SE mode): [[Image:MONOD_V1_detection_sensitivity_different_all_probes_07Apr14_2.png|400px]] [[Image:MONOD_V1_detection_confidence_different_all_probes_07Apr14_2.png|400px]] Cross-validation (PE mode): [[Image:MONOD_V1_detection_sensitivity_different_all_probes_07Apr14_PE2.png|400px]] [[Image:MONOD_V1_detection_confidence_different_all_probes_07Apr14_PE2.png|400px]] *With all these tunings of algorithms and parameters, MONOD seems to be very promising at this point. With self-validation, it can clearly detecting cancer DNA at 0.2-0.5% with a high level of confidence. For cross-validation, even with a very small data sets generated in the first experiment, it can approach the ~2% level. The SE mode has a very small increase in sensitivity due to the larger N in regression, but the PE mode seems to be more robust. We can continue to evaluate these two options, but my feeling is that PE mode is the way to go.
Summary:
Please note that all contributions to ZhangLabWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
ZhangLabWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main Page
Current events
Recent changes
Random page
Investigators
Matt Cai
Song Chen
Eric Chu
Dinh Diep
Elizabeth Duong
Shicheng Guo
Alan Fung
Daniel Jacobsen
Blue Lake
Huy Lam
Alice Li
Andrew Richards
Brandon Sos
Chris Wei
Yan Wu
Kun Zhang
Tools
What links here
Related changes
Special pages
Page information