cutadaptを用いたアダプター配列のトリミング
cutadapt
cutadapt はpythonで書かれたハイスループットシーケンシングリードからアダプター配列、プライマー、ポリA テールおよびその他のタイプの不要なシーケンスを検出して削除するプログラムである。 詳しくはこちらを参照
インストール
condaによるインストールが簡単。 ホームページでは仮想環境の立ち上げを推奨しているが、他のソフトとはあまり干渉しない(著者はまだ経験していない)。
#condaによるインストール。著者はpython3.9で走らせてるが、割とどのバージョンでも動く。 conda install -c bioconda cutadapt #pipによるインストール pip install cutadapt #インストールされたか確認。インストールされているとバージョンが出力される。 cutadapt --version
cutadaptの実行
cutadaptは指定された配列を除去する。 以下で基本的な方法を記載するが、プライマー除去の場合、3'末端側は配列を相補佐に反転させなければならない。 ※アダプター配列がわからない場合は、自動検出して除去できるfastpを推奨する。 fastpを用いたアダプタートリミングとクオリティコントロール
#3' 末端からアダプター配列を除去する。 cutadapt -g AGGATTAGATACCCTGGTA input.fastq > output.trimmed.fastq #5' 末端からアダプター配列を除去する。 cutadapt -g AGGATTAGATACCCTGGTA input.fastq > output.trimmed.fastq #3' 末端と 5' 末端からアダプター配列を除去す cutadapt -b AGGATTAGATACCCTGGTA input.fastq > output.trimmed.fastq #リードとアダプター配列の許容するオーバーラップ塩基数を指定する。デフォルトは 3 。オーバーラップを変更したい場合は -O オプションを利用する。 #-e 0.2をつけることでミスマッチ20%を許容する。 cutadapt -O 5 -e 0.2 -b AGGATTAGATACCCTGGTA input.fastq > output.trimmed.fastq
以下はフォワード、リバースの両方のプライマーを除去するプログラム。 まず、変数にプライマーを代入し、相補佐側の配列を作成する。
FWD='AGGATTAGATACCCTGGTA' FWDRC=$(echo "${FWD}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev) REV='CRRCACGAGCTGACGAC' REVRC=$(echo "${REV}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev
cutadaptで代入したプライマーを除去
cutadapt \ -j 4 \ #スレッド数 -a ${FWDRC} \ #R1の3’末端から除く配列 -A ${REVRC} \ #R3の3’末端から除く配列 -g ${FWD} \ #R1の5’末端から除く配列 -G ${REV} \ #R2の5’末端から除く配列 -n 10 \ #繰り返し除去する回数 --match-read-wildcards \ #プライマー配列の縮重コードを翻訳 --minimum-length 20 \ #トリム後20bp以下の配列を除去 --discard-untrimmed \ #トリムが行われなかった配列を除去 -o out.1.fastq \ #アウトプット1 -p out.2.fastq \ #アウトプット2 read1.fastq.gz \ #インプット1 read2.fastq.gz #インプット2