如何循环配对端的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")
}
但是,如果我编辑一个配对文件,我不知何故需要跟踪第二个文件,以便两个文件继续相互对应
答案 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 可以对配对端数据执行质量/长度过滤,而且速度很快......