我正在尝试修剪文件中的某些序列,每个序列字符串都有一个相应的字符串,用于描述序列质量。这是一个例子(文件中数千个之一):
@HS2:447:C2DFYACXX:4:2309:9964:54984 1:N:0:GCCAAT
TGCATNGCAGGCTGCTTCCTTTCTAGATCAGCTAGCAGCTGCAGGAAGGCATATTTTGG
+
BBBBF#0<FFFFFIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIIIIIIIF
我需要修剪以TGCA ...和BBBB ...开头的行,并以相同的顺序将较短的字符串与其他两行行(保持未修改)一起输出到新文件。我已经找到了如何修剪字符串,但我无法弄清楚如何在新的输出文件中将这四行保持在一起。
这是我到目前为止所写的:
import gzip
new_seqs=[]
with gzip.open('ALJG001B_index6_GCCAAT_L004_R1_004.fastq.gz', 'r') as file:
n=0
file_content = file.readlines()
for line in file_content:
n+=1
if n % 4 == 0:
new_seqs.append(line)
当然,它只生成最后一行(每4行)的列表:
['BBBBF#0<FFFFFIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIIIIIIIF\n', ...]
这是我编写的用于修剪序列的代码:
if len(line) > 50 and not line.startswith('@'):
print line[:-9]
答案 0 :(得分:2)
看起来您正在修剪fastq文件中的读取,请使用fasta格式指南。只需追加以&#39; @&#39;开头的行。或&#39; +&#39;没有修剪和修剪线序列和质量线。
for line in file_content:
if line[:1] == '@' or line[:1] == '+':
new_seqs.append(line)
else :
new_seqs.append(line[:-9])