CIRCexplorer

CIRCexplorer及CIRCexplorer2方法

基本来说算是对方法的翻译,这里只对2进行阐述,如果想更深入的了解还是看原版的好
CIRIexplorer请参考http://yanglab.github.io/CIRCexplorer/ CIRIexplorer2请参考http://circexplorer2.readthedocs.io/en/latest/

教程

教程主要包括原理及流程软件安装及数据准备circRNA的识别与注释从头组装新的circRNAcircRNA的可变剪切,另外还提供了一步流程

1. 原理及流程

主要包括两部分,一个是注释流程,一个是描述流程

  • 注释流程 该流程与CIRCexplorer一致,是一个整合策略来识别fusion junction reads(可能来自与反向剪切的外显子或来自内含子套索)。CIRCexplorer2的特征是可以支持多种比对工具。

对circRNA稍有了解的从图中就能看出CIRCexplorer的基本思想。该方法主要依赖与基因的注释,实际上是利用已注释的外显子剪接边界(不知道还有没有其他类型的边界,我的理解是外显子与内含子的界限)来识别具有高准确性的circRNA,作者也提供了识别不精确边界的方法。流程图左右两个面板,其实右边的面板更直观一些,包括数据的输入双末端比对到外显子边界(红色的表示fusion junction)、候选junction的再比对(即将之前的fusion进行分割再比对)以及注释

该流程主要包含两步,会详细地在后边阐述

  1. Alignment and Parsing
  2. Annotating

  3. 描述流程 该流程全面而系统地描述了circRNA的可变剪切事件,主要通过de novo组装的方式

1. 整个流程看着比较复杂,实际上使用了Cufflinks的RABT方法。 2. 除了已注释的外显子,该方法还能识别到circRNA特异的外显子,这些外显子并不在线性RNA中表达。 3. 该方法可以识别2中可变反向剪切事件(5'和3'的剪接位点的改变)以及四种可变剪切事件(与线性转录本差不多,不知道的童鞋请访问WikiPedia

该流程主要包括3步,后面会详细介绍

  1. Alignment
  2. Assembly
  3. Alternative Splicing

2. 软件安装及数据准备

由于我只使用过TopHat,所以这里只介绍这个了。以下是软件需求,python相关软件包都被集成到了CIRCexplorer2中,所以也不用费事儿预先安装了(pandas需要自己装)。

  • 软件
    • TopHat(>=2.0.9)
    • Cufflinks(>=2.1.1)
    • BEDTools
    • UCSC Utilities
      • genePredToGtf
      • gtfToGenePred
    • python(2.7+)
      • pysam(>=0.8.4)
      • pybedtools(require pandas if pybedtools>=0.7.6)
      • docopt
      • scipy(only unsed in denovo module)

我使用的是学院服务器Redhat,所以没有权限安装根目录软件。经过长期的洗礼,现在也大概知道咋捣鼓了。其他的软件都比较好安装,就是python不太听使唤,pip命令如果不好使,一般我就用github上的开发版。请参考python及模块安装。UCSC工具的下载请参考UCSC Utilities工具

  • CIRCexplorer2安装

    • pip
      CIRCexplorer2已经发布到了PyPI,如果Python是安装在自己的路径下,请设置pip的环境变量——将~/python/lib/python2.7/site-packages添加进~/.bashrc。另外,这个方法会自动安装python的模块pysam/pybedtools/docopt等。

      pip install circexplorer2
      
    • source
      该方法发布到了github上,所以可以用git的方式安装

      git clone https://github.com/YangLab/CIRCexplorer2.git
      cd CIRCexplorer2
      pip install -r requirements.txt
      ### install scipy according to http://www.scipy.org/install.html
      python setup.py install
      
    • conda
      这是啥我就不太清楚了,请自己查询

  • 数据准备

    • RNA-seq 推荐使用poly(A)-的ribo- RNA-seq数据(即rRNA删除的数据),另外ribo- tatal RNA也适用。对于一些ribo+的数据需要自己先处理,不过大部分原始公共数据都删除了rRNA。当然RNase R处理的数据能够富集circRNAs。
    • 参考基因组fasta文件 这个可以直接从UCSC、Ensembl或者GENCODE下载,既有整合在一起的染色体参考基因组fasta,也有单个染色体的fasta。例如参考基因组及注释文件下载
    • 基因注释文件
      该文件的格式是UCSC GenePred格式的扩展,主要包括以下字段:

      该文件的获取你完全不用担心,作者提供了相应的程序来获得注释文件,包含RefSeq/KnownGenes/Ensembl注释以及人类和小鼠的基因组(fa)
      fetch_ucsc.py hg19/hg38/mm9/mm10 ref/kg/ens/fa out
      例如 下载Ensembl基因注释和hg19参考基因组
      fetch_ucsc.py hg19 ens hg19_ens.txt
      fetch_ucsc.py hg19 fa hg19.fa
      实际上fetch_ucsc.py连接的是UCSC数据库中的文件,但UCSC中没有构建Ensembl hg38的注释文件(让人很不爽),所以喜欢用Ensembl的童鞋需要自己构建注释文件。首先利用gtfTOGenePred将Ensembl的注释文件转化为UCSC GenePred, 然后提取gtf中基因symbol与转录本id的对应关系,最后merge两个文件就能得到CIRCexplorer2的标准格式。

      另外,注释文件也能转化为gtf文件
      cut -f2-11 hg19_ens.txt | genePredToGtf file stdin hg19_ens.gtf
      当然,将3个数据库注释文件整合作为CIRCexplorer2输入也是一个不错的选择。
      cat hg19_ref.txt hg19_kg.txt hg19_ens.txt > hg19_ref_all.txt

    • build Bowtie与Bowtie2 index
      使用TopHat的童鞋一定不要忘了要先构建index,当然,CRICexplorer2也提供了不构建index的方法。
      对于index的关联,我不太清楚具体,Bowtie的帮助文档和网友说可以添加export BOWTIE_INDEXES=[index path]关联,但是我没有实现这种方式;最直接的方式就是将index构建在与参考基因组相同的目录下,并且名字一样。完全不用担心bowtie与bowtie2 index后缀,它们不一致。

      bowtie-build hg19.fa hg19
      bowtie2-build hg19.fa hg19
      

3. circRNA的识别与注释

完事具备,终于要开工了。前面大家也看到了,CIRCexplorer2实际上和其他方法差不多,就是想找fusion junction(每个人的称谓不一样,有人称为scrambled read。Whatever!)。似乎CIRCexplorer主要是处理single-end测序数据的,所以原教程主要以单末端形式进行。似乎双末端数据也能转化单末端的形式,但这里还是以双末端方式进行。在我的印象里,双末端数据(主要是Illimina)数据才是主流吧。CIRCexplorer2加入了豪华套餐,能够对双末端进行处理,但只是针对Tophat比对工具。

该流程主要包括3部分:Align/Parse/Annotate

  • Align

    tophat2 -o [tophat_fusion] -p 15 --fusion-search --keep-fasta-order --bowtie1 --no-coverage-search \
    [bowtie1_index] [RNAseq_1.fastq] [RNAseq_2.fastq]
    
    • 输入

      1. -p 15指定15个CPU内核来运行该程序;
      2. --keep-fasta-order --bowtie1 --no-coverage-search感兴趣的童鞋可以查看Tophat的帮助文档;
      3. -o [tophat_fusion][tophat_fusion]为结果输出文件夹;
      4. [bowtie1_index]为bowtie的index的名字(bowtie index后缀为.ebwt),之前也提到了最好将index与基因组fasta放在同一个目录,名字也一致;
      5. [RNAseq_1.fastq]为双末端数据的第一个文件。
    • 输出
      结果将会输出在[tophat_fusion]文件夹中,包含许多日志文件,以及比对上的fusion reads包含在accepted_hits.bam中——这也是下一步的输入。

  • Parse

    CIRCexplorer2 parse --pe -t TopHat-Fusion [tophat_fusion/accepted_hits.bam] -o [circ_out] > CIRCexplorer2_parse.log
    
    • 输入
      1. --pe表示使用的是双末端方法;
      2. [tophat_fusion/accepted_hits.bam]就是Align的输出。
    • 输出
      1. -o [circ_out]为输出文件夹,最后会得到一个fusion_junction.bed文件;
      2. CIRCexplorer2_parse.log为该过程的日志文件。
  • Annotate
    ```
    CIRCexplorer2 annotate -r REF -g GENOME [circ_dir] > CIRCexplorer2_annotate.log
    ```
    令人不爽的是,该命令行不能使用\多行书写,这使代码显得非常ugly!这一步实际上就是根据已有的外显子边界,将fusion junction reads精确地注释上去。

    • 输入
      1. -r REF这里需要输入的就是之前用fetch_ucsc.py获得的注释文件,例如hg19_ens.txt;
      2. -g GENOME当然就是输入参考基因组fasta了;
      3. [circ_dir]第二步Parse中的输出文件夹;
      4. CIRCexplorer2_annotate.log日志文件 另外还有两个参数可供使用:
      5. --no-fix对于那些具有较少基因注释的物种有用
      6. --low-confidence能够提取低置信的circRNA
    • 输出 很遗憾没有提供输出文件位置的参数。最终会在[circ_dir]中生成文件夹[annotate],其中包含两个文件
      1. annotated_fusion.txt:包含已注释的fusion junction信息,字段信息原说明文档没给,自己猜吧~,或者问作者;
      2. circ_fusion.txt:包含circRNA的注释信息,包括的字段如下,前十二列为bed格式:

--------------------------------------------- 这里是denovo方法识别circRNA的分割线 -------------------------------------------------------------------

results for ""

    No results matching ""