本篇內容主要講解“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 (<IN1>) {
chomp;
next if /^#/;
my @b = split/\t/, $_;
$gffs{$b[0]} = 1;
}
#print Dumper(\%gffs);
while (<IN2>) {
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的基因結構信息”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。