NIPT检测流程
NIPT检测流程
转自:https://pzweuj.github.io/2019/03/20/NIPT.html
NIPT即非侵入性产前检测,适用于检测21、18、13号染色体的三体综合征。实际上,NIPT的分析流程与CNV的分析流程相似。主要的分析流程是先得到唯一比对的reads,再提取每条染色体的reads来做一个Z检验得到Z值,因为Z值在[-3, 3]这个范围的统计学意义上是占了99%,因此认为超出这个范围时就是阳性。各种背景知识专家指南说的很清楚了。
测试数据可以使用NCBI的PRJNA400134。总共有3405个样本,是优讯医学上传的,可以随便下几十个来测试一下,虽然我也不知道哪个是阳性样本。
比对
使用bwa aln模式进行比对单端数据。
bwa aln -n 0 -e 0 -k 0 -t 16 hg19.fa s1.fq.gz > s1.sai
bwa samse -n -1 hg19.fa s1.sai s1.fq.gz > s1.sam
排序
samtools view s1.sam -bSh > s1.bam
samtools sort -@ 16 s1.bam -o s1.sorted.bam
samtools index s1.sorted.bam
过滤
samtools rmdup -s s1.sorted.bam s1.rmdups.bam
samtools view -F 4 s1.rmdups.bam -bSh > s1.final.bam
samtools index s1.final.bam
利用GC含量校正reads数
基本上现在的分析流程都会使用loess算法来进行校正,使用的是这篇论文的算法。 目前,也可以使用deeptools里现成的工具进行计算。deeptools需要2bit格式的参考基因。
wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit
chmod +x faToTwoBit
faToTwoBit hg19.fa hg19.2bit
computeGCBias -b s1.final.bam --effectiveGenomeSize 2864785220 -g hg19.2bit -l 75 -o s1.freq -p 16
correctGCBias -b s1.final.bam --effectiveGenomeSize 2864785220 -g hg19.2bit --GCbiasFrequenciesFile s1.freq -o s1.corect.bam -p 16
提取reads数
在校正后,可以使用samtools提取reads数
samtools idxstats s1.corect.bam | sed -n '2,25'p | cut -f 1,3 > s1.counts
重复操作
对于每个样本,都进行上述操作,这样就可以得到很多counts数。然后这个时候就可以自己愉快的用python或者R来计算每个样本的每个染色体的Z值啦。当然,在实际的操作上,我们需要的是30个以上的正常样本作为对照组,这时候再加入一个受测样本来算Z值。关于Z值怎么计算,请看上面的专家指南。真的不难呀。
用现成的
其实NIPT的现成工具还算多,亲身体验过觉得还不错的有R包NIPTeR,有WisecondorX。都是安装操作都简单的。
其他
国内还有两家公司说自己开发了新算法,可以看一看。
- Informative priors on fetal Statistical Approach to Decreasing the Error Rate of Noninvasive Prenatal Aneuploid Detection caused by Maternal Copy Number Variation.
- fraction increase power of the noninvasive prenatal screen.