物种gff文件的信息格式如下:ID号是第二列的 si*G******
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脚本?
你贴的图片不是正宗的GFF格式的文件吧。 看你的文件基因的位置信息已经有了,你excel筛选一下第三列是gene的列就好。
gff文件格式参见:https://www.omicsclass.com/article/66 和 https://www.omicsclass.com/article/306
如果是GFF文件可请参照这篇文章修改一下:https://www.omicsclass.com/article/175
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!