添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
踏实的骆驼  ·  PhotoShop CS6 ...·  4 小时前    · 
绅士的墨镜  ·  Adobe Photoshop CS6 ...·  4 小时前    · 
强健的蛋挞  ·  系统常用工具 | 2345dn·  4 小时前    · 
玩命的草稿本  ·  电子邮件帮助中心·  3 小时前    · 
豪气的消防车  ·  网易126免费邮--帮助中心·  3 小时前    · 
没有腹肌的沙滩裤  ·  js正则表达式 ...·  1 年前    · 
瘦瘦的熊猫  ·  javascript - js ...·  1 年前    · 

star-fusion流程需要调用star这个非常出名的转录组比对工具,然后是star-fusion流程内部的一个perl脚本去解析star比对过程中输出的Chimeric.out.junction文件。

其中star比对过程已经是超级简单了,但是perl脚本就比较麻烦,因为perl本身是上古语言,STAR-Fusion 这个perl脚本依赖的环境会难倒很多人,如下所示的代码架构:

$ head STAR-Fusion
#!/usr/bin/env perl

use strict;
use warnings;
use Carp;
use Cwd;
use FindBin;
use lib ("$FindBin::Bin/PerlLib");
use Pipeliner;
use File::Basename;

这个时候,使用conda来管理是一个比较简单的解决方案,安装自己的conda,每个用户独立操作,安装方法代码如下:

# 首先下载文件,20M/S的话需要几秒钟即可
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 接下来使用bash命令来运行我们下载的文件,记得是一路yes下去
bash Miniconda3-latest-Linux-x86_64.sh 
#  安装成功后需要更新系统环境变量文件
source ~/.bashrc

使用安装好的conda来 安装软件的代码如下所示:

# trim,star 两个软件即可
conda create -n starFusion 
conda activate starFusion 

conda install -c bioconda trim-galore
conda install -c bioconda star-fusion

可以看到目前两个软件版本是:

STAR --version
2.7.10a

STAR-Fusion --version
STAR-Fusion version: 1.6.0 

 perl --version 
This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-linux-thread-multi

0.png

然后运行star-fusion流程需要需要下载配套数据库:

 nohup wget https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/__genome_libs_StarFv1.10/GRCh38_gencode_v37_CTAT_lib_Mar012021.plug-n-play.tar.gz &
 # 这个文件有点大,
#   32G 3月   6  2021 GRCh38_gencode_v37_CTAT_lib_Mar012021.plug-n-play.tar.gz

有了软件和配套数据库,运行star-fusion流程就很容易了。

STAR的比对过程非常顺利

每个样品的比对日志如下所示:

 STAR version: 2.7.10a   compiled: 2022-01-14 
Jan 31 11:56:48 ..... started STAR run
Jan 31 11:56:48 ..... loading genome
Jan 31 11:57:58 ..... started 1st pass mapping
Jan 31 12:10:13 ..... finished 1st pass mapping
Jan 31 12:10:14 ..... inserting junctions into the genome indices
Jan 31 12:12:12 ..... started mapping
Jan 31 12:26:04 ..... finished mapping
Jan 31 12:26:07 ..... finished successfully

队列里面的所有样品都有bam文件输出, 如下所示

 ls -lh */Aligned.out.bam|cut -d" " -f 5- |head
 2.3G 1月  31 12:26 K001391N_HLMGGDSXY-L2_outdir/Aligned.out.bam
 2.7G 1月  31 12:32 K001392N_HLMGGDSXY-L2_outdir/Aligned.out.bam
 2.2G 1月  31 12:24 K001394N_HLMGGDSXY-L2_outdir/Aligned.out.bam
  18G 1月  31 15:09 K001450T_HLMGGDSXY-L4_outdir/Aligned.out.bam
  17G 1月  31 14:56 K001451T_HLMGGDSXY-L4_outdir/Aligned.out.bam
  11G 1月  31 14:20 K002029T_HJWC7DSXY-L2_outdir/Aligned.out.bam
 8.8G 1月  31 14:13 K002380T_HLWKVDSXY-L4_outdir/Aligned.out.bam
 8.8G 1月  31 13:55 K003021N_HLW7YDSXY-L4_outdir/Aligned.out.bam
  26G 1月  31 19:11 K003038T_HLW7YDSXY-L4_outdir/Aligned.out.bam
  11G 1月  31 16:50 K003450N_HLWHCDSXY-L3_outdir/Aligned.out.bam

而且每个样品也有Chimeric.out.junction文件输出,如下所示:

ls -lh */Chimeric.out.junction |cut -d" " -f 5- |head
 78M 1月  31 12:26 K001391N_HLMGGDSXY-L2_outdir/Chimeric.out.junction
106M 1月  31 12:32 K001392N_HLMGGDSXY-L2_outdir/Chimeric.out.junction
 68M 1月  31 12:24 K001394N_HLMGGDSXY-L2_outdir/Chimeric.out.junction
270M 1月  31 15:09 K001450T_HLMGGDSXY-L4_outdir/Chimeric.out.junction
342M 1月  31 14:56 K001451T_HLMGGDSXY-L4_outdir/Chimeric.out.junction
151M 1月  31 14:20 K002029T_HJWC7DSXY-L2_outdir/Chimeric.out.junction
157M 1月  31 14:13 K002380T_HLWKVDSXY-L4_outdir/Chimeric.out.junction
191M 1月  31 13:55 K003021N_HLW7YDSXY-L4_outdir/Chimeric.out.junction
378M 1月  31 19:11 K003038T_HLW7YDSXY-L4_outdir/Chimeric.out.junction
378M 1月  31 16:50 K003450N_HLWHCDSXY-L3_outdir/Chimeric.out.junction

最耗时的步骤已经是过去了,理论上这个时候star-fusion流程内部的一个perl脚本去解析star比对过程中输出的Chimeric.out.junction文件就可以完成融合基因的搜索啦。

但是STAR-Fusion流程就报错

我看了看这个运行日志,以及对应的报错信息:

Running CMD: /home/data/fusion/miniconda3/envs/starFusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes  --genome_lib_dir /home/fusion/GRCh38_gencode_v37_CTAT_lib_Mar012021.plug-n-play/ctat_genome_lib_build_dir  -J Chimeric.out.junction  > /home/data/fusion/fusion_results/K001391N_HLMGGDSXY-L2_outdir/star-fusion.preliminary/star-fusion.junction_breakpts_to_genes.txt


-building interval tree based on /home/fusion/GRCh38_gencode_v37_CTAT_lib_Mar012021.plug-n-play/ctat_genome_lib_build_dir/ref_annot.gtf.mini.sortu
-done building interval tree (0.07 min).
-parsing fusion evidence: Chimeric.out.junction
-mapping reads to genes

# 接下来开始报错
Argument "brkpt_donorA" isn't numeric in preincrement (++) at /home/data/fusion/miniconda3/envs/starFusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes line 379, <$fh> line 1.
Can'
t use an undefined value as an ARRAY reference at /home/data/fusion/miniconda3/envs/starFusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes line 511, <$fh> line 1.

确实是这个perl脚本报错了,简单谷歌这个关键词,就可以解决。

需要 重新下载star-fusion-1.9.0软件

在官网可以看到,https://anaconda.org/bioconda/star-fusion,确实是  linux-64 v1.6.0 ,所以conda默认是没办法下载star-fusion-1.9.0软件 。

我看了看 star-fusion 的版本还是蛮多的 :

conda search star-fusion  -c bioconda
Loading channels: done
# Name                       Version           Build  Channel
star-fusion                    0.4.0      pl5.18.2_0  bioconda
star-fusion                    0.5.3      pl5.18.2_0  bioconda
star-fusion                    0.5.3      pl5.22.0_0  bioconda
star-fusion                    0.5.4               1  bioconda 
star-fusion                    1.6.0               1  bioconda
star-fusion                    1.7.0               0  bioconda 
star-fusion                    1.9.1      hdfd78af_1  bioconda
star-fusion                   1.10.0      hdfd78af_0  bioconda
star-fusion                   1.10.0      hdfd78af_1  bioconda

0 (1).png

担心这个软件跟其它软件冲突,我给它一个独立的环境:

conda create -n starFusion1.9.0 
conda activate starFusion1.9.0  
conda install -c bioconda/label/cf201901 star-fusion=1.9.0 

conda search  star-fusion -c bioconda 
conda install -c conda-forge mamba
mamba search  star-fusion -c bioconda 

mamba install -c conda-forge perl-carp-assert
mamba search   *python_abi*    -c conda-forge
mamba install -c conda-forge python_abi=2.7
mamba install -c bioconda star-fusion=1.9.0

git clone --recursive https://github.com/STAR-Fusion/STAR-Fusion.git

但是我尝试了很多方法,都没办法成功安装独立的star-fusion-1.9.0软件 ,还是蛮奇怪的。

但是我git下载了它源代码,发现其压缩包里面的STAR-Fusion命令本来就是可以直接使用的,无需conda来管理了。可以看到, 其实1.9的star-fusion的这个STAR-Fusion.map_chimeric_reads_to_genes  脚本内容跟前面conda自己配置的1.6版本内容不一样:

  531   /home/data/fusion/STAR-Fusion-master/util/STAR-Fusion.map_chimeric_reads_to_genes 
  586  /home/data/fusion/miniconda3/envs/starFusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes 

主要是因为它们虽然是都解析的是Chimeric.out.junction文件,但是star这个比对软件本身就修改了Chimeric.out.junction文件的格式,导致后面的解析Chimeric.out.junction文件的perl脚本也不得不与时俱进。