Table of Contents

실습용 서버에 프로그램 설치하기

소개의 글

이 문서는 원래 KOBIC에서 제공한 실습용 서버에 필요한 프로그램을 설치하는 방법을 설명하기 위한 것이었습니다. 따라서 /BiO 디렉토리 하위에 대부분의 프로그램(데이터도 포함)을 설치하는 것을 전제로 하였었습니다. 그러나 교육이 끝난 지금, 실습에 사용했던 환경을 여러분이 직접 사용하실 수 있는 곳에 설치하는데 도움을 주는 문서로 차차 바꾸어 나가고자 합니다. 기준 환경은 CentOS 7로 하되 Oracle VirtualBox에 설치한 가상 머신도 나쁘지는 않습니다. 이는 mg-GlobOS v0.11로 구현되었으며, 2019년 11월 24일까지 이 문서는 가상 머신을 만드는 방법을 설명하는 것으로 개편될 것입니다. 만약 접속하여 사용 가능한 리눅스 서버가 있다면, 관리자 권한이 없더라도 문제가 없을 것입니다. 그것이 바로 conda의 힘입니다.

여담이지만 anaconda, conda 및 bioconda를 명확히 구별하는 것도 썩 쉽지는 않습니다. anaconda installer를 다운로드하여 설치하는 것이 시작입니다. 그러면 비로소 conda(package manager)라는 명령어를 쓸 수 있게 되고, bioconda '채널'에 등록된 수많은 생명정보 프로그램 패키지를 다운로드하여 설치할 수 있습니다. 이상의 과정은 관리자 권한과 무관하게 실행하게 됩니다.

mg-GlobOS 0.11 (1911)의 기본 환경 및 Anaconda3 설치하기

$ uname -a
Linux globos 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
$ python -V
Python 2.7.5
$ perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 39 registered patches, see perl -V for more detail)
$ gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
$ whoami
user
$ groups
user wheel vboxsf

관리자 권한을 일절 쓰지 않고 필요한 프로그램을 설치하기 위해 노력하였다. 그러려면 bioconda에 의존하지 않을 수 없다. 처음에는 실습일 기준(2019년 11월) 최신 anaconda 설치 파일(Anaconda3-2019.10-Linux-x86_64.sh)을 쓰고자 하였으나 이는 CentOS 7.7 가상머신 환경에서 설치되지 않아서 부득이하게 2019.07 버전을 사용하였고, 실습에 쓰인 KOBIC 서버에도 이를 설치하였었다.

VirtualBox의 CentOS 7.7 가상머신에서 Anaconda3-2019.10이 설치되지 못하는 화면

Anaconda의 설치 위치는 교육용 서버에서는 /BiO/day1/anaconda3로, mg-GlobOS v0.11에서는 /home/user/anaconda3로 하였다.

$ bash Anaconda3-2019.07-Linux-x86_64.sh
.... 라이센스 동의
PREFIX=/BiO/day1/anaconda3 # 설치 위치(쓰기 권한이 있는 곳으로 설정할 것)
...
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> 

여기에서 yes를 선택하면 .bashrc 끝부분에 콘다 초기화를 위한 몇 줄의 코드가 자동으로 추가되며(conda init 명령이 하는 일), 새로 로그인을 하면 conda base environment를 활성화(activate)하게 된다. init와 activate의 차이를 이해하는 것이 중요하다.

[no] >>> yes
...
no change     anaconda3_설치_디렉토리/etc/profile.d/conda.csh
modified      홈_디렉토리/.bashrc

==> For changes to take effect, close and re-open your current shell. <==
# 재로그인 또는 source ~/.bashrc 실행 후
(base) $

no를 선택하면 다음과 같은 설명이 나온다. 이런 상태로 설치를 마쳤다면 eval~ 명령어를 입력해야 conda base environment를 활성화할 수 있다는 뜻이다. eval.. 명령어 내부의 YOUR_SHELL_NAME은 bash로 바꾸어야 한다.

You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:

eval "$(anacond3_설치_디렉토리/bin/conda shell.YOUR_SHELL_NAME hook)" 

To install conda's shell functions for easier access, first activate, then:

conda init

다음은 Anaconda3 초기화를 위해 conda init를 쓰건 안쓰건 공통적으로 나오는 메시지이다. 이 명령을 수행하면 ~/.condarc에 해당 설정이 기록되고, conda base environment의 자동 활성화가 되지 않는다. 이런 상태에서는 conda activate를 실행해야 한다.

If you'd prefer that conda's base environment not be activated on startup,   
 set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Anaconda3!

===========================================================================

conda config 명령을 실행하면 홈 디렉토리의 .condarc 파일에 설정이 기록된다. 로그인 시 자동 활성화가 되지 않게 하였다면, conda base 환경으로 들어가기 위해 다음과 같이 하면 된다. YOUR_SHELL_NAME은 bash로 바꾸어 쓴다. Conda base environment를 활성화하는 방법을 정리하면 다음과 같다.

  1. [conda init로 초기화를 하지 않은 경우(.bashrc 뒷부분이 수정되지 않은 경우)]: eval “$(anaconda3_설치_디렉토리/bin/conda shell.YOUR_SHELL_NAME hook)”
  2. [conda init로 초기화를 한 경우]: 재로그인을 하면 자동으로 활성화가 된다. 그러나 .condarc 파일에 “auto_activate_base: false” 라인이 존재한다면 conda activate를 실행해야 함

수작업으로 설치한 프로그램(~/apps)

이미 bioconda용으로 만들어진 패키지가 있을지도 모르지만 원본 사이트에서 바이너리를 가져다가 압축을 풀었다. 소스로부터 직접 compile이 필요한 것은 conda base 환경에서 실시하였다.

기타 실행 파일 또는 스크립트는 /BiO/day1/bin에, mg-GlobOS v0.11에서는 ~/bin에 두었다. 여러 소스에서 구하거나 내가 수정한 것, 또는 내가 직접 만든 것을 포함한다. 여기에 있는 파일은 다음과 같다.

다음을 실행하여야 수작업으으로 설치한 프로그램을 $PATH 환경변수에 등록할 수 있다.

$ source ~/SET_PATH.sh

bioconda를 이용하여 설치한 프로그램

~/.condarc 설정

channels:
  - bioconda
  - conda-forge
  - defaults
  - r
auto_activate_base: false

“auto_activate_base: false”가 설정되어있지 않으면 conda activate를 하지 않아도 된다.

base environment (python 3.7.3)

bioconda package 설치는 다음의 순서대로 하였다. 각 패키지의 의존성이 완벽하게 조화롭지는 못하여(특히 jellyfish를 설치할 때) error 수준은 아니더라도 주의를 기울일만한 메시지가 출력됨을 피하기 어렵다.

quast는 conda install로 잘 되지 않아서 다음과 같이 base environment에서 설치하였다.

$ cd ~/apps
$ git clone https://github.com/ablab/quast.git
$ cd quast
$ ./setup.py install # basic installation
$ ./setup.py test

ls_bsr environment (python 3.5.5)

Python >2.7 and ⇐3.5 환경이 필요한 LS-BSR는 별도의 conda environment를 만들어 설치한다.

$ conda create -n ls_bsr python=3.5
$ conda activate ls_bsr
$ conda install -c bioconda blast vsearch cd-hit prodigal ucsc-blat diamond biopython
$ cd ~/apps
$ git clone https://github.com/jasonsahl/LS-BSR.git # version 1.03
$ cd LS-BSR
$ python setup.py install

To test the install:

$ python ls_bsr.py --version
$ python tests/test_all_functions.py

amos environment (python 2.7.15; +pbh5tools)

minimus2를 이용한 circlator 작업을 위하여 설치한다. base environment에 설치된 circlator는 python >=3이 필요하다 하고, amos 패키지도 필요하다 하면서 정작 amos를 설치하려고 알아보면 python 2.7이 필요하다고 하니 이는 명백한 모순이다. base environment에 circlator를 설치할 때 amos는 자동으로 깔리지는 않는다.

$ conda create -n amos python=2.7
$ conda activate amos
$ conda install amos

여기까지 한 다음 toAmos와 minimus2 스크립트를 찾아서 /BiO/day1/bin에 추가해 둔다. 그러고나서 minimus2 스크립트 내의 show-coords와 delta-filter의 PATH를 고친다. python 2.7이 필요한 phb5tools도 같은 환경에 설치한다.

$ conda install -c bioconda pbh5tools

실습용 스크립트

특별한 언급이 없으면 전부 base environment에서 진행한다. 최신본은 여기를 클릭하라. 단축 URL은 http://bit.ly/2WNG5XZ이다.