m6Anet

m6Anet

m6Anet 是一个 Python 工具,利用多重实例学习框架从纳米孔直接 RNA 测序数据中检测 m6A 修饰。

目录

  • 运行 m6Anet
  • 安装
  • 数据准备
  • 推断
  • 版本说明
    • 2.1.0
    • 2.0.0
  • 获取帮助
  • 引用
  • 贡献者
  • 许可

运行 m6Anet

安装

m6Anet 需要 Python 版本 3.7 或更高版本。要使用 PyPI 安装最新版本(推荐),请运行:

$ pip install m6anet

或者,也可以使用以下命令通过 conda 安装:

$ conda install m6anet

请参阅我们的文档!

数据准备

m6Anet 数据准备需要 nanopolish eventalign 生成的 eventalign.txt:

nanopolish eventalign --reads reads.fastq --bam reads.sorted.bam --genome transcript.fa --scale-events --signal-index --summary /path/to/summary.txt --threads 50 > /path/to/eventalign.txt

此功能将原始 fast5 信号分割到转录组内的每个位置,允许 m6Anet 基于分割的信号进行修饰预测。为了运行 eventalign,用户将需要:

  • reads.fastq: 从原始 .fast5 文件基础调用生成的 fastq 文件
  • reads.sorted.bam: 从将 reads.fastq 对齐到参考转录组文件得到的排序 bam 文件
  • transcript.fa: 参考转录组文件

我们还提供了一个演示用的 eventalign.txt 数据集,位于仓库的 /path/to/m6anet/m6anet/tests/data/eventalign.txt。更多信息请参阅 Nanopolish。

运行 nanopolish eventalign 后,我们需要使用 ‘m6anet dataprep’ 预处理分割的原始信号文件:

m6anet dataprep --eventalign /path/to/m6anet/m6anet/tests/data/eventalign.txt \
                --out_dir /path/to/output --n_processes 4

输出文件存储在 /path/to/output

  • data.json: 包含输入 m6Anet 模型进行预测的特征的 json 文件
  • data.log: 记录所有已成功预处理的转录本的日志文件
  • data.info: 包含 data.json 的索引信息的文件,用于更快的文件访问以及 eventalign.txt 中每个 DRACH 位置的读取数量
  • eventalign.index: 在 dataprep 期间创建的索引文件,允许在 dataprep 期间更快地访问 Nanopolish eventalign.txt

推断

一旦 m6anet dataprep 完成运行,我们可以在 dataprep 输出上运行 m6anet 推断:

m6anet inference --input_dir path/to/output --out_dir path/to/output  --n_processes 4 --num_iterations 1000

m6anet 推断将运行默认的人类模型,该模型在 HCT116 细胞系上训练。为了运行基于拟南芥的模型或基于 HEK293T-RNA004 的模型,请提供 --pretrained_model 参数:

## 对于基于拟南芥的模型

m6Anet 将从每个候选位点抽取 20 个读取,并根据 --num_iterations 参数,通过多轮抽样平均修改概率。输出文件 data.indiv_proba.csv 包含每个读取的修改概率:

  • transcript_id: 预测位置的转录本 ID
  • transcript_position: 预测位置的转录本位置
  • read_index: nanopolish 中的读取标识符,对应 nanopolish summary.txt 中的实际 read_id
  • probability_modified: 给定读取被修改的概率

输出文件 data.site_proba.csv 包含每个转录本每个单独位置的修改概率。输出文件将有 6 列:

  • transcript_id: 预测位置的转录本 ID
  • transcript_position: 预测位置的转录本位置
  • n_reads: 特定位置的读取数量
  • probability_modified: 给定位点被修改的概率
  • kmer: 给定位点的 5-mer 基序
  • mod_ratio: 给定位点中被修改的读取的估计百分比

m6Anet 还支持对多个重复进行汇总。为此,只需输入包含 m6anet-dataprep 输出的多个文件夹即可:

m6anet inference --input_dir data_folder_1 data_folder_2 ... --out_dir output_folder --n_processes 4 --num_iterations 1000

版本说明

版本 2.1.0

m6Anet 模型使用 RNA004 化学方法训练(开发版本)

默认的 m6Anet 模型是使用当前可用的 RNA002 直接 RNA-Seq 试剂盒训练的。Oxford Nanopore 目前正在提供下一个版本 RNA004 的开发版本。为了使 RNA004 能够进行 m6 检测,我们现在提供了一个在 HEK293T 细胞系上使用 RNA004 开发版本进行直接 RNA Seq 数据训练的 m6Anet 模型。为了使用 RNA004 试剂盒调用 m6A,可以使用以下命令:

预处理/分割/数据准备。

请使用 RNA004 kmer 模型的 f5c,如这里所述。

kmer 模型可以在这里下载。

然后执行 eventalign,使用 --kmer-model 指向下载的 k-mer 模型的路径,如下所示:

f5c eventalign --rna -b reads.bam -r reads.fastq -g transciptome.fa -o eventalign.tsv \
--kmer-model /path/to/rna004.nucleotide.5mer.model --slow5 reads.blow5 --signal-index \
--scale-events

然后可以使用 m6Anet 数据准备(见 https://m6anet.readthedocs.io/en/latest/quickstart.html)

推断

为了从 RNA004 数据中识别 m6A,必须指定 RNA004 模型:

m6anet inference --input_dir [INPUT_DIR] --out_dir [OUT_DIR] --pretrained_model HEK293T_RNA004

RNA004 模型是在开发版本上训练的,并且与 RNA002 模型相比,在位点级预测上只进行了有限的评估。RNA004 的单个读取概率准确性尚未经过测试。请将任何反馈报告给我们(https://github.com/GoekeLab/m6anet/discussions)

训练和评估 RNA004 m6anet

我们使用 HEK293T 细胞系的 RNA004 直接 RNA-Seq 运行训练 m6anet,m6A 位置由 m6ACE-Seq 定义。然后我们在 Hek293T 和 Hct116 细胞系的 RNA004 数据上评估了基于 RNA004 的 m6anet 性能。在这里,我们使用 RNA002 和 RNA004 数据中识别的所有位点的交集来比较 RNA004 模型(在 RNA004 数据上测试)和 RNA002 模型(在 RNA002 数据上测试),使用 m6ACE-Seq 作为真实情况(图 1-2)。结果表明 RNA002 训练和 RNA004 训练的 m6anet 性能相当。

请注意,RNA004 将生成更高的读取数量,这将导致更多的位点被测试。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值