ensembl ID 格式化

一个傻逼型的 id 格式化脚本。
不知道同志们有没有遇到这种问题。
基因ID带版本号。

格式化 gtf 文件中 ID。

#!/usr/bin/perl -w
use strict;

open IN, $ARGV[0] || die $!;
while(){
    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

你可能感兴趣的:(ensembl ID 格式化)