美文网首页
Python 进行常见序列处理

Python 进行常见序列处理

作者: you的日常 | 来源:发表于2022-01-02 16:47 被阅读0次

前言: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()

效果截图如下:

image

注意点:使用前看清有几个制表符,split里面的参数要做相应调整。

FAQ: 什么是****标准的fasta格式****序列?

标准的 fasta 格式序列,即对于每条序列而言,序列名称占一行,序列也只占一行,比如上图。

.python 如何去除重复行并分别统计重复的行数?

比如下面的重复,存在内容完全相同的行。怎么把内容重复的行只保留一行,并且统计这样内容重复的行它有多少条?

相关文章

网友评论

      本文标题:Python 进行常见序列处理

      本文链接:https://www.haomeiwen.com/subject/zrmpqrtx.html