美文网首页
第二讲:如何有效的管理自己的生信软件

第二讲:如何有效的管理自己的生信软件

作者: 生信人生 | 来源:发表于2019-01-29 18:47 被阅读0次

    2.1 软件的安装与管理

    安装生信软件是非常让人头疼的一件事。在我读PhD期间,它占据了我大约1/5的时间。这一讲,我将给大家介绍如何快速安装和管理自己的生信软件。

    2.1.1 软件安装

    生信学习中有很多的软件。大部分都需要安装附加软件(dependencies)。由于大家电脑或者服务器的设置不同,快速而有效的软件安装通常比较困难。下面我给大家介绍两个常用的工具:brewconda (对于docker这里我不在具体讲述,感兴趣的同学可以自行网上搜索教程)。

    2.1.1.1 如何使用brew

    brew 主要提供了两个版本,在Linux系统上它以linuxbrew呈现,在MacOS系统上它以homebrew呈现。这里我以linuxbrew为例给大家展示如何使用brew

    下载linuxbrew

    $ git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew (## 可以根据自己的喜好更改安装路径,这里我选择的是$HOME)
    

    .bashrc里设置linuxbrew的路径 (根据自己的喜好适当调整路径设置)

    PATH="$HOME/.linuxbrew/bin:$PATH"
    export MANPATH="$(brew --prefix)/share/man:$MANPATH"
    export INFOPATH="$(brew --prefix)/share/info:$INFOPATH"
    

    对于不熟悉.bashrc的同学,可以参考我的第一讲.

    常用的brew语句

    $ brew search <software>  ## 查找所需的软件
    $ brew install/uninstall <software> ##安装/卸载所需的软件
    $ brew link/unlink <software> ##对于特定版本的软件进行关联/解除关联
    $ brew cleanup ## 清理缓存
    

    2.1.2 如何使用conda

    bioconda中提供了很多生信使用的工具,依托anaconda或者miniconda,人们可以很方便的安装自己想要的工具。在安装自己喜欢的工具之前,同学们可以登录

    https://bioconda.github.io/recipes.html
    

    去查询自己所需的软件是否被bioconda收录。

    对于conda的安装, 如果喜欢anaconda (内置了很多软件,如果空间充足可以选择这个),同学们可以登录

    https://www.anaconda.com/download
    

    去下载自己所需的版本。

    如果喜欢miniconda(anaconda的简化版),同学们可以登录

    https://conda.io/miniconda.html
    

    去下载自己喜欢的版本。

    Note:anaconda/miniconda主要有两个不同的版本,一个是预先安装了python2,另一个是预先安装了python3。 请根据自己喜好自由选择。

    设置conda

    $ conda config --add channels defaults
    $ conda config --add channels conda-forge
    $ conda config --add channels bioconda
    

    conda安装软件

    $ conda install -m <the name of the package>
    

    2.2 不同版本软件的管理

    对于大部分的服务器,大家都喜欢用module去管理软件。两种常用的管理系统是ModulesLmodLmod对于Modules的设置是完全兼容的。反之则不那么友善。

    1. 如果大家的服务器上已经装了module,大家可以通过对自己.bashrc的设置来实现对自己软件的管理:
    $ export MODULEPATH=/full/path/to/your/modulefiles:$MODULEPATH
    

    或者用:

    $ module use /full/path/to/your/modulefiles
    

    在这之前,大家需要建立一个modulefiles folder

    $ mkdir -p /path/to/your/modulefiles
    

    下面我以samtools为例给大家介绍如何设置module。首先建立一个samtools folder

    $ mkdir -p /full/path/to/your/modulefiles/samtools
    

    然后进入samtoolsfolder

    $ cd /full/path/to/your/modulefiles/samtools
    

    在该folder里建立一个文本,例如1.8。 具体内容如下:

    #%Module######################################################################
    #
    # samtools modulefile
    #
    proc ModulesHelp { } {
        puts stderr "Sets up the paths you need to use samtools version 1.8"
    }
    set sys     [uname sysname]
    set version samtools ##设置工具的名字
    set tool    1.8 ##设置版本号
    if { [is-loaded $tool] && ! [is-loaded $tool/$version] } {
        module unload $tool
    }
    
    module load htslib/1.8 ##这里可以load所需的附加软件
    
    prepend-path PATH /Users/yyuan/Tools/samtools-1.8/bin ##设置软件的路径
    prepend-path BAM_ROOT /Users/yyuan/Tools/samtools-1.8 ## 设置bam library
    prepend-path LD_LIBRARY_PATH /Users/yyuan/Tools/samtools-1.8/lib ##设置library 
    prepend-path MANPATH /Users/yyuan/Tools/samtools-1.8/share/man ##设置manual
    
    

    设置完成后大家可以进行如下操作

    $ source ~/.bashrc ##这里也可以重新登录自己的服务器
    $ module show samtools/1.8
    

    去查看自己的设置是否成功。

    1. 如果自己的系统中没有安装module,那该怎么办呢?下面我给大家介绍如何安装Modules(这里最好要有root权限)。

    下载modules

    $ wget http://downloads.sourceforge.net/project/modules/Modules/modules-4.2.1/modules-4.2.1.tar.gz
    

    解压modules

    $ tar -xvzf modules-4.2.1.tar.gz
    

    安装modules(这里需要root权限,如果没有root权限,可以修改设置,这里我不在讲解怎么修改)

    $ cd modules-4.2.1
    $ ./configure
    $ make
    $ make install
    

    设置modulepath

    $ vim /usr/local/Modules/init/modulerc (# modify "module use --append /full/path/to/your/modulefiles")
    

    .bashrc中设置module

    case "$0" in
              -sh|sh|*/sh)  modules_shell=sh ;;
           -ksh|ksh|*/ksh)  modules_shell=ksh ;;
           -zsh|zsh|*/zsh)  modules_shell=zsh ;;
        -bash|bash|*/bash)  modules_shell=bash ;;
    esac
    module() { eval `/usr/bin/tclsh /usr/local/Modules/libexec/modulecmd.tcl $modules_shell $*`; }
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
    
    # If not running interactively, don't do anything
    case $- in
        *i*) ;;
          *) return;;
    esac
    
    source /usr/local/Modules/init/modulerc
    source /usr/local/Modules/init/profile.sh
    

    完成以上设置后,大家可以

    $ source ~/.bashrc ##这里也可以重新登录自己的服务器
    $ module -h
    

    去查看自己的设置是否成功。

    对于Lmod的设置,稍许有些复杂,感兴趣的同学可以到:

    https://sourceforge.net/projects/lmod/files
    

    进行下载。

    具有的安装步骤可以参考:

    https://lmod.readthedocs.io/en/latest
    

    Lmod文件的设置不同于modules, 通常它以.lua为后缀。模板如下tmp.lua

    help("Sets up the paths you need to use <software> version <version_info>")
    local version = '<version_info>'
    local tool = '<software>'
    whatis( [[<description of the software>]] )
    whatis( [[Compiled with gcc/xxxx]] )
    conflict("xxxxx")
    
    if (mode() == "load") then
      if (isloaded("<dependency>") ~= true) then
        load("<dependency/version>")
      end
    end
    if (mode() ~= "whatis") then
    prepend_path("PATH","/path/to/your/tool")
    end
    

    希望大家相互学习,多批评指正!

    版权所有者 Andy. Twitter: @Yuxuan_Yuan; Wechat: yyx8671;微信公众号:生信人生

    相关文章

      网友评论

          本文标题:第二讲:如何有效的管理自己的生信软件

          本文链接:https://www.haomeiwen.com/subject/jngxsqtx.html