後輩に先日の記事をもとにdenovo_map.pl を使ってもらったところ、動きません!と言われてしまいました。
言われてみれば、わたしも自分がstacks を使うときかなり苦労した記憶が…
必死で記憶を呼び戻して解決したので、もし、先日の記事の方法で動かなかった場合はこの記事を参考にしてください。
- 解決方策1 anaconda を経由せずにstacks を入れ、パイプラインプログラムに含まれる全プログラムにパスを通す
- 解決方策2 集団情報の見直し
- 解決方策3 アウトプットやインプットのパスが間違えていないか確認
解決方策1 anaconda を経由せずにstacks を入れ、パイプラインプログラムに含まれる全プログラムにパスを通す
anaconda 経由で入れたstacks ではref_map.pl やdenovo_map.pl 動かない問題が発生することがあるようです。
したがって、anaconda に頼らずにstacks を入れ、anaconda で入れたstacks はアンインストールしました。
anaconda 以外でインストールしたことないよ、というひとはこちらの記事の方法を見てやってみてください。
nemunemu-nyanko.hatenablog.com
インストールが終わったら、パイプラインプログラムに使われている全プログラムが入っているフォルダを探してパスを通します。
全プログラムというのは
denovo_map.pl ならustacks⇒ cstacks⇒ sstacks⇒ tsv2bam ⇒gstacks⇒populations
ref_map.pl ならgstacks⇒populations
この、全プログラムが入っているフォルダが散らばっているのがanaconda でうまく動かない原因なのではないか、と個人的には思っています。パスが全プログラムにうまく通っていないんじゃないかな…。
プログラムの場所はwhich コマンドで探せます。
わたしの場合は
export PATH=/home/user/software/stacks-2.54:$PATH;
export PATH=/home/user/software/stacks-2.54/bin:$PATH;
export PATH=/home/user/software/stacks-2.54/bin/ustacks:$PATH;
export PATH=/home/user/software/stacks-2.54/populations:$PATH
のすべてを実行したら動くようになりました。
というか、この方法を使えばanaconda で入れた場合も動かせたのでは…という気がしてきた。
anaconda で入れた場合もパスを通したらいけたよ!という人はぜひコメントください。
解決方策2 集団情報の見直し
集団情報に変なスペースや改行がないか、サンプル名をフルで書いていないか、を確認。
サンプル名には「_R1.fastq.gz」「_R2.fastq.gz」は含めません。また、FR 両方について情報を書く必要はありません。
わたしがls -l で表示された名前をコピペしてExcel に貼れ!とか言ったせいで拡張子含めて集団情報作ってた人やFR 両方分作っていた人がいたらすみません。
解決方策3 アウトプットやインプットのパスが間違えていないか確認
基本的に、実行フォルダ内にインプットフォルダやアウトプットフォルダがある場合にはフォルダ名だけでいいのですが、実行場所が異なる場合はいずれもパスを書く必要があります。
これらでも解決しなかったらごめんなさい。