python中整型怎么样计算长度_Python如何计算序列长度

展开全部

根据你之前的问题,假定你的数62616964757a686964616fe58685e5aeb931333335313731据符合这种格式:>SeqName1

Seq1

>SeqName2

Seq2

...

这里不要求Seq1只占一行(即允许其中有换行符出现)。假如Seq总是只占一行的话,其实就是奇数行是名字,偶数行是序列本体而已,读取不要太简单……

以下是简单的实现。考虑到文件可能很大,使用迭代来逐个读入数据。文件较小的情况可以使用列表表达式直接实现- -。

遍历文件时的流程:

如当前行以'>'开始,将其存为k(序列名称),直到发现下一个序列名称为止的所有行,填入v(序列)。再次发现'>'开始的行时,将(k, v)存入字典,并将v清空。此外的是实现细节。注释之后太啰嗦了,对哪里有疑问请追问。fileFa = open("SEQ.FASTA", "r")

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\nLENGTH:%s" % (k, sum(map(len, v))))

使用你上一问题提供的4个序列,输出如下:4 sequences in total

SEQUENCE: qwe56_44514

LENGTH:98

SEQUENCE: qwe56_44606

LENGTH:82

SEQUENCE: qwe56_44424

LENGTH:43

SEQUENCE: qwe56_869

LENGTH:39

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值