前言:Python强大的脚本功能为生物信息学数据处理提供了巨大的帮助,本文介绍python在序列处理中的一点点小知识,希望能对初学生信者在序列上的处理上有一定帮助。
一、文件打开
Open函数
如打开f盘下的zzj.txt 文档:f=open(r' f:\zzj.txt')
这行代码非常简单,也很常用,我们通常将我们要处理的序列信息保存到txt文件里。
二、读取数据
1.读取整个文本: f.read()
如:
f=open(r' c:\zzj.txt')
2.读取一定的字符数: f.read(n)
如:
f=open(r' f:\zzj.text')
f.read(7)
3.按行读取且按行输出
f1=open(r'f:\zzj.txt')
for line in f1:
print line
f1.close()
三. 函数split() 常用于****序列格式处理
提问:为什么是函数split()常用?
将表格信息选中后复制粘贴到txt文件里后,原来表格里的不同列,复制后在txt文档里之间的间隔是制表符而非空格。split函数就是用来对制表符进行识别分割。
Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割
(一)函数说明
1、split()函数 语法:str.split(str="",num=string.count(str))[n]
参数说明: str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素 num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量 [n]:表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
2、os.path.split()函数 语法:os.path.split('PATH')
参数说明:
1.PATH指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名。
3.如果给出的是一个目录名,则输出路径和为空文件名
(二)分离字符串
string ="www.gziscas.com.cn"
1.以'.'为分隔符
print(string.split('.'))
['www','gziscas', 'com', 'cn']
2.分割两次
print(string.split('.',2))
['www','gziscas', 'com.cn']
3.分割两次,并取序列为1的项
print(string.split('.',2)[1])
gziscas
4.分割两次,并把分割后的三个部分保存到三个文件
u1, u2, u3=string.split('.',2)
print(u1)—— www
print(u2)—— gziscas
print(u3)——com.cn
实例:
1.多序列比对或Blast前进行格式处理,很常用。(分割)
代码1:
f1=open(r'f:\space.txt')
#space.txt文件内容是3列多行,3列分别为为序列名称、编号、序列。不同列之间在txt文件里是制表符分隔开来。
f2=open(r'f:\33.txt',"w") #用于储存结果的文件。
for line in f1:
d=f.readline()
u1,u2, u3=d.split('\t',2)
f2.write( ">"+u1+u2+"\n"+u3)
f1.close()
f2.close()
代码2:
f=open(r'f:\space.txt')
f2=open(r'f:\33.txt',"w")
for line in f1:
d=f.readline()
f2.write(">"+(d.split('\t',2)[0])+(d.split('\t',2)[1])+"\n"+(d.split('\t',2)[2]))
f1.close()
f2.close()
效果截图如下:

注意点:使用前看清有几个制表符,split里面的参数要做相应调整。
FAQ: 什么是****标准的fasta格式****序列?
标准的 fasta 格式序列,即对于每条序列而言,序列名称占一行,序列也只占一行,比如上图。
四.python 如何去除重复行并分别统计重复的行数?
比如下面的重复,存在内容完全相同的行。怎么把内容重复的行只保留一行,并且统计这样内容重复的行它有多少条?
网友评论