根据注释软件结果从ICTV中获取物种完整注释(python代码)

 比如病毒注释软件注释到了:

Viruses;Phixviricota;Malgrandaviricetes;Petitvirales;Microviridae;;

import os
import pandas as pd# 设置工作区
os.chdir("folder")
dir_ls = os.listdir()# 把ICTV物种表保存为df
ICTV_txt = "ICTV去冗余.txt"
df = pd.read_csv(ICTV_txt, sep='\t')result_ls = []
for file in dir_ls:if "mother_95" in file: #需要查看的结果文件result_ls.append(file)for file2 in result_ls:with open(file2, "r") as f2, open(f"{file2}_TAX.txt", "a") as out:print(f"vOTU\tRealm\tKingdom\tPhylum\tClass\tOrder\tFamily\tGenus\t", file=out)next(f2)  # Skip the headerfor line in f2.readlines():
# 提取最后一个物种名字,和vOTU名字。比如提取Malgrandaviricetes
# 比如IC1_idba-ud_1267_4139 Viruses;Phixviricota;Malgrandaviricetes;;Tax = line.split("\t")[-1].strip("\n")name = line.split("\t")[0].strip()last_Tax = [item for item in Tax.split(";") if item][-1]print(f"Searching for last_Tax: {last_Tax}")# 查找目标名字在ICTV的df的位置 df.apply(, axis=1)按行搜索search_result = df.apply(lambda row: row.str.contains(last_Tax).any(), axis=1)first_matching_index = search_result.idxmax() if search_result.any() else None# If a match is foundif first_matching_index is not None:matching_row = df.loc[first_matching_index]print(f"Matching row found: {matching_row}")# 在 matching_row 中找到等于 last_Tax 的第一个匹配项,并返回其索引last_tax_index = matching_row[matching_row == last_Tax].index[0]# Select columns from the start to the column containing last_Taxcolumns_before_last_tax = matching_row.loc[:last_tax_index]# Output the relevant columnsprint(f"Output from start to last_Tax: {columns_before_last_tax.values}")print(f"{name}",end="\t",file=out)for i in columns_before_last_tax.values:print(i,end="\t",file=out)print("", file=out)else:print("No match found.")print(f"{name}", end="\t", file=out)print("not assigned", file=out)

处理后

vOTU    Realm    Kingdom    Phylum    Class    Order    Family    Genus
IC1_idba-ud_1037_4508    Monodnaviria    Sangervirae    Phixviricota    Malgrandaviricetes    Petitvirales    Microviridae    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下Git操作

一、基本命令 1、创建 git 目录(工作区) mkdir gitcode 2、创建本地仓库,生成 .git 隐藏目录 git init 3、设置配置项 git config user.name "xxx" git config user.email "....." 4、查看配置项 git config -l …

QD1-P14 HTML 输入标签(input)

本节学习 HTML 常用标签&#xff1a;input 输入标签 ‍ 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p14 ‍ 知识点 1&#xff1a;简单示例 HTML <!DOCTYPE html> <html><head><meta charset"utf-8"><title>P14-input标签<…

git add 、 git commit、git push 、git stash、git reset --hard HEAD用法

下面是 git 中常见的几个命令的作用解释&#xff1a; git add&#xff1a; 这个命令用于将文件添加到暂存区&#xff08;Staging Area&#xff09;。它的意思是你标记了文件&#xff0c;将其准备好提交到仓库中。只有在执行 git add 后&#xff0c;文件的更改才能包含在下一次提…

在中国使用AWS服务器的法律要求与注册公司问题

随着云计算技术的迅猛发展&#xff0c;亚马逊网络服务&#xff08;AWS&#xff09;逐渐成为企业和开发者的首选平台。然而&#xff0c;当涉及到在中国境内使用AWS服务器时&#xff0c;许多人会关注一个重要问题&#xff1a;是否需要注册公司才能在中国运营AWS服务器&#xff1f…

Elasticsearch 实战应用

Elasticsearch 实战应用 引言 Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎&#xff0c;能够快速、实时地处理大规模数据&#xff0c;广泛应用于全文搜索、日志分析、推荐系统等领域。在这篇博客中&#xff0c;我们将从 Elasticsearch 的基本概念入手&#xff…

【华为】配置BGP协议

边界网关协议BGP是一种实现自治系统AS之间的路由可达&#xff0c;并选择最佳路由的距离矢量路由协议。BGP在不同自治系统之间进行路由转发&#xff0c;分为EBGP&#xff08;外部边界网关协议&#xff09;和IBGP&#xff08;内部边界网关协议&#xff09;两种情况。 [A]in g0/0/…

STM32外设应用详解

STM32外设应用详解 STM32微控制器是意法半导体&#xff08;STMicroelectronics&#xff09;推出的一系列基于ARM Cortex-M内核的高性能、低功耗32位微控制器。它们拥有丰富的外设接口和功能模块&#xff0c;可以满足各种嵌入式应用需求。本文将详细介绍STM32的外设及其应用&am…

神经网络的基本骨架——nn.Module(torch.nn里的Containers模块里的Module类)

**前置知识&#xff1a; nn&#xff1a;neural network神经网络 1、torch.nn&#xff1a;与神经网络有关的库 Containers&#xff1a;torch.nn中的一个模块 Module&#xff1a;所有神经网络模型的基础类&#xff08;Base class for all neural network modules&#xff09; …

《Windows PE》5.2 遍历导出表

为了将程序读到内存指定位置&#xff0c;本节我们将讨论如何使用两种不同的方法遍历导出表。此外&#xff0c;我们还将给出一个打印进程调用kernel32中的API信息的示例程序。 本节必须掌握的知识点&#xff1a; 遍历导出表 打印kernel32 5.2.1 遍历导出表 ■方法一 实验三十四…

【Vue.js】vue2 项目在 Vscode 中使用 Ctrl + 鼠标左键跳转 @ 别名导入的 js 文件和 .vue 文件

js 文件跳转 需要安装插件 Vetur 然后需要我们在项目根目录下添加 jsconfig.json 配置&#xff0c;至于配置的作于&#xff0c;可以参考我的另外一篇博客&#xff1a; 【React 】react 创建项目配置 jsconfig.json 的作用 它主要用于配置 JavaScript 或 TypeScript 项目的根…

C++ | Leetcode C++题解之第475题供暖器

题目&#xff1a; 题解&#xff1a; class Solution { public:int findRadius(vector<int>& houses, vector<int>& heaters) {sort(houses.begin(), houses.end());sort(heaters.begin(), heaters.end());int ans 0;for (int i 0, j 0; i < houses.…

华为---MUX VLAN简介及示例配置

目录 1. 产生背景 2. 应用场景 3. 主要功能 4. 基本概念 5. 配置步骤及相关命令 6.示例配置 6.1 示例场景 6.2 网络拓扑图 6.3 配置代码 6.4 配置及解析 6.5 测试验证 配置注意事项 1. 产生背景 MUX VLAN&#xff08;Multiplex VLAN&#xff09;提供了一种通过VLA…

python xml的读取和写入

import xml.etree.ElementTree as ET from xml.dom import minidom# 读取XML文档 tree ET.parse("./xml_3/z_20240827_001.xml") root tree.getroot() # 获取size元素 size_find_0 root.find("size") # 获取width子元素 size_w size_find_0.find("…

InstructGPT的四阶段:预训练、有监督微调、奖励建模、强化学习涉及到的公式解读

1. 预训练 1. 语言建模目标函数&#xff08;公式1&#xff09;&#xff1a; L 1 ( U ) ∑ i log ⁡ P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(\mathcal{U}) \sum_{i} \log P(u_i \mid u_{i-k}, \dots, u_{i-1}; \Theta) L1​(U)i∑​logP(ui​∣ui−k​,…,ui−1​;Θ…

C++和OpenGL实现3D游戏编程【连载15】——着色器初步

&#x1f525;C和OpenGL实现3D游戏编程【目录】 1、本节实现的内容 上一节我们介绍了通过VBO、VAO和EBO怎样将顶点发送到GPU显存&#xff0c;利用GPU与显存之间的高效处理速度&#xff0c;来提高我们的图形渲染效率。那么在此过程中&#xff0c;我们又可以通过着色器&#xff…

硬件开发笔记(三十一):TPS54331电源设计(四):PCB布板12V转5V电路、12V转3.0V和12V转4V电路

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/142757509 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

《OpenCV计算机视觉》—— 人脸检测

文章目录 一、人脸检测流程介绍二、用于人脸检测的关键方法1.加载分类器&#xff08;cv2.CascadeClassifier()&#xff09;2.检测图像中的人脸&#xff08;cv2.CascadeClassifier.detectMultiscale()&#xff09; 三、代码实现 一、人脸检测流程介绍 下面是一张含有多个人脸的…

人工智能和机器学习之线性代数(一)

人工智能和机器学习之线性代数&#xff08;一&#xff09; 人工智能和机器学习之线性代数一将介绍向量和矩阵的基础知识以及开源的机器学习框架PyTorch。 文章目录 人工智能和机器学习之线性代数&#xff08;一&#xff09;基本定义标量&#xff08;Scalar&#xff09;向量&a…

【硬件模块】HC-08蓝牙模块

蓝牙模块型号 HC-08蓝牙模块实物图 HC-08蓝牙模块引脚介绍 STATE&#xff1a;状态输出引脚。未连接时&#xff0c;则为低电平。连接成功时&#xff0c;则为高电平。可以在程序中作指示引脚使用&#xff1b; RXD&#xff1a;串口接收引脚。接单片机的 TX 引脚&#xff08;如…

大厂面试真题-说说AtomicInteger 线程安全原理

基础原子类&#xff08;以 AtomicInteger 为例&#xff09;主要通过 CAS 自旋 volatile 相结合的方案实现&#xff0c;既保障了 变量操作的线程安全性&#xff0c;又避免了 synchronized 重量级锁的高开销&#xff0c;使得 Java 程序的执行效率大为 提升。 CAS 用于保障变量…