W jaki sposób mogę kodować łączony ciąg znaków w formacie fasta, aby zgrupować wszystkie następujące po sobie nukleotydy i łączniki oraz encode them as run length.Zliczanie kolejnych alfabetów i łączników i zakodowywanie ich jako długości przebiegu
Rozważ moją sekwencję jako "ATGC ---- CGCTA ----- G ---". Łańcuch ma sekwencję Nucleotide, po której następuje sekwencja łączników. Próbuję zgrupować wszystkie następujące po sobie nukleotydy jako literę M
i kolejne myślniki jako literę D
i poprzedzić ją rozmiarem podsekwencji.
Końcowy wynik poza tym kodowaniem powinien wynosić 4M4D5M5D1M3D
.
Poniższy obrazowym graficzny wyjaśnia ponadto
ATGC----CGCTA-----G---
| | | | | |
V V V V V V
4M 4D 5M 5D 1M 3D
Gdy używam Counter
lub list.count()
, mam "M":10 "D":12
:
from collections import Counter
seq="ATGC----CGCTA-----G---"
M=0
D=0
cigar=[]
for char in seq:
if char.isalpha():
M+=1
cigar.append("M")
else:
D+=1
cigar.append("D")
print Counter(cigar)
jakie jest twoje pytanie? –
Pytanie brzmi: staram się osiągnąć coś w stylu 4M4D5M5D1M3D – gthm