###############################################################
######################## Genome build #########################
###############################################################
###删除染色体号后面的内容(包括空格)
###写了一个perl程序,可以切除匹配项之后的信息,得到匹配上的项。
###Perl 名 :cut_space.pl,以下就是程序内的语句:(不同文件需要修改染色体号)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/perl open(FR,"10.fa")||die; open(FW,">10_cut.fa")||die; while(<FR>) { chomp; if ($_=~/(>\d+)/) { print FW "$1\n"; } else {print FW "$_\n";} } close FR; close FW; |
###有些时候染色体号前需要加上chr,可以用perl程序:
###程序名:fa_add_chr.pl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/perl open(FR,"10.fa")||die; open(FW,">10_add_chr.fa")||die; while(<FR>) { chomp; if($_ =~/^>/) { $_ =~ s/>/>chr/g; print FW "$_\n" } else {print FW "$_\n";} } close FR; close FW; |
###############################################################
######################## Ref GTF build ########################
###############################################################
###两种方法:一种是直接通过perl实现:
###一、perl程序:两步;
###1、删除没用的染色体:gtf_del_useless_chr.pl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/usr/bin/perl open(FW,"Macaca_mulatta.MMUL_1.73.gtf")||die; open(FM,">DEL_Macaca_mulatta.MMUL_1.73_del_un.gtf")||die; while(<FW>) { chomp; if($_=~/^1099*/) { print FM "" } else { print FM "$_\n" } } close FW; close FM; |
###2、在染色体号前加chr:gtf_add_chr.pl
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/usr/bin/perl #first chr numble must add chr. open(FR,"DEL_Macaca_mulatta.MMUL_1.73_del_un.gtf")||die; open(FW,">Add_chr_Macaca_mulatta.MMUL_1.73_del_un.gtf")||die; while(<FR>) { chomp; if($_=~/^\d/ or $_=~/^X/ or $_=~/^MT/) {print FW "chr$_\n"} else {print FW "\n"} } close FR; close FW; |
###二、Linux shell实现:
###1、导出每个染色体的GTF:
1 2 3 4 5 6 7 8 9 | for i in `seq 20` do grep '^'${i}''$'\t' Macaca_mulatta.MMUL_1.73.gtf >${i}.gtf done grep '^X'$'\t' Macaca_mulatta.MMUL_1.73.gtf >X.gtf grep '^MT'$'\t' Macaca_mulatta.MMUL_1.73.gtf >MT.gtf cat *.gtf >Macaca_mulatta_1.73_final.gtf #合并每个GTF; |
###2、在染色体号前加chr:gtf_add_chr.pl,同perl的方法相同。(略)