使用STAR-fusion来对转录组数据找融合基因
看了这么多找融合基因的工具,目前只有这个最方便及靠谱,不仅仅是因为它发表于2017年,更重要的是他可以直接基于STAR比对好的bam文件来做分析,而大多数其它软件,需要从fastq文件开始,都不方便。发表该工具的文章是:STAR-Fusion: Fast and Accurate Fusion Transcript Detection from RNA-Seq
STAR-Fusion详细说明:https://github.com/STAR-Fusion/STAR-Fusion/wiki 是这样介绍它自己的:
TAR-Fusion uses the STAR aligner to identify candidate fusion transcripts supported by Illumina reads. STAR-Fusion further processes the output generated by the STAR aligner to map junction reads and spanning reads to a reference annotation set.
生物信息学鉴定融合转录本的方法一般有两种:
①将RNA-seq数据与Reference genome做alignment,鉴别可能发生重排的基因;
②先直接将reads装配成更长的转录本序列,再鉴别与重排序列一致的融合转录本。
而我们选择的Broad Institute的 Brian J. Haas 和冷泉港实验室(CSHL)的 Alex Dobin 等人开发的工具STAR-Fusion,其工作原理分为三步:
①先将reads通过STAR比对到参考基因组,筛选出split和discordant reads作为候选的融合基因序列;
②将候选融合基因序列与参考基因序列进行比对,根据overlaps预测出融合基因;
③对预测结果做过滤,去除假阳性结果。
安装还是选择conda,一步法安装:
conda install -c bioconda star-fusion
因为需要使用star这个比对工具对fastq比对成bam,所以那部分请自行学习,这里我们已经得到了bam文件啦。
数据库文件的下载
可以先去 https://data.broadinstitute.org/Trinity/CTATRESOURCELIB/ 查看对应的参考基因组版本:
mkdir -p ~/biosoft/starFusion/db
cd ~/biosoft/starFusion/db
## 下面的物种,自己选择咯
## 反正我一个都不想下载。
nohup wget https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/GRCh37_gencode_v19_CTAT_lib_July192017.source_data.tar.gz &
nohup wget https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/GRCh38_gencode_v26_CTAT_lib_July192017.source_data.tar.gz &
nohup wget https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/Mouse_M15_CTAT_lib_Oct252017.source_data.tar.gz &
cd ~/biosoft/starFusion/
git clone https://github.com/FusionFilter/FusionFilter.git
git clone https://github.com/FusionAnnotator/FusionAnnotator.git
考虑到下载速度,大家可以选择 small (~2G) unprocessed resource lib ,如下:
1.2G Jul 20 21:59 GRCh37_gencode_v19_CTAT_lib_July192017.source_data.tar.gz
1.3G Jul 20 22:04 GRCh38_gencode_v26_CTAT_lib_July192017.source_data.tar.gz
898M Oct 26 06:37 Mouse_M15_CTAT_lib_Oct252017.source_data.tar.gz
## 这里我解压开了 GRCh37_gencode_v19 这个压缩包如下:
245M Jul 20 01:16 blast_pairs.gene_syms.outfmt6.gz
33M Jul 20 01:23 fusion_lib.dat.gz
29M Jul 20 01:16 PFAM.domtblout.dat.gz
288M Jul 20 01:17 ref_annot.cdna.fa.masked
1.1G Jul 20 01:16 ref_annot.gtf
3.0G Jul 20 01:21 ref_genome.fa
接下来需要自己在服务器把这些文件构建索引即可,如果服务器的网络好,其实可以直接下载~26G的完整数据库。
cd ~/biosoft/starFusion/db
tar zxvf GRCh37_gencode_v19_CTAT_lib_July192017.source_data.tar.gz
cd GRCh37_gencode_v19_CTAT_lib_July192017/
prep_genome_lib.pl --help
nohup prep_genome_lib.pl --genome_fa ref_genome.fa --gtf ref_annot.gtf \
--blast_pairs blast_pairs.outfmt6.gz \
--fusion_annot_lib fusion_lib.dat.gz &
c
~/biosoft/starFusion/FusionFilter/util/index_pfam_domain_info.pl \
--pfam_domains PFAM.domtblout.dat.gz \
--genome_lib_dir ctat_genome_lib_build_dir
## 直接下载26G数据库更方便,毕竟我们的网速快!!!
nohup wget https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/GRCh37_gencode_v19_CTAT_lib_Nov012017.plug-n-play.tar.gz &
直接下载的数据库,解压开如下:
├── blast_pairs.idx
├── _blast_pairs.idx.ok
├── fusion_annot_lib.idx
├── _fusion_annot_lib.idx.ok
├── pfam_domains.dbm
├── _prot_info_db.ok
├── ref_annot.cds
├── ref_annot.gtf
├── ref_annot.gtf.gene_spans
├── _ref_annot.gtf.gene_spans.ok
├── ref_annot.pep
├── ref_annot.prot_info.dbm
├── ref_genome.fa
├── _ref_genome.fa.ok
└── ref_genome.fa.star.idx
├── build.ok
├── chrLength.txt
├── chrNameLength.txt
├── chrName.txt
├── chrStart.txt
├── exonGeTrInfo.tab
├── exonInfo.tab
├── geneInfo.tab
├── Genome
├── genomeParameters.txt
├── SA
├── SAindex
├── sjdbInfo.txt
├── sjdbList.fromGTF.out.tab
├── sjdbList.out.tab
└── transcriptInfo.tab
1 directory, 30 files
很明显,里面居然有一个STAR比对的index文件夹,而我本来都用了好几个月的STAR了,必然有自己的index文件夹呀,何必搞重复呢。
运行软件
先运行star进行比对:
## 测序数据如下:
6.7G Dec 12 15:55 clean.1.fq.gz
6.6G Dec 12 18:03 clean.2.fq.gz
## 比对代码如下,需要自行安装好软件已经参考基因组文件及索引
$star --runThreadN 5 --genomeDir $hg19_star_index --readFilesCommand zcat --outSAMtype BAM SortedByCoordinate \
--readFilesIn $fq1 $fq2 --outFileNamePrefix ${sample}_star ## --alignEndsType EndToEnd
比对后的结果如下:
14G Dec 30 22:38 DH01_starAligned.sortedByCoord.out.bam
1.9K Dec 30 22:38 DH01_starLog.final.out
21K Dec 30 22:38 DH01_starLog.out
4.6K Dec 30 22:38 DH01_starLog.progress.out
8.1M Dec 30 22:38 DH01_starSJ.out.tab
比对耗时如下:
Dec 30 21:43:03 ..... started STAR run
Dec 30 21:43:03 ..... loading genome
Dec 30 21:49:28 ..... started mapping
Dec 30 22:27:57 ..... started sorting BAM
Dec 30 22:38:20 ..... finished successfully
实际上上面的代码不行,这样的比对结果无法给 STAR-Fusion 使用直接使用,需要修改运行star的参数:
$star --runThreadN 5 --genomeDir $hg19_star_index --readFilesCommand zcat --outSAMtype BAM SortedByCoordinate \
--twopassMode Basic --outReadsUnmapped None --chimSegmentMin 12 \
--chimJunctionOverhangMin 12 --alignSJDBoverhangMin 10 --alignMatesGapMax 100000 \
--alignIntronMax 100000 --chimSegmentReadGapMax parameter 3 --alignSJstitchMismatchNmax 5 -1 5 5 \
--readFilesIn $fq1 $fq2 --outFileNamePrefix ${sample}_star ## --alignEndsType EndToEnd
## 这样会比较耗费内存哦
这样才会产生 'Chimeric.out.junction' 文件 供 STAR-Fusion 使用,耗时2个小时,终于得到输出文件了,如下:
6.7G Dec 12 15:55 clean.1.fq.gz
6.6G Dec 12 18:03 clean.2.fq.gz
12G Dec 31 11:31 DH01_starAligned.sortedByCoord.out.bam
126M Dec 31 11:25 DH01_starChimeric.out.junction
874M Dec 31 11:25 DH01_starChimeric.out.sam
1.9K Dec 31 11:31 DH01_starLog.final.out
24K Dec 31 11:31 DH01_starLog.out
12K Dec 31 11:31 DH01_starLog.progress.out
8.0M Dec 31 11:31 DH01_starSJ.out.tab
有了 Chimeric
相关文件,就可以进行融合基因检测啦。
运行的代码也很简单,如下:
STAR-Fusion --genome_lib_dir ~/biosoft/starFusion/db/GRCh37_gencode_v19_CTAT_lib_Nov012017/ctat_genome_lib_build_dir/ -J DH01_starChimeric.out.junction --output_dir star_fusion_outdir
也没几分钟就出结果啦,毕竟这个 Chimeric
相关文件非常小,真不知道为什么要下载这个26G的数据库,感觉有点浪费。解压开来其实里面的26G本来就是star这个比对软件的索引而已。
star_fusion_outdir/
├── star-fusion.filter.intermediates_dir
│ ├── star-fusion.pre_blast_filter
│ ├── star-fusion.pre_blast_filter.abridged
│ ├── star-fusion.pre_blast_filter.filt_info
│ ├── star-fusion.pre_blast_filter.filt_info.abridged
│ ├── star-fusion.pre_blast_filter.post_blast_n_promisc_filter
│ └── star-fusion.pre_blast_filter.post_blast_n_promisc_filter.abridged
├── star-fusion.fusion_candidates.final
├── star-fusion.fusion_candidates.final.abridged
├── star-fusion.fusion_candidates.preliminary
├── star-fusion.predict.intermediates_dir
│ ├── star-fusion.junction_breakpts_to_genes.txt
│ ├── star-fusion.junction_read_names
│ └── star-fusion.spanning_frag_names
├── star-fusion.STAR-Fusion.filter.ok
└── star-fusion.STAR-Fusion.predict.ok
一般来说找到的融合基因不会太多,而且结果的解读更重要。
找到了两个基因融合的现象,得搞清楚是如何融合的,融合有什么生物学影响,后果是什么。如何可视化这个融合情况。
后面的内容更精彩,但是这个教程无关,等我把这几天的融合基因教程发完了再统一发解读。
感兴趣的可以先自行看看:https://github.com/STAR-Fusion/STAR-Fusion/wiki
另外,值得一提的是,有docker版本的STAR-fusion,虽然我并没有用起来,但还是推荐一下。
docker来啦
值得注意的是该软件有
# setting some targets
VERSION=1.1.0
CTAT_GENOME_LIB="GRCh37_gencode_v19_CTAT_lib_July192017"
CTAT_GENOME_LIB_URL="https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/${CTAT_GENOME_LIB}.plug-n-play.tar.gz"
# pulling down the plug-n-play version of the CTAT genome lib:
wget ${CTAT_GENOME_LIB_URL} -O ../${CTAT_GENOME_LIB}.tar.gz
# unpacking it
tar xvf ../${CTAT_GENOME_LIB}.tar.gz -C ../.
# and now running STAR-Fusion & FusionInspector 'inspect' & Trinity de-novo reconstruction via Docker:
docker run -v `pwd`/../:/data --rm trinityctat/ctatfusion:${VERSION} \
/usr/local/src/STAR-Fusion_v${VERSION}/STAR-Fusion \
--left_fq /data/testing/reads_1.fq.gz \
--right_fq /data/testing/reads_2.fq.gz \
--genome_lib_dir /data/${CTAT_GENOME_LIB}/ctat_genome_lib_build_dir \
-O /data/testing/test_docker_outdir/StarFusionOut \
--FusionInspector inspect \
--annotate \
--examine_coding_effect \
--denovo_reconstruct