我试图从蟒蛇的基因组文件中读取一个染色体序列。基因组文件的格式如下所示,但每条染色体都有更多的序列:
Chr1
ATCGTGTGATGGTGCGTAGATGCTGAT
GCTGATGTGTCGAGCGATGCTGAGTCG
Chr2
TGCGTGATGCTGAGCGATGCTGATGCT
TAGCTGACCACACACCTGTTTTGTAGG
Chr3
GGTTGGTTGGCGGACCACCATTACTAT
我使用下面的代码读取整个基因组序列。然而,我只想要一个染色体的序列(例如Chr2的整个序列)。与其阅读整个基因组,然后搜索Chr2的模式,我还有其他方法可以做到这一点吗?
谢谢
with open("genome.txt") as f:
for line in f:
genome.append(line.rstrip())
发布于 2022-01-30 19:25:23
打开文件,逐行读取,直到找到“Chr2 2”为止。
使用所有非空行,直到到达EOF或以“Chr”开头的任何行为止。
def getgenomes(gfile):
g = []
for line in gfile:
if line.startswith('Chr'):
break
if (line := line.strip()):
g.append(line)
return g
with open('genome.txt', encoding='utf-8') as gfile:
genomes = None
for line in gfile:
if line.startswith('Chr2'):
genomes = getgenomes(gfile)
break
print(genomes)
输出:
['TGCGTGATGCTGAGCGATGCTGATGCT', 'TAGCTGACCACACACCTGTTTTGTAGG']
发布于 2022-01-30 19:26:32
Is_Chr2 = False
with open("genome.txt") as f:
for line in f:
if Is_Chr2: genome.append(line.rstrip())
if line.rstrip() == "Chr2": Is_Chr2 = True
else if line.rstrip()[:2] == "Chr" and Is_Chr2: break
https://stackoverflow.com/questions/70917980
复制相似问题