gpt4 book ai didi

python - 如何使用特定步长的窗口提取短序列?

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:18 27 4
gpt4 key购买 nike

下面的代码在窗口大小为 4 的每个序列中提取短序列。如何将窗口移动步长 2 并提取 4 个碱基对?

示例代码

from Bio import SeqIO

with open("testA_out.fasta","w") as f:
for seq_record in SeqIO.parse("testA.fasta", "fasta"):
i = 0
while ((i+4) < len(seq_record.seq)) :
f.write(">" + str(seq_record.id) + "\n")
f.write(str(seq_record.seq[i:i+4]) + "\n")
i += 2

testA.fasta 输入示例

>human1
ACCCGATTT

testA_out 的示例输出

>human1
ACCC
>human1
CCGA
>human1
GATT

此输出的问题是遗漏了一个 T,因此在这种情况下我希望也包含它。我怎样才能得出这个输出?使用反向提取以及包括从头到尾提取时可能遗漏的碱基对。谁能帮帮我?


预期输出

>human1
ACCC
>human1
CCGA
>human1
GATT
>human1
ATTT
>human1
CGAT
>human1
CCCG

最佳答案

对于任何窗口大小和任何步长:

fasta='ACCCGATTT'
windowSize=4
step=1
i=0
while (i+windowSize)<=len(fasta):
currentWindow=fasta[i:i+windowSize]
print(currentWindow)
i+=step

windowSize=4,step=2 的输出:

ACCC 
CCGA
GATT

windowSize=4,step=1 的输出:

ACCC                       
CCCG
CCGA
CGAT
GATT
ATTT

最后一个与“预期输出”完全相同,排序不同。

关于python - 如何使用特定步长的窗口提取短序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797796/

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