Kun:LabNotes/CpgSeq/2008-5-23
Jump to navigation
Jump to search
Informatics[edit]
Read mapping[edit]
Should generate three files:
- Haplotype file: xxx.methylHap.txt
- One molecule per line;
- target_id, offset1, methylotype1, offset2, methylotype2...
- Methylation level file, average methylation level per site: xxx.methylFreq.txt
- Methylation LD statistics file, all LD statistics: xxx.methylLD.txt
Mock read generation[edit]
- 50% methylation at every CpG site;
- No correlation between adjacent CpG;
- Read position is evenly distributed;
- Can generate both single reads and pair-end reads;
- Incorporate an error model for sequencing;
- Should generate one raw read file and one methylHap file.
Perl Script: Media:mockReadsGenV1.txt (Note that the calculation of position on the reverse strand could be wrong.)
- I generated mock reads at 50X coverage (3,414,819 reads). 98% were mapped back to the target sequences with SOAP with the following parameters:
-v 5 -e 10000 -c 0 -f 8 -r 0 -s 9
- To find out whether the 2% unmappable reads were due to multiple mapping positions or too many C:T mismatches, I generated another set of mock reads from completely methylated sequences (so that there is no C:T mismatch). It turned out that 100% reads were successfully mapped to the targets, which means the mapping strategy is bias towards methylated sequence.
- I generated a third set of mock reads from completely unmethylated sequences, and performed the mapping with the same parameters. Only 85% reads were mappable. In contrast, if I replace all CGs with TGs in the target sequences, 100% reads were mappable.
- I think the best mapping strategy is to map the reads to the completely methylated targets, and to the completely unmethylated targets, then take the union of the mapping results.
The mapping strategy for CGI bisulfite sequencing reads[edit]
- Split raw reads into N subsets and process them separately; for each subset:
- Map reads to completely methylated target sequences, load the mapping results into memory;
- Map reads to completely unmethylated target sequences, load the mapping results and combine the two sets using the following rules:
- Accept the mapping if a read is mapped to the same target regardless the methylation status;
- Accept the one with fewer mismatches if a read is mapped to two different targets depending on the methylation status.
- Accept the mapping if a read is mapped to a target sequences in one methylation state.
- Report the mapping results.
Perl Script: Media:mapBisSeqReadsV1.txt
- For 3.4 million mock reads that contain 50% randomly methylation CpG sites, 98% were mapped with this strategy. I mapped the remaining 2% reads using Blast, and found that these reads have multiple mapping positions, which means they are not mappable anyway.
- The work flow of data analysis would be:
Raw reads => methylFreq => UCSC Genome graph + ==> Read mapper { => correlate with gene expression Targets => haplotype analysis => summary statistics of CGI