自動化される手順
#パラメータは切り取るクオリティスコアとフラグメント長
- トリミング後のクオリティーチェック
スクリプト名:fastqc_trim_qc
使い方
- 処理したいfastqファイルのおいてあるディレクトリに移動
- 処理したいファイルから.fastqを除いた名前を以下のように列記して実行する
$ fastqc_trim_qc (処理したいfastqファイル名1) (処理したいfastqファイル名2) (処理したいfastqファイル名3) 何個でも
スクリプト中身
#!/bin/sh for file in "$@" do #出力するディレクトリを作成 mkdir -p ./FastQC/trim #-pオプションはディレクトリが無いときだけ作成する #FastQCにかける fastqc --nogroup -o ./FastQC "$file".fastq #--nogroup オプションを付けると「ポジションごとのクオリティスコア分布図」で、ポジション10bp以降の領域がグループ化されない #Phred quality score "qscore"未満の末端を除去 qscore=20 #配列長が"length"bp未満のリードを除去 length=50 fastq_quality_trimmer -Q33 -t "$qscore" -l "$length" -i "$file".fastq -o "$file"_trim.fastq #FastQCにかける fastqc --nogroup -o ./FastQC/trim "$file"_trim.fastq done
実験によってはパラメータを変更したり、他の処理を併用する必要がある
fastq_quality_filter
fastx_trimmer
ほか
#Phred quality score "qscore"未満がconc%以上のリードを除去 #Phred quality score "qscore"未満の末端を除去 qscore=20 conc=80 #配列長が"length"bp未満のリードを除去 length=30 fastq_quality_filter -Q33 -q "$qscore" -p "$conc" -i "$file".fastq | fastq_quality_trimmer -Q33 -t "$qscore" -l "$length" -o "$file"_trim.fastq
parallelを使って並列処理するなら
$ parallel fastqc_trim_qc ::: (処理したいfastqファイル名1) (処理したいfastqファイル名2) (処理したいfastqファイル名3) 何個でも
#この並列処理は途中経過が見えにくいけど、かなり強力。おすすめ。
#parallele使うならforループはいらないかもしれないが、あっても誤動作はしない。
パラメーターは別ファイル(例えばqscore.txt)に書いておいて
qscore='cat qscore.txt'
と読み込むのもありかも知れない。
また、バッチ処理向きではないがreadを使えば
#Phred quality score "qscore"未満の末端を除去 read -p "minimum Phred quality score = " qscore #配列長が"length"bp未満のリードを除去 read -p "minimum base length = " length
と対話的に指定することもできるかな