Приведенный ниже код извлекает короткую последовательность в каждой последовательности с размером окна 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