User Tools

Site Tools


metamos_test_2017

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
metamos_test_2017 [2017/03/23 15:10]
hyjeong [runPipeline의 이해]
metamos_test_2017 [2017/03/28 19:49] (current)
hyjeong [Candidatus Carsonella ruddii 샘플을 이용한 테스트]
Line 1: Line 1:
 +====== MetAMOS test 2017 ======
  
 +많은 어려움을 뚫고서 2016년 초여름에 MetAMOS를 설치하여 어느 상태로는 돌아가게 만드는데 성공하였다. 그러나 인쇄한 매뉴얼이 너덜너덜해지도록 줄을 치고 메모해가면서 정독하고 테스트를 하였지만 아직 완벽한 상태는 아니다. 만 1년이 되기 전에 사용법을 완전히 익히고 어느 리눅스 서버에든 쉽게 재설치를 할 수 있도록 다시 한 번 종합적인 테스트를 실시한다.
 +
 +===== Candidatus Carsonella ruddii 샘플을 이용한 테스트 =====
 +MetAMOS의 샘플 데이터는 160 kb의 작은 유전체를 지닌 bacterial endosymbiont "​Candidatus Carsonella ruddii PV"의 50x read를 사용하는 것으로 되어있다. fasta 및 fastq 파일과 reference(complete)가 전부 존재한다. _pe_가 암시하듯이 interleaved 형태의 paired end sequence이다. ​
 +
 +  8000000 bp / 100000 seqs; 80.0 average length -- carsonella_pe_filt.fna
 +  8000000 bp / 100000 seqs; 80.0 average length -- carsonella_pe_filt.fq
 +  159662 bp / 1 seqs; 159662.0 average length -- carsonella_reference.fna
 +
 +실행 위치는 전부 path/​to/​metAMOS-1.53rc/​Test 디렉토리이다.
 +==== initPipeline ====
 +interleaved fasta file의 사례이다.
 +  ../​initPipeline -f -m carsonella_pe_filt.fna -d test1  -i 500:3500
 +
 +==== runPipeline의 이해 ====
 +-f STRING(force this step)과 -n STRING(step to skip)을 지정하지 않으면 MultiAlign, FunctionalAnnotation,​ FindRepeats,​ FindScaffoldORFS 단계를 생략한다. 실제로 사용된 명령어 라인은 output_directory/​Logs/​COMMANDS.log를 열어보면 그대로 나온다.
 +
 +=== runPipeline -d test1만 수행하면?​ ===
 +default assembler인 SOAPdenovo(k-mer 31)에 의한 조립은 되지만 Abundance(no plot), Annotate(100% no hits) Classify (all unknown: 13 = 17 contigs + 6 scaffolds) 결과는 이상하다. Postprocess에 의하여 proba.ctg.fa와 proba.scf.fa가 나온다. 이제 옵션을 하나씩 추가해 보자.
 +
 +=== runPipeline -d test1 -k 55 -f Abundance,​Annotate,​Classify ===
 +Abundance(no plot), Annotate(100% no hits) Classify (all unknown)
 +
 +=== runPipeline -d test1 -k 55 -c fcp -f Abundance,​Annotate,​Classify ===
 +default annotate program인 FCP를 명시적으로 설정한다. 드디어 Annotate 결과가 나타났고 Classify도 100% Gammaproteobacteria로 나왔다. 그러나 Abundance는 여전히 플롯을 그리지 못한다.
 +
 +=== runPipeline -d test1 -k 55 -c kraken -f Abundance,​Annotate,​Classify ===
 +-c kraken을 설정하면 Annotate(100% No hits), Classify(unknown) 그러나 Abundance는 플롯이 없다.
 +
 +=== runPipeline -c kraken -d test1 -k 55 -f Assemble,​MapReads,​FindORFS,​Annotate,​Propagate,​Classify,​Abundance ===
 +이렇게 하면 run_pipeline_test.sh와 거의 같아진다. 그러나 결과는 나아지지 않았다. **도저히 이해하기 어렵지만 run_pipeline_test.pl의 마지막 라인과 같은 형식으로 하지 않으면 잘 되지 않는다는 뜻이다.**
 +
 +
 +==== run_pipeline_test.sh의 실패 원인은? ====
 +MetAMOS 설치 뒤 가장 먼저 실행하는 [[https://​github.com/​marbl/​metAMOS/​blob/​v1.5rc3/​Test/​run_pipeline_test.sh|run_pipeline_test.sh]] 스크립트는 **FindScaffoldORFs 스텝에서 에러**가 발생한다.
 +
 +  #/bin/sh
 +  ../​initPipeline -f -m carsonella_pe_filt.fna -d test1  -i 500:3500
 +  ../​runPipeline -a soap -c kraken -g fraggenescan -p 15 -d test1 -k 55 -f Assemble,​MapReads,​FindORFS,​Annotate,​FunctionalAnnotation,​Propagate,​Classify,​Abundance,​FindScaffoldORFS -n FunctionalAnnotation
 +
 +FindScaffoldORFs 스텝이 이 스크립트에서는 반드시 실시하는 것으로 되어있지만 실제로는 필수가 아니다. 매뉴얼을 살펴보면 이 단게의 목적은 "Find ORFs in scaffolds, mainly serves as an extra validation step after Scaffold"​라 설명하였다. 이 에러를 피하려면 다음의 두 가지 방법이 있다.
 +  - FindScaffoldORFs를 생략한다. runPipeline에서 -f 이하 목록에서 이를 제거한다. 필수 스텝이 아니므로 ​
 +  - FindScaffoldORFs를 그대로 실행하되 기본 프로그램인 FragGeneScan을 MetaGeneMark로 바꾼다(-g metagenemark)
 +
 +=== Abundance/​Annotate/​Classify 결과가 비정상 ===
 +-c kraken을 -c fcp(default)로 바꾸면 Annotate와 Classify는 제대로 작동한다. FCP가 default이므로 -c STRING 옵션을 아예 주지 않아도 될것 같으나 그렇지는 않다. 따라서 kraken의 설치상태가 완벽하지 않다고 보면 된다. 다른 위치에 설치한 minikraken_20141208 디렉토리를 /​path/​to/​metAMOS-1.5rc3/​Utilities/​DB/​kraken이란 명칭으로 심볼릭 링크를 만든 뒤 다시 실행하니 여전히 결과는 비어있다. 왜 그럴까? kraken을 실행한 커맨드를 찾아보았다.
 +
 +Annotate를 담당하는 소프트웨어는 FCP, Kraken 그리고 PhyloSift 3종이다.
 +
 +Abundance는 metaphyler가 담당한다.
metamos_test_2017.txt · Last modified: 2017/03/28 19:49 by hyjeong