【发布时间】:2013-01-28 06:48:11
【问题描述】:
文件:
>1
ATTTTttttGGGG
ccCgCgGAgggGGT
gggggttttTTTTTTTTT
>2
ATcggGGGGGGA
>3
ATCGGGGGGATTT
gggggttAGTAttt
我正在构建一个读取具有这种格式的文件的函数。 该格式中嵌入了多个文件,这些文件由'>'+名称分隔(例如'>1','>2')
我正在尝试获取“>”行两侧的文本行并将它们编译为每个部分的一个字符串
所以这看起来像
name_list = ['>1','>2','>3']
sequence_list = ['ATTTTttttGGGGccCgCgGAgggGGTgggggttttTTTTTTTTT','ATcggGGGGGGA','ATCGGGGGGATTTgggggttAGTAttt']
import os
import re
# Open File
in_file=open(FASTA,'r')
dir,file=os.path.split(FASTA)
temp = os.path.join(dir,output)
out_file=open(temp,'w')
# Generating lines
lines = []
name_list = []
seq_list = []
for line in in_file:
line = line.strip()
lines.append(line)
in_file.close()
indx = range(0,len(lines))
# Organizing the elements
for line in lines:
for i in line:
if i == '>':
name_list.append(line)
else:
break
我不知道如何处理 else: 语句 我尝试使用 range(0,len(lines)) 创建索引 所以也许我可以在它找到'>'的地方做一些事情并为以下索引编译所有行,直到它找到下一个'>'并将它们添加到名为 seq_list 的列表中
任何帮助将不胜感激
【问题讨论】:
-
也许我没有满足这里的所有要求,但是你能不能只拆分以
>开头的行? -
请看我的评论here。简而言之:FASTA 解析器是已经发明出来的轮子,您无需为此浪费时间。
标签: python function indexing line fasta