序列拆分及批量归类至文件夹(v1)
拿到一堆线粒体rna的coI序列,由于全部序列都放在一个txt文件里面,因为后期需要把每一个序列单独拿出来fas文件,然后根据一个表格分类到种。要手动复制粘贴不知道要花多久,所以就用python自动化一下。
v1
整个过程分三步
1.拆分为以缩写命名的单个文件
#split into single seq import os import pandas as pd from tst import bad_val file_path=os.path.abspath(r"E:\新建文件夹\新建文件夹") df_E2a = pd.read_excel("E2a.xlsx") df_ce2e = pd.read_excel("E:\pythonProject1\CE2E.xlsx") df_E2a.index = df_E2a['ab.'] a = ">" f=open(r'E:\新建文件夹\新建文件夹\COI(1).fas') for line in f: if line.startswith(">"): new=line.lstrip('>').strip('\n') if new in bad_val: full = 'Not found!'+ new else: full = df_E2a.name[df_E2a['ab.'].loc[new]] outfile = open("E:\新建文件夹\新建文件夹\db\\"+"%s"%new + '.' + 'fas',"w") outfile.write(line+next(f)) outfile.close() print("Finished")
2.将同一物种的序列归类,放入以物种命名的文件夹
classify
import os # os是用来切换路径和创建文件夹的。
import pandas as pd
from tst import bad_val
from shutil import copy # shutil 是用来复制黏贴文件的
df_E2a = pd.read_excel("E2a.xlsx")
df_E2a.index = df_E2a['ab.']
file_path = r'E:\新建文件夹\新建文件夹\db' # 想拆分的文件夹所在路径,也就是一大堆文件所在的路径
save_dir = r'E:\新建文件夹\新建文件夹\class' # save_dir 是想把复制出来的文件存放在的路径
获取 file_path 下的文件和文件夹列表
因为 file_path 里面没有文件夹,所以不处理有文件夹的情况
pathDir = os.listdir(file_path) # os.listdir(file_path) 是获取指定路径下包含的文件或文件夹列表
for filename in pathDir: # 遍历pathDir下的所有文件filename
file_name = filename.split('.')[0]
if file_name in bad_val: full = '!Not found!' else: full = df_E2a.name[df_E2a['ab.'].loc[file_name]] dir_name = full.strip() # 新的文件夹的命名 from_path = os.path.join(file_path, filename) # 旧文件的绝对路径(包含文件的后缀名) to_path = save_dir + "\\" + dir_name # 新文件的绝对路径 if not os.path.isdir(to_path): # 如果 to_path 目录不存在,则创建 os.makedirs(to_path) copy(from_path, to_path) # 完成复制黏贴
3.发现txt文件中的缩写与物种名表格的缩写部分不相同,暂时处理:找出无法匹配的缩写单独放入一个文件夹,人工处理
#find the unmatched value import pandas as pd import difflib bad_val = [] df_E2a = pd.read_excel("E2a.xlsx") f=open(r'E:\新建文件夹\新建文件夹\COI(1).fas') for line in f: if line.startswith(">"): new=line.lstrip('>').strip('\n') a=difflib.get_close_matches(new,df_E2a['ab.'],1, cutoff=1) if len(a)==0: bad_val.append(new)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!