千家信息网

merged.gtf如何合并同一转录本的exon位置

发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,这篇文章主要为大家展示了"merged.gtf如何合并同一转录本的exon位置",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"merged.gtf如何合并同
千家信息网最后更新 2025年11月19日merged.gtf如何合并同一转录本的exon位置

这篇文章主要为大家展示了"merged.gtf如何合并同一转录本的exon位置",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"merged.gtf如何合并同一转录本的exon位置"这篇文章吧。

在merged.gtf文件中有所有外显子的信息,下面的脚本可根据此文件提取转录本的所有外显子位置信息。

merged.gtf文件实例:

Chr00   Cufflinks       exon    37990   38333   .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "1"; gene_name "MD00G1000200"; oId "CUFF.2.1"; nearest_ref "mRNA:MD00G1000200"; class_code "j"; tss_id "TSS1";Chr00   Cufflinks       exon    38607   38710   .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "2"; gene_name "MD00G1000200"; oId "CUFF.2.1"; nearest_ref "mRNA:MD00G1000200"; class_code "j"; tss_id "TSS1";Chr00   Cufflinks       exon    38814   38898   .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "3"; gene_name "MD00G1000200"; oId "CUFF.2.1"; nearest_ref "mRNA:MD00G1000200"; class_code "j"; tss_id "TSS1";Chr00   Cufflinks       exon    42611   42713   .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "4"; gene_name "MD00G1000200"; oId "CUFF.2.1"; nearest_ref "mRNA:MD00G1000200"; class_code "j"; tss_id "TSS1";Chr00   Cufflinks       exon    42906   43203   .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "5"; gene_name "MD00G1000200"; oId "CUFF.2.1"; nearest_ref "mRNA:MD00G1000200"; class_code "j"; tss_id "TSS1";

输出文件示例:

Chr00   +       XLOC_000001     MD00G1000200    TCONS_00000001  exon    37990-38333     38607-38710     38814-38898     42611-42713     42906-43203Chr00   +       XLOC_000001     MD00G1000200    TCONS_00000002  exon    38005-38333     38607-38710     38814-38898     42611-42726     42906-43167Chr00   +       XLOC_000002     MD00G1000400    TCONS_00000003  exon    50386-50877Chr00   +       XLOC_000003     MD00G1000500    TCONS_00000004  exon    76659-76991     77468-77544     77649-77715     77889-77970     78355-78424Chr00   +       XLOC_000004     MD00G1000600    TCONS_00000005  exon    101951-102138   102228-102398   102957-103004   103099-103138   103227-103327   Chr00   +       XLOC_000004     MD00G1000600    TCONS_00000006  exon    102003-102138   102228-102398   102957-103004   103099-103138   103227-103327   Chr00   +       XLOC_000005     MD00G1000700    TCONS_00000007  exon    105542-105626   105926-106541   108356-108832Chr00   +       XLOC_000005     MD00G1000700    TCONS_00000009  exon    105542-105626   105926-106541   108902-109696Chr00   +       XLOC_000005     MD00G1000700    TCONS_00000008  exon    105542-105626   105926-106541   108949-109696Chr00   +       XLOC_000006     MD00G1001100    TCONS_00000010  exon    276592-277221   280928-280975

其中第一列为染色体;第二列为正负链;第三列是gene_id;第四列为gene_name;第五列为转录本ID;之后是外显子的起始位置信息

代码如下:

#!/usr/bin/perl -wuse strict;use warnings;use Getopt::Long;use Config::General;use Cwd qw(abs_path getcwd);use FindBin qw($Bin $Script);my $version = "1.2";## prepare parameters ######################################################################### -------------------------------------------------------------------------------------------## GetOptionsmy %opts;GetOptions(\%opts, "gtf=s", "od=s", "h");my $od = $opts{od};$od = abs_path($od);mkdir $od unless(-d $od);open(IN,"$opts{gtf}") ||die "open file $opts{gtf} failed.";open(OUT,">$opts{od}/merged.tpm") ||die "open file $opts{od}/merged.tpm failed.";while(){next if(/^#/);chomp;my($chr,$a,$exon,$start,$end,$c,$link,$d,$lin) = split("\t",$_);$lin=~/transcript_id \"([^\"]*)\"/;my $trans = $1;$lin=~/gene_name \"([^\"]*)\"/;my $gene_name= $1;$lin =~/gene_id \"([^\"]*)\"/;my $gene_id= $1;$lin =~/transcript_id \"([^\"]*)\"/;my $trans_id = $1;print OUT join("\t",$chr,$exon,$start,$end,$link,$gene_id,$trans_id)."\n";}close(IN);close(OUT);open(IN,"$opts{od}/merged.tpm") ||die "open file $opts{od}/merged.tpm failed.";open(OUT,">$opts{od}/merged.gtf") ||die "open file $opts{od}/merged.gtf failed.";my $cmd="";my $key="";while(){next if(/^#/);chomp;my ($chr,$exon,$start,$end,$link,$gene_id,$gene_name,$trans_id) = split("\t",$_);if($key eq $trans_id){$cmd .= "\t".$start."-".$end;}else{$key = $trans_id;if($cmd ne ""){print OUT $cmd."\n";}$cmd = join("\t",$chr,$link,$gene_id,$trans_id,$exon,$start."-".$end);}}close(IN);close(OUT);

以上是"merged.gtf如何合并同一转录本的exon位置"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

位置 文件 信息 内容 篇文章 学习 帮助 代码 实例 易懂 更多 条理 染色体 正负 知识 示例 编带 脚本 行业 资讯 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全去哪个国家上研究生 蓝讯网络技术导师张金铭 网络安全强军兴军 云服务器装虚拟机不兼容 宝德服务器带外管理地址 明日之后2019服务器列表 discuz论坛 数据库 云原生数据库哪个好 佛山全自动视觉点胶软件开发 昆山技术软件开发报价方案 北京车车网络技术有限公司巡检员 宝鸡誉恒软件开发公司 河南的谷歌服务器 软件开发制作好找工作吗 苏州腾牛网络技术有限公司 学生网络安全标语 网络安全宣传周公众体验 应用软件开发一般用什么语言 江苏百旺服务器网络配置云主机 网络安全法名单 数据库like 加多个条件 数据库日期月日年顺序 食品科技进行互联网业余 成都软件开发工资多少钱 软件开发程序员的工作职责 长宁区推广软件开发管理方法 软件开发合同交印花税吗 软件开发钉钉日志范文100篇 天津华为服务器虚拟化定制服务器 老生常谈的网络安全
0