IGV 使用指南 | 在Linux上生成基因组可视化图

发布于

更新于


Bash
# 下载IGV安装包
wget https://data.broadinstitute.org/igv/projects/downloads/2.18/IGV_2.18.0.zip
# 解压IGV安装包
unzip IGV_2.18.0.zip
# 运行IGV(需要正确安装了指定版本的Java后才能正常运行)
cd IGV_2.18.0
igv.sh

Bash
# 从Singularity拉取一个基础Ubuntu容器
[root@comput1 ~/example]$ singularity pull library://library/default/ubuntu
INFO:    Downloading library image
28.44 MiB / 28.44 MiB [================================] 100.00% 2.66 MiB/s 10s
WARNING: unable to verify container: ubuntu_latest.sif
WARNING: Skipping container verification

[root@comput1 ~/example]$ ls
ubuntu_latest.sif
Bash
# 将sif文件转换为沙盒
[root@comput1 ~/example]$ singularity build --sandbox IGV_env/ ubuntu_latest.sif
INFO:    Starting build...
INFO:    Creating sandbox directory...
INFO:    Build complete: IGV_env/

[root@comput1 ~/example]$ ls
IGV_env  ubuntu_latest.sif
Bash
# 以可写方式进入沙盒
[root@comput1 ~/example]$ singularity shell --writable IGV_env/ 
Singularity> 
# 更新apt
Singularity> apt-get update
# 安装 Java 17(本次使用的 IGV 所指定的 Java 版本)
Singularity> apt install -y openjdk-17-jdk
# 安装 Xvfb
Singularity> apt-get install -y xvfb
# 安装 imagemagick
Singularity> apt-get install -y imagemagick
# 退出沙盒
Singularity> exit
查看完整代码
Bash
# 将sif文件转换为沙盒
[root@comput1 ~/example]$ singularity build IGV_env.sif IGV_env/
INFO:    Starting build...
INFO:    Creating SIF file...
INFO:    Build complete: IGV_env.sif
[root@comput1 ~/example]$ ls
IGV_env  IGV_env.sif  ubuntu_latest.sif

Bash
apt-get update
# 查看apt提供了的Java版本
apt search openjdk | grep -E 'openjdk-.*-jdk/'
# 本文中安装的是Java17
apt install -y openjdk-17-jdk
# 查看Java版本
java --version
Bash
# 下载Java安装包
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
# 新建一个安装路径
mkdir /etc/java-17-openjdk/
# 将Java安装包解压到安装路径
tar -xvf jdk-17_linux-x64_bin.tar.gz -C /etc/java-17-openjdk/

# 将Java添加进环境变量(临时)
export JAVA_HOME=/etc/java-17-openjdk/jdk-17.0.12/
export PATH=$PATH:$JAVA_HOME/bin

Bash
# 安装Xvfb
apt-get install -y Xvfb
# 运行Xvfb (Ctrl+C关闭服务)
Xvfb
Bash
# 使用xvfb-run启动需要调用图形界面的软件
xvfb-run -a --server-args="-screen 0 1280x800x24 -nolisten tcp" igv.sh --batch Batch_scripts_example.txt

Bash
# 安装 imagemagick
apt-get install -y imagemagick
# 裁剪图片 (-crop后的参数为:图片宽度x图片高度+起始位点横坐标+起始位点纵坐标。其中图片左上角的横纵坐标为(0,0))
convert example.raw.png -crop 968x485+167+0 example.png

Bash
# 备份源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 切换源,下面三个源任选一个执行
## 中科大源
echo '
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multivers
' > /etc/apt/sources.list
## 更新源
apt-get update

## 阿里源
echo '
deb http://mirrors.aliyun.com/ubuntu/ xenial main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
' > /etc/apt/sources.list
## 更新源
apt-get update

## 清华源
echo '
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
' > /etc/apt/sources.list
## 更新源
apt-get update
查看完整代码

Bash
genome hg19
load ./testSample.deduped.bam name=testSample
goto chrX:153,409,243-153,425,345
sort position
collapse
maxPanelHeight 300
preference NAME_PANEL_WIDTH 0
snapshotDirectory ./mySnapshotDirectory
snapshot testSample.OPN1LW.raw.png
exit
Bash
genome ./genome/hg19/hg19.genome
load ./genome/hg19/ncbiRefSeq.txt.gz name=Gene
load ./testSample.deduped.bam name=testSample
goto chrX:153,409,243-153,425,345
sort position
collapse
maxPanelHeight 300
preference NAME_PANEL_WIDTH 0
snapshotDirectory ./mySnapshotDirectory
snapshot testSample.OPN1LW.raw.png
exit
Bash
# 如果使用了手动方式安装的Java,则取消掉下面两行的注释,将Java添加到临时环境变量中
# export JAVA_HOME=/etc/java-17-openjdk/jdk-17.0.12/
# export PATH=$PATH:$JAVA_HOME/bin

# 使用Xvfb运行IGV生成IGV可视化图。IGV会根据batch文件中指定的命令生成基因组可视化图
xvfb-run -a --server-args="-screen 0 2560x720x24 -nolisten tcp" /root/shenh/singularity/IGV/IGV_2.18.0/igv.sh --batch ./Batch_script.txt
# 裁剪IGV生成的基因组可视化图
convert ./mySnapshotDirectory/testSample.OPN1LW.raw.png -crop 968x485+167+0 ./mySnapshotDirectory/testSample.OPN1LW.png
Bash
# 对于使用了Singularity的用户,命令如下
singularity exec IGV_env.sif sh run.sh
# 对于未使用Singularity的用户,命令如下
sh run.sh

Bash
(process:45461): dconf-CRITICAL **: 11:49:23.924: unable to create directory '/run/user/1019/dconf': Read-only file system.  dconf will not work properly.
Bash
# 在生产端服务器尝试运行Xvfb,发现已经被管理员运行了
Singularity> Xvfb
(EE) 
Fatal server error:
(EE) Server is already active for display 0
        If this server is no longer running, remove /tmp/.X0-lock
        and start again.
(EE)
Singularity> ls -l /tmp/.X0-lock
-r--r--r--. 1 root root 11 May 27 19:18 /tmp/.X0-lock

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注