現(xiàn)在用來找融合基因的軟件鳖悠,最好用的應(yīng)該就是star-fusion了。
因?yàn)榘惭b復(fù)雜所以一切都conda解決
star-fusion對(duì)star的版本要求嚴(yán)格溶锭。
我在conda安裝的宝恶,star對(duì)應(yīng)的版本是2.7.6a
不過安裝后經(jīng)常會(huì)報(bào)錯(cuò)Can't locate strict.pm:、/root/perl5/lib/perl5/strict.pm: Permission denied at... ...之類的錯(cuò)誤暖途。具體的原因我不是很清楚卑惜,不過大概是因?yàn)閑nv寫死的perl找的包是在root找,但是一般人沒有權(quán)限吧驻售。
直接改成我們常用的/usr/bin/perl就好
cd anaconda2/envs/star-fusion/lib/STAR-Fusion/util
find . -type f|while read a;do sed -i 's#/usr/bin/env perl#/usr/bin/perl#g' ${a};done
另外還報(bào)錯(cuò)了一個(gè)非常奇怪的:
Can't use an undefined value as an ARRAY reference at anaconda2/envs/star-fusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes line 511, <$fh> line 1.
去STAR-Fusion.map_chimeric_reads_to_genes 里面看下露久,511行里面是因?yàn)閟trand找不到對(duì)應(yīng)的鏈信息,順藤摸瓜發(fā)現(xiàn)竟然是該腳本在讀Chimeric.out.junction的時(shí)候沒有忽略header行而報(bào)錯(cuò)欺栗,雖然337行next掉了#注釋行毫痕,但是2.7.6a的star的Chimeric.out.junction的header開頭竟然沒有#...不知道是star團(tuán)隊(duì)的疏忽還是怎么著征峦,whatever。
增加一行:
if (/^\#/) { next; }
if (/^chr_donorA\s+brkpt_donorA\s+strand_donorA/) { next; }
問題解決