LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3100|回复: 4

python 如何读取 FASTA 文件中的各序列并赋值给变量?(已解决)

[复制链接]
发表于 2007-1-18 11:52:26 | 显示全部楼层 |阅读模式
想用 python 写个小程序处理下生物序列,不知道本版有多少做生物信息学的,先描述下 FASTA 文件的结构,
FASTA 文件是一种文本文件:
>name1
sequence1

>name2
sequence2

>name3
sequence3

.......

每一个不同的序列用 “>” 标识,后面跟着它的名字(仅一行,可能含空格),下一行即为序列(可能分几行,但不包含空格,不包含空行,全部是字母或者“-”字符),序列之后空一行,再接第二个序列,依次类推......

我现在想将所有的 sequence 读取出来,以字符串的形式分别赋值于几个变量,比如:
s1=“sequence1”、s2=“sequence2”、..........
他们对应的 name  不作处理,无须关联在一起,注意 sequence 可能有近万个字符,而且需要计算各个 sequene 有多少个字符并判断大家的字符数是否相等。

完成这个读取以及赋值的 python 代码是怎么样的呢?谢谢
 楼主| 发表于 2007-1-18 21:12:55 | 显示全部楼层
用 file.readline() 函数的话,如何控制参数,使得刚好得到想要的行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-19 15:03:57 | 显示全部楼层
只能想到这个笨方法了,
用 readline() 依次读取每一行,然后判断它的第一个字符是不是“>”,是的话,将前面不是“>”开头的行的值按顺序加起来。

不知有没更好的方法呢?
回复 支持 反对

使用道具 举报

发表于 2009-11-20 10:31:26 | 显示全部楼层
使用pyfasta软件包。
回复 支持 反对

使用道具 举报

发表于 2009-12-19 17:24:50 | 显示全部楼层
用file.readlines()函数把所有行 读入到列表中,然后再判断输出不就行了吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表