师妹课堂之python简单处理fasta序列






师妹课堂之python简单处理fasta序列

小师妹  生信果  2023-07-22 19:00:08

{ 点击蓝字,关注我们 }

大家好,本期小师妹将向大家介绍简单使用python处理fasta序列,接下来跟着小师妹一起来学习一下吧!


01

认识fasta序列

Fasta序列包含两行,分别为id和序列,如下图。给了四条fasta序列,小师妹会将这四条数据放在一个名为case格式为.txt的文件中,然后打包给大家练手

02

如何导入数据,并统计序列总数

找到数据存放位置,得到其绝对路径:单击文件右键,点击属性即可得到。比如case在小师妹电脑的绝对路径如下:C:/Users/Admin/Desktop/case.txt


然后使用代码将数据读入,并进行处理:

f=open("C:/Users/Admin/Desktop/case.txt")t=f.readlines()count = 0for line in t:    if line.startswith('>'):        count+=1f.close()print(count)

该代码可以统计总共有多少条序列。

首先是:f=open("C:/Users/Admin/Desktop/case.txt")打开文件然后是t=f.readlines()将文件case所有内容读入并存放在t中count = 0初始化一个数值为零的变量count用于计数for line in t:    if line.startswith('>'):         count+=1

For循环的作用是是对存放在文件句柄t的数据进行逐行编列,然后使用if语句判断是否含有“>”大于符号,含有该符号,则count数值加一,遍历完数据后,序列总数将存放在变量count中。接着使用

f.close()关闭文件句柄

最后使用print(count)打印出总共有多少条序列。

03

怎么随机抽出指定数目的fasta序列

这里定义了一个randomselect函数

#!/usr/bin/env python# 这个文件是从大的序列文件中随机选取指定数量的文件例def randomselect(file, newfile):  sequences = list(SeqIO.parse(file, "fasta"))  # 随机选择2个序列  num_sequences = 2  # 你想要随机出来数量  random_sequences = random.sample(sequences, num_sequences)  print(random_sequences)  with open(newfile, "a") as randomseq:  for seq in random_sequences:  print(seq) randomseq.write(">" + seq.id + " " + seq.description) randomseq.write("n") randomseq.write(str(seq.seq))  randomseq.write("n")if __name__ == '__main__': getNumber("case.txt",  "new.txt")##case.txt为指定文件,new.txt为你需要随机得到序列后的文件。

只需要改变你想要的序列条数,主函数的文件的路径即可实现。


以上就是本期的内容啦,我们下期再见!这里小师妹还想推荐一个小工具:单细胞数据绘制小提琴图(http://www.biocloudservice.co

m/788/788.php),在线运行,可以使用加载的数据来实践哦。

E

N

D