Python如何计算序列长度
答案:4 悬赏:50 手机版
解决时间 2021-11-16 02:16
- 提问者网友:低吟詩仙的傷
- 2021-11-15 06:22
Python如何计算序列长度
最佳答案
- 五星知识达人网友:酒安江南
- 2021-11-15 07:03
Python编程中可以用len函数返回序列中所包含元素的数量长度、min函数和max函数返回序列中最大和最小的元素,代码如下:
>>> numbers = [100, 34, 678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> max(2, 3)
3
>>> min(9, 3, 2, 5)
2
>>> numbers = [100, 34, 678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> max(2, 3)
3
>>> min(9, 3, 2, 5)
2
全部回答
- 1楼网友:青灯有味
- 2021-11-15 09:18
import re
data = re.findall( '(w+)' ,open( 'SEQ.FASTA' ).read( ) )
print( dict( zip( data[ ::2 ] ,data[ 1::2 ] ) ) )
data = re.findall( '(w+)' ,open( 'SEQ.FASTA' ).read( ) )
print( dict( zip( data[ ::2 ] ,data[ 1::2 ] ) ) )
容错没做,必须保证文件数据是有序的
- 2楼网友:摆渡翁
- 2021-11-15 07:44
你问了个跨学科的问题,
你不告诉别人氨基酸的序列计算机制,别人怎么告诉你。
要是你把它生成了字典,你可以直接查看,命令是help(dist)和dir(dist)
你不告诉别人氨基酸的序列计算机制,别人怎么告诉你。
要是你把它生成了字典,你可以直接查看,命令是help(dist)和dir(dist)
- 3楼网友:人间朝暮
- 2021-11-15 07:19
根据你之前的问题,假定你的数据符合这种格式:
>SeqName1Seq1
>SeqName2
Seq2
...
这里不要求Seq1只占一行(即允许其中有换行符出现)。假如Seq总是只占一行的话,其实就是奇数行是名字,偶数行是序列本体而已,读取不要太简单……
以下是简单的实现。考虑到文件可能很大,使用迭代来逐个读入数据。文件较小的情况可以使用列表表达式直接实现- -。
遍历文件时的流程:
如当前行以'>'开始,将其存为k(序列名称),直到发现下一个序列名称为止的所有行,填入v(序列)。再次发现'>'开始的行时,将(k, v)存入字典,并将v清空。此外的是实现细节。注释之后太啰嗦了,对哪里有疑问请追问。
dic, k, v = {}, '', []
for i in fileFa:
if i.startswith('>'):
dic[k] = v
k = i[1:-1]
v = []
else:
v.append(i)
dic[k] = v
dic.pop('')
print "%s sequences in total" % len(dic)
for (k, v) in dic.items():
print("SEQUENCE: %s LENGTH:%s" % (k, sum(map(len, v))))
使用你上一问题提供的4个序列,输出如下:
4 sequences in totalSEQUENCE: qwe56_44514
LENGTH:98
SEQUENCE: qwe56_44606
LENGTH:82
SEQUENCE: qwe56_44424
LENGTH:43
SEQUENCE: qwe56_869
LENGTH:39
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯