生物信息学

20211107_鉴定并去除Illumina测序中的PCR重复序列

Song Wei Song Wei 2023年3月24日 01:57
344
20211107_鉴定并去除Illumina测序中的PCR重复序列


研究背景:

在Illumina测序过程中,PCR重复序列是一种常见的序列问题。由于PCR扩增时会复制出原始DNA片段的多个拷贝,这些拷贝在测序时可能会被误认为是不同的DNA分子,从而导致PCR扩增偏好性和测序错误等问题。具体来说,在Illumina测序中,PCR重复序列的问题通常表现为在测序reads中出现重复的片段。这些重复片段可能会导致误判为SNP、错配等错误,并且会影响基因型分析、DNA变异检测等应用。



注意事项:

#脚本运行前先检查seqkit软件是否已经安装

#脚本任务:去除测序结果中,双末端文件中完全相同的序列,这些序列都是来自于PCR重复

#将双模端测序文件分别命名为 pairend-1.fq  以及 pairend-2.fq

#使用该命令运行程序:  sh  rm_PCR_dups_from_raw_data.sh 

#程序运行结束后将pairend-2-ok.fq 以及pairend-1-ok.fq两个文件分别恢复成自己设定的文件名称。



huajin@huajin-XPS-8930:/home/ftp/$ cat rm_PCR_dups_from_raw_data.sh
#软件运行前先检查seqkit软件是否已经安装
#将双模端测序文件分别命名为 pairend-1-filtered.fq  以及 pairend-2-filtered.fq
#程序运行结束后将pairend-2-ok.fq 以及pairend-1-ok.fq两个文件分别恢复成自己设定的文件名称。

python  pairend-1.py
python  pairend-2.py
sed -i 's/ /-/g'  pairend-1-filtered.fq
sed -i 's/ /-/g'  pairend-2-filtered.fq

grep "^@"  pairend-1-filtered.fq |  cut -d "-"  -f 1 | grep -f  -  -w  pairend-2-filtered.fq | cut -d "@" -f 2 | seqkit grep -f -  pairend-2-filtered.fq  >  pairend-2-ok.fq
grep "^@" pairend-2-filtered.fq |  cut -d "-" -f 1 | grep -f - -w  pairend-1-filtered.fq  | cut -d "@" -f 2  | seqkit grep -f -  pairend-1-filtered.fq > pairend-1-ok.fq


两个python脚本内容

huajin@huajin-XPS-8930:/home/ftp/Pipelines/去除测序原始序列中PCR重复序列$ cat pairend-1.py
aa = []
fo = "pairend-1-filtered.fq"
bb = []
for eles in open("pairend-1.fq","r").read().strip().split("@")[1:] :
    if eles.split("\n")[1] not in aa :
        with open(fo,"a+") as f:
            f.write("@" + eles.split("\n")[0] + "\n"  + eles.split("\n")[1] + "\n" + eles.split("\n")[2] + "\n" + eles.split("\n")[3] + "\n")
        aa.append(eles.split("\n")[1])




huajin@huajin-XPS-8930:/home/ftp/Pipelines/去除测序原始序列中PCR重复序列$ cat pairend-2.py aa = [] fo = "pairend-2-filtered.fq" bb = [] for eles in open("pairend-2.fq","r").read().strip().split("@")[1:] : if eles.split("\n")[1] not in aa : with open(fo,"a+") as f: f.write("@" + eles.split("\n")[0] + "\n" + eles.split("\n")[1] + "\n" + eles.split("\n")[2] + "\n" + eles.split("\n")[3] + "\n") aa.append(eles.split("\n")[1])



其它可选方案:

除了上述方法外,还有其它多种方法可以解决PCR重复序列问题,如降低PCR扩增循环数、使用分子标记进行序列去重、使用UMI(Unique Molecular Identifier)标签等方法。此外,对于Illumina测序中的PCR重复序列问题,还可以使用一些专门的工具进行去重,如Picard、SAMtools等软件,这些工具可以对测序reads进行去重、过滤或剔除,从而提高测序结果的准确性。



标签: bioinfo
Weather
北京 天气
0℃

网站浏览