블로그에 작성했던 글: Docker를 통해 배우는 Galaxy와 Plasmid Profiler ⇐ 이 글에서는 중간 단계에 데이터가 처리되는 방식에 대하여 학습한 것을 설명해 놓았다.
Plasmid profiler is a pipeline to perform comparative plasmid content analysis. It is designed to rapidly bin plasmid content using KAT, Short Read Sequence Typing, and BLAST followed by scoring hits based on a combined measure of maximized coverage and minimized sequence divergence. Hits are then visualized in both static and interactive heatmaps as well as arranged as tabular results. Input is provided in the form of a collection of whole genome sequence reads along with a reference plasmid database and replicon/gene of interest database. The output from the pipeline consists of a png heatmap, an interactive html heatmap, and tabular format results of all plasmids identified and their respective scores. (출처: Read the Docs)
Plasmid Profiler는 Galaxy 환경에서 돌아가는 workflow이다. 그런데 컴퓨터에 직접 galaxy를 설치하는 것이 만만치가 않다. 그럴때 쓰라고 docker가 있는 것이다.
약간 복잡하므로 잘 읽고 이해하기 바란다.
루트 권한으로 다음과 같이 입력하라. 종료한 뒤에는 하드디스크에 아무것도 남지 않는다.
# docker run -t -p 48888:80 phacnml/plasmidprofiler_0_1_6
그러나 도커를 셧다운한 뒤 다시 실행하면 이전에 작업한 파일이 남아있지 않게 된다(기본 동작). 데이터가 계속 남아있게 하려면 다음과 같이 실행하면 된다. galaxy_storage 디렉토리는 미리 만들지 않아도 된다.
# docker run -t -p 48888:80 -v /data/apps/galaxy_storage/:/export/ phacnml/plasmidprofiler_0_1_6
sftp를 통해서 대용량의 파일을 전송하려면 다음과 같이 하여라. 웹 브라우저에서 전송 가능한 파일의 크기에는 한계가 있음에 유의할 것.
# docker run -i -t -p 48888:80 -p 8022:22 -v /data/apps/galaxy_storage/:/export/ phacnml/plasmidprofiler_0_1_6
sftp를 통한 파일 전송은 다음과 같이 8022번으로 접속하여 실행한다. 파일이 저장되는 위치는 /data/apps/galaxy_storage/ftp/admin@galaxy.org이다(root 접근 가능).
$ sftp -v -oPort=8022 -o User=admin@galaxy.org localhost
웹 브라우저에서 돌아가는 Galaxy 환경에서 PlasmidProfiler를 실제 실행하는 방법은 Read the Docs - Usage 항목에 상세하게 나온다.
Plasmid Profiler를 멈추려면 docker ps를 실행하여 현재 구동 중인 도커 컨테이너의 ID를 확인한 뒤, docker kill <containier id>를 입력하면 된다.
여기에는 기본으로 적재된 Plasmid Profiler Workflow(19 단계) 이외에 내가 만든 워크플로우가 포함되어 있다. 왜 나는 기본 워크플로우를 수정하려고 했는가? Plasmid profiler는 플라스미드 서열을 조립하여주는 도구가 아니다. 하지만 훌륭한 curated plasmid database에 대해 매핑(SRST2 - 정확히 말하자면 pathogen typing)까지 실시한다면 조립은 왜 못하겠는가? 물론 내가 훌륭한 Galaxy 프로그래머라면 원하는 기능을 부여하여 새로운 워크플로우를 만들면 되지만 아직 그럴 수준은 아니다. 따라서 Plasmid profiler를 살짝 변형하여 그 중간 결과를 취한 다음, 이를 가지고 수작업으로 원하는 일을 이루려는 것이다.
그렇다면 내가 원하는 중간 결과물은 어디에 있는가? 우선 오른쪽의 History 패널을 보라. Dataset pair ⇒ Reads ⇒ Remove beginning/Sort/Filter/Cut on collection # ⇒ Fasta Extract Sequence on collection #로 이어지는 결과물이 보일 것이다. 이를 클릭하면 각 샘플에 대한 결과 링크가 있고, 이를 클릭하면 pp_plasmid_database.fasta에서 hit한 대상이 multi-FASTA file로 주어진다.
플로피디스크 아이콘을 클릭하면 파일로 저장할 수 있다. 파일 형식은 Galaxy617-[Fasta_Extract_Sequence_on_data_576_and_data_329__Fasta].fasta라서 샘플(균주) 이름이 직접적으로 드러나지 않으니 잘 관리해야 한다. 혹은 [i](View details) 아이콘을 클릭하여 표시되는 Job Information 항목에서 데이터 파일의 경로를 알 수 있다.
Full Path: /export/galaxy-central/database/files/007/dataset_7065.dat
/export 디렉토리는 docker 실행 시에 /data/apps/galaxy_storage로 연결하였으므로 여기를 뒤지면 된다.
맨 마지막의 BLAST 단계를 생략한 것이다. 당연히 heat map은 생기지 않는다.