首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在蟒蛇中将蛋白质序列分解成20的大小相等的大小

如何在蟒蛇中将蛋白质序列分解成20的大小相等的大小
EN

Stack Overflow用户
提问于 2019-10-17 06:54:08
回答 4查看 93关注 0票数 0

我想把蛋白质的结构分解成20个相同大小的块,蛋白质的结构是这样的

代码语言:javascript
复制
MASTEGANNMPKQVEVRMHDSHLGSEEPKHRHLGLRLCDKLGKNLLLTLTVFGVILGAVCGGLLRLASPI
HPDVVMLIAFPGDILMRMLKMLILPLIISSLITGLSGLDAKASGRLGTRAMVYYMSTTIIAAVLGVILVL
AIHPGNPKLKKQLGPGKKNDEVSSLDAFLDLIRNLFPENLVQACFQQIQTVTKKVLVAPPPDEEANATSA
VVSLLNETVTEVPEETKMVIKKGLEFKDGMNVLGLIGFFIAFGIAMGKMGDQAKLMVDFFNILNEIVMKL
VIMIMWYSPLGIACLICGKIIAIKDLEVVARQLGMYMVTVIIGLIIHGGIFLPLIYFVVTRKNPFSFFAG
IFQAWITALGTASSAGTLPVTFRCLEENLGIDKRVTRFVLPVGATINMDGTALYEAVAAIFIAQMNGVVL
DGGQIVTVSLTATLASVGAASIPSAGLVTMLLILTAVGLPTEDISLLVAVDWLLDRMRTSVNVVGDSFGA
GIVYHLSKSELDTIDSQHRVHEDIEMTKTQSIYDDMKNHRESNSNQCVYAAHNSVIVDECKVTLAANGKS
ADCSVEEEPWKREK

我尝试过循环循环。

代码语言:javascript
复制
    x="abfgjjhuyuryitfvbkjuhhgyuumnabcdfrfhghhoiutgfctrdgfvijnk"
    length=len(x)
    values= [length/20+1]

    a=1
    for i in length(a,x)
    print(i)

但这不起作用

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-17 06:57:46

通过导入文本缠绕来尝试这一点

代码语言:javascript
复制
import textwrap
myArray="MASTEGANNMPKQVEVRMHDSHLGSEEPKHRHLGLRLCDKLGKNLLLTLTVFGVILGAVCGGLLRLASPIHPDVVMLIAFPGDILMRMLKMLILPLIISSLITGLSGLDAKASGRLGTRAMVYYMSTTIIAAVLGVILVLAIHPGNPKLKKQLGPGKKNDEVSSLDAFLDLIRNLFPENLVQACFQQIQTVTKKVLVAPPPDEEANATSAVVSLLNETVTEVPEETKMVIKKGLEFKDGMNVLGLIGFFIAFGIAMGKMGDQAKLMVDFFNILNEIVMKLVIMIMWYSPLGIACLICGKIIAIKDLEVVARQLGMYMVTVIIGLIIHGGIFLPLIYFVVTRKNPFSFFAGIFQAWITALGTASSAGTLPVTFRCLEENLGIDKRVTRFVLPVGATINMDGTALYEAVAAIFIAQMNGVVLDGGQIVTVSLTATLASVGAASIPSAGLVTMLLILTAVGLPTEDISLLVAVDWLLDRMRTSVNVVGDSFGAGIVYHLSKSELDTIDSQHRVHEDIEMTKTQSIYDDMKNHRESNSNQCVYAAHNSVIVDECKVTLAANGKSADCSVEEEPWKREK"
list_string = str(myArray)
textwrap.wrap(list_string, 20)

输出是这样的!

代码语言:javascript
复制
['MASTEGANNMPKQVEVRMHD',
 'SHLGSEEPKHRHLGLRLCDK',
 'LGKNLLLTLTVFGVILGAVC',
 'GGLLRLASPIHPDVVMLIAF',
 'PGDILMRMLKMLILPLIISS',
 'LITGLSGLDAKASGRLGTRA',
 'MVYYMSTTIIAAVLGVILVL',
 'AIHPGNPKLKKQLGPGKKND',
 'EVSSLDAFLDLIRNLFPENL',
 'VQACFQQIQTVTKKVLVAPP',
 'PDEEANATSAVVSLLNETVT',
 'EVPEETKMVIKKGLEFKDGM',
 'NVLGLIGFFIAFGIAMGKMG',
 'DQAKLMVDFFNILNEIVMKL',
 'VIMIMWYSPLGIACLICGKI',
 'IAIKDLEVVARQLGMYMVTV',
 'IIGLIIHGGIFLPLIYFVVT',
 'RKNPFSFFAGIFQAWITALG',
 'TASSAGTLPVTFRCLEENLG',
 'IDKRVTRFVLPVGATINMDG',
 'TALYEAVAAIFIAQMNGVVL',
 'DGGQIVTVSLTATLASVGAA',
 'SIPSAGLVTMLLILTAVGLP',
 'TEDISLLVAVDWLLDRMRTS',
 'VNVVGDSFGAGIVYHLSKSE',
 'LDTIDSQHRVHEDIEMTKTQ',
 'SIYDDMKNHRESNSNQCVYA',
 'AHNSVIVDECKVTLAANGKS',
 'ADCSVEEEPWKREK']
票数 6
EN

Stack Overflow用户

发布于 2019-10-17 06:56:50

像这样的东西会起作用的:

代码语言:javascript
复制
values = [x[i:i+20] for i in range(0, len(x), 20)]

作为参考:

x[a:b]从索引a获取字符串x的一部分,直到(但不包括)索引b,因此x[i:i+20]从索引i开始接受大小为20的片段。

range(a, b, step)将生成一个从a到(但不包括) b的数字序列,并增加step

票数 2
EN

Stack Overflow用户

发布于 2019-10-17 06:59:06

在首先删除所有空白后,您可以使用re.findall,例如:

代码语言:javascript
复制
inp = """MASTEGANNMPKQVEVRMHDSHLGSEEPKHRHLGLRLCDKLGKNLLLTLTVFGVILGAVCGGLLRLASPI
HPDVVMLIAFPGDILMRMLKMLILPLIISSLITGLSGLDAKASGRLGTRAMVYYMSTTIIAAVLGVILVL
AIHPGNPKLKKQLGPGKKNDEVSSLDAFLDLIRNLFPENLVQACFQQIQTVTKKVLVAPPPDEEANATSA"""
inp = re.sub(r'\s+', '', inp)
chunks = re.findall(r'.{1,20}', inp)

这些指纹:

代码语言:javascript
复制
['MASTEGANNMPKQVEVRMHD',
 'SHLGSEEPKHRHLGLRLCDK',
 'LGKNLLLTLTVFGVILGAVC',
 'GGLLRLASPIHPDVVMLIAF',
 'PGDILMRMLKMLILPLIISS',
 'LITGLSGLDAKASGRLGTRA',
 'MVYYMSTTIIAAVLGVILVL',
 'AIHPGNPKLKKQLGPGKKND',
 'EVSSLDAFLDLIRNLFPENL',
 'VQACFQQIQTVTKKVLVAPP',
 'PDEEANATSA']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58426564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档