컨테이너 환경에 VirFinder 설치

6211 단어 bioinformatics
VirFinder 라는 소프트웨어의 인스톨에 약간 집계했으므로 메모해 둔다.

VirFinder 개요



논문 : h tps // 미 c로비 오메조 r인 l. 비오메 d센 t 등. 이 m/아르치 c㎇s/10.1186/s40168-017-0283-5

VirSorter (2015, 인용> 200)에 이어 사용된다 (2017, 인용> 60)
  • 후발이기 때문에 논문에서 VirSorter와의 비교도하고 있으며, 특히 짧은 콘티그에서 VirSorter보다 정밀도가 나온다.
  • VirSorter는 엄청난 애드혹에 여러 기법(기지 바이러스와의 상동성, 유전자의 길이, 미지 유전자의 비율 등)을 조합하여 독자적인 기준을 산출하고 바이러스인지 여부를 판단하지만, VirFinder는 바이러스와 비 바이러스 데이터를 수집하여 간단한 기계 학습 판별 문제로 해결하는 것이 좋습니다.
  • 수법으로서는 L1 정칙화를 더한 로지스틱 회귀. SVM이나 나이브 베이즈도 시도했지만 결과로 간단한 로지스틱 회귀가 가장 좋았습니다.
  • VirSorter는 파이프 라인의 내용을 이해하지 못하면 이해할 수없는 여러 출력이 있거나 부드럽고 해석이 어렵지만 VirFinder는 단순히 확률을 내기 만하기 때문에 이해하기 쉽습니다.
  • Jed A. Fuhrman 저자에 들어있는 Fuhrman 선생님은 해양 미생물학의 거인이지만 엄청난 시대에 적응하여 바이오 인포가 일어나고 있습니다.

    설치


  • R 패키지로 제공됩니다.
  • rocker를 기반으로 메타 게놈 분석을 위해 R의 다양한 버키지를 밀어 넣고 잡히 사용하는 컨테이너가 있기 때문에 거기에 넣습니다 (h tps : // c ぉ d. 도 c r. 코 m / u / 류 jhbv / Reposhi와 ry / Doc 케 r / 류 jhbv / r fu r-metage nome).
  • 기본적으로 VirFinder 리포지토리를 clone하고 VirFinder_1.1.tar.gz를 R에서 설치하면 된다.
  • VirFinder의 GitHub에는 source("*/biocLite.R") 라든지 biocLite() 라든지 쓰고 있지만 이것은 오래된 방법. Bioconductor 3.8부터는 BiocManager를 사용한다.
  • 이하 DockerFile ( from bioconductor 이하의 부분이 VirFinder 의 install 부분)
  • CyVerse 사용하면 더 편하게 갈 수있는 설이 있지만 CyVerse 잘 모르기 때문에 자력으로 넣었다
  • FROM rocker/verse:3.6.0
    MAINTAINER YOHEI_KUMAGAI
    
    # R
    
    RUN apt-get update \
      && apt-get install -y --no-install-recommends \
        lbzip2 \
        libfftw3-dev \
        libgdal-dev \
        libgeos-dev \
        libgsl0-dev \
        libgl1-mesa-dev \
        libglu1-mesa-dev \
        libhdf4-alt-dev \
        libhdf5-dev \
        libjq-dev \
        liblwgeom-dev \
        libpq-dev \
        libproj-dev \
        libprotobuf-dev \
        libnetcdf-dev \
        libsqlite3-dev \
        libssl-dev \
        libudunits2-dev \
        netcdf-bin \
        postgis \
        protobuf-compiler \
        sqlite3 \
        tk-dev \
        wget \
        unixodbc-dev \
      && install2.r --error \
        RColorBrewer \
        RandomFields \
        RNetCDF \
        classInt \
        deldir \
        gstat \
        hdf5r \
        lidR \
        mapdata \
        maptools \
        mapview \
        ncdf4 \
        proj4 \
        raster \
        rgdal \
        rgeos \
        rlas \
        sf \
        sp \
        spacetime \
        spatstat \
        spatialreg \
        spdep \
        geoR \
        geosphere \
        vegan \
        dichromat \
        ## from bioconductor
        && R -e "BiocManager::install(c('rhdf5','qvalue'))" \ # ここからVirSorterのインストール、ただしrhdf5はVirSorter関係ない
        && R -e "install.packages(\"glmnet\", dependencies=TRUE)" \
        && R -e "install.packages(\"Rcpp\", dependencies=TRUE)"
    WORKDIR /root
    RUN git clone https://github.com/jessieren/VirFinder.git
    RUN R CMD INSTALL /root/VirFinder/linux/VirFinder_1.1.tar.gz
    

    동작 확인


  • 유전연 스파콘에 Singularity로 변환한 상기 컨테이너를 돌진한다.
  • (base) [kumay@at028 VirFinder]$ module load singularity
    (base) [kumay@at028 VirFinder]$ singularity exec ~/test_container/r-for-metagenome-latest.img R
    
    R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
    Copyright (C) 2019 The R Foundation for Statistical Computing
    Platform: x86_64-pc-linux-gnu (64-bit)
    
    R is free software and comes with ABSOLUTELY NO WARRANTY.
    You are welcome to redistribute it under certain conditions.
    Type 'license()' or 'licence()' for distribution details.
    
    R is a collaborative project with many contributors.
    Type 'contributors()' for more information and
    'citation()' on how to cite R or R packages in publications.
    
    Type 'demo()' for some demos, 'help()' for on-line help, or
    'help.start()' for an HTML browser interface to help.
    Type 'q()' to quit R.
    
    > library(VirFinder)
    Loading required package: glmnet
    Loading required package: Matrix
    Loading required package: foreach
    Loaded glmnet 2.0-18
    
    Loading required package: qvalue
    > predResult <- VF.pred("Input_contigs.fna")
    [1] "Input_contigs.fna [1] line1-3 k141_2 flag=1 multi=2.0000 len=336 len 336 score 0.9184 pvalue 0.01"
    [1] "Input_contigs.fna [2] line3-5 k141_3 flag=1 multi=1.0000 len=328 len 328 score 0.7846 pvalue 0.0494"
    [1] "Input_contigs.fna [3] line5-7 k141_4 flag=1 multi=7.0000 len=303 len 303 score 0.6339 pvalue 0.1167"
    ...
    

    움직이고 있는 것 같다.

    이런 느낌의 R 스크립트를 실행하면 바이러스로 예측될 확률이 높은 순서로 정렬하여 출력해준다
    library(VirFinder)
    setwd("/home/kumay/virus_data/VirFinder")
    predResult <- VF.pred("Input_contigs.fna")
    predResult$qvalue <- VF.qvalue(predResult$pvalue)
    write(predResult[order(predResult$qvalue),],file="predicted_virus_sorted_by_qvalues")
    

    좋은 웹페이지 즐겨찾기