kuroの覚え書き

96の個人的覚え書き

RNA-seqデータをde novo アッセンブリーしてUTR配列を含むトランスクリプトアノテーションを作成する。

前提:ゲノム配列の詳細な解析は実施されている。遺伝子予測はCDS領域に限定して実施されている。
やりたいこと:5’3’UTRがどこまでか推測し、cDNA領域のアノテーションを作る。

1. Trinityでde novoアセンブリを実行:
Trinityを使用してRNA-seqデータからde novoアセンブリを行う。

Trinity --CPU 8 --max_memory 24G --seqType fq --left reads_1.fq --right reads_2.fq --output trinity_output

single end readのときは

Trinity --CPU 8 --max_memory 24G  --seqType fq --single reads_1.fq,reads_2.fq --output trinity_output

複数のfastqファイルを使うときはコンマで区切る必要がある。reads_*.fqのようにすると間がスペースとなるのでエラーが出るようだ。

2. TransDecoderを使用してCDS(Coding Sequence)を抽出:
Trinityの出力からCDSを抽出するために、TransDecoderを使用する。

TransDecoder.LongOrfs -t trinity_output/Trinity.fasta
TransDecoder.Predict -t trinity_output/Trinity.fasta

これにより、CDSが Trinity.fasta.transdecoder.pep と Trinity.fasta.transdecoder.cds に保存される。

3. BLASTを使用して Trinity.fasta.transdecoder.cdsアセンブリを参照ゲノムにマッピング:
Trinityのアセンブリを参照ゲノムにマッピングし、遺伝子の対応付けを行う。

blastn -num_threads 8 -query  Trinity.fasta.transdecoder.cds -db reference_genome -outfmt 6 -out trinity_vs_reference.blast

4. Blast結果のBED形式への変換:
blast2bedツールを使用してBlast結果をBED形式に変換し、BEDToolsを利用してUTR領域を抽出する。

blast2bed < trinity_vs_reference.blast > trinity_vs_reference.bed
bedtools intersect -a trinity_vs_reference.bed -b reference_annotation.gff -wa -wb > trinity_vs_reference_annotated.bed


5. シェルスクリプトを使用してGFFファイルを生成:
シェルスクリプトを使用して、BEDファイルからGFFファイルを生成する。
以下は、この目的のための簡単なスクリプトの例。

awk 'BEGIN {OFS="\t"} {print $4, "custom_UTR_annotation", "UTR", $2+1, $3, ".", $6, ".", "gene_id " $1 "; transcript_id " $1}' trinity_vs_reference_annotated.bed > custom_UTR_annotation.gff

これでどうかな。

さらにCDSとUTRを一つにまとめたcDNAアノテーションにするには。
6. CDS領域のアノテーションGFF3とUTR領域のアノテーションGFF3の結合:

cat reference_annotation.gff custom_UTR_annotation.gff > merged_annotation.gff3

7. GFF3ファイルとして整形

awk -F'\t' 'BEGIN{OFS=FS} {gsub(/Parent=[^;]+;/,"",$9); if($3=="CDS"){print $1,$2,"exon",$4,$5,$6,$7,$8,$9} else print}' merged_annotation.gff3 > cdna_annotation.gff3

まだ試行錯誤中。
このままではうまくいかない。