非モデル生物のアノテーションは未解決の問題であり、特に非翻訳領域(UTR)の検出が重要である。UTRの正確なアノテーションはトランスクリプトーム解析において各遺伝子の発現を正確に把握するために非常に重要であるが、アノテーションパイプラインではほとんど見落とされているのが現状である。本ツールは、10x ChromiumのようなシングルセルテクノロジーのUTRエンリッチメントを利用して、与えられたカノニカルアノテーションに対して3' UTRを正確にアノテーションする、使いやすいPythonコマンドラインツールpeaks2utrを紹介する。Python 3 (>= 3.8) で実装されており、PyPI (https://pypi.org/project/peaks2utr) および GitHub (https://github.com/haessar/peaks2utr) で入手できる。
GIthubより
peaks2utrは、BAM形式のアライメント済みリードと、GFFまたはGTF形式の標準的なアノテーションのセットに対して、3'非翻訳領域(UTR)をアノテーションする。peaks2utrでは、MACS2 (https://pypi.org/project/MACS2/) を使ってBAMファイル内の有意なリードカバレッジの幅広い「ピーク」を呼び出し、一連の基準に合格したピークを用いて新規3' UTRのアノテーションを付ける。これは、3'または5'UTRの遠位端にシグナルが集中する10x ChromiumランのようなBAMファイルを優先する。ソフトクリップ塩基や所定の長さのpolyA-tailを含むリードを検出し、それらの末端塩基を「切断点」として集計する。peaks2utrは、入力GFFファイル中の既存の3'UTRアノテーションを拡張、上書き、無視するように調整することができる。
インストール
#pip
pip install peaks2utr
#install from source
git clone https://github.com/haessar/peaks2utr.git
cd peaks2utr
> peaks2utr -h
usage: peaks2utr [-h] [--max-distance MAX_DISTANCE] [--override-utr]
[--extend-utr] [--five-prime-ext FIVE_PRIME_EXT] [--skip-soft-clip]
[--min-pileups MIN_PILEUPS] [--min-poly-tail MIN_POLY_TAIL] [-p
PROCESSORS] [-f] [-o OUTPUT] [--keep-cache] GFF_IN BAM_IN
Use MACS2 to build forward and reverse peaks files for given .bam
file. Iterate peaks through set of criteria to determine UTR
viability, before annotating in .gff file.
positional arguments:
GFF_IN input 'canonical' annotations file in gff or gtf format.
BAM_IN input reads file in bam format.
optional arguments:
-h, --help show this help message and exit
--max-distance MAX_DISTANCE
maximum distance in bases that UTR can be from
a transcript.
--override-utr ignore already annotated 3' UTRs in criteria.
--extend-utr extend previously existing 3' UTR annotations
where possible.
--five-prime-ext FIVE_PRIME_EXT
a peak within this many bases of a gene's
5'-end should be assumed to belong to it.
--skip-soft-clip skip the resource-intensive logic to pileup
soft-clipped read edges.
--min-pileups MIN_PILEUPS
Minimum number of piled-up mapped reads for UTR cut-off.
--min-poly-tail MIN_POLY_TAIL
Minimum length of poly-A/T tail considered in
soft-clipped reads.
-p PROCESSORS, --processors PROCESSORS
How many processor cores to use.
-f, -force, --force Overwrite outputs if they exist.
-o OUTPUT, --output OUTPUT
output filename.
--keep-cache Keep cached files on run completion.
テストラン
wget https://github.com/haessar/peaks2utr/raw/master/demo/Tb927_01_v5.1.gff
wget https://github.com/haessar/peaks2utr/raw/master/demo/Tb927_01_v5.1.slice.bam
peaks2utr Tb927_01_v5.1.gff Tb927_01_v5.1.slice.bam
出力例
8CPU指定
peaks2utr -p 8 -o output.gff3 canonical.gff reads.bam
注;RNA seqはUTRの末端が読まれるような特別なプロトコルで実行されている必要がある。そうでないRNA seqからのbamを使うと不完全なUTR予測結果になる。
引用
peaks2utr: a robust Python tool for the annotation of 3' UTRs
William Haese-Hill, Kathryn Crouch, Thomas D Otto
bioRxiv, Posted May 26, 2022
参考
Ensembl insights: How are UTRs annotated?
https://www.ensembl.info/2018/08/17/ensembl-insights-how-are-utrs-annotated/