JCAST 从 RNA-seq 数据中检索剪接点信息并翻译氨基酸序列
项目描述
以结为中心的替代拼接转换器 v.0.3.3
JCAST(以连接为中心的选择性剪接转换器)接收选择性剪接事件并返回自定义蛋白质序列数据库以进行异构体分析。
入门
要求
安装 Python 3.7+ 和 pip。有关您的操作系统的具体说明,请参阅 Python 网站上的说明。
JCAST 可以通过 pip 从 PyPI 安装。我们建议使用虚拟环境。
$ pip install jcast
跑步
将 JCAST 作为模块启动(使用/帮助):
$ python -m jcast
或者:
$ jcast
示例命令:
$ python -m jcast data/encode_human_pancreas/ data/gtf/Homo_sapiens.GRCh38.89.gtf data/gtf/Homo_sapiens.GRCh38.89.gtf data/genome/Homo_sapiens.GRCh38.dna.primary_assembly.fa -o encode_human_pancreas -q 0 1 -r 1 -m -c
测试安装是否可以在 tests/data 中加载测试数据文件(示例 rMATS 文件和人类 chr 15 基因组文件)
$ pip install tox
$ tox
使用测试文件运行 JCAST 并将结果打印到桌面
$ python -m jcast {j}/tests/data/rmats {j}/tests/data/genome/Homo_sapiens.GRCh38.89.chromosome.15.gtf {j}/tests/data/genome/Homo_sapiens.GRCh38.dna.chromosome.15.fa.gz -o ~/Desktop
其中 {j} 替换为 JCAST 的路径。
使用 JCAST 从 ENCODE 生成自定义数据库的示例
以下是使用 ENCODE 公共 RNA-seq 数据集通过 JCAST 生成心脏特定数据库的示例。
从 ENCODE 下载 RNA-Seq:
例如,我们将从 ENCODE 成人心脏数据集 1和数据集 2下载 .fastq 文件。
将 FASTQ 文件与参考基因组对齐
可以使用 STAR >= v.2.5.0 完成读取对齐,例如:
$ STAR --runThreadN 10 --genomeDir path/to/GRCh38/STARindex --sjdbGTFfile path/to/Homo_sapiens.gtf --sjdbOverhang 100 --readFilesIn ./ENCFF781VGS.fastq.gz ./ENCFF466ZAS.fastq.gz --readFilesCommand zcat --outSAMtype BAM SortedByCoordinate --outFileNamePrefix ./STAR_aligned/b1t1/
$ STAR --runThreadN 10 --genomeDir path/to/GRCh38/STARindex --sjdbGTFfile path/to/Homo_sapiens.gtf --sjdbOverhang 100 --readFilesIn ./ENCFF731CDK.fastq.gz ./ENCFF429YOS.fastq.gz --readFilesCommand zcat --outSAMtype BAM SortedByCoordinate --outFileNamePrefix ./STAR_aligned/b2t1/
注意:应自定义包括 runThreadN 和 sjdbOverhang 在内的参数以适合您的系统和数据文件。有关详细信息,请参阅 STAR 文档。
识别转录剪接点
可以使用rMATS和 STAR 之后的 .bam 文件找到拼接点。有关最新命令,请参阅 rMATS 说明。以下示例使用在 Docker 中运行的 rmats-turbo-0.1 并使用 rMATS v.4.1.0/Python 3.7 进行了测试。对stringtie组装成绩单的支持将在未来的版本中实现。
在 Python 2.7 中为 rMATS turbo 0.1 设置虚拟环境(仅在需要时)
安装 rMATS 映像
按照特定于您的操作系统的 rMATS 和 docker 的说明进行操作。例如:
$ sudo docker load -i rmats-turbo-0.1.tar
准备 /rMATS 子目录
将各个 .bam 文件从 STAR 复制到 rMATS 子目录,并将它们重命名为 b1t1.bam、b1t2.bam、b2t1.bam、b2t2.bam 等。将 Genomes 文件夹中的 GTF 文件复制为 GRCm38.gtf。使用包含以下 docker 虚拟目录的文本编辑器编写 b1.txt 文件:
/data/b1t1.bam,/data/b1t2.bam
写一个b2.txt文件
/data/b2t1.bam,/data/b2t2.bam
返回数据目录并运行 rMATS 映像。-v 标志将主机目录挂载到 /data 的 docker 容器中,该目录对应于 b1.txt 和 b2.txt 文件中的可视目录。
$ sudo docker run -v path/to/data/directory:/data rmats:turbo01 --b1 /data/b1.txt --b2 /data/b2.txt --gtf /data/GRCh38.gtf --od /data/output -t paired --nthread 4 --readLength 101 --anchorLength 1
注意:包括 nThread、readLength 和 anchorLength 在内的参数应根据您的系统和数据文件进行定制。有关详细信息,请参阅rMATS文档。
运行 JCAST Python 程序,指定 rMATS 输出目录、基因组序列以及 GTF 注释文件的路径:
$ python -m jcast path/to/rMATS/output/encode_human_heart/ path/to/gtf/Homo_sapiens.GRCh38.89.gtf path/to/genome/Homo_sapiens.GRCh38.dna.primary_assembly.fa -o encode_human_heart
FASTA 输出
JCAST 输出的 FASTA 数据库可以使用任何脚本语言进一步过滤和组合,或者可以直接用于几乎任何猎枪蛋白质组学数据库搜索引擎(例如 SEQUEST、Crux/Tide、Maxquant、MS-GF+)中的数据库搜索。
JCAST 可能会输出以下 FASTA 文件(请注意,取决于使用的设置和输入文件,并非所有 FASTA 文件都可能存在):
- xxx_canonical.fasta -- 该文件包含来自与 SwissProt 规范序列相同的剪接点的蛋白质序列。FASTA 条目根据 UniProt 约定命名。
- xxx_T1.fasta -- 该文件包含从剪接点翻译的非规范序列。第 1 层连接根据带注释的 GTF 框架在框架中翻译,没有遇到移码或过早终止密码子,并成功连接回全长 SwissProt 序列。
- xxx_T2.fasta——第 2 层连接根据带注释的 GTF 框架在框架中翻译,没有遇到过早终止密码子,并成功连接回全长 SwissProt 序列,但遇到了可能的移码(外显子的长度差异不是倍数3)。
- xxx_T3.fasta - 第 3 层连接没有遇到过早终止密码子,并且成功连接回全长 SwissProt 序列,但使用的翻译框架与提供的 GTF 中注释的翻译框架不同(它们应该很少见)。
- xxx_T4.fasta——当两个替代连接切片之一遇到过早终止密码子时,第 4 层连接被强制翻译,但可以使用三帧之一翻译成肽片段,其长度至少与成功翻译的切片成一定比例(见params.py)。这些序列应该从数据库搜索中排除或非常谨慎地解释。
- xxx_T#_orphan.fasta -- 这些片段是根据它们的层级翻译的,但无法通过针迹长度连接回规范的 SwissProt 序列(默认值参见params.py)。这些序列应该从数据库搜索中排除或非常谨慎地解释。
非规范 FASTA 条目具有以下命名约定:
>sp|Q91VW5|GOGA4_MOUSE|ENSMUSG00000038708|MXE1|0|chr9|118560742:118560872|118565557:118565667|+2|r521|T1 sp|Q91VW5|GOGA4_MOUSE Golgin subfamily A member 4 OS=Mus musculus OX=10090 GN=Golga4 PE=1 SV=2
vbar( |
) 分隔的部分表示以下内容:
- 知识库名称,来自规范的 SwissProt 蛋白质条目 (sp)
- UniProt 加入,来自规范的 SwissProt 蛋白条目 (Q91VW5)
- UniProt 名称,来自规范的 SwissProt 蛋白质条目 (GOGA4_MOUSE)
- 带注释的基因名称 (ENSMUSG00000038708)
- rMATS 结类型和顺序 (MXE1)
- 输入文件行名 (0)
- 染色体 (chr9)
- 锚定外显子开始和结束 (118560742:118560872)
- 替代外显子开始和结束 (118565557:118565667)
- 平移链和相 (+2)
- rMATS 中以 r (r521) 开头的最小跳过结点数 (sjc)
- 层级 (T1)
依赖项
JCAST 已在 Python 3.7、3.8、3.9 中进行了测试,并使用以下包:
biopython>=1.78
gtfparse>=1.2.1
pandas>=1.3.0
requests>=2.24.0
tqdm>=4.61.2
scikit-learn==0.24.2
matplotlib==3.4.2
已知的问题
NA
包含作为基因名称的行的 rMATS 输出可能会失败。- 上游分析应使用未掩蔽的基因组进行。目前 JCAST 无法处理掩蔽核苷酸 (
N
)。
附加信息
有关故障排除和结果解释的更多详细信息,请参阅我们在STAR 协议中的出版物。
贡献
如果您想贡献,请联系我们,并向我们提交拉取请求。
作者
- Edward Lau 博士-代码/设计- ed-lau
- Maggie Lam 博士-代码/设计- Maggie-Lam
- Robert Wes Ludwig,理学士-建模- WesLudwig
执照
该项目在 MIT 许可下获得许可 - 请参阅LICENSE.md文件了解详细信息