commands
ログとエラーを同じファイルに出力する。
./***.sh 1>file 2>&1
"1"でログを指定、"2"でエラーログを指定。このとき"&1"としてログに追加するようにする。
fastaファイル内のレコード数をカウントする。
grep ^\> <fasta file> | wc -l
grepで">"のある行を表示し、表示された内容の行数をwc -lでカウントする。
wcはファイル内のバイト数,単語数および行数を集計し表示するコマンド。-lのオプションで行数のみをカウントする。
Perlモジュールのパスを通す。
"Can't locate ****.pm in @INC (you may need to install the Fasta_reader module) (@INC contains:......."
などとして、Perlスクリプト実行の際にエラーが生じる場合、モジュールのパスが通っていない可能性がある。その際は下記のコマンドで一時的にパスを通す(この場合は、trinityのライブラリ)。
export PERL5LIB=/opt/trinityrnaseq/PerlLib/
[memo]
grepで複数パターンの検索を掛ける場合、fgrepの方が断然早い。
FASTA fileの中からリストにある特定の配列を抽出する。
あらかじめ配列名のリストを作成しておき、大きなFASTAファイルから特定の配列を抽出する場合に利用する。pythonのパッケージ、pyfaidxを
pip pyfaidx
でインストールしておく。その上で、
xargs faidx all.fasta < list > subset.fasta
FASTA fileの整形
Hannon lab@CSHのFASTX-Toolkitを利用する。-w 0で、80文字折り返しなどの余計な整形を除去できる。
fasta_formatter -i infile -o outfile -w 0
ファイルに拡張子を付ける。
各遺伝子座のFASTAファイルのファイル名に拡張子.fasを付ける場合。
rename 's/$/$\.fas/' *gene
重複行を確認する・削除する。
重複のある列をソートした上でuniqを用いて行う。
オプション:-d(重複した行のみを表示) -u(重複していない行のみを表示)
例えば、重複を取り除いた固有の値のみのファイルを出力する場合は、下記のコマンド。
uniq -u infile > outfile
重複した行を消し、固有な行だけにする。
ソートした上で、awkを用いて行う。
awk '{duplicate[$0]++}{if (duplicate[$0] == 1) print $0}' test+ >test
ファイルを特定の文字列の部分で切り分ける。
(例)一行ごとにファイルを切り分ける。切り分けたファイルにはprefixと-dで連番数字を付ける。
split -l 1 infile -d prefix
ファイル名を一括置換する。
rename 's/test/test1/g' filename