python处理序列文件

python处理序列文件(fasta格式)

大家好,这里是想做生信大恐龙🦖的生信小白。2022年新年快乐啊,这次记录一下基因组学的实验。

前言

基因组学,十分难学!可能与该学期因为学生工作没上一个月课有关,学基因组学的感觉就很难受,平时老师讲都没认真听,这时候处理文件就很难受了!!!但是大学生就是“在一个大一点的学校里面学会自己学”,经过一番摸爬滚打总算解决了这个修改名字的问题。


提示:以下是本篇文章正文内容,下面案例可供参考

一、记录

问题:

做Blast之前请改下序列名,在各自序列名后面加上GCF编号
如将WP_003333770.1改成WP_003333770.1:GCF_000010165

二、解决方法

import os #导入os库
FilePath = "C:/Users/86184/Desktop/data" #放在桌面上的数据文件夹
FileList = os.listdir(FilePath) #遍历文件夹中所有文件,产生一个列表
#---------修改数据名称---------#
for file in FileList: #遍历文件夹中的每一个文件
    lastname = file[0:13] #切片处理,提取前13个字符
    oldf = open("C:/Users/86184/Desktop/data/{}".format(file),"r").readlines() #按行全部读取文件
    newf = open("C:/Users/86184/Desktop/result/{}.faa".format(lastname),'w') #将结果输出到新文件
    n = 0 #用来防止产生空行,在下面的判断中使用
    for line in oldf: #遍历待处理文件中的每一行
        if line.startswith('>'): #判断首个符号是不是'>'
            firstname = line[0:15] #切片处理,得到前15个字符
            other = line[15:] #后续的其他字符 
            n += 1
            if n == 1: #判断是不是首行,以免产生空行
                newf.write("{}:{}{}".format(firstname,lastname,other)) #将处理后数据写入新文件
            else:
                newf.write("{}:{}{}".format(firstname,lastname,other)) #同上
        else:
            newf.write(line) #序列数据不需要处理

总结

请永远相信自己,遇到问题的时候不要轻易相信其他人的解决方法!有时候自己想的更有创新性与高效性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bio大恐龙

您的打赏是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值