循环通过配对结束fastq读取

时间:2017-02-17 08:36:47

标签: r dna-sequence fastq

如何循环配对端的fastq文件?对于单端读取,您可以执行以下操作

library(ShortRead)
strm <- FastqStreamer("./my.fastq.gz")
repeat {
       fq <- yield(strm)
       if (length(fq) == 0)
     break
       #do things
       writeFasta(fq, 'output.fq', mode="a")
       }

但是,如果我编辑一个配对文件,我不知何故需要跟踪第二个文件,以便两个文件继续相互对应

1 个答案:

答案 0 :(得分:0)

配对端fastq文件通常是有序的,

因此,您可以跟踪已删除的行,并将其从配对文件中删除。但这不是一个好方法,如果你的数据是换行的,那你就会痛苦不堪。

更好的方法是使用标题信息

两个文件中配对读取的标题是相同的,除了指定读取是反向还是向前(1或2)的字段...

首先从文件1中读取: @ M02621:7:000000000-ARATH:1:1101:15643:1043 1:N:0:12

首先从文件2中读取 @ M02621:7:000000000-ARATH:1:1101:15643:1043 2:N:0:12

数字1101:15643:1043分别指代该图块上的图块和x,y坐标。

这些数字唯一标识给定运行的每个读取对。 使用此信息,您可以删除第二个文件中的读取(如果它们不在第一个文件中)。

或者,如果您正在进行高质量的修剪...... Trimmomatic 可以对配对端数据执行质量/长度过滤,而且速度很快......