Python_选择最长的AA序列

标签 python

我有以下序列,我正在尝试选择最长的序列。我知道它是第一个序列,但是我如何告诉Python选择M(开始)和*(停止)之间距离最长的序列?

First= MATVEPETTPTPNPPTTEEEKTESNQEVANPEHYIKHPLQNRWALWFFKNDKSKTWQANLRLISKFDTVEDFWALYNHIQLSSNLMPGCDYSLFKDGIEPMWEDEKNKRGGRWLITLNKQQRRSDLDRFWLETLLCLIGESFDDYSDDVCGAVVNVRAKGDKIAIWTTECENREAVTHIGRVYKERLGLPPKIVIGYQSHADTATKSGSTTKNRFVV*    
Second= WRLSNRKPPLLLIPRLQKRRKRNLIRRLLTQNTILNIPYRTDGHSGFLKMIKAKLGKQTCG*SPSLILLKTFGLCTTISSCLVI*CLAVTTHFLRMVLSLCGKMRKTNGEDDG*LH*TNSRDEVTSIAFG*RHFCALLENLLMTTVMMYVALLLMLELKVIR*QYGLLNVKTEKLLHI*GGYTRKG*DFLQR**LVISPTQTQLLRAAPPLKIGLLF    
Third= GDCRTGNHPYS*SPDYRRGENGI*SGGC*PRTLY*TSPTEQMGTLVF*K**KQNLASKPAADLQV*YC*RLLGSVQPYPVV**FNAWL*LLTF*GWY*AYVGR*EKQTGRTMANYIEQTAETK*PRSLLARDTSVPYWRIF**LQ**CMWRCC*C*S*R**DSNMDY*M*KQRSCYTYREGIQGKVRTSSKDSDWLSVPRRHSY*ERLHH*K*VCCL    
Fourth= LNNKPIFSGGAALSSCVCVGLITNHYLWRKS*PFLVYPPYMCNSFSVFTFSSPYCYLITFSSNINNSATYIITVVIKRFSNKAQKCL*PKAIEVTSSLLFVQCN*PSSSPFVFLIFPHRLNTILKK*VVTARH*ITRQLDMVVQSPKVFNSIKLGDQPQVCLPSFAFIIFKKPECPSVL*GMFNIVFWVSNLLIRFRFLLFCSRGIRSRGGFRFDSRH    
Fifth= *TTNLFLVVEPLLVAVSAWD**PITIFGGSPNLSLYTLPICVTASLFSHSVVHIAILSPLALTLTTAPHTSSL*SSKDSPIRHRSVSSQKRSRSLRLCCLFNVISHRPPRLFFSSSHIGSIPSLKSE*SQPGIKLLDNWIWLYRAQKSSTVSNLEISRRFACQVLLLSFLKNQSAHLFCRGCLI*CSGLATS*LDSVFSSSVVGGLGVGVVSGSTVA    
Sixth= KQQTYF*WWSRS**LCLRGTDNQSLSLEEVLTFPCIPSLYV*QLLCFHIQ*SILLSYHL*L*H*QQRHIHHHCSHQKILQ*GTEVSLAKSDRGHFVSAVCSM*LAIVLPVCFSHLPT*AQYHP*KVSSHSQALNY*TTGYGCTEPKSLQQYQTWRSAAGLLAKFCFYHF*KTRVPICSVGDV*YSVLG*QPPD*IPFSPLL*SGD*E*GWFPVRQSP

最佳答案

为了帮助您入门,这里有一些基本命令来获取您感兴趣的长度。我定义了一个函数来检查每个字符的第一个元素之间的长度。

First= 'MATVEPETTPTPNPPTTEEEKTESNQEVANPEHYIKHPLQNRWALWFFKNDKSKTWQANLRLISKFDTVEDFWALYNHIQLSSNLMPGCDYSLFKDGIEPMWEDEKNKRGGRWLITLNKQQRRSDLDRFWLETLLCLIGESFDDYSDDVCGAVVNVRAKGDKIAIWTTECENREAVTHIGRVYKERLGLPPKIVIGYQSHADTATKSGSTTKNRFVV*'
Second= 'WRLSNRKPPLLLIPRLQKRRKRNLIRRLLTQNTILNIPYRTDGHSGFLKMIKAKLGKQTCGSPSLILLKTFGLCTTISSCLVICLAVTTHFLRMVLSLCGKMRKTNGEDDGLHTNSRDEVTSIAFGRHFCALLENLLMTTVMMYVALLLMLELKVIRQYGLLNVKTEKLLHIGGYTRKGDFLQR**LVISPTQTQLLRAAPPLKIGLLF'
Third= 'GDCRTGNHPYSSPDYRRGENGISGGCPRTLYTSPTEQMGTLVFKKQNLASKPAADLQVYCRLLGSVQPYPVVFNAWLLLTFGWYAYVGREKQTGRTMANYIEQTAETKPRSLLARDTSVPYWRIFLQCMWRCCCS*R**DSNMDYMKQRSCYTYREGIQGKVRTSSKDSDWLSVPRRHSYERLHHK*VCCL'
Fourth= 'LNNKPIFSGGAALSSCVCVGLITNHYLWRKSPFLVYPPYMCNSFSVFTFSSPYCYLITFSSNINNSATYIITVVIKRFSNKAQKCLPKAIEVTSSLLFVQCNPSSSPFVFLIFPHRLNTILKKVVTARHITRQLDMVVQSPKVFNSIKLGDQPQVCLPSFAFIIFKKPECPSVLGMFNIVFWVSNLLIRFRFLLFCSRGIRSRGGFRFDSRH'
Fifth= '*TTNLFLVVEPLLVAVSAWD**PITIFGGSPNLSLYTLPICVTASLFSHSVVHIAILSPLALTLTTAPHTSSLSSKDSPIRHRSVSSQKRSRSLRLCCLFNVISHRPPRLFFSSSHIGSIPSLKSESQPGIKLLDNWIWLYRAQKSSTVSNLEISRRFACQVLLLSFLKNQSAHLFCRGCLICSGLATSLDSVFSSSVVGGLGVGVVSGSTVA'
Sixth= 'KQQTYF*WWSRS**LCLRGTDNQSLSLEEVLTFPCIPSLYVQLLCFHIQSILLSYHLLHQQRHIHHHCSHQKILQGTEVSLAKSDRGHFVSAVCSMLAIVLPVCFSHLPTAQYHPKVSSHSQALNYTTGYGCTEPKSLQQYQTWRSAAGLLAKFCFYHFKTRVPICSVGDVYSVLGQPPDIPFSPLLSGDE*GWFPVRQSP'

def sequence_length( string, char1, char2 ):
    try:
        return string.index(char2) - string.index(char1)
    except ValueError:
        return None

print( sequence_length( First, 'M', '*' ) )
print( sequence_length( Second, 'M', '*' ) )
print( sequence_length( Third, 'M', '*' ) )
print( sequence_length( Fourth, 'M', '*' ) )
print( sequence_length( Fifth, 'M', '*' ) )
print( sequence_length( Sixth, 'M', '*' ) )

返回:

217
135
98
None
None
-89

关于Python_选择最长的AA序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334170/

相关文章:

python - 学习使用 pandas datareader 绘制雅虎股价,但似乎不正确

python - 对于带有 pytest-cov : how to specify parallel=True for coverage version >= 5 的 pytest

python - 在 Shopify 应用程序的 Django HttpResponse 对象中设置 Content-Type

python - Celery 'i' 格式的内部错误

python - 从 3.6 到 python 2.7 的 importlib 的反向移植

python - ValueError : Input 0 of layer global_average_pooling2d is incompatible with the layer: expected ndim=4, 发现 ndim=2。完整形状收到 : [None, 128]

python - 使用带有函数的 pygame 的角色动画问题

python - 如何更改Python字典中的键

python - 如何轻松地同时遍历行和列?

python - 检查列表中的项目未按预期工作