在Linux服务器里面安装GISTIC软件
五六年前我就写过GISTIC软件的安装及使用教程,不过那个时候针对的还是SNP6.0这样的拷贝数芯片。GISTIC这个软件在TCGA计划里面被频繁使用者,用这个软件的目的很简单,就是你研究了很多癌症样本,通过芯片或者肿瘤外显子测序+得到了每个样本的拷贝数变化信息,一般是segment结果,可以解释为CNV区域,需要用GISTIC把样本综合起来分析,寻找somatic的CNV,并且注释基因信息。
GISTIC软件的使用有两个难点,一是在linux下面安装matlab工作环境,二是如何制作输入文件。
官网下载软件的离线安装包
官网是 :ftp://ftp.broadinstitute.org/pub/GISTIC2.0/
GISTIC软件的FTP站点
下载这个文件(GISTIC_2_0_23.tar.gz)即可:
GISTIC_2_0_23.tar.gz 596 MB
下载解压开来,代码如下:
mkdir -p $HOME/biosoft/GISTIC
cd $HOME/biosoft/GISTIC
wget ftp://ftp.broadinstitute.org/pub/GISTIC2.0/GISTIC_2_0_23.tar.gz
tar zxvf GISTIC_2_0_23.tar.gz
全部搞定后文件夹架构如下:
c
安装MCR_Installer
因为GISTIC软件是一个MATLAB程序,在Linux环境下运行需要MCR_Installer。matlab毕竟是收费软件,而且是有界面的。虽然搞生物信息的都用R和linux替代了MATLAB,但是很多高大上的单位,比如大名鼎鼎的broadinstitute,仍然是用matlab的,所以他们开发的程序也会以matlab代码的形式发布。但是考虑到大多研究者用不起matlab,或者不会用,所以就用linux系统里面安装matlab运行环境来解决这个问题,我们仍然可以把人家写的matlab程序,在linux命令行下面,当做一个脚本来运行!
我们前面下载的GISTIC软件离线包里面是有一个 MCR_Installer 文件夹,里面就有 MCR_Installer压缩包可以解压然后安装。
cd MCR_Installer
unzip MCRInstaller.zip
chmod 744 installer_input.txt
因为是Linux,所以使用安静模式安装软件,没有鼠标点点点的交互动画过程啦。需要注意java环境哦,然后需要提前理解好 installer_input.txt 文件。
# destinationFolder=$HOME/biosoft/GISTIC/MATLAB_Compiler_Runtime
# agreeToLicense=yes
# mode=silent
conda activate qc # 我的java在这个conda环境下面
./install -mode silent -agreeToLicense yes -destinationFolder $HOME/biosoft/GISTIC/MATLAB_Compiler_Runtime
这个步骤需要理解好 installer_input.txt 文件,挺难的其实。
安装过程会有一个简单的log日志,需要留意一下,最后出现下面的话语代表成功安装:
(Oct 08, 2020 16:29:36) Exiting with status 0
(Oct 08, 2020 16:29:36) End - Successful.
Finished
一键式使用GISTIC软件
首先需要修改那个GISTIC命令;
$ cat gistic2
#!/bin/sh
## set MCR environment and launch GISTIC executable
## NOTE: change the line below if you have installed the Matlab MCR in an alternative location
MCR_ROOT=$HOME/biosoft/GISTIC/MATLAB_Compiler_Runtime
MCR_VER=v83
echo Setting Matlab MCR root to $MCR_ROOT
## set up environment variables
LD_LIBRARY_PATH=$MCR_ROOT/$MCR_VER/runtime/glnxa64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$MCR_ROOT/$MCR_VER/bin/glnxa64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$MCR_ROOT/$MCR_VER/sys/os/glnxa64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
XAPPLRESDIR=$MCR_ROOT/$MCR_VER/MATLAB_Component_Runtime/v83/X11/app-defaults
export XAPPLRESDIR
## launch GISTIC executable
$HOME/biosoft/GISTIC/gp_gistic2_from_seg $@
修改的地方很少,就是MCR_ROOT这个变量,以及全路径调用gp_gistic2_from_seg命令而已。
以后每次运行超级简单:
conda activate qc
$HOME/biosoft/GISTIC/gistic2 -h
每个项目都会生成segment结果文件,完整的运行命令是:
basedir=`pwd`/gistic2_results
mkdir -p $basedir
echo --- running GISTIC ---
segfile=`pwd`/cnvkit_final_call.seg
refgenefile=$HOME/biosoft/GISTIC/refgenefiles/hg38.UCSC.add_miR.160920.refgene.mat
$HOME/biosoft/GISTIC/gistic2 -b $basedir -seg $segfile -refgene $refgenefile
-genegistic 1 -smallmem 1 -broad 1 -brlen 0.5 -conf 0.90 -armpeel 1 -savegene 1 -gcm extreme
绝大部分参数其实都是默认值,示例代码原样仿写的。
如果想知道这个GISTIC软件结果图表文件的生物学含义,或者TCGA数据库的CNV文件的GISTIC软件运行方式,我们大约一个星期后继续在生信技能树写教程哈!
参考教程:
- http://www.bio-info-trainee.com/1648.html
- http://www.bio-info-trainee.com/1166.html
- http://www.bio-info-trainee.com/4019.html
- HelloWorld,我的第一趟旅程出发点
- Android OpenGL开发实践 - GLSurfaceView对摄像头数据的再处理
- 走进科学:对七夕“超级病毒”XX神器的逆向分析
- 机器学习 - 朴素贝叶斯分类器的意见和文本挖掘
- 认知指纹:颠覆性的身份认证技术
- 跟我学姿势:极客教你如何科学的看电影
- Discuz 5.x/6.x/7.x投票SQL注入分析
- 论如何高效的挖掘漏洞
- Rxjava + retrofit + dagger2 + mvp搭建Android框架
- 走进科学:如何正确的隐藏自己的行踪
- 比特儿(Bter.com) 比特币交易平台被盗事件全解析
- BitTorrent Bleep:无法被监控的聊天软件
- QQ蠕虫的行为检测方法
- 趋势OfficeScan系列产品漏洞分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PAT (Basic Level) Practice (中文)1012 数字分类 (20 分)
- PAT (Basic Level) Practice (中文)1018 锤子剪刀布 (20 分)
- 还在用传统的方式驱动一个通信模组?不如一起来学习下TOS的AT模组框架吧!
- 编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(一)词法分析
- Codeforces Round #199 (Div. 2)C. Cupboard and Balloons
- PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
- PAT (Basic Level) Practice (中文)1020 月饼 (25 分)
- 201709-2ccf计算机职业资格认证考试第二题公共钥匙盒
- SAP Spartacus里cx-carousel的实现
- 技术分享 | 改写 mysqldump 解决 DEFINER 问题
- CNS图表复现04—单细胞聚类分群的resolution参数问题
- 学习Vue3.0,先从搭建环境开始
- AIM Tech Round 5 (rated, Div. 1 + Div. 2)C. Rectangles
- PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
- 编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(二)语法分析