gpt4 book ai didi

Python:如何从FASTA文件中的滑动窗口打印长度为n的序列?

转载 作者:行者123 更新时间:2023-12-01 04:42:19 25 4
gpt4 key购买 nike

我有一个包含很少序列的 fasta 文件,我想执行窗口大小为 5 的滑动窗口,并在扫描序列时提取序列。

例如( test1.fasta ):
>人类1
ATCGCGTC
> human2
ATTTTCGCGA

预期输出( test1_out.txt ):
> human1
ATCGC
> human1< TGCCG
>人类1
CGCGT
>人类1
GCGTC
>人类2
ATTTT
>人类2
TTTTC
>人类2
TTTCG
>人类2
TTCGC
>人类2
TCGCG
>人类2
CGCGA

我的以下代码只能提取前五个碱基对。如何移动窗口以在窗口大小为 5 的情况下,每步长为 1 提取 5 bp?

from Bio import SeqIO

with open("test1_out.txt","w") as f:
for seq_record in SeqIO.parse("test1.fasta", "fasta"):

f.write(str(seq_record.id) + "\n")
f.write(str(seq_record.seq[:5]) + "\n") #first 5 base positions

上面的代码是我从 stackoverflow 中的其他示例中获取的*

最佳答案

所以我猜“seq_record.seq”是像 human1“ATCGCGTC”中的整个 DNA 序列。你可以这样写:

from Bio import SeqIO

with open("test1_out.txt","w") as f:
for seq_record in SeqIO.parse("test1.fasta", "fasta"):
for i in range(len(seq_record.seq) - 4) :
f.write(str(seq_record.id) + "\n")
f.write(str(seq_record.seq[i:i+5]) + "\n") #first 5 base positions

关于Python:如何从FASTA文件中的滑动窗口打印长度为n的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com