一、工具介绍
ROSE(RANK ORDERING OF SUPER-ENHANCERS)是麻省理工学院Richard A. Young实验室开发的一种通过bam文件及gff文件寻找enhancer及其相关基因的工具,此工具由python编写。项目主页:http://younglab.wi.mit.edu/super_enhancer_code.html
二、ROSE在服务器上的安装
ROSE依赖软件有:Python 2.7.3, R 2.15.3, 和 SAMtools 0.1.18,因此在安装ROSE前,首先确保服务器上安装了这三个工具。关于这三个工具的安装,可以查看这篇博文: RNA-seq分析服务器安装生信工具过程。
ROSE安装方式见以下代码:
wget https://bitbucket.org/young_computation/rose/get/1a9bb86b5464.zip
unzip 1a9bb86b5464.zip
# 解压后文件见下图,可以直接通过python *.py调用工具
三、具体使用
ROSE的最主要用法有ROSE_main.py
和ROSE_geneMapper.py
。其中ROSE_main.py
用于寻找增强子而ROSE_geneMapper.py
用于为增强子相关的基因进行注释。
- ROSE_mian.py 用法
python ROSE_main.py -g GENOME_BUILD -i INPUT_CONSTITUENT_GFF \
-r RANKING_BAM -o OUTPUT_DIRECTORY \
[optional: -s STITCHING_DISTANCE -t TSS_EXCLUSION_ZONE_SIZE -c CONTROL_BAM]
# 参数解释
-g refseq参考基因组
-i 输入gff文件,一般为使用MACS鉴定得到的Med1富集区域(gff具体格式下文介绍)
-r 排序后的bam文件,同时需为bam添加index
-o 输出文件目录
#可选参数
-s STITCHING_DISTANCE,合并两个region的最大距离,默认值为12.5kb
-t TSS_EXCLUSION_ZONE_SIZE,排除TSS区域大小,排除与TSS前后某距离内的区域,以排除启动子偏差(默认值:0;推荐值:2500)。如果设置该值为0,将不会查找基因。
-c CONTROL_BAM,control样本的bam文件
输入文件格式要求:
bam文件格式要求:需要排序和构建index(samtools可以操作),bam文件的染色体id需要以chr开头。
gff文件格式要求:gff文件必须有以下列
1.染色体位置(chr#)
2.每个增强子区域的特定id
4.区域起始位置
5.区域终止位置
7.正负链信息(+, -, .)
gff格式参考:https://genome.ucsc.edu/FAQ/FAQformat.html#format3
ROSE也有转换bam为gff的工具,在运行ROSE_mian.py
时,会调用ROSE_bamToGFF.py
。
ROSE_main.py
运行实例:
python $SOFT_PATH/ROSE_main.py -g HG38 -i $WORK_PATH/gtf/KYSE510_peaks.bed \
-r $WORK_PATH/samtools_sort/sort_treat1.bam -c $WORK_PATH/samtools_sort/sort_control1.bam \
-o $WORK_PATH/ROSE/KYSE510 -s 12500 -t 2000 2>$LOG_PATH/KYSE510_enhancer.log
其中,更多基因组可以从https://github.com/linlabbcm/rose2/tree/master/rose2/annotation获取保存到ROSE的annotation文件夹,但是需要注意修改相应ROSE_mian.py的相应代码。
输出文件如下:
1.**OUTPUT_DIRECTORY/gff/*.gtf
该文件为输入gtf文件的副本;
2.**OUTPUT_DIRECTORY/gff/*STITCHED*.gtf
该文件为通过在STITCHING_DISTANCE将INPUT_CONSTITUENT_GFF拼接在一起创建的gff文件;文件列数如下:
chrom, name, [blank], start, end, [blank], [blank], strand, [blank], [blank], name
其中 name
字段的命名方式为:拼接起来的区域数+最左端区域ID。
3.**OUTPUT_DIRECTORY/mappedGFF/*_MAPPED.gff
每个bam文件通过bamToGFF的输出文件,包含以下列:
(成分ID,测试区域,平均读取密度(单位为每百万位元每百万映射的单位读数密度))
4.**OUTPUT_DIRECTORY/mappedGFF/* _STITCHED * _MAPPED.gff
每个bam文件通过bamToGFF的输出文件,该文件中对增强子区域进行了拼接,包含以下列:
(拼接增强子ID,测试区域,平均读取密度(单位为百万映射每单位拼接增强子数))
5.**OUTPUT_DIRECTORY/STITCHED_ENHANCER_REGION_MAP.txt
bamToGFF计算后得到的拼接增强子密度文件,包含以下列:
(拼接增强子ID,染色体,拼接增强子起始位置,拼接增强子末端位置,拼接数,BAM信号等级,BAM信号)
6..**OUTPUT_DIRECTORY/*_AllEnhancers.table.txt
增强子列表,包含每个增强子的排名和是否为超级增强子,包含以下列:
(增强子ID,染色体,拼接增强子起始位点,拼接增强子末端,拼接数,拼接成分大小,BAM的信号,BAM的等级,是否为超增强子:是(1)否(0))
7.**OUTPUT_DIRECTORY/* _SuperEnhancers.table.txt
超级增强子的排名,为*_AllEnhancers.table.txt
文件的子集。包含以下列:
(拼接增强剂ID,染色体,拼接增强子起始位点,拼接增强子末端,拼接数,缝合在一起的成分的大小,RANKING_BAM的信号,RANKING_BAM的等级,超增强子的二进制(1)与典型(0))
8.**OUTPUT_DIRECTORY/*_Enhancers_withSuper.bed
可以加载到UCSC浏览器中可视化的增强子bed文件
9.**OUTPUT_DIRECTORY/*_Plot_points.png
所有增强子散点图,如下图:
- ROSE_geneMapper.py 用法
Usage: ROSE_geneMapper.py [options] -g [GENOME] -i [INPUT_ENHANCER_FILE]
# 参数解释
-i INPUT 输入ROSE_mian.py生成的enhancer table文件
-g GENOME 输入genome信息(MM9,MM8,HG18,HG19等)
-o OUT 输出路径
# 可选参数
-l GENELIST 要过滤的基因列表
-w WINDOW 搜索基因距离,默认值为50,000bp
-f format 如果使用此参数,将保持原输入文件格式输出
ROSE_geneMapper.py
运行实例:
python $SOFT_PATH/ROSE_geneMapper.py -i $WORK_PATH/ROSE/TE7/TE7_peaks_AllEnhancers.table.txt \
-g HG38 -o $WORK_PATH/ROSE/TE7 2>$LOG_PATH/TE7_enhancer_anno.log
输出文件如下:
1.**OUTPUT_DIRECTORY/*ENHANCER_TO_GENE.txt
enhancer重叠基因、附近基因以及最近的基因列表
2.**OUTPUT_DIRECTORY/*GENE_TO_ENHANCER.txt
以每个基因为列名的和其相关的增强子位置信息列表
得到这两个表格即可对基因进行筛选然后进行GO及KEGG分析等。
下图是运行两工具的结果截图:
其中被红框标注的部分是ROSE_geneMapper.py
运行的结果。