FastUniq去除paired reads的duplicates

PCR扩增的将会引入为高通量测序出来的reads中引入大量的重复片段,而这些重复的片段对获得scaffold和发现大规模基因组突变有很大的影响。FastUniq是一个快速对FASTQ格式的成对短的reads去除重复片段的工具,它是通过成对短片段的比较来发现重复区域,不依赖完整的基因组来作为参考,同时他也能处理不同长度的reads,而且快速,输出文件为FASTQ或FASTA格式。

下载地址:http://sourceforge.net/projects/fastuniq/

一、背景介绍:

Pcr扩增是duplicates的主要来源,一般是因为测序文库扩增来带入的【7】。而这些重复的片段对获得scaffold【2】和发现大规模基因组突变【8】有很大的影响,所以需要去除。在获得scaffold这一步的时候,paired reads被用来评估初始contigs的俩俩中间距离【9】 ,所以paired reads的数目在匹配到contigs上时对scaffolding的结果影响很大,如果有duplicates两种错误将会被引入:假阳性(因为大量的俩俩contigs之间的链接而导致contigs被错误的连接)和假阴性(因为大量有冲突的链接而导致contigs错误的链接)。

已有的方法是基于比对的策略来删除duplicates【2】,paired reads先是被比对上参考序列上,利用短序列比对工具(bowtie,crossbow,bwa),那些匹配的位置一模一样的就认为是duplicates,然后这些duplicates被这些工具给删掉(Rmdup in the SAMtools package [18], MarkDuplicates in the Picard toolkit [19], and SEAL).但是这个方法需要完整的基因组作为参考序列,而大多数情况下,我们是没有可用的参考基因组序列。

更重要的是,这种paired reads 比对的方法可能被个体基因组之间的差异所影响(例如large scale structural variations [21], copynumber variations [22], small insertion/deletion variations [23],and single-nucleotide polymorphisms (SNPs) [3]),同时也被穿插在整个基因组中的重复元素(例如Alu elements in primate genomes [24] and Mu transposons in plant genomes [25])所影响。

不依赖参考序列的去除duplicates的从头(de novo)的方法来删除成对reads的方法被需要。一些这方面的工具( fastx_collapser in the FASTX-Toolkit[26] and Fulcrum [27])不是针对paired reads的。

二、软件的思路:

输入数据—排序—发现duplicates—获得unique read pairs

详见文献

三、安装

  1. 确保你安装了GCC(GNU Compiler Collection,GNU编译器套裝)(Version 4.0 or above is recommanded).
  2. 下载,解压缩
  3. cd ~/ FastUniq/source 打开"makefile"文件,到"GCC_OPTION"来设置参数,你可以根据的需要来设置
  4. 终端输入make
  5. 修改环境变量

卸载:

删掉"source"中的"fastuniq"文件即可

四、用法

用法:

fastuniq -i input_list.txt -o aa -p aaa

input_list.txt文件中包含输入序列的名字,一行一个名字,格式如:

input_R1_1.fastq
input_R1_2.fastq
input_R2_1.fastq
input_R2_2.fastq

FastUniq参数:

-i : 输入FSATQ 格式的成对序列Maximum 1000 pairs ? 一次只能处理1千组数据,比如测了1千个物种的基因组的paired-end数据,得到了2000个fastq文件

合并两个fastq文件

/sam/velvet/contrib/shuffleSequences_fasta/shuffleSequences_fastq.pl output_forward_paired.fq output_reverse_paired.fq paired.fq

给的例子是没有喝,只是在输入文件中列出你所要出入的文件的名字即可,具体参考软件中给的例子。

-t : 输出文件的格式
        q : FASTQ format into TWO output files
        f : FASTA format into TWO output files
        p : FASTA format into ONE output file
        default = q
    
-o : The first output file [FILE OUT]
 
-p : The second output file [FILE OUT]
     Optional. ONLY required when output sequence format(-t) is specify as
     [q] or [f].
 
-c : Types of sequence descriptions for output [0/1]
        0 : The raw descriptions
        1 : New serial numbers assigned by FastUniq
        default = 0

五、讨论

  1. 其实用这个只是为了让我的宏基因组的reads少一些,数据量大了,后面的拼接真实问题啊
  2. PCR Duplicates是实验误差,去除后的coverage才是更接近真实的结果,使用fastquniq只能去除一部分PCR duplicates,去除PCR Duplicates,对拼接结果可能影响还不小的。拼接结果会更加准确。如果两对reads的序列完全一模一样,则认为这两对reads是PCR duplicates,fastuniq就是这样来去除PCR Duplicates的(陈博士给的经验之谈)
  3. 这个软件是否吃内存,用来处理60G的数据,而只有47G的内存是否可行?它说的是64G的内存处理一个Illumina的lane数据是没有问题的,一个illumina的lane数据量大概是40G的数据。果真吃内存,直接Kill掉了我的命令,这个的工作原理相当于把所有数据放到内存条中来进行排序。建议先trim,然后在来用这个软件来去除dup,因为,这个软件是比较以后,随机保留相同的pair的中一个,如果不先trim,容易保留质量差的哪一个,而且即使trim后,它也能处理不同长度的pair。

参考资料:

文献:FastUniq: A Fast De Novo Duplicates Removal Tool for Paired Short Reads

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn