pre Trinity
Trinity前処理
以前書いたブログエントリを現状に合わせて見直して再掲載シリーズ。 リンク先にあるスクリプトがちゃんと動かないので、動くように書き直した。
遠隔作業が可能なので、時間のかかる処理を仕込みつつ。
fastq-dump
でヘッダを変えたFASTQでは、Trim Galore!(cutadapt
)によるトリミングが失敗するようなので、仕方がなくTrinity
(当時v2.5.1だったが、2019年1月に再度v2.8.3になったので試したが、変わらず)が実行できるようなヘッダに書き換える以下のようなフィルタ(for_trinity.pl
)を書いて処理。ペアエンドのみの対応。
#!/usr/bin/perl
# script to modify FASTQ header lines for Trinity program
# Hidemasa Bono <bonohu@gmail.com>
my $c = 0; # line count value
my $strand = shift(@ARGV); # 1 or 2
# STDIN: FASTQ file
while(<STDIN>) {
chomp;
if( $c++ % 4 != 0) {
print "$_\n";
} else {
if(/^\@[SDE]RR\S+\s+(\S+)/) {
$id = $1;
print "\@$id/$strand\n";
} else {
print STDERR "invalid FASTQ format in line $c\n";
exit 1;
}
}
}
処理する際にbzip2
圧縮を解く場合を想定して以下のように。pbzip2
はbzip2
の並列版。
再圧縮する際にgzip
圧縮に変更して以下のように実行。同じくpigz
はgzip
の並列版。
% pbzip2 -dc hoge_1.fq.bz2 | perl for_trinity.pl 1 |pigz -c > hoge_1.fq.gz
% pbzip2 -dc hoge_2.fq.bz2 | perl for_trinity.pl 2 |pigz -c > hoge_2.fq.gz
ちなみにBono本だと、p148-150あたりにTrinity
に関する解説がある。