MetaPhase: Hi-C를 사용한 메타게놈 디콘볼루션을 위한 소프트웨어 도구입니다.
미국 워싱턴 주 시애틀에 있는 워싱턴 대학교 게놈 과학과의 Josh Burton( jnburton at uw.edu
)이 작성함
G3 출판: Genes | 게놈 | 유전학 (인용해주세요)은 여기에 있습니다: http://dx.doi.org/10.1534/g3.114.011825
MetaPhase란 무엇이며 왜 관심을 갖나요?
MetaPhase를 사용하려면 무엇이 필요합니까?
시스템 요구사항
MetaPhase 패키지 다운로드
MetaPhase 패키지 컴파일
연습: 샘플 데이터 세트에서 MetaPhase 사용해 보기
입력 파일 목록
초안 메타게놈 어셈블리 만들기
Hi-C 읽기를 초안 메타게놈 어셈블리에 정렬
참조 게놈 제공
TSV 파일 생성
필수 명령줄 인수
선택적 명령줄 인수
출력 명령줄 인수(모든 선택적 토글)
차트
이미지
출력 디렉터리의 파일
라케시스 실행
MetaPhase가 실행되지 않습니다!
MetaPhase가 충돌합니다!
MetaPhase가 이상한 결과를 생성하고 있습니다!
MetaPhase는 메타게놈 디콘볼루션을 수행하는 소프트웨어 도구입니다. 즉, 일반적으로 다양한 미생물 종의 혼합 게놈 샘플에서 생성된 어셈블리인 메타지놈 어셈블리를 입력하고 해당 어셈블리의 어떤 콘티그가 동일한 게놈에 함께 속하는지 결정합니다. 메타게놈 어셈블리에는 혼합 샘플에 있는 어느 한 종의 완전한 게놈이 포함되어 있지 않지만, 디콘볼루션된 어셈블리에는 많은 개별 종의 거의 완전한 게놈이 포함될 수 있습니다. MetaPhase는 염색질 구조(종이)를 연구하는 확립된 분자 기술인 Hi-C에서 생성된 데이터를 사용합니다.
미생물 군집을 연구하고 개별 미생물 종의 게놈을 알고 싶다면 MetaPhase를 사용하고 싶을 것입니다. MetaPhase는 상당히 복잡한 공동체에서 잘 작동하며 진핵생물과 원핵생물을 똑같이 잘 연구할 수 있습니다. MetaPhase는 동일한 종의 밀접하게 관련된 계통을 분리할 수 없습니다. 이 모든 균주를 단일 클러스터에 넣을 것입니다. MetaPhase는 인간 장내 미생물과 같은 수천 종의 공동체에서 테스트되지 않았으며 풍부도가 1% 미만인 종을 안정적으로 감지할 수도 없습니다. (여기서의 한계는 표준 드 노보 메타게놈 어셈블리 소프트웨어가 희귀종의 콘티그를 포함하는 초안 메타게놈 어셈블리를 생성할 수 없다는 점에 있습니다. MetaPhase가 이러한 콘티그를 분리할 수 있는 능력은 없습니다.)
단일 종 내에서 변형 변형을 연구하는 경우 MetaPhase를 사용하고 싶지 않습니다. 또는 인간 암 게놈의 게놈 재배열을 연구하는 경우. 또한 메타게놈 Hi-C 데이터 세트가 있거나 이를 생성하려는 의지가 없는 한 MetaPhase를 사용하고 싶지 않습니다. Hi-C는 배우기에 사소한 기술이 아닙니다. (분자보다는) 순전히 전산적 메타게놈 디콘볼루션은 어렵지만 불가능한 것은 아닙니다. MetaPhase 논문 소개에 인용된 논문을 참조하세요.
높은 수준에서 MetaPhase를 실행하려면 두 가지만 필요합니다.
초안 드 노보 메타게놈 어셈블리 . 이는 Velvet, IDBA-UD, ABySS 또는 SPAdes와 같은 다양한 어셈블리 도구를 사용하여 샷건 메타지놈 시퀀싱 라이브러리에서 생성할 수 있습니다.
메타게놈 샘플에서 생성된 Hi-C 시퀀싱 라이브러리 - 바람직하게는 새로운 메타게놈 어셈블리를 생성하는 데 사용된 것과 동일한 샘플이거나 매우 유사한 샘플입니다.
낮은 수준에서 MetaPhase에는 몇 가지 선택적 입력뿐만 아니라 여러 가지 입력 파일이 필요합니다. 입력 파일에 대한 자세한 내용은 섹션 C1, "입력 파일 목록"을 참조하세요.
MetaPhase를 설정하고 실행하려면 최소 16GB의 메모리와 다음 소프트웨어가 설치된 UNIX 환경에서 실행되는 컴퓨터가 필요합니다.
gcc, C++ 컴파일러(http://gcc.gnu.org/)
zlib 압축 라이브러리(http://www.zlib.net/)
다음 소프트웨어가 필요할 수도 있습니다.
짧은 읽기 정렬기 BWA(http://bio-bwa.sourceforge.net/) 또는 다른 유사한 정렬기
blastn
, tblastx
및 makeblastdb
명령을 포함하는 명령줄 형식의 BLAST 정렬기(http://www.ncbi.nlm.nih.gov/books/NBK1763/)
메타게노믹스 데이터세트에서 사람의 판독값을 제거하는 bmtagger 소프트웨어(http://biowulf.nih.gov/apps/bmtagger.html)
MetaPhase에는 Boost C++ 라이브러리(http://www.boost.org/)와 SAMtools 툴킷(http://samtools.sourceforge.net/)도 필요하지만 이는 MetaPhase 설치 패키지에 포함되어 있습니다.
https://github.com/shendurelab/MetaPhase/archive/master.zip에서 MetaPhase 패키지를 UNIX 파일 시스템으로 다운로드합니다. tarball( MetaPhase.tar.gz
)을 다운로드한 경우 다음 UNIX 명령을 사용하여 압축을 풉니다.
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
이제부터는 기본 MetaPhase 디렉터리를 <MetaPhase>
로 지칭합니다.
MetaPhase를 컴파일하려면 <MetaPhase>
디렉터리에 make
입력하면 됩니다. MetaPhase를 실행하려면 $LD_LIBRARY_PATH
에 <MetaPhase>/include/boost_1_47_0/stage/lib
추가해야 할 수도 있습니다(문제를 방지하려면: cannot open shared object file...
). 마지막으로 다음 중 하나를 실행하십시오. <MetaPhase>
디렉터리에서 MetaPhase를 가져오거나 해당 디렉터리를 $PATH
에 추가하세요. 이는 일부 MetaPhase 모듈이 MetaPhase 패키지에 포함된 실행 가능한 스크립트 FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
및 MakeClusteringResultHeatmap.R
에 액세스해야 하기 때문에 중요합니다.
MetaPhase 패키지에는 MetaPhase 작동 방식을 알아보기 위해 실행할 수 있는 작은 테스트 사례가 포함되어 있습니다. 이는 다음 하위 디렉터리가 있는 test_case
디렉터리에 포함되어 있습니다.
<MetaPhase>/test_case/assembly/
: 새로운 메타게놈 어셈블리 초안인 assembly.fasta
포함합니다. 이 어셈블리는 훨씬 더 큰 세균성 질염 샘플 어셈블리에서 가져온 20개의 콘티그로 구성됩니다. 여기서는 메타게놈 어셈블리의 장난감 예제로 사용됩니다.
<MetaPhase>/test_case/HiC/
: BV.H3.head.bmt.1.fq 및 BV.H3.head.bmt.2.fq라는 2개의 fastq 파일을 포함합니다. 이러한 판독값은 세균성 질염 샘플에서 시퀀스된 훨씬 더 큰 Hi-C 데이터세트의 하위 집합입니다. 사람이 읽은 내용을 제거하기 위해 이미 bmtagger로 필터링되었습니다.
<MetaPhase>/test_case/refs/
: Lactobacillus iners 박테리아에 대해 공개적으로 사용 가능한 참조 게놈 LI.fasta
포함되어 있습니다. 이는 MetaPhase가 클러스터가 L. iners 게놈과 일치하는지 확인하는 데 사용할 선택적 입력입니다.
<MetaPhase>/test_case/tsvs/
: 다른 입력 파일의 위치를 설명하고 MetaPhase에서 사용하는 두 개의 TSV 파일을 포함합니다.
<MetaPhase>/test_case/out/
: 이 디렉터리는 처음에는 존재하지 않습니다. MetaPhase가 테스트 케이스에서 실행되면 이 디렉터리가 생성되고 여기에 출력이 저장됩니다.
test_case에서 누락된 하나의(선택적) 입력은 뉴클레오티드 서열의 BLAST 데이터베이스입니다. 알려진 모든 서열에 대해 메타게놈 어셈블리의 콘티그를 쿼리할 수 있는 이 데이터베이스는 테스트 패키지에 비해 너무 크지만 BLAST 웹 사이트에서 다운로드할 수 있습니다. 이 데이터베이스를 사용하려면 --blast_dir
명령줄 인수를 설정해야 합니다.
test_case에 MetaPhase를 적용하려면 다음 명령을 실행합니다.
BWA와의 정렬을 위해 드 노보 메타게놈 어셈블리 초안을 준비합니다. bwa
$PATH
에 있어야 합니다. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Hi-C 판독값을 드래프트 어셈블리에 맞춥니다. 이는 이미 제공되는 스크립트인 align.sh
사용하여 bwa aln
및 bwa sampe
실행하고 MetaPhase가 사용할 BAM 파일을 생성합니다. bwa mem
아닌 bwa aln
및 bwa sampe
사용해야 합니다. cd <MetaPhase>/test_case/HiC
align.sh
TSV 파일을 검사하여 해당 파일이 수행하는 작업을 이해했는지 확인하세요. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
이제 기본 명령줄 인수 세트를 사용하여 MetaPhase 테스트 사례를 실행하세요. 이러한 모든 명령줄 인수의 목적은 아래 섹션 D, "MetaPhase 실행"에 설명되어 있습니다. cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
MetaPhase가 수행할 첫 번째 작업은 참조 게놈 LI.fasta에 대해 초안 어셈블리의 콘티그를 정렬하는 것입니다. 이 작업은 몇 분 정도 걸릴 수 있지만 한 번만 기다리면 됩니다. 결과는 특수 파일에 캐시됩니다. 다음으로 MetaPhase는 Hi-C 연결을 통해 드래프트 어셈블리의 20개 contig를 클러스터링하여 3개의 클러스터를 생성합니다( -N 3
때문에). 마지막으로 MetaPhase는 생성된 클러스터에 대한 기본 통계를 보고합니다.
이제 --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
명령줄 인수 중 하나 이상을 추가하여 MetaPhase를 다시 실행해 보세요. 이러한 각 옵션을 사용하면 화면, 파일, 이미지 등 다양한 형식으로 더 많은 정보가 출력됩니다. 자세한 내용은 D2 섹션, "선택적 명령줄 인수"를 참조하세요.
이제 test_case/out/test_case
를 살펴보세요. 이는 MetaPhase 실행으로 생성된 출력 디렉터리입니다. 여기에는 여러 출력 파일이 포함되어 있습니다. cluster.*.fasta
파일은 클러스터 fastas입니다( --output_cluster_fastas
사용하여 실행한 경우에만 존재함). 하위 디렉터리인 cached_data
에는 BLAST 실행 및 MetaPhase 클러스터링의 결과를 포함하는 캐시된 데이터 파일이 포함되어 있습니다.
test_case는 매우 작은 데이터 세트이며 그 결과는 생물학적으로 유용하지도 일반적이지 않습니다. 예를 들어, Hi-C 읽기 쌍이 너무 적어서 20개의 콘티그 중 10개가 완전히 연결 해제되고 연결된 것들은 3개의 별도 클러스터에 있습니다(따라서 3개 미만의 클러스터를 생성하는 것은 불가능합니다). 이로 인해 다른 유용한 다른 설명을 설명할 수 없습니다. MetaPhase의 특징은 클러스터 수를 예측하는 데 사용할 수 있다는 것입니다. 샘플에서(안타깝지만 test_case에서는 아님) -N 1
사용하여 MetaPhase를 실행할 수 있으며 이는 MetaPhase 논문의 그림 S4에 있는 것과 같은 E(N) 농축 곡선을 생성합니다. 이를 통해 메타게놈 어셈블리의 대략적인 종 수와 최적의 클러스터 수를 결정할 수 있습니다.
MetaPhase는 다음 입력 파일을 직접 사용합니다. 이러한 모든 파일의 모양에 대한 그림은 test_case를 참조하세요.
필수 파일:
fasta 형식의 초안 메타게놈 어셈블리
초안 메타게놈 어셈블리에 대한 Hi-C 읽기 정렬을 설명하는 하나 이상의 SAM/BAM 파일입니다. 이러한 SAM/BAM 파일에는 각 읽기가 한 번만 나열되어야 합니다. 즉, bwa mem이 아닌 bwa aln 및 bwa sampe를 사용하여 생성되어야 합니다.
BAM 입력 파일 세트와 참조 게놈 세트를 각각 설명하는 두 개의 TSV 파일 <scenario>.HiC_libs.tsv
및 <scenario>.refs.tsv
. 선택적 파일:
알려진 모든 뉴클레오티드( nt
) 및/또는 단백질( nr
) 서열을 설명하는 BLAST 데이터베이스입니다. 이 데이터베이스의 업데이트된 버전은 BLAST 웹사이트에서 다운로드할 수 있습니다. 여기에는 필요한 blastn
및 tblastx
명령줄 유틸리티를 설치하는 방법에 대한 지침도 포함되어 있습니다. 이러한 데이터베이스는 규모가 큽니다(2015년 현재 nt
는 ~25Gb이고 nr
은 ~50Gb입니다.)
샘플에 있다고 생각되거나 샘플의 사물과 관련된 종을 설명하는 fasta 형식의 참조 게놈 세트입니다. 샘플의 모든 내용을 알지 못하는 경우(그리고 아마도 알지 못하는 경우) 이미 메타게놈 어셈블리를 BLAST 검색에 정렬할 때까지 기다린 다음 해당 검색 결과에서 제안을 받을 수 있습니다. 종에 대한 참조 게놈 어셈블리를 찾으려면 NCBI 어셈블리 데이터베이스를 검색하세요.
샷건의 정렬을 설명하는 SAM/BAM 파일은 초안 메타게놈 어셈블리를 읽습니다. Shotgun 읽기는 어셈블리를 생성하는 데 사용된 것과 동일한 읽기입니다. MetaPhase는 이 파일을 사용하여 각 contig와 각 클러스터의 샘플 풍부도를 추정할 수 있습니다. 현재 MetaPhase.cc를 약간 해킹하지 않고는 사용할 수 없습니다(죄송합니다.)
MetaPhase에 대한 가장 중요한 입력 중 하나는 새로운 메타게놈 어셈블리 초안입니다. 샘플의 Shotgun 읽기를 사용하여 이 어셈블리를 직접 만들어야 합니다. Velvet, IDBA-UD, ABySS 및 SPAdes를 포함하여 매우 잘 작동하는 공개적으로 사용 가능한 de novo 메타게놈 조립 도구가 많이 있습니다. 저는 MetaPhase를 개발하면서 IDBA-UD를 사용했습니다.
MetaPhase는 새로운 시퀀스를 생성하지 않는다는 점을 인식하는 것이 중요합니다. 이미 어셈블리에 있는 시퀀스만 클러스터링합니다. 샘플의 일부 시퀀스가 너무 드물거나, 너무 GC 불균형이거나, 너무 반복적이거나 기타 이유로 초안 어셈블리에 포함되지 않는 경우 MetaPhase는 해당 시퀀스를 게놈으로 클러스터링할 수 없습니다. 가장 많은 양의 시퀀스와 가장 긴 contig N50을 가진 어셈블리를 얻으려면 메타게놈 어셈블러에서 다양한 옵션이나 다양한 메타게놈 어셈블리 도구를 시험해 볼 가치가 있습니다.
MetaPhase는 입력 콘티그가 길수록 더 나은 성능을 발휘합니다. 왜냐하면 Hi-C 연결에 대한 더 명확한 신호를 사용할 수 있기 때문입니다. 특히 Hi-C 판독이 안정적으로 정렬될 수 없기 때문에 MetaPhase는 제한 효소 사이트를 포함하지 않는 콘티그를 클러스터링할 수 없습니다 . Hi-C 실험에 사용할 제한 효소를 선택할 때 이 사실을 명심하십시오. 메타지놈 어셈블리에 작은 N50이 있는 경우 6커터 대신 4커터 제한 효소를 사용하는 것이 좋습니다. (예를 들어, 메타게놈 어셈블리의 N50이 4Kb에 불과한 경우 대략 4Kb마다 절단되는 6커터로 만든 Hi-C 라이브러리는 어셈블리 시퀀스의 50%를 완전히 클러스터링할 수 없습니다.)
Metagenome 어셈블리 자체 외에도 MetaPhase는 Hi-C 읽기 정렬을 Metagenome 어셈블리에 입력합니다. 이 파일은 SAM 또는 BAM 형식이어야 하며 각 Hi-C 읽기를 한 번만 포함해야 합니다. SAM/BAM 파일을 생성하는 모든 정렬기를 사용할 수 있습니다. 저는 MetaPhas를 개발하는 동안 bwa를 사용했습니다. bwa를 사용하는 경우 각 읽기를 여러 번 출력하는 bwa mem이 아니라 bwa aln 및 bwa sampe를 사용해야 합니다!)
Hi-C 판독은 독특합니다. 이는 제한 효소로부터 서열이 알려진 키메라 결찰 부위를 사용하여 의도적으로 키메라입니다(예: HindIII는 AAGCTT에서 절단하고 재결찰 시 AAGCTAGCTT를 생성합니다). 유용한 Hi-C 페어링을 많이 놓쳤습니다. 수율을 극대화하기 위해 맞춤형 정렬 파이프라인을 설계할 수 있습니다. 그렇다면 제가 직접 개발할 때 사용한 align.iter.interactive.sh
스크립트를 살펴보세요. 사용자 지정 파이프라인에 대한 아이디어를 얻을 수 있습니다.
MetaPhase에 참조 게놈을 제공하는 것은 전적으로 선택 사항이지만 매우 유용합니다. MetaPhase는 드래프트 어셈블리의 컨티그를 정렬하여 어떤 종이 될 가능성이 있는지에 대한 단서를 얻을 수 있습니다. 이를 수행하는 방법에는 두 가지가 있습니다. 알려진 모든 서열을 포함하는 BLAST 데이터베이스에 정렬하는 것입니다. 단일 참조 게놈 어셈블리를 포함하는 로컬 fasta 파일에 정렬합니다. 전자의 방법은 표본에 어떤 분류군이 있는지 조사하는 데 유용합니다. 후자의 방법은 표본에 있는 것으로 알려진(또는 표본의 사물과 관련된) 개별 종에 초점을 맞추고 히트맵 및 클러스터 네트워크 이미지를 생성하는 데 유용합니다(섹션 E2, "이미지" 참조). BLAST 정렬로만 시작한 다음 거기에서 나온 히트를 사용하여 만날 가능성이 있는 종을 결정한 다음 해당 참조를 다운로드하여 MetaPhase에 공급할 수 있습니다. 참조 게놈 어셈블리 목록은 <scenario>.refs.tsv
파일의 MetaPhase에 제공됩니다.
MetaPhase는 BLAST 데이터베이스와 참조 게놈 모두에 대한 모든 정렬을 수행합니다. MetaPhase는 BLAST 명령줄 코드 패키지의 일부인 blastn
, tblastx
및 makeblastdb
호출할 수 있습니다. 이 명령이 $PATH
에 있는지 확인하세요. BLAST는 특히 --use-tblastx
설정한 경우 많은 런타임을 사용할 수 있습니다. 그러나 MetaPhase는 나중에 런타임을 저장하기 위해 BLAST 실행 결과를 <out_dir>/cached_data
에 캐시합니다.
MetaPhase에는 두 개의 입력 TSV(탭으로 구분된 값) 파일이 필요합니다. 하나는 SAM/BAM 정렬 파일 세트를 제공하고 다른 하나는 참조 게놈 어셈블리 세트를 제공합니다. 이러한 파일은 크기가 작으며 특히 나중에 수동으로 수정해야 할 수 있으므로 직접 만들고 싶을 것입니다. 가장 쉬운 방법은 test_case/tsvs
에 있는 TSV 파일의 예를 따르는 것입니다.
MetaPhase의 모든 명령줄 인수에 대한 빠른 요약을 보려면 MetaPhase -help
실행하세요. 자세한 설명은 여기에 있습니다.
-s
<string>
: 시나리오 이름. 이는 MetaPhase에서 실행 이름을 지정하는 데 사용됩니다. 이는 tsv 파일 이름의 시작 부분(아래 -i
참조)으로 사용되며 출력 디렉터리 이름(아래 -o
참조)으로도 사용됩니다. 마지막으로, 이를 무시할 수 있지만 개발 시 사용한 명령줄 옵션이 내장된 일부 시나리오 이름이 있습니다(예를 들어 MetaPhase에서 -a
"필수" 인수로 나열되지 않은 이유는 다음과 같습니다 MetaPhase -help
명령.)
-a
<string>
: 초안 de novo 메타게놈 어셈블리 fasta 파일의 위치입니다. 상대 경로가 아닌 절대 경로여야 합니다. 즉 , /
로 시작해야 합니다.
-N
<integer>
: 생성할 클러스터 수입니다. 1로 설정하면 MetaPhase는 모든 것을 단일 클러스터로 클러스터링하고 클러스터 내 링크 강화인 E(N)를 계산한 다음, 추정치를 제공할 수 있는 enrichment_curve.jpg
파일을 작성합니다. 샘플에 있는 종. 0 또는 contig 수보다 큰 숫자로 설정하지 마십시오.
이러한 인수 중 일부에는 기본값에 $HOME
포함되어 있습니다. 이는 UNIX 홈 디렉토리( cd ~
또는 cd $HOME
입력할 때 이동하는 위치)를 나타냅니다.
-i
<string>
: 입력 디렉터리입니다. 이는 tsv 파일 <scenario>.HiC_libs.tsv
및 <scenario>.refs.tsv
포함된 디렉터리입니다. 기본값: ./input
.
-o
<string>
: 출력 루트 디렉터리. 이 실행의 출력 파일은 <out_dir>/<scenario>
에 저장됩니다. 기본값: $HOME/MP/out
.
--blast_dir
<string>
: MetaPhase가 정렬에 사용하는 BLAST 데이터베이스( nt.*
및 nr.*
)가 포함된 디렉터리입니다. BLAST 웹사이트에서 이러한 파일을 다운로드할 수 있습니다. 기본값: $HOME/extern/blast
.
--refs_dir
<string>
: refs.tsv
파일에 나열된 참조 게놈 어셈블리가 포함된 디렉터리입니다. 이 실행의 출력 파일은 <out_dir>/<scenario>
에 저장됩니다. 기본값: $HOME/MP/refs
.
--use_tblastx
: 토글합니다. 설정된 경우 MetaPhase는 blastn
대신 tblastx
사용하여 BLAST 정렬을 수행합니다. 이는 contig의 뉴클레오티드 서열을 뉴클레오티드 데이터베이스에 정렬하는 대신 뉴클레오티드를 아미노산으로 번역하고 단백질 데이터베이스에 정렬합니다. 단백질 서열은 뉴클레오티드 서열보다 더 잘 보존되어 있기 때문에 tblastx
원할 수도 원치 않을 수도 있는 더 먼 계통발생적 관계, 즉 종 대신 과 또는 속 수준에서 선택합니다. tblastx
blastn
보다 훨씬 느립니다.
--force_blast_realign
: 토글합니다. 설정된 경우 MetaPhase는 BLAST 정렬을 설명하는 캐시된 파일을 무시하고 덮어씁니다.
-b
: 토글합니다. 링크 매트릭스에 통계적 부트스트래핑을 적용합니다. 즉, Hi-C 링크의 행렬이 생성되면(그리고 정규화되기 전에) 행렬을 대체하여 다시 샘플링하여 총 링크 수는 동일하지만 링크의 정확한 배치가 무작위로 변경된 새 행렬을 생성합니다. 클러스터링 결과의 견고성을 테스트하려면 -b
사용하여 MetaPhase를 여러 번 실행하고 결과를 비교하십시오. 결과는 확률적으로 달라야 합니다.
--isolated_component_size <integer>
: 링크 매트릭스에서 contig 연결 그래프를 생성한 후 그래프에서 이 contig 수보다 적은 구성 요소를 삭제합니다. 대부분의 데이터 세트에서 이러한 구성 요소는 어떤 종에도 안정적으로 배치될 수 없는 노이즈로 구성되며 이러한 구성 요소는 다른 구성 요소와 결합될 수 없기 때문에 명백한 클러스터 번호를 버릴 수 있습니다. 그러나 Hi-C 링크 데이터가 희박한 경우 실제 클러스터 정크를 방지하기 위해 이를 줄여야 할 수도 있습니다. 기본값: 100
.
--jarvis_patrick_K <integer>
: Jarvis-Patrick 사전 클러스터링 단계에서 사용된 K 값입니다. 값이 높을수록 런타임이 늘어나지만 정확도가 높아질 수 있습니다. 이 숫자를 자세히 이해하려면 Jarvis 및 Patrick, "공유된 가까운 이웃을 기반으로 한 유사성 측정을 사용한 클러스터링", 1973을 참조하십시오 . 기본값: 100
.
--min_cluster_norm <integer>
: 허용되는 클러스터의 최소 표준입니다. contig의 "norm"은 포함된 제한 효소(RE) 사이트의 수이고, 클러스터의 표준은 contig의 표준의 합입니다. 이 매개변수는 출력에 큰 영향을 미칠 수 있습니다. min_cluster_norm
을 늘리면 클러스터의 가능한 최소 크기가 증가하여 잠재적으로 작은 종을 나타내는 클러스터가 파괴될 수 있습니다. 그러나 이는 종종 데이터의 노이즈 및/또는 반복적인 contig로 인해 발생하는 적은 수의 contig(2-3)만 포함하는 성가신 작은 미니 클러스터의 형성을 방지합니다. 대부분의 contig가 포함된 하나의 거대한 클러스터를 얻고 다른 모든 클러스터는 작다면 이를 늘려야 합니다. 클러스터의 표준은 길이(bp)를 RE 사이트 빈도로 나눈 것과 대략 동일하므로 최적의 수는 RE 유형에 따라 다를 수 있습니다. 기본값: 25
.
-merge
: 토글. 몇 가지 실험적인 클러스터링 알고리즘을 적용하여 서로 다른 Hi-C 라이브러리에서 발생하는 여러 개의 독립적인 클러스터링을 병합합니다. 권장되지 않습니다.
--load_cached_clusters
: 토글합니다. 설정된 경우 클러스터링을 수행하는 대신 MetaPhase는 이전에 계산된 클러스터링 결과가 포함된 <out_dir>/<scenario>.cached_data
에서 캐시된 파일을 찾습니다. 이 파일은 --dont_output_cache
플래그 없이 지금과 동일한 -N
값을 사용하여 이 시나리오에서 MetaPhase가 이전에 실행된 경우 존재합니다. 이는 클러스터링을 다시 실행하지 않고 클러스터링 결과를 분석하려는 경우 시간을 절약하는 방법입니다.
--dont_output_cache
: 토글합니다. --load_cached_clusters
사용하여 나중에 로드할 수 있는 클러스터 캐시 파일을 만들거나 덮어쓰지 마세요. 이 옵션은 --load_cached_clusters
에 의해 재정의됩니다.
--report_unclustered
: 토글합니다. 설정되면 MetaPhase는 클러스터되지 않은 콘티그에 대한 최종 보고서를 생성합니다. 즉, 어떤 종에 정렬되어 있는지, 완전히 연결 해제되어 클러스터되지 않은 종 수 등이 있습니다.
--output_cluster_fastas
: 토글합니다. 설정된 경우 <out_dir>/<scenario>/
에 cluster.*.fasta
및 unclustered.fasta
파일을 작성합니다. 이는 MetaPhase가 contig를 클러스터링한 방법을 나타내는 fasta 파일입니다.
--output_network_image
: 토글합니다. 설정된 경우 Fig2a.R
스크립트를 실행하고 MetaPhase 논문의 그림 2A에 표시된 것과 같은 클러스터 네트워크 이미지를 만듭니다.
--output_heatmaps
: 토글합니다. 설정된 경우 MakeClusteringResultHeatmap.R
스크립트를 실행하고 MetaPhase 논문의 그림 2B 및 그림 S5에 표시된 것과 같은 히트맵 이미지를 만듭니다.
--reorder_clusters_by_refs
: 토글합니다. 설정된 경우 --output_heatmaps
로 생성된 히트맵의 대각선에서 신호를 최대화하도록 클러스터 순서를 변경합니다. 이는 refs.tsv
파일에 있는 참조 게놈과 파일에 나타나는 순서에 따라 달라집니다. 일관된 클러스터 번호를 갖고 싶다면 이 항목을 설정하지 마세요.
MetaPhase의 가장 기본적인 출력은 화면에 출력됩니다. MetaPhase는 전처리, BLAST 정렬, 클러스터링 및 클러스터링 후 분석을 수행하면서 진행 상황에 대한 자세한 보고서를 제공합니다. 충돌이 발생하지 않는다고 가정하면 MetaPhase는 클러스터링 결과에 대한 멋지고 편리한 차트를 생성합니다. 이 차트의 열은 다음과 같습니다.
클러스터 번호
이 클러스터의 연속 개수
이 클러스터에 있는 모든 contig의 총 길이
풍부함: 이 클러스터의 DNA 풍부함(종 풍부함이 아님)의 추정치입니다. 이 클러스터의 contig에 정렬되는 Shotgun 읽기의 백분율로 정의됩니다. 현재 해킹이 필요한 샷건 풍부한 SAM/BAM 파일이 필요합니다.
복수 참조: 복수의 서열이 정렬되는 참조 게놈 어셈블리( refs.tsv
파일에 나열된 것 중)
%eukaryotic, %rDNA, %tRNA, %mtDNA: 이 클러스터의 시퀀스 내용에 대한 예측 주석입니다. BLAST 데이터베이스에 대한 BLAST 정렬을 기반으로 합니다.
복수형 분류법: 이 클러스터에서 시퀀스 콘텐츠의 가장 일반적인 분류학적 위치입니다. BLAST 데이터베이스에 대한 BLAST 정렬을 기반으로 합니다.
--report_unclustered
설정하면 MetaPhase는 클러스터되지 않은 contig를 설명하는 훨씬 더 작고 간단한 차트도 생성합니다.
MetaPhase 논문의 그림 2A 및 2B와 같은 예쁜 이미지를 만들 수 있습니다. 네트워크 이미지 또는 히트맵을 생성하려면 각각 --output_network_image
또는 --output_heatmap
설정하십시오. 파일은 각각 Fig2a.R
및 MakeClusteringResultHeatmap.R
스크립트에 의해 생성됩니다. 이는 ggplot2를 사용하는 매우 간단한 R 스크립트입니다. 이미지의 모양을 조정하려면 스크립트를 조정하면 됩니다. 이러한 파일은 기본적으로 $HOME/public_html
에 생성됩니다. 파일을 표시하려면 이 디렉터리를 만들어야 할 수도 있습니다.
MetaPhase는 <out_dir>/<scenario>
에 다음 파일을 생성합니다.
assembly.blastn_report
: nt 데이터베이스에 대한 드래프트 어셈블리의 BLAST 정렬을 편리하게 요약한 사람이 읽을 수 있는 파일입니다.
result.human_readable.txt
: 초안 메타게놈 어셈블리의 각 contig를 나열하고 클러스터링 방법을 나타내는 사람이 읽을 수 있는 파일입니다.
cluster.*.fasta
및 unclustered.fasta
: 각 클러스터의 contig를 포함하는 Fasta 파일입니다. --output_cluster_fastas
로 실행하는 경우에만 생성됩니다.
하위 디렉토리 cached_data
: 참조 게놈에 대한 BLAST 정렬을 설명하는 캐시 파일(MapToRefs.txt*)을 포함합니다. nt 데이터베이스에 대한 BLAST 정렬(어셈블리 ._blast); 및 클러스터링 결과(클러스터. ). 이러한 파일은 특히 사람이 읽을 수 없을 수도 있습니다.
하위 디렉터리 LACHESIS
: MetaPhase를 실행한 후 Lachesis를 실행하지 않는 한 비어 있습니다(다음 섹션 참조).
MetaPhase 논문에서 입증된 바와 같이 MetaPhase를 실행하여 각 종에 대해 별도의 클러스터를 생성한 다음 LACHESIS를 실행하여 해당 클러스터에 있는 콘티그의 염색체 규모 스캐폴드를 생성하여 아무것도 없는 고품질 단일 종 어셈블리를 생성할 수 있습니다. 하지만 메타게놈 데이터. 그러나 몇 가지 주의 사항이 적용됩니다.
LACHESIS의 방법은 실제로 원핵생물 게놈에는 적용되지 않기 때문에 이것은 진핵생물에만 효과가 있을 것 같습니다.
LACHESIS는 MetaPhase가 종 수를 예측하는 것만큼 정확하게 염색체 수를 예측할 수 없기 때문에 종의 염색체 수를 알아야 합니다.
연구 중인 클러스터의 Contig에 Hi-C 읽기를 다시 정렬해야 합니다.
효모 종에서는 동원체가 포함된 모든 콘티그를 단일 염색체로 묶지 않도록 주의하십시오. LACHESIS의 CLUSTER_CONTIGS_WITH_CENS
옵션을 사용해야 합니다.
MetaPhase
라는 실행 파일이 있어야 합니다. 명령줄에 MetaPhase
입력합니다. "명령을 찾을 수 없음"과 같은 오류가 발생하면 올바른 MetaPhase 디렉터리에 있지 않거나 컴파일이 성공적으로 완료되지 않은 것입니다. MetaPhase를 실행할 준비가 된 경우 MetaPhase
입력하면 PARSE ERROR
생성되고 MetaPhase는 필요한 명령줄 인수를 설명합니다.
다음 오류가 발생하는 경우: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
그런 다음 libboost_filesystem.so.1.47.0
이 포함된 디렉터리를 추가해야 합니다. 환경 변수 $LD_LIBRARY_PATH
. 다음 명령을 입력하세요: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
MetaPhase가 충돌하는 경우 가장 먼저 해야 할 일은 출력을 주의 깊게 살펴보는 것입니다. 무엇이 잘못되었는지에 대한 자세한 설명을 제공하고 문제를 해결하는 방법에 대한 좋은 아이디어를 제공할 수 있습니다. 가장 일반적인 문제는 입력 파일 중 하나를 찾을 수 없거나 무의미한 데이터가 포함되어 있다는 것입니다.
다음과 같은 "어설션 오류"가 나타날 수도 있습니다. Assertion ... failed.
이는 알고리즘의 특정 단계에서 MetaPhase가 예상하지 못한 특정 문제를 발견했다는 의미입니다. 어설션 오류는 파일( *.cc
또는 *.h
)에 대한 참조 및 오류가 발생한 줄 번호와 함께 제공됩니다. 파일에서 assert()
함수가 포함된 해당 줄을 살펴보세요. 어설션 오류의 원인이 무엇인지 설명하는 주석이 해당 줄 주위에 있어야 합니다.
일반적으로 우리는 MetaPhase를 잘 디자인되고 주석이 잘 달린 코드로 만들기 위해 많은 노력을 기울였습니다. C++에 익숙하다면 소스 코드를 살펴보고 무슨 일이 일어나고 있는지 알 수 있을 것입니다. 최상위 모듈인 MetaPhase.cc
로 시작하여 거기서부터 작업하는 것이 좋습니다.
MetaPhase가 제대로 실행되도록 한 후 출력, 특히 보고서 차트를 자세히 살펴보세요. 이상한 결과가 나오는 경우(예를 들어 시퀀스가 거의 조립되지 않거나 대부분의 시퀀스가 단일 클러스터로 클러스터링되는 경우(일반적인 문제)) MetaPhase의 성능을 조정해야 할 수도 있습니다. D2 섹션 "선택적 명령줄 인수"를 자세히 살펴보세요.
MetaPhase 소프트웨어 패키지와 여기에 포함된 모든 소프트웨어 및 문서의 저작권은 Josh Burton 및 University of Washington에 있습니다. © 2013-2014. 모든 권리는 보유됩니다.
이 소프트웨어는 어떠한 보증이나 지원 보장 없이 '있는 그대로' 제공됩니다. University of Washington은 해당 정보의 사용, 오용 또는 기능에 대해 책임을 지지 않습니다. 어떤 경우에도 작성자나 저작권 보유자는 이 소프트웨어로 인해 발생하거나 이 소프트웨어와 관련하여 발생하는 청구, 손해 또는 기타 법적 책임에 대해 책임을 지지 않습니다.
MetaPhase 프로젝트를 가능하게 하고 MetaPhase 소프트웨어에서 사용되는 모든 Hi-C 데이터를 생성한 Ivan Liachko에게 감사드립니다.
리더십, 관리 및 아이디어를 제공한 Maitreya Dunham과 Jay Shendure에게 감사드립니다.
MetaPhase를 테스트하고 문제를 해결하는 데 인내심을 갖고 도움을 준 Kathryn Bushley, David Fredricks, Steve Salipante, Laura Sycuro 및 Andrew Wiser에게 감사드립니다.
GitHub를 통해 MetaPhase를 사용할 수 있도록 도와주신 Aaron McKenna에게 감사드립니다.
(Andrew에서) LD_LIBRARY_PATH에 추가하여 시스템의 나머지 부분과 상호 작용하고 싶지 않을 수 있는 새롭고 제한된 BOOST 설치를 사용자에게 제공하고 있습니다. 내 제안은 가능하다면 사용자가 include/boost_1_47_0/stage/lib 디렉토리를 LD_LIBRARY_PATH에 추가하도록 권장하는 동시에 런타임에 환경 변수를 설정하는 래퍼 스크립트도 제공하는 것입니다. 사용자 LD_LIBRARY_PATH에 올바른 경로가 있는지 확인하고, 찾을 수 없으면 이를 설정한 다음 프로그램을 실행하는 Python 프로그램은 정말 쉽고 빠르게 익힐 수 있습니다.