DRUMMER
DRUMMER旨在通过比较Nanopore直接RNA测序(DRS)数据集中的基序错误,识别不同转录本亚型的核苷酸级RNA修饰。
更新
DRUMMER v1.0现已发布,具有以下改进:
- 一个单一的输出摘要文件,包含所有生物学重复的所有候选位点信息
- 一个解析测试图,以确认所有读取都已包含
- 改善了针对人类和病毒数据集的教程
注意:DRUMMER依赖的bam-readcount在OSX系统上据说不稳定,可能会导致DRUMMER失败。
目录
- 引言
- 安装
- 先决条件
- 设置
- 运行DRUMMER
- 输出
- 使用测试数据集运行DRUMMER
- 数据准备
- 对齐和过滤
- 为同种型模式设置转录本列表
- 故障排除
- 引用
- 智慧
引言
实验设计定义了分析的背景和可能被识别的修饰。例如,比较来自亲本细胞系和METTL3-敲除细胞系的DRS数据集,可以检测到m6A。
安装
先决条件
DRUMMER需要以下软件包已安装并可在用户路径中使用:
- SAMTools v1.3或更高版本
- BEDTools v2.26或更高版本
- BASH v4.2或更高版本
- Python3及其模块:seaborn, scipy, pandas, numpy, biopython, matplotlib
使用git安装DRUMMER
git clone https://github.com/DepledgeLab/DRUMMER
cd DRUMMER
python DRUMMER.py -h
安装后,我们强烈建议使用包含的测试数据集之一测试DRUMMER - 见使用测试数据集运行DRUMMER。
设置Conda环境
# 安装环境
conda env create --file environment-setup.yml
# 激活DRUMMER环境
conda activate DRUMMER
# 运行DRUMMER
python DRUMMER.py -h
# 停用DRUMMER环境
conda deactivate
运行DRUMMER
DRUMMER需要两个坐标排序和索引的BAM文件作为输入。这些文件应包含测试(RNA修饰不存在)和对照(RNA修饰存在)数据集的读取对齐(见下面数据准备部分)。DRUMMER可以在外显子或同种型模式下运行。外显子模式(-a exome)使用DRS读取对准到给定生物体的基因组以识别可能被修饰的碱基,而同种型模式(-a isoform)使用DRS读取对准到给定生物体的转录组以提供高分辨率映射。虽然同种型模式更敏感,但目前也更慢。
使用方法:
python DRUMMER.py -r [FASTA] -l|-n [TARGETS] -c [CONTROL] -t [TREATMENT] -o [OUTPUT] -a [RUNMODE] (OPTIONS)
必需标志
-
-r
FASTA格式的参考基因组(外显子)或转录组(同种型) -
-l
要检查的转录本列表(同种型)(单列或七列格式)- 或 -
-
-n
基因组名称(外显子) - 必须与FASTA文件头匹配 -
-c
排序的.bam文件 - 对照(存在RNA修饰) -
-t
排序的.bam文件 - 处理(不存在RNA修饰) -
-o
输出目录 -
-a
运行模式(外显子|同种型)
可选标志
-
-z
赔率比截止值(默认= +/- 1.5) -
-p
padj截止值(默认= 0.05,用于OR和G-test) -
-m
以m6A模式运行(默认=false) -
-f
参考分数差异(默认= 0.01) -
-v
为单个转录本生成可视化(默认=false) -
-i
过滤插入或保留
输出
运行完成后,DRUMMER在每个比较目录中生成一个单独的制表符分隔文本文件(summary.txt),包含所有预测的候选RNA修饰位点及其上下文信息(基因组位置、同种型位置、序列基序等)。当以m6A模式(-a TRUE)运行时,还会在附带的.pdf文件(m6A_plot.pdf)中生成一个分布图。输出目录'complete_analysis'包含每个提供的参考序列的单独数据文件。第二个(可选[-v])目录'visualization'包含每个单独参考序列的G-test分数(积累/耗尽)与位置的单独图表,以及每个赔率比分数。
使用测试数据集运行DRUMMER
DRUMMER存储库中包含几个测试数据集,可用于验证DRUMMER在您的环境中是否正常工作。请注意,预期输出依赖于默认参数,更改这些参数可能会改变输出。
数据准备
对齐和过滤
DRUMMER需要包含每个比较的两个实验条件的转录组或基因组级别读取对齐的sorted.bam文件。注意,这是运行DRUMMER(或类似工具)时最关键的考虑因素。遵循您给出的是什么,您得到的就是什么的原则,您必须确信满足以下条件。
- 每个读取都有一个单一的(主要的)对齐。所有次要/补充对齐都已被过滤掉
- 每个读取都与正确的转录本序列对齐(仅限转录组分析)
为同种型模式设置转录本列表
当在同种型模式下运行DRUMMER时,应使用-u标志提供转录本ID列表。注意这些ID必须与转录组数据库中存在的头完全匹配。每个ID应单独一行提供(单列)例如:
E1A-s
E1A-l
E1A-9s
故障排除
- 复杂的FASTA头对DRUMMER来说是有问题的。因此,我们建议在生成对齐之前简化头。例如,人类转录组文件可能具有如下头:
>ENST00000641515.2|ENSG00000186092.6|OTTHUMG00000001094.4|OTTHUMT00000003223.4|OR4F5-202|OR4F5|2618|UTR5:1-60|CDS:61-1041|UTR3:1042-2618
最好简化为:
>ENST00000641515.2
这可以通过sed轻松实现:
sed 's/|.*$//g' infile > outfile
目前DRUMMER.py需要在所有情况下从DRUMMER目录内启动。这将在以后的版本中修复。
当使用多个重复运行DRUMMER时,如果fasta头中存在下划线和/或空格,则最终摘要表(跨所有重复)将无法生成。但是,每个重复目录中仍应生成summary.txt文件,指示修改状态。
在某些情况下,最终结果文件将包含少量缺失位置。这些是由于G-test和/或赔率比测试失败而被DRUMMER删除的。如果您希望恢复这些,则需要编辑motif.py(模块文件夹)并注释掉第40行,即
#df = df.dropna()
。请注意,这将略微调整调整后的p值的计算。