编写一个python程序来操作fasta文件。

问题描述 投票:-2回答:1

假设我有以下fasta文件和文本文件。

#fasta
>seq1
AAATTTCCC
>seq2
CCCGGGTTT

#txt (tab seperated)
seq1 3
seq2 4

我需要帮助,试图写一个程序,将重复字符串的每一个seq在fasta n倍。 先谢谢!

#output fasta
>seq1
AAATTTCCCAAATTTCCCAAATTTCCC
>seq2
CCCGGGTTTCCCGGGTTTCCCGGGTTTCCCGGGTTT 
python string fasta
1个回答
1
投票

试试这个。

with open('fasta.txt') as fp, open('seq.txt') as fp2:
    data = [line.strip() for line in fp if line.strip()]
    seq = [line.split() for line in fp2 if line.strip()]
data = dict([(data[i], data[i + 1]) for i in range(0, len(data), 2)])

with open('output.txt', 'w') as fw:
    for x in seq:
        key = '>' + x[0]
        fw.write(key + '\n' + data[key] * int(x[1]) + '\n')

#output.txt
#>seq1
#AAATTTCCCAAATTTCCCAAATTTCCC
#>seq2
#CCCGGGTTTCCCGGGTTTCCCGGGTTTCCCGGGTTT

© www.soinside.com 2019 - 2024. All rights reserved.