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圧縮を解く場合を想定して以下のように。pbzip2bzip2の並列版。 再圧縮する際にgzip圧縮に変更して以下のように実行。同じくpigzgzipの並列版。

% 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に関する解説がある。


Written by Hidemasa Bono in misc on 月 28 1月 2019.