medaka
는 Nanopore 시퀀싱 데이터에서 컨센서스 시퀀스 및 변형 호출을 생성하는 도구입니다. 이 작업은 신경망을 사용하여 수행됩니다. 신경망은 참조 시퀀스에 대한 개별 시퀀싱 판독 름기를 적용하여 일반적으로 초안 어셈블리 또는 데이터베이스 참조 시퀀스를 사용합니다. 최첨단 결과 순서 기반 방법 및 신호 기반 방법을 능가하는 최신 결과를 제공하지만 더 빠릅니다.
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
또는 .fastq
)드래프트 어셈블리를 만들기 위해 Flye를 추천합니다.
Medaka는 여러 가지 방법 중 하나로 설치할 수 있습니다.
PIP로 설치
Medaka의 공식 바이너리 릴리스는 PYPI에서 제공되며 PIP를 사용하여 설치할 수 있습니다.
pip install medaka
Contemporaray Linux 및 MacOS 플랫폼에서는 사전 컴파일 된 바이너리를 설치하고 다른 플랫폼에서는 소스 배포가 가져 와서 컴파일 될 수 있습니다.
가상 환경에서 Medaka를 사용하는 것이 좋습니다.
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
이 방법을 사용하면 사용자가 여러 바이너리를 제공해야합니다.
그리고 이것들을 PATH
안에 두십시오. samtools/bgzip/tabix
버전> = 1.14 및 minimap2
버전> = 2.17은 Medaka 개발에 사용되는 것이기 때문에 권장됩니다.
기본 설치는 GPU (아래 GPU 사용 참조) 또는 CPU에서 실행할 수 있습니다. CPU에서만 medaka
사용하고 GPU에서 실행할 수있는 기능이 필요하지 않은 경우 다음과 함께 CPU 전용 버전을 설치할 수 있습니다.
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Conda를 사용한 설치
Bioconda Medaka 패키지는 Oxford Nanopore Technologies에서 지원하지 않습니다.
Conda 패키지 관리자를 선호하는 사람들을 위해 Medaka는 Anaconda.org 채널을 통해 제공됩니다.
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
이 방법을 사용하여 설치하면 엔드 투 엔드 수정 워크 플로를 실행하는 데 필요한 추가 도구가 묶습니다.
소스에서 설치
이 방법은 다양한 종속성을 구축하는 데 도움이되므로 위의 방법이 실패한 경우에만 유용합니다. 이 방법을 사용하여 설치하면 개발자가 특정 상황에 대한 추가 지원을 제공 할 수있을 것 같지 않습니다.
Medaka는 대부분의 시스템에서 소스에서 매우 쉽게 설치할 수 있습니다.
Medaka를 설치하기 전에 패키지 관리자가 가장 잘 설치 한 전제 조건 라이브러리를 설치해야 할 수도 있습니다. 우분투에서는 다음과 같습니다.
bzip2 g++ zlib1g-dev libbz2-dev liblzma-dev libffi-dev libncurses5-dev libcurl4-gnutls-dev libssl-dev curl make cmake wget python3-all-dev python-virtualenv
또한 저장소를 복제하기 전에 GIT LFS를 설치하고 설정해야합니다.
모든 직접 종속성을 Python 가상 환경에 가져오고 컴파일하고 설치하기위한 Makefile이 제공됩니다. 환경 실행을 설정하려면 :
# Note: certain files are stored in git-lfs, https://git-lfs.github.com/,
# which must therefore be installed first.
git clone https://github.com/nanoporetech/medaka.git
cd medaka
make install
. ./venv/bin/activate
이 방법을 사용하여 samtools
와 minimap2
소스에서 구축되며 사용자가 제공 할 필요는 없습니다.
소스에서 빌드 할 때 GPU에서 실행할 수있는 용량없이 CPU 전용 버전을 설치하려면 위에서 다음을 수정하십시오.
MEDAKA_CPU=1 make install
GPU 사용
버전 2.0이므로 medaka
Pytorch를 사용합니다. 사전 버전 (v1.x)은 Tensorflow를 사용했습니다.
소스에서 빌드 할 때 또는 pip
통해 설치할 때 설치된 Pytorch의 기본 버전은 NVIDIA CUDA를 통해 GPU를 즉시 사용할 수 있습니다. 그러나 torch
패키지는 CUDA 및 CUDNN 라이브러리의 특정 버전에 대해 컴파일됩니다. 자세한 내용은 사용자가 Torch 설치 페이지로 연결됩니다. CUDNN은 Cuda Toolkit Archive의 Cuda와 함께 Cudnn 아카이브에서 얻을 수 있습니다.
콘다를 설치하는 것은 약간 다릅니다. [Conda-Forge] https://conda-forge.org/docs/user/tipsandtricks/#installing-cuda-enabled-packages-like-tensorflow-and-pytorch)를 참조하십시오. 요약하면, Conda 패키지는 설치중인 컴퓨터에 현명한 맞춤형 작업을 수행해야합니다.
위에서 설명한 바와 같이, GPU에서 실행할 수있는 기능이 필요하지 않은 경우, medaka-cpu
CUDA 라이브러리에 의존하지 않는 CPU 전용 버전의 Pytorch와 함께 설치할 수 있습니다.
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
사전 제작 된 패키지를 사용하는 경우
MEDAKA_CPU=1 make install
소스에서 빌딩하는 경우.
GPU 사용 메모
GPU에 따라 medaka
실행할 때 메모리 오류가 표시 될 수 있습니다. 이들을 피하기 위해 medaka_consensus
실행할 때 -b
옵션을 설정하여 추론 배치 크기를 기본값에서 줄일 수 있습니다. 값 -b 100
은 11GB GPU에 적합합니다.
medaka
medaka_consensus
프로그램을 통해 기본 설정을 사용하여 실행할 수 있습니다. .fasta
형식의 조립 및 .fasta
또는 .fastq
형식의 Basecalls가 필요합니다. 이 프로그램은 samtools
와 minimap2
모두 사용합니다. Medaka가 From-Source Method를 사용하여 설치된 경우 Medaka 환경 내에 존재합니다. 그렇지 않으면 사용자가 제공해야합니다.
source ${MEDAKA} # i.e. medaka/venv/bin/activate
NPROC=$(nproc)
BASECALLS=basecalls.fa
DRAFT=draft_assm/assm_final.fa
OUTDIR=medaka_consensus
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC}
위의 변수는 위의 BASECALLS
, DRAFT
및 OUTDIR
적절하게 설정해야합니다. -t
옵션은 사용할 CPU 스레드 수를 지정합니다.
medaka_consensus
가 달리기를 마치면 합의는 ${OUTDIR}/consensus.fasta
로 저장됩니다.
반수체 변형 호출
medaka_variant
워크 플로를 통해 반수체 샘플을 호출하는 변형 :
medaka_variant -i <reads.fastq> -r <ref.fasta>
.fasta
또는 .fastq
로서 읽기와 .fasta
파일로 참조 시퀀스가 필요합니다.
이배체 변형 전화
역사적으로 Medaka 패키지 내에서 구현 된 이배체 변형 호출 워크 플로우는 다른 방법으로 정확성과 계산 성능으로 능가했으며, 따라서 더 이상 사용되지 않았습니다. 이 작업을 수행하기위한 현재 권장 사항은 Epi2ME Labs를 통해 제공되는 NextFlow 구현을 제공 한 Oxford Nanopore Technologies를 통해 CLAIR3을 사용하는 것입니다.
최상의 결과를 얻으려면 사용 된베이스 콜러에 따르면 올바른 추론 모델을 지정하는 것이 중요합니다. medaka tools list_models
실행하여 허용 값을 찾을 수 있습니다.
최근베이스 컬러
최근 BaseCaller 버전은 모델 버전으로 출력을 주석에 옮깁니다. 이 경우 Medaka는 파일을 검사하고 적절한 모델을 선택하려고 시도 할 수 있습니다. 이것은 일반적으로 Basecallers의 BAM 출력의 경우 가장 잘 작동합니다. FastQ가 Basecaller 출력에서 다음을 사용하여 생성 된 경우 FASTQ 입력에도 작동합니다.
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
medaka inference
명령은 BAM 입력 파일을 검사하여 올바른 모델을 자동으로 결정하려고 시도합니다. 도우미는 medaka_consensus
와 medaka_variant
스크립트합니다.
파일을 직접 검사하려면 명령 :
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
자동 모델 선택이 사용할 모델을 인쇄합니다.
박테리아 및 플라스미드 시퀀싱
박테리아 분리주, 메타 게놈 샘플 또는 박테리아에서 발현 된 플라스미드와 같은 박테리아 변형을 갖는 기본 데이터의 경우, 컨센서스 정확도가 향상된 연구 모델이 있습니다. 이 모델은 R10 화학을위한 여러베이스 컬러 버전과 호환됩니다. 플래그 --bacteria
추가하면 입력베이스 콜러와 호환되는 경우 박테리아 모델이 선택됩니다.
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
박테리아 모델이 입력 파일과 호환되지 않으면 레거시 기본 모델이 사용됩니다. 모델 선택은 실행을 통해 확인할 수 있습니다.
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
호환되거나 기본 모델 이름이 그렇지 않으면 모델 r1041_e82_400bps_bacterial_methylation
을 표시합니다.
자동 선택이 성공하지 못하고 오래된베이스 콜러가
사용 된베이스 컬러 모델의 이름이 알려져 있지만 입력 파일에서 손실 된 경우베이스 컬러 모델을 Medaka에 직접 제공 할 수 있습니다. 그러나 Consensus 또는 :consensus
또는 :variant
와 함께 추가되어야합니다. 예를 들어:
medaka inference input.bam output.hdf
--model [email protected]:variant
[email protected]
이라는베이스 콜러 모델과 함께 사용하기에 적합한 Medaka 변형 통화 모델을 사용합니다.
역사적으로 Medaka 모델은 화학 및베이스 콜러 버전을 모두 설명하는 명명법을 따랐습니다. 이 오래된 모델은 이제 더 이상 사용되지 않으며, 사용자는 Medaka를 사용하기 전에 더 최근의 Basecaller 버전으로 데이터를 다시 해제하도록 권장됩니다.
medaka_consensus
프로그램은 간단한 데이터 세트에 적합하지만 대규모 데이터 세트를 규모로 실행하는 데 최적이지는 않습니다. medaka_consensus
의 구성 요소 단계를 독립적으로 실행함으로써 더 높은 수준의 병렬 처리를 달성 할 수 있습니다. 이 프로그램은 세 가지 작업을 수행합니다.
mini_align
에 대한 minimap2
링medaka inference
)medaka sequence
) 세 단계는 개별적이며 분리되어 독립적으로 실행할 수 있습니다. 대부분의 경우, 2 단계는 병목 현상이며 사소하게 병렬화 될 수 있습니다. medaka consensus
프로그램은 1 단계의 .bam
파일 출력에서 특정 어셈블리 시퀀스로의 조치를 제한하는 --regions
인수를 제공 할 수 있습니다. 따라서 어셈블리 시퀀스의 배치에 대해 개별 작업을 실행할 수 있습니다. 마지막 단계에서 medaka stitch
2 단계에 의해 하나 이상의 .hdf
파일 출력 중 하나 이상을 입력 할 수 있습니다.
요약하면 이와 같은 것이 가능합니다.
# align reads to assembly
mini_align -i basecalls.fasta -r assembly.fasta -P -m
-p calls_to_draft.bam -t <threads>
# run lots of jobs like this:
mkdir results
medaka inference calls_to_draft.bam results/contigs1-4.hdf
--region contig1 contig2 contig3 contig4
...
# wait for jobs, then collate results
medaka sequence results/*.hdf polished.assembly.fasta
컴퓨팅 스케일링 효율이이를 넘어서 열악하기 때문에 medaka inference
에 대해 2보다 큰 --threads
을 지정하는 것이 좋습니다. 또한 medaka inference
추가 4 개의 스레드가 입력 데이터를 읽고 준비하는 데 사용되기 때문에 <threads> + 4
에 해당하는 리소스를 사용하는 것으로 나타났습니다.
Medaka는 Flye Assembler의 초안 시퀀스 출력을 수정하도록 훈련되었습니다.
대체 소스 (예 : CANU 또는 WTDBG2의 출력)에서 초안 시퀀스를 처리하면 다른 결과가 발생할 수 있습니다.
Medaka의 역사적 보정 모델은 Racon이 한 번 또는 4 배 반복적으로 적용된 Canu 어셈블러의 초안 시퀀스 출력을 수정하도록 훈련되었습니다. 현대 모델의 경우 이것은 그렇지 않으며 Medaka는 Flye의 출력에 직접 사용해야합니다.
최적화 된 기능 생성 코드의 개발에 크게 개발 된 HTSLIB 코드 샘플을 제공하고 버전 0.4 릴리스 후보를 테스트 한 Joanna Pineda와 Jared Simpson에게 감사드립니다.
RTX 2080 GPU와 함께 medaka
의 사용을 통해 일한 Devin Drown에게 감사드립니다.
라이센스 및 저작권
© 2018- Oxford Nanopore Technologies Ltd.
medaka
Oxford Nanopore Technologies Plc의 조건에 따라 배포됩니다. 공개 라이센스 버전 1.0
연구 릴리스
연구 릴리스는 기술 시위자로서 기능에 대한 조기 접근을 제공하거나 도구의 커뮤니티 개발을 자극합니다. 이 소프트웨어에 대한 지원은 최소화되며 개발자 만 직접 제공됩니다. 기능 요청, 개선 및 토론을 환영하며 포크 및 풀 요청으로 구현할 수 있습니다. 그러나 우리가 사용자가 보유한 모든 문제와 피드백을 바로 잡으려고하는 것처럼 개발자는이 소프트웨어를 지원하기위한 리소스가 제한되어있을 수 있습니다. 연구 릴리스는 불안정하고 옥스포드 나노 포어 기술에 의해 빠른 반복을받을 수 있습니다.