5 如何修改perl脚本,利用id号抽提gff文件中的位置信息?

物种gff文件的信息格式如下:ID号是第二列的 si*G******

attachments-2018-08-1rnchE5M5b80def147981.jpg

perl脚本信息如下:

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;

 my@b=split,$_;

 $keys= $b[0];


 $values= $b[0];


      $gffs{$keys} = $values;

 

}


while (<IN2>) {

chomp;

          my @a=split /\t/,$_;

if ($a[2]eq "gene") {

$a[8]=~ m/ID=gene:([^;]*);/;

$id1=$1;

 if ( exists  $gffs{$id1} ) {

  print OUT "$gffs{$id1}\t$a[0]\t$a[3]\t$a[4]\t$a[6]\n";

 }

}

 

}

close OUT;

close IN1;

close IN2;


sub USAGE {

       print "usage: perl test1.pl -in1  gene_id.txt -in2  genome.gff3  -out gene_location.txt ";

exit;

}

请问如何修改该perl脚本得到一个可以利用id号抽提位置信息的新的perl脚本?

请先 登录 后评论

最佳答案 2018-12-04 10:00

你贴的图片不是正宗的GFF格式的文件吧。 看你的文件基因的位置信息已经有了,你excel筛选一下第三列是gene的列就好。

gff文件格式参见:https://www.omicsclass.com/article/66   和 https://www.omicsclass.com/article/306

如果是GFF文件可请参照这篇文章修改一下:https://www.omicsclass.com/article/175

请先 登录 后评论

其它 0 个回答