当前位置: 首页 > news >正文

python之函数返回数据框

1.原始文件

##gff-version 3
Chr1A   IWGSC_v2.1      gene    40098   70338   33      -       .       ID=TraesCS1A03G0000200;previous_id=TraesCS1A02G000100;primconf=HC;Name=TraesCS1A03G0000200;cds=CDS_OK;mapping=fullMatchWithMissmatches
Chr1A   IWGSC_v2.1      mRNA    40098   70338   .       -       .       ID=TraesCS1A03G0000200.1;Parent=TraesCS1A03G0000200;Note=TraesCS1A01G000100;primconf=HC;Name=TraesCS1A03G0000200.1;secconf=HC2;cds=CDS_OK;mapping=fullMatchWithMissmatches;previous_id=TraesCS1A02G000100.1
Chr1A   IWGSC_v2.1      three_prime_UTR 40098   40731   .       -       .       ID=TraesCS1A03G0000200.1.utr3p1;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      exon    40098   40731   .       -       .       ID=TraesCS1A03G0000200.1.exon1;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      three_prime_UTR 58474   58507   .       -       .       ID=TraesCS1A03G0000200.1.utr3p2;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      exon    58474   58897   .       -       .       ID=TraesCS1A03G0000200.1.exon2;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      CDS     58508   58768   .       -       0       ID=TraesCS1A03G0000200.1.CDS1;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      five_prime_UTR  58769   58897   .       -       .       ID=TraesCS1A03G0000200.1.utr5p1;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      exon    70089   70338   .       -       .       ID=TraesCS1A03G0000200.1.exon3;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      five_prime_UTR  70089   70338   .       -       .       ID=TraesCS1A03G0000200.1.utr5p2;Parent=TraesCS1A03G0000200.1
Chr1A   IWGSC_v2.1      gene    70239   89245   35      +       .       ID=TraesCS1A03G0000400;previous_id=TraesCS1A02G000200;primconf=HC;Name=TraesCS1A03G0000400;cds=CDS_OK;mapping=fullPerfectMatch
Chr1A   IWGSC_v2.1      mRNA    70239   89245   .       +       .       ID=TraesCS1A03G0000400.1;Parent=TraesCS1A03G0000400;Note=TraesCS1A01G000200;primconf=HC;Name=TraesCS1A03G0000400.1;secconf=HC2;cds=CDS_OK;mapping=fullPerfectMatch;previous_id=TraesCS1A02G000200.1

2.目的文件:

TraesCS1A02G002100      bad
TraesCS1A02G002200      bad
TraesCS1A02G002900      bad
TraesCS1A02G003200      bad
TraesCS1A02G003300      bad
TraesCS1A02G003700      good
TraesCS1A02G003900      bad
TraesCS1A02G004100      bad
TraesCS1A02G004300      bad
TraesCS1A02G004700      bad
TraesCS1A02G004800      bad
TraesCS1A02G004900      good
TraesCS1A02G005700      good

3.代码:

# lin_whether_1st_intron_longest.py
#! /usr/bin/env python
#统计第一个内含子是否是最长的,如果是输出good,否则输出bad
#usage: python lin_whether_1st_intron_longest.py Ta_genomeplus.gff5-1 > Ta_genomeplus.gff5-120824
#usage: python lin_whether_1st_intron_longest.py Ta_genomeminus.gff5-1 > Ta_genomeminus.gff5-120824
import pandas as pddef outputlist1(f1):list1 = []list2 = []list21 = []df1=pd.read_table(f1,index_col=0)df1["id1"]=df1.indexdf1["id1_start_end"]=df1["id1"]+","+df1["start"].astype(str)+","+df1["end"].astype(str)df2=df1.iloc[:,[3]]df3 = df2.groupby("id").apply(lambda x: x["id1_start_end"].tolist())for i in range(len(df3)):list1.append(",".join(df3[i]))# print(list1)for i in list1:i=i.strip().split(",")# " ".join(i)if len(i)>=9:for j in range(2,len(i)-1,3):list2.append(i[0])list2.append(str(int(i[j+2])-int(i[j])-1))else:continue# print(list2)# b=open("47out2.txt","w")# def output_length(list02):# b.write("id" + "\t" + "length"+"\n")for i in range(len(list2)):# list2[i]=list2[i].strip().split()# print(list2[i])if i % 2 == 0:#         # b.write(str(list2[i])+"\t"+str(list2[i+1])+"\t"+str(list2[i+2])+"\n")#         # print(str(list2[i+1])+"\t"+str(list2[i+2])+"\t"+str(list2[i]))#         b.write(str(list2[i])+"\t"+str(list2[i+1])+"\n")list21.append(list2[i:i+2])return list21def outputlist2(f2):list31 = []list32 = []list4 = []list41=[]df21 = pd.DataFrame(f2)# df21=pd.read_table(df21)df21.columns = ['id', 'length']df21=df21.set_index("id")# df21=f2df21["id1"]=df21.indexdf21["length1"]=df21["length"].astype(str)df21["id1_length"]=df21["id1"]+","+df21["length"].astype(str)df22=df21.iloc[:,[2]]df23 = df22.groupby("id").apply(lambda x: x["length1"].tolist())for i in range(len(df23)):list31.append(",".join(df23[i]))#新的数据框2df32=df21.iloc[:,[3]]df33 = df32.groupby("id").apply(lambda x: x["id1_length"].tolist())# print(df23)for i in range(len(df33)):list32.append(",".join(df33[i]))# list3=[int(i) for i in list3]# print(list32)# print(list3[1])# print(max(list3[1]))for i in range(len(list31)):list32[i] = list32[i].strip().split(",")list31[i]=list31[i].strip().split(",")list31[i]=[int(k) for k in list31[i]]# print(max(list3[i]))# for j in range(len(list3[i])):if list31[i][0]==max((list31[i])):list4.append(list32[i][0])list4.append("good")else:list4.append(list32[i][0])list4.append("bad")for i in range(len(list4)):if i % 2==0:print(str(list4[i])+"\t"+str(list4[i+1]))def outputlist3(f2):list31 = []list32 = []list4 = []list41=[]df21 = pd.DataFrame(f2)# df21=pd.read_table(df21)df21.columns = ['id', 'length']df21=df21.set_index("id")# df21=f2df21["id1"]=df21.indexdf21["length1"]=df21["length"].astype(str)df21["id1_length"]=df21["id1"]+","+df21["length"].astype(str)df22=df21.iloc[:,[2]]df23 = df22.groupby("id").apply(lambda x: x["length1"].tolist())for i in range(len(df23)):list31.append(",".join(df23[i]))#新的数据框2df32=df21.iloc[:,[3]]df33 = df32.groupby("id").apply(lambda x: x["id1_length"].tolist())# print(df23)for i in range(len(df33)):list32.append(",".join(df33[i]))# list3=[int(i) for i in list3]# print(list32)# print(list3[1])# print(max(list3[1]))for i in range(len(list31)):list32[i] = list32[i].strip().split(",")list31[i]=list31[i].strip().split(",")list31[i]=[int(k) for k in list31[i]]# print(max(list3[i]))# for j in range(len(list3[i])):if list31[i][0]==max((list31[i])):list4.append(list32[i][0])list4.append("good")else:list4.append(list32[i][0])list4.append("bad")for i in range(len(list4)):if i % 2==0:print(str(list4[i])+"\t"+str(list4[i+1]))
import argparse
import os
parser = argparse.ArgumentParser(description="Advanced screening always by hash")
parser.add_argument("-f1","--file1",help="the original file,tabulated,make sure do not contain blank line")
args = parser.parse_args()
with open (args.file1,"r") as f1:if "plus" in args.file1:df01=outputlist1(args.file1)outputlist2(df01)else:df01=outputlist1(args.file1)outputlist3(df01)

相关文章:

python之函数返回数据框

1.原始文件 ##gff-version 3 Chr1A IWGSC_v2.1 gene 40098 70338 33 - . IDTraesCS1A03G0000200;previous_idTraesCS1A02G000100;primconfHC;NameTraesCS1A03G0000200;cdsCDS_OK;mappingfullMatchWithMissmatches Chr1A IWGSC_v2.1 mRN…...

电子商务安全体系架构技术方面

技术方面是本文所要阐述的主要方面,因为它能够依靠企业自 身的努力来达到令人满意的安全保障效果。目前,关于电子商务安全体系的研究比 较多,有基于层次的体系,也有基于对象的体系,还有基于风险管理的体系&#xff0…...

新安装IDEA 常用插件、设置

新安装IDEA 常用插件、设置 mybatiscodeHelperProRestfulToolkit-fixJrebelmybatis log freepojo to jsonGrep ConsoleMaven HelperCamelCaseCamelCase常用设置 mybatiscodeHelperPro mapper.xml 编码校验 sql 生成,代码生成 RestfulToolkit-fix URI 跳转到对应的…...

ChromeOS 的 Linux 操作系统和 Chrome 浏览器分离

导读科技媒体 Ars Technica 报道称,谷歌正在将 ChromeOS 的浏览器从操作系统中分离出来 —— 让它变得更像 Linux。虽然目前还没有任何官方消息,但这项变化可能会在本月的版本更新中推出。 据介绍,谷歌将该项目命名为 "Lacros"——…...

哔哩哔哩 B站 bilibili 视频倍速设置 视频倍速可自定义

目录 一、复制如下代码 二、在B站视频播放页面进入控制台 三、将复制的代码粘贴到下方输入框,并 回车Enter 即可 四、然后就可以了 一、复制如下代码 (该代码用于设置倍速为3,最后的数值是多少就是多少倍速,可以带小数点&#…...

Lazada商品详情接口 获取Lazada商品详情数据 Lazada商品价格接

一、引言 随着电子商务的迅速发展和普及,电商平台之间的竞争也日趋激烈。为了提供更好的用户体验和更高效的后端管理,Lazada作为东南亚最大的电商平台之一,开发了一种商品详情接口(Product Detail API)。该接口允许第…...

路由攻击(ospf attack)及C/C++代码实现

开放式最短路径优先(OSPF)是应用最广泛的域内路由协议之一。不幸的是,它有许多严重的安全问题。OSPF上的伪造是可能导致路由循环和黑洞的最关键的漏洞之一。 大多数已知的OSPF攻击基于伪造攻击者控制的路由器的链路状态通告(LSA&…...

nginx配置站点强制开启https

当站点域名配置完SSL证书后,如果要强制开启HTTPS,可以在站点配置文件中加上: #HTTP_TO_HTTPS_START if ($server_port !~ 443){rewrite ^(/.*)$ https://$host$1 permanent; } #HTTP_TO_HTTPS_END 附上完整的配置完SSL证书,强制…...

Jacoco XML 解析

1 XML解析器对比 1. DOM解析器: ○ 优点:易于使用,提供完整的文档树,可以方便地修改和遍历XML文档。 ○ 缺点:对大型文档消耗内存较多,加载整个文档可能会变慢。 ○ 适用场景:适合小型XML文档…...

【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?

【面试题】JDK、JRE、JVM之间的关系? JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。 JRE(Java Runtime Environment):Java运行时环境&…...

软件设计师学习笔记7-输入输出技术+总线+可靠性+性能指标

目录 1.输入输出技术 1.1数据传输控制方式 1.2中断处理过程 2.总线 3.可靠性 3.1可靠性指标 3.2串联系统与并联系统 3.3混合模型 4.性能指标 1.输入输出技术 即CPU控制主存与外设交互的过程 1.1数据传输控制方式 (1)程序控制(查询)方式&…...

Windows下MATLAB调用Python函数操作说明

MATLAB与Python版本的兼容 具体可参看MATLAB与Python版本的兼容 操作说明 操作说明请参看下面两个链接: 操作指南 简单说明: 我安装的是MATLAB2022a和Python3.8.6(安装时请勾选所有可以勾选的,包括路径)。对应版本安…...

【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常

ST的传感器驱动与HAL一直成功后,能拿到数据了,但是设备是横屏,系统默认是竖屏。就会出现屏幕自动转动时方向是错的的情况,设备横立展示的是竖屏,设备竖立展示的是横屏。 这个是PCB上设计的传感器贴片方向和横屏不一致…...

JavaScript Es6_3笔记

JavaScript 进阶 文章目录 JavaScript 进阶编程思想面向过程面向对象 构造函数原型对象constructor 属性对象原型原型继承原型链 了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。 …...

Qt产生随机数

Qt产生随机数 提问:注意:实现: 提问: 有没有小伙伴遇到这么一种情况,使用rand()和qrand()函数生成的随机数好像不是那么随机,每次都一样。那这种就叫做“伪随机”,因为没有种随机数种子&#x…...

postgresql常用函数-数学函数

postgresql常用函数 简介数学函数算术运算符绝对值取整函数乘方与开方指数与对数整数商和余数弧度与角度常量 π符号函数生成随机数 简介 函数(function)是一些预定义好的代码模块,可以将输入进行计算和处理,最终输出一个 结果值…...

【排序】快速排序(前后指针法)—— 考的最少的一种算法

以从小到大的顺序进行说明。 前后指针法 是指对于一个数组,定义前后各一个指针(prev 和 cur) prev用于卡一个比基准值大的值进行交换cur用于向前遍历出比基准值小的,和prev进行交换 图解 初始化 选出基准值4 如果cur 所在的值…...

软考:中级软件设计师:关系代数:中级软件设计师:关系代数,规范化理论函数依赖,它的价值和用途,键,范式,模式分解

软考:中级软件设计师:关系代数 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &…...

openCV实战-系列教程2:阈值与平滑处理(图像阈值/图像平滑处理/高斯/中值滤波)、源码解读

1、图像阈值 t图像阈值函数,就是需要判断一下像素值大于一个数应该怎么处理,小于一个数应该怎么处理 ret, dst cv2.threshold(src, thresh, maxval, type) 参数解析: src: 原始输入图,只能输入单通道图像&#…...

C语言第五章-循环结构练习

1、设计一个小型模拟彩票中奖机,已知彩票中奖号码是一个固定的3位数(原始号码)。对任意一个3位数,取出它的每位数字和原始号码的每位数字比较,有1位数相同中三等奖,有2位数相同中二等奖,有3位数…...

python-flask-djangol框架的的畜牧站疾病防控与检测系统

目录技术选型与架构设计核心功能模块实现数据可视化与决策支持移动端适配与离线功能测试与部署方案项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 后端采用Python Flask框架,轻量级且灵活性高&…...

SOONet实战教程:结合Whisper提取音频文本,构建音视频联合语义定位Pipeline

SOONet实战教程:结合Whisper提取音频文本,构建音视频联合语义定位Pipeline 1. 项目概述 今天给大家介绍一个特别实用的技术方案:如何用SOONet视频时序定位系统,结合Whisper语音识别,构建一个完整的音视频语义定位pip…...

人工智能|大模型 —— 量化 —— 一文搞懂大模型量化技术:GGUF、GPTQ、AWQ

目前关于大模型量化技术的文章层出不穷,但对其理论部分的深入探讨却相对较少。本文将对大模型量化技术进行系统性的介绍,并重点聚焦于理论层面的深入解析。 一、大模型量化基础 大模型量化的核心在于将模型参数的精度从较高的位宽(bit-width…...

【agent原理】OpenClaw之agent全链路详解

未来已来,只需一句指令,养龙虾专栏导航,持续更新ing… openclaw的术语约定 专业术语 类比 核心作用 不用的后果 Agent Bootstrapping AI员工的入职仪式 给AI办工牌、定岗位职责、录用户信息、建工作文件夹,只执行一次 手动建文件格式错乱、agent读不到规则、配置不统一、重…...

STM32duino S2-LP无线驱动库:Sub-1GHz低功耗可靠通信实现

1. 项目概述STM32duino X-NUCLEO-S2868A2 是一款面向 STM32 平台的 Arduino 兼容库,专为驱动意法半导体(STMicroelectronics)推出的 X-NUCLEO-S2868A2 扩展板而设计。该扩展板核心搭载 S2-LP 超低功耗 Sub-1GHz 射频收发器芯片(型…...

Obsidian-i18n:破解插件语言壁垒的无缝本地化方案——让中文用户零门槛掌控千款插件

Obsidian-i18n:破解插件语言壁垒的无缝本地化方案——让中文用户零门槛掌控千款插件 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 问题诊断:插件语言障碍如何制约Obsidian用户体验? …...

OpenClaw配置备份指南:GLM-4.7-Flash环境快速迁移方案

OpenClaw配置备份指南:GLM-4.7-Flash环境快速迁移方案 1. 为什么需要环境迁移? 上周我的主力开发机突然硬盘故障,导致精心配置的OpenClaw环境全部丢失。重装后发现要重新对接GLM-4.7-Flash模型、配置飞书通道、安装十几个自定义技能——这个…...

不用命令行!Win11任务栏图标消失的图形化解决方案(Explorer重启神器推荐)

Win11任务栏图标消失?5种可视化修复方案与深度解析 每次切换虚拟桌面后,Win11任务栏图标集体"失踪"的毛病,堪称微软系统最顽固的"幽灵故障"之一。作为从Windows 95时代就存在的资源管理器痼疾,这个问题在Win1…...

G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案

G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...

【硬核】让所有AI Agent自动进化!港大开源OpenSpace,一个命令让你的Claude Code/Cursor/OpenClaw秒变超级智能体

最近刷 GitHub,发现了一个让我眼前一亮的项目——OpenSpace。 它解决了一个超级痛点:现在的 AI Agent(比如 Claude Code、OpenClaw、Cursor)都很强大,但它们从不学习、永不进化——每次任务都是从头开始,浪…...