一个傻逼型的 id 格式化脚本。
不知道同志们有没有遇到这种问题。
基因ID带版本号。
格式化 gtf 文件中 ID。
#!/usr/bin/perl -w
use strict;
open IN, $ARGV[0] || die $!;
while(<IN>){
chomp;
my $out = $_;
if (/gene_id "(\S+)"; gene_version "(\d+)";/) {
my $id = $1.".".$2;
$out =~ s/gene_id "(\S+)"; gene_version "(\d+)";/gene_id "$id";/g;
}
if(/transcript_id "(\S+)"; transcript_version "(\d+)";/){
my $id = $1.".".$2;
$out =~ s/transcript_id "(\S+)"; transcript_version "(\d+)";/transcript_id "$id";/g;
}
if (/protein_id "(\S+)"; protein_version "(\d+)";/){
my $id = $1.".".$2;
$out =~ s/protein_id "(\S+)"; protein_version "(\d+)";/protein_id "$id";/g;
}
print "$out\n";
}
close IN;
提取 gene2tr 信息:
awk -F"\t" '$3=="transcript"' bta.format.gtf |cut -f9 |cut -d" " -f2,4 |sed 's/[";]//g' |sed 's/ /\t/g' >bta.gene2tr.xls