ELIGOS2

ELIGOS2

摘要

Oxford Nanopore Technology (ONT) 提供的测序平台允许我们在无需扩增的情况下对 DNA 和 RNA 进行本征测序。因此,任何存在于本征序列上的修饰都被保留下来,从而记录了离子信号。信号的变化,与标准碱基呼叫模型不同,导致碱基呼叫器错误地将这些变化解释为测序错误。我们利用这些错误来识别 RNA 转录本或 DNA 序列上修饰的位置。

ELIGOS 是为了从特定碱基上的错误 (ESB) 差异中识别本征 RNA 序列上的修饰位置而开发的。我们采用标准的统计分析方法,费舍尔精确检验 (Fisher’s exact test) 来评估错误的差别。参考序列可以是体外转录得到的未修饰 RNA 序列、cDNA 序列,或者是我们开发的背景错误模型 (rBEM),后者模拟了未修饰 RNA 序列的系统误差。

ELIGOS 目前可以应用于执行:

  1. 两种不同条件下的表观转录组差异分析(DNA、RNA)(参见示例 1)
  2. 表观转录组分析(RNA)(参见示例 2)
  3. DNA 修饰的识别,如 DNA 加合物(参见示例 3)

引用文献

  1. Piroon Jenjaroenpun, Thidathip Wongsurawat, Taylor D Wadley, Trudy M Wassenaar, Jun Liu, Qing Dai, Visanu Wanchai, Nisreen S Akel, Azemat Jamshidi-Parsian, Aime T Franco, Gunnar Boysen, Michael L Jennings, David W Ussery, Chuan He, Intawat Nookaew, “从本征 RNA 序列解码表观转录组景观”。《核酸研究》, 2020, gkaa620, https://doi.org/10.1093/nar/gkaa620
  2. Intawat Nookaew, Piroon Jenjaroenpun, Hua Du, Pengcheng Wang, Jun Wu, Thidathip Wonsurawat, Sun Hee Moon, En Huang, Yinsheng Wang, Gunnar Boysen, “通过纳米孔测序检测和区分大小、区域化学和功能团不同的 DNA 加合物”。《化学研究毒理学》, 2020, https://doi.org/10.1021/acs.chemrestox.0c00202

SRA Fast5:
https://trace.ncbi.nlm.nih.gov/Traces/sra/?study=SRP166020

期刊封面:

安装

ELIGOS 在 Linux/Mac/Windows(WSL) 上的安装

Miniconda3 安装
点击链接

通过 GitLab 下载 ELIGOS

## 从 GitLab 下载 ELIGOS
git clone https://gitlab.com/piroonj/eligos2.git

转到 ELIGOS 文件夹
cd eligos2

3. 创建 ELIGOS 的 conda 环境

  • 使用以下命令创建环境:bash
    安装环境
    这个 conda create 可能会遇到包冲突
    conda create -n eligos2 -c bioconda -c conda-forge -c anaconda python=3.6 pysam=0.13 pandas=0.23.4 pybedtools=0.8.0 bedtools=2.25 rpy2=2.8.5 r-base=3.4.1 tqdm=4.40.2 numpy=1.11.3
    我最近尝试不指定版本,并且对我有用。
    conda install mamba
    conda update mamba
    mamba create -n eligos2 -c conda-forge -c bioconda -c r python=3.10 pysam pandas pybedtools bedtools rpy2 r-base tqdm numpy
    激活 ELIGOS 环境
    conda activate eligos2
    安装 samplesizeCMH 模块
    Rscript -e 'install.packages("samplesizeCMH", repos="https://cloud.r-project.org")'
    将 ELIGOS 导出到系统环境
    export PATH=$PWD:$PWD/Scripts:$PATH
    运行 ELIGOS
    eligos2 -h

  • 从 environment.yml 文件创建环境:bash
    安装环境
    conda env create -f eligos2.linux.yml
    激活 ELIGOS 环境
    conda activate eligos2
    安装 samplesizeCMH 模块
    Rscript -e 'install.packages("samplesizeCMH", repos="https://cloud.r-project.org")'
    将 ELIGOS 导出到系统环境
    export PATH=$PWD:$PWD/Scripts:$PATH
    运行 ELIGOS
    eligos2 -h

ELIGOS 在 Docker 或 Singularity 容器上的安装

在计算机上安装 Docker 或 Singularity。点击链接:Docker 或 Singularity

安装 ELIGOS

从 DockerHub 安装 ELIGOS

## 从 DockerHub 安装 ELIGOS
docker pull piroonj/eligos2
运行 ELIGOS
docker run --rm -v $PWD:$PWD -w $PWD piroonj/eligos2 eligos2 -h
  • 从 Dockerfile 安装 ELIGOS
    从 GitLab 下载 ELIGOS
    git clone https://gitlab.com/piroonj/eligos2.git
    转到 DockerFiles 文件夹
    cd eligos2/DockerFiles
    在 docker 上构建 ELIGOS
    docker build -t piroonj/eligos2:latest .
    运行 ELIGOS
    docker run --rm -v $PWD:$PWD -w $PWD piroonj/eligos2 eligos2 -h

通过 Singularity 图像安装 ELIGOS

## 从 DockerHub 创建 ELIGOS 的 Singularity 图像
singularity build eligos2.sif docker://piroonj/eligos2:latest
运行 ELIGOS
singularity exec eligos2.sif eligos2 -h

使用说明

主要功能

eligos2 -h

usage: eligos2 [-h] [-v]
              {map_preprocess,build_genedb,rna_mod,pair_diff_mod,bedgraph,filter}
              ...
ELIGOS 是一套用于识别纳米孔测序数据中修饰核苷酸的工具包。
ELIGOS 命令组:
    map_preprocess           预处理映射读取
    build_genedb             从基因数据库构建 bam 文件
    rna_mod                  根据 rBEM5+2 模型识别 RNA 修饰
    pair_diff_mod            根据对照条件识别 RNA 修饰
    bedgraph                 过滤和创建 IGV 图表的 BedGraph
    filter                   过滤 Eligos 结果

可选参数:
  -h, --help            显示此帮助消息并退出
  -v, --version         显示 ELIGOS 版本并退出。

索引 BAM 和参考序列

在使用 eligos2 之前,需要对 BAM 文件和参考序列进行索引。

索引 BAM
samtools index file.bam

索引参考序列
samtools faidx file.fasta

示例

  1. 对酵母减数分裂转录组进行差异 ESB 分析,以识别 m6A 和富集的 RRACH 基序

使用 Lui 等人 (https://doi.org/10.1038/s41467-019-11713-9) 的 m6A 甲基转移酶敲除株 (∆ime4) 和野生型在减数分裂状态下生长的本征 RNA 序列进行此示例。示例使用了预先鉴定为含有腺嘌呤差异 %ESB 位点的 531 个转录本的子集。

运行 ELIGOS 比较野生型和敲除株的本征 RNA

1.1 下载数据:示例文件包含两个映射读取 (BAM 文件) 的 ∆ime4 和野生型,基因位置 (BED 文件),和参考 (FASTA 文件)。

1.dRNA_m6A_yeast_knockout.tar.gz 下载

1.dRNA_m6A_yeast_knockout/
├── sc_KO.selected.bam
├── sc_KO.selected.bam.bai
├── sc_WT.selected.bam
├── sc_WT.selected.bam.bai
├── yeast.S288C.genes.selected_set.bed
├── yeast.S288C.genome.fa.gz
├── yeast.S288C.genome.fa.gz.fai
└── yeast.S288C.genome.fa.gz.gzi

1.2 运行 ELIGOS 命令

索引参考序列
samtools faidx yeast.S288C.genome.fa.gz

运行 ELIGOS 比较 Wild-type (-tbam) 和 Knock-out (-cbam)
eligos2 pair_diff_mod -tbam sc_WT.selected.bam -cbam sc_KO.selected.bam -reg yeast.S288C.genes.selected_set.bed -ref yeast.S288C.genome.fa.gz -t 34 --pval 0.001
 --oddR 1.2 --esb 0 -o results

使用 eligos2 filter 提取潜在的碱基 A 修饰,并过滤掉同聚物序列
eligos2 filter -i results/sc_WT.selected_vs_sc_KO.selected_on_yeast.S288C.genes.selected_set_baseExt0.txt -sb A --homopolymer --esb 0 --oddR 1.2 --pval 0.001

显示输出文件
head sc_WT.selected_vs_sc_KO.selected_on_yeast.S288C.genes.selected_set_baseExt0.A.filtered.txt

1.3 提取具有 6bp 上下游扩展的潜在修饰 A 序列

从压缩的 fasta 文件中提取 fasta
gunzip -c yeast.S288C.genome.fa.gz > yeast.S288C.genome.fa
samtools faidx yeast.S288C.genome.fa

将 Eligos 输出转换为带有 6bp 上下游扩展的 fasta 文件
table2fa_eligos.mergeextend.sh results_5_test_pval_and_adjP/sc_WT.selected_vs_sc_KO.selected_on_yeast.S288C.genes.selected_set_baseExt0.A.filtered.txt yeast.S288C.genome.fa

检查序列输出
head sc_WT.selected_vs_sc_KO.selected_on_yeast.S288C.genes.selected_set_baseExt0.A.filtered.fa

1.4 使用 BaMM motif 进行去新基序发现

上述差异腺嘌呤 (above) 的序列可用于使用 BaMM motif 发现 (https://doi.org/10.1093/nar/gky431) 通过 web 服务 (https://bammmotif.soedinglab.org/job/denovo/) 识别共识基序。

BaMM motif 网站

使用去新基序发现

上传上述输出 fasta 文件和 BaMM!。我们将获得下图所示的共识 RRACH 基序。

  1. 使用 rBEM_k5+2 模型检测 MYC 和 JUNB 转录本的 RNA 修饰

使用 Workman 等人 (https://doi.org/10.1038/s41592-019-0617-2) 的人类转录组本征 RNA 序列进行此示例。示例使用了两个癌基因转录本 MYC 和 JUNB。

2.1 下载数据:示例文件包含映射读取 (BAM 文件),基因位置 (BED 文件),cDNA (BCF 文件),和染色体 (FASTA 文件)。

2.dRNA_m6A_MYC_JUNB.tar.gz 下载

2.dRNA_m6A_MYC_JUNB
├── chr8_chr19.fa.gz
├── chr8_chr19.fa.gz.fai
├── chr8_chr19.fa.gz.gzi
├── myc_junb.bed
├── rna_consortium.myc_junb.bam
├── rna_consortium.myc_junb.bam.bai
├── rna_consortium.myc_junb.bcf
└── rna_consortium.myc_junb.bcf.csi

2.2 运行 eligos 比较本征 RNA 和 rBEM5+2 模型

运行 ELIGOS
eligos2 rna_mod -i rna_consortium.myc_junb.bam -bcf rna_consortium.myc_junb.bcf -reg myc_junb.bed -ref chr8_chr19.fa.gz -o results_myc_junb --pval 1e-5 --oddR 5 --esb 0.2

2.3 创建带有过滤选项的 BedGraph 文件格式

创建选择 A 碱基并过滤掉同聚物序列的 ESB 信号的 BedGraph 文件
eligos2 bedgraph -i results_myc_junb/rna_consortium.myc_junb_vs_model_on_myc_junb_baseExt0.txt --select_base A --signal ESB --homopolymer

检查 Native RNA 读取中 ESB 频率的输出 (test)
head results_myc_junb/rna_consortium.myc_junb_vs_model_on_myc_junb_baseExt0.A.ESB_test.bdg

检查 rBEM5+2 模型中 ESB 频率的输出 (ctrl)
head results_myc_junb/rna_consortium.myc_junb_vs_model_on_myc_junb_baseExt0.A.ESB_ctrl.bdg

生成的 bed 图文件可用于在 IGV (http://software.broadinstitute.org/software/igv/) 中可视化腺嘌呤的差异 ESB 位置。

PS: dRNA ESB 频率以青色显示,rBEM5+2 ESB 频率以洋红色显示

  1. 对合成质粒进行差异 ESB 分析以识别 DNA 加合物

使用含有一个 N2-Ethyl Deoxyguanine 的合成质粒的本征 DNA 序列进行此示例。

3.1 下载数据:示例文件包含两个映射读取 (BAM 文件) 的 N2Et 和 WT,基因位置 (BED 文件),cDNA (BCF 文件),和质粒 (FASTA 文件)。

3.DNA_N2Et_adduct.tar.gz 下载

3.DNA_N2Et_adduct
├── N2Et.DNA.bam
├── N2Et.DNA.bam.bai
├── WT.DNA.bam
├── WT.DNA.bam.bai
├── WT.plasmid.bed
├── WT.plasmid.fa.gz
├── WT.plasmid.fa.gz.fai
└── WT.plasmid.fa.gz.gzi

3.2 运行 ELIGOS 比较 N2Et 修饰 DNA 和本征 DNA

过滤掉短于 200 碱基的映射读取
eligos2 map_preprocess -aln 200 -i N2Et.DNA.bam
eligos2 map_preprocess -aln 200 -i WT.DNA.bam

运行 ELIGOS
eligos2 pair_diff_mod -tbam N2Et.DNA.preprocess.bam -cbam WT.DNA.preprocess.bam -reg WT.plasmid.bed -ref WT.plasmid.fa.gz -o results --oddR 0 --esb 0 --pval 1 --adjPval 1

3.3 创建带有过滤选项的 BedGraph 文件格式

创建过滤掉同聚物序列的奇数比率信号的 BedGraph 文件
eligos2 bedgraph -i results/N2Et.DNA.preprocess_vs_WT.DNA.preprocess_on_WT.plasmid_baseExt0.txt --signal oddR --homopolymer

检查输出
head results/N2Et.DNA.preprocess_vs_WT.DNA.preprocess_on_WT.plasmid_baseExt0.oddR.bdg

从生成的 BedGraph 文件中绘制的单个核苷酸的奇数比率水平显示了合成质粒上 N2-Ethyl Deoxyguanine 位置的正确识别。

  1. 使用 Cochran-Mantel-Haenszel (CMH) 测试从重复中识别 RNA 修改

为了执行,使用 CMH 测试在具有生物重复的两种条件下进行比较

4.1 下载数据:示例文件包含三个 rna_mod 结果 (TSV 文件) 的 RNA-seq 在乙醇条件下,以及三个 rna_mod 结果的葡萄糖条件,来自先前步骤 (eligos2 rna_mod)。

4.example_YPL061W_baseExt0.tar.gz 下载

tar -xvzf 4.example_YPL061W_baseExt0.tar.gz

4.example_YPL061W_baseExt0
├── drna_ethanol_11.mn200_vs_model_on_YPL061W_baseExt0.txt
├── drna_ethanol_21.mn200_vs_model_on_YPL061W_baseExt0.txt
├── drna_ethanol_31.mn200_vs_model_on_YPL061W_baseExt0.txt
├── drna_glucose_12.mn200_vs_model_on_YPL061W_baseExt0.txt
├── drna_glucose_22.mn200_vs_model_on_YPL061W_baseExt0.txt
└── drna_glucose_32.mn200_vs_model_on_YPL061W_baseExt0.txt

4.2 运行多样本测试

运行 multi_samples_test
eligos2 multi_samples_test --test_mods 4.example_YPL061W_baseExt0/drna_ethanol_.txt --ctrl_mods 4.example_YPL061W_baseExt0/drna_glucose_.txt --prefix ethanol_vs_glucose

wc -l ethanol_vs_glucose.CMH_testing.txt

结果描述

描述
chrom参考名称
start_loc映射起始位置
end_loc映射结束位置
strand映射方向
name来自 bed 文件的区域/基因名称
ref参考序列
homo_seq与同聚物序列重叠
kmer5碱基 5 聚体:第三个位置的参考
majorAllel频率最高的碱基 (主要等位基因)
majorAllelFreq主要等位基因的最高频率
kmer7碱基 7 聚体:第三个位置的参考
test_err_1测试样本中错误碱基的计数
model_err_1rBEM 模型中错误碱基的计数
test_cor_1测试样本中正确碱基的计数
model_cor_1rBEM 模型中正确碱基的计数
oddR奇数比率
pvalP 值
adjPval校正 P 值
baseExt碱基扩展 (0, 1, 或 2 碱基)
total_reads总读取计数
ESB_test测试样本中特定碱基的误差百分比
ESB_ctrl测试 rBEM 模型中特定碱基的误差百分比
  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值