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