gpt4 book ai didi

python - 查找序列中的中断数

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:14 25 4
gpt4 key购买 nike

我有一个解析等位基因序列的程序。我正在尝试编写一个代码来确定等位基因是否完整。为此,我需要计算引用序列中的中断次数。中断由一串“-”表示。如果中断不止一次,我希望程序显示“Incomplete Allele”。

我怎样才能弄清楚如何计算序列中的中断次数?

这是一个“损坏的”序列的例子:

>DQB1*04:02:01
------------------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
--ATGTCTTGGAAGAAGGCTTTGCGGAT-------CCCTGGAGGCCTTCGGGTAGCAACT
GTGACCTT----GATGCTGGCGATGCTGAGCACCCCGGTGGCTGAGGGCAGAGACTCTCC
CGAGGATTTCGTGTTCCAGTTTAAGGGCATGTGCTACTTCACCAACGGGACCGAGCGCGT
GCGGGGTGTGACCAGATACATCTATAACCGAGAGGAGTACGCGCGCTTCGACAGCGACGT
GGGGGTGTATCGGGCGGTGACGCCGCTGGGGCGGCTTGACGCCGAGTACTGGAATAGCCA
GAAGGACATCCTGGAGGAGGACCGGGCGTCGGTGGACACCGTATGCAGACACAACTACCA
GTTGGAGCTCCGCACGACCTTGCAGCGGCGA-----------------------------
-----------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
---GTGGAGCCCACAGTGACCATCTCCCCATCCAGGACAGAGGCCCTCAACCACCACAAC
CTGCTGGTCTGCTCAGTGACAGATTTCTATCCAGCCCAGATCAAAGTCCGGTGGTTTCGG
AATGACCAGGAGGAGACAACTGGCGTTGTGTCCACCCCCCTTATTAGGAACGGTGACTGG
ACCTTCCAGATCCTGGTGATGCTGGAAATGACTCCCCAGCGTGGAGACGTCTACACCTGC
CACGTGGAGCACCCCAGCCTCCAGAACCCCATCATCGTGGAGTGGCGGGCTCAGTCTGAA
TCTGCCCAGAGCAAGATGCTGAGTGG----CATTGGAGGCTTCGTGCTGGGGCTGATCTT
CCTCGGGCTGGGCCTTATTATC--------------CATCACAGGAGTCAGAAAGGGCTC
CTGCACTGA---------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------

我目前的代码如下:

idx=[]
for m in range(len(sequence)):
for n in re.finditer('-',sequence[0]):
idx.append(n.start())
counter=0
min_val=[]
for n in range(len(idx)):
if counter==idx[n]:
counter=counter+1
elif counter !=0:
min_val.append(idx[n-1])
counter=0

我对上述代码的推理是,如果我能找到“-”的起始位置,那么我就可以看到它们在序列中出现了多少次,以及它们是否完全破坏了序列。但是,我知道上面的代码有一些缺陷。

最佳答案

您可以过滤掉所有“-”字符,并根据剩余段数确定中断数。

str_list = filter(None, sequence.split('-'))
if len(str_list) > 2:
return "Incomplete Allele"
else:
return "Complete Allele"

关于python - 查找序列中的中断数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38832238/

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