バイオインフォマティクスの備忘録

生命科学系の大学院生。ただの備忘録。質問やご指摘は随時受け付けております。

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

参考(2023/04/12)

アダプター配列の除去 cutadapt