【发布时间】:2016-04-30 00:33:19
【问题描述】:
我想读入一个大文件,其中包含 fasta 序列(1 个标题和标题下方的 1 行序列)以及行之间的其他随机垃圾和无组织间距。
我想读取每一行,如果一行以“>”符号开头,这是 fasta 序列标题的开头,然后将该标题与下一行一起拉出,这将是序列。
我有一个小示例数据文件要展示:
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
GCTAGCACCATGGAGACAGACACACTCCTGCTATG
Task 2: Subclone the synthesized
junk
junk
>4
GCTAGCACCATGGAGACAGAC
我的代码:
f=open("File.fasta", "r")
fastaseq = open("OnlyFastaseq.fasta", "w")
for line in f:
line = line.strip('\n')
if line.startswith(">"):
title = line.rstrip()
seq = f.readline()
seq = seq.rstrip()
fastaseq.write(title+"\n"+seq+"\n")
想要的输出:
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
GCTAGCACCATGGAGACAGACACACTCCTGCTATG
>4
GCTAGCACCATGGAGACAGAC
结果包含除'>3'序列之外的大部分标题+序列,它没有拉出下一行(即序列)。
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
>4
GCTAGCACCATGGAGACAGAC
【问题讨论】: