千家信息网

perl怎么从gff文件中提取对应转录本ID的基因结构信息

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"perl怎么从gff文件中提取对应转录本ID的基因结构信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"perl怎么从gff文件中提取对
千家信息网最后更新 2025年02月06日perl怎么从gff文件中提取对应转录本ID的基因结构信息

本篇内容主要讲解"perl怎么从gff文件中提取对应转录本ID的基因结构信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"perl怎么从gff文件中提取对应转录本ID的基因结构信息"吧!

脚本源代码:

use Getopt::Long;my %opts;use Data::Dumper;GetOptions( \%opts, "in1=s", "in2=s", "out=s", "h" );if (   !defined( $opts{in1} )        || !defined( $opts{in2} )        || !defined( $opts{out} )        || defined( $opts{h} ) ){        &USAGE;}open( IN1, "$opts{in1}" )  || die "open $opts{in1} failed\n";open( IN2, "$opts{in2}" )  || die "open $opts{in2} failed\n";open( OUT, ">$opts{out}" ) || die "open $opts{out} failed\n";my %gffs;while () {        chomp;        next if /^#/;        my @b = split/\t/, $_;        $gffs{$b[0]} = 1;}#print Dumper(\%gffs);while () {        chomp;        next if (/^#/);        my @a = split /\t/, $_;        next if $a[2]=~/exon/i;        if ($a[2] =~/^mRNA$/i or $a[2] =~/^transcript$/i ) {                ($id1) =  ($a[8] =~ m/ID=([^;]*)/);        }elsif ( $a[2] =~/^CDS$/i or $a[2] =~/utr/i ) {                ($id1) =  ($a[8] =~ m/Parent=([^;]*)/);        }else{                next;        }        if ( exists $gffs{$id1} ) {                print OUT "$_\n";        }}close OUT;close IN1;close IN2;sub USAGE {        print "usage: perl $0 -in1  mRNA_id.txt -in2  genome.gff3  -out gene_location.txt ";        exit;}

到此,相信大家对"perl怎么从gff文件中提取对应转录本ID的基因结构信息"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0