MM2-Fast는 최신 CPU에서 Minimap2의 가속 구현입니다. MM2-Fast는 Minimap2의 세 가지 주요 모듈을 모두 가속화합니다 : (a) 시드, (b) 체인 및 (c) 쌍별 정렬, Minimap2보다 AVX512를 사용하여 최대 1.8 배의 속도를 달성합니다. MM2-Fast는 Minimap2의 드롭 인 교체로 동일한 출력으로 동일한 기능을 제공합니다. 현재 버전에서 모든 모듈은 AVX-512 및 AVX2 벡터화를 사용하여 최적화됩니다. 자세한 벤치 마크 결과는 자연 컴퓨터 과학 의 출판물 (https://www.nature.com/articles/s43588-022-00201-8)에서 구입할 수 있습니다.
운영 체제 : Linux
MM2-Fast는 G ++ (GCC) 9.2.0 및 ICPC 버전 19.1.3.304를 사용하여 테스트되었습니다.
아키텍처 : AVX512, AVX2가있는 X86_64 CPU
메모리 요구 사항 : 인간 게놈의 경우 ~ 30GB
MM2-Fast Github Repo를 복제하십시오. MAKE 명령을 사용하여 소스 코드를 컴파일 할 수 있습니다. 몇 초 밖에 걸리지 않습니다.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast
make
MM2-Fast의 사용은 Minimap2와 동일합니다. 다음은 테스트 데이터와 함께 ONT 읽기를 매핑하는 예입니다.
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast_output
MM2-Fast 의이 Verion은 Minimap2-V2.24의 가속 버전이므로 MM2- 빠른 출력은 Minimap2-V2.24에 대해 검증 될 수 있습니다. MM2-Fast에서 최적화 된 체인은 체인 매개 변수 Max-Chain-Skip = Infinity 와 함께 실행해야합니다. 매개 변수 max-chain-skip = infinity 를 갖는 것은 정밀도를 높이게합니다. 따라서 정확성 검증을 위해 Minimap2는 더 큰 값의 Max-Chain-Skip 매개 변수로 실행되어야합니다. 아래 단계를 따라 MM2- 빠른 정확도를 확인하십시오.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > mm2-fast_output
git clone https://github.com/lh3/minimap2.git -b v2.24
cd minimap2 && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > minimap2_output
Minimap2 및 MM2-Fast에 의해 생성 된 출력은 일치해야합니다.
diff minimap2_output mm2-fast_output > diff_result
파일 diff_result
비어 있어야하므로 0 줄의 차이를 의미합니다.
MATE를 사용한 기본 컴파일은 두 가지 최적화, 즉 벡터 화 된 체인 및 시퀀스 정렬을 적용합니다. 학습 된 인덱스 기반 파종은 녹의 가용성이 필요하므로 기본적으로 비활성화됩니다. 배운 해시 테이블은 녹에서 실행되는 외부 훈련 라이브러리를 사용하기 때문입니다. Rust는 설치하기가 좋으며 https://rustup.rs/를 참조하고 .bashrc 파일에 경로를 추가하십시오. 녹 설치는 몇 초 밖에 걸리지 않습니다. 다음은 mm2-fast에서 배운 해시 테이블 최적화를 활성화하는 단계입니다.
# Start by building learned hash table index for optimized seeding module
cd mm2-fast
source build_rmi.sh # #build binaries for creating index.
./create_index_rmi.sh test/MT-human.fa map-ont # #Takes two arguments: 1. path-to-reference-seq-file 2. preset.
# #For human genome, this step should take around 2-3 minutes to finish.
# Next, compile and run the mapping phase
make clean && make lhash=1
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast-lhash_output
모든 최적화가 꺼진 상태에서 MM2- 빠르게 컴파일하려면 기본 최소화로 다시 전환하려면 컴파일 중에 다음 명령을 사용하십시오. 디버깅에 유용 할 수 있습니다.
make clean && make no_opt=1
# to use test data, download github repository
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git
cd mm2-fast
# build Docker image
docker build -f Dockerfile -t mm2-fast:latest .
# minimap2 baseline
docker run -v $PWD /test:/test mm2-fast:latest /baseline/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > minimap2_baseline
# mm2-fast
docker run -v $PWD /test:/test mm2-fast:latest /mm2fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast
# mm2-fast Advanced Options
# create index
# docker run -v $PWD/test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa <>
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa map-ont
# mapping
# docker run -v $PWD/test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax <> /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
데이터 세트 전체에서 최대 1.8 배 속도를 관찰했습니다 (자세한 내용은 용지를 참조하십시오). 예를 들어, 무작위로 샘플링 된 100k는 "hg002_gm24385_1_3_3_guppy_3.6.0_prom.fastq.gz"의 무작위로 샘플링 된 경우, Minimap2는 92 초가 걸리고 MM2-Fast는 28 Cores Intel® Xeon® Platinum 8280 CPUS에서 인간 게놈에 대해 54 초가 걸립니다. . 100k 판독 값이있는 샘플링 된 데이터 세트는 여기에서 제공됩니다.
현대 CPU에서 장거리 시퀀싱 응용 프로그램을위한 최소 미니 맵 2 가속도. Saurabh Kalikar, Chirag Jain, Vasimuddin MD, Sanchit Misra. Nat Comput Sci 2, 78–83 (2022). https://doi.org/10.1038/s43588-022-00201-8
Minimap2의 원래 readme 컨텐츠는 다음과 같습니다.
git clone https://github.com/lh3/minimap2
cd minimap2 && make
# long sequences against a reference genome
./minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam
# create an index first and then map
./minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa
./minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam
# use presets (no test data)
./minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
./minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
./minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
./minimap2 -ax asm20 ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.18 or earlier)
./minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
./minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
./minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
./minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
./minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
./minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
./minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
./minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
# man page for detailed command line options
man ./minimap2.1
Minimap2는 DNA 또는 mRNA 서열을 큰 참조 데이터베이스에 대해 정렬하는 다목적 서열 정렬 프로그램이다. 전형적인 사용 사례는 다음과 같습니다. (2) 최대 ~ 15%의 오류율로 긴 판독 값 사이의 중첩을 찾는다. (3) Pacbio ISO-Seq 또는 나노 포어 cDNA의 스플 라이스 인식 정렬 또는 기준 게놈에 대한 직접 RNA 판독; (4) 일루미나 단일 또는 페어링 엔드 읽기 정렬; (5) 조립-조립 정렬; (6) ~ 15%미만의 차이가있는 두 개의 밀접하게 관련된 종 사이의 전체 게놈 정렬.
~ 10kb 노이즈 읽기 시퀀스의 경우, Minimap2는 BLASR, BWA-MEM, NGMLR 및 GMAP와 같은 주류 장거리 맵퍼보다 수십 배 빠릅니다. 시뮬레이션 된 긴 읽기에서 더 정확하고 다운 스트림 분석을위한 생물학적으로 의미있는 정렬을 생성합니다. > 100bp illumina 단락의 경우, Minimap2는 BWA-MEM 및 Bowtie2보다 3 배 빠르고 시뮬레이션 된 데이터에서 정확합니다. 자세한 평가는 Minimap2 용지 또는 사전 인쇄에서 제공됩니다.
Minimap2는 X86-64 CPU에 대해 최적화됩니다. 릴리스 페이지에서 다음과 같이 선행 된 바이너리를 획득 할 수 있습니다.
curl -L https://github.com/lh3/minimap2/releases/download/v2.24/minimap2-2.24_x64-linux.tar.bz2 | tar -jxvf -
./minimap2-2.24_x64-linux/minimap2
소스에서 컴파일하려면 C 컴파일러, GNU 제조업체 및 Zlib 개발 파일이 설치되어 있어야합니다. 그런 다음 소스 코드 디렉토리에 make
입력하여 컴파일하십시오. 컴파일 오류가 표시되면 make sse2only=1
최소값이 약간 느려집니다.
Minimap2는 또한 Neon 명령 세트를 지원하는 ARM CPU와 함께 작동합니다. 32 비트 암 아키텍처 (ARMV7 등)를 컴파일하려면 make arm_neon=1
사용하십시오. 64 비트 암 아키텍처 (ARMV8 등)를 컴파일하려면 make arm_neon=1 aarch64=1
사용하십시오.
Minimap2는 다른 SIMD 명령 세트에 구현을 포팅하기 위해 SIMD (SIMD) 라이브러리를 사용할 수 있습니다. Simde를 사용하여 컴파일하려면 make -f Makefile.simde
사용하십시오. ARM CPU를 컴파일하려면 위에 제시된 ARM 관련 명령 줄과 함께 Makefile.simde
사용하십시오.
옵션이 없으면 Minimap2는 참조 데이터베이스와 쿼리 시퀀스 파일을 입력으로 가져 와서 기본 수준 정렬없이 근사한 맵핑을 생성합니다 (즉, 좌표는 대략적이고 출력의 시가가 없음) : PAF 형식.
minimap2 ref.fa query.fq > approx-mapping.paf
PAF의 cg
태그에서 시가를 생성하도록 Minimap2를 요청할 수 있습니다.
minimap2 -c ref.fa query.fq > alignment.paf
또는 SAM 형식의 정렬을 출력하려면 :
minimap2 -a ref.fa query.fq > alignment.sam
Minimap2는 Gzip'd Fasta 및 FastQ 형식으로 완벽하게 작동합니다. Fasta와 FastQ를 변환하거나 gzip'd 파일을 압축 할 필요가 없습니다.
인간 기준 게놈의 경우, Minimap2는 맵핑 전에 참조에 대한 최소 인덱스를 생성하는 데 몇 분이 걸립니다. 인덱싱 시간을 줄이려면 옵션 -d 로 색인을 선택적으로 저장하고 minimap2 명령 줄의 인덱스 파일로 참조 시퀀스 파일을 바꾸십시오.
minimap2 -d ref.mmi ref.fa # indexing
minimap2 -a ref.mmi reads.fq > alignment.sam # alignment
중요한 것은 인덱스를 구축하면 -K , -w , -h 및 -h 및 -h 와 같은 인덱싱 매개 변수를 매핑하는 동안 변경할 수 없다는 점에 유의해야합니다. 다른 데이터 유형에 대해 Minimap2를 실행하는 경우 여러 매개 변수로 여러 인덱스를 생성해야 할 것입니다. 이로 인해 쿼리 데이터 유형에 관계없이 항상 동일한 인덱스를 사용하는 BWA와 Minimap2가 다릅니다.
Minimap2는 모든 응용 프로그램에 동일한 기본 알고리즘을 사용합니다. 그러나, 다른 데이터 유형으로 인해 (예 : 짧은 vs 길 읽기, DNA 대 mRNA 판독 됨) 최적의 성능과 정확도를 위해 Minimap2를 조정해야합니다. 일반적으로 옵션 -X가 있는 사전 설정을 선택하는 것이 좋습니다. 기본 설정은 map-ont
와 동일합니다.
minimap2 -ax map-pb ref.fa pacbio-reads.fq > aln.sam # for PacBio CLR reads
minimap2 -ax map-ont ref.fa ont-reads.fq > aln.sam # for Oxford Nanopore reads
map-pb
와 map-ont
의 차이점은 map-pb
HOMOPOLYMER-COMPRESSED (HPC) 최소화기를 종자로 사용하는 반면 map-ont
일반 미니 만들기를 종자로 사용한다는 것입니다. 황제 평가는 Pacbio CLR 읽기를 정렬 할 때 HPC 미니 마이저가 성능과 감도를 향상시킬 수 있지만 나노 포어 읽기를 정렬 할 때 상처를 입 힙니다.
minimap2 -ax splice:hq -uf ref.fa iso-seq.fq > aln.sam # PacBio Iso-seq/traditional cDNA
minimap2 -ax splice ref.fa nanopore-cdna.fa > aln.sam # Nanopore 2D cDNA-seq
minimap2 -ax splice -uf -k14 ref.fa direct-rna.fq > aln.sam # Nanopore Direct RNA-seq
minimap2 -ax splice --splice-flank=no SIRV.fa SIRV-seq.fa # mapping against SIRV control
삼구형 전장 cDNA, EST, Pacbio ISO-Seq, 나노 포어 2D cDNA-seq 및 직접 RNA-Seq를 포함하여 다른 장기 읽기 RNA-Seq 기술이 있습니다. 그들은 다양한 품질과 속성의 데이터를 생성합니다. 기본적으로 -x splice
전 사체 가닥에 대한 읽기 방향이 알려지지 않았다고 가정합니다. 그것은 방향을 추론하고 가능한 경우 ts
SAM/PAF 태그에 가닥을 쓰기 위해 두 라운드의 정렬을 시도합니다. ISO-Seq, 직접 RNA-Seq 및 삼색 전장 CDNA의 경우, 최소화 된 전 사체 가닥 만 고려하기 위해 -UF를 적용하기 위해 -uf
적용하는 것이 바람직하다. 이는 정확도에 대한 약간의 개선으로 정렬 속도를 높입니다. 시끄러운 나노 포어 직접 RNA-Seq 판독 값의 경우, 첫 번째 또는 마지막 엑손에 대한 민감도를 높이기 위해 더 작은 k-mer 크기를 사용하는 것이 좋습니다.
Minimap2는 인트론을 제외한 최대 점수 서브 세그먼트의 점수에 의한 정렬을 평가하고 SAM에서 1 차로 가장 좋은 정렬을 표시합니다. 스 플라이 싱 된 유전자가 또한 복제되지 않은 유사 유전자를 가질 때, Minimap2는 의도적으로 스 플라이 싱 된 정렬을 선호하지는 않지만, 실제로는 스 플라이 싱 된 정렬을 1 차로 표시합니다. 기본적으로 Minimap2는 최대 5 개의 2 차 정렬을 출력합니다 (즉, RNA-Seq 매핑의 맥락에서 유사성이있을 가능성이 높습니다). 옵션 -n 으로 조정할 수 있습니다.
긴 RNA -Seq 판독의 경우, Minimap2는 유전자 융합/구조적 변화에 의해 발생하거나 최대 인트론 길이 -g 보다 긴 인트론에 의해 발생할 수있는 키메라 정렬을 생성 할 수있다 (기본적으로 200k). 현재로서는 Minimap2가 느려지고 때로는 잘못된 정렬로 이어 지므로 지나치게 큰 -G를 적용하는 것이 좋습니다.
기본적으로 -x splice
GT [A/G] .. [C/T] Ag를 GT [C/T] .. 하나의 추가베이스를 고려하면 시끄러운 읽기의 접합 정확도가 향상되지만 널리 사용되는 SIRV 제어 데이터에 대해 정렬 할 때 정확도가 줄어 듭니다. SIRV가 진화 적으로 보수적 인 스 플라이 싱 신호를 존중하지 않기 때문입니다. SIRV를 공부하는 경우, 추가 기반을 무시하고 Minimap2 만 모델 GT..ag 만 모델로 만들기 위해 --splice-flank=no
적용 할 수 있습니다.
v2.17 이후, Minimap2는 선택적으로 주석이 달린 유전자를 입력으로 취하고 주석이 달린 스플 라이스 접합에 우선 순위를 지정할 수 있습니다. 이 기능을 사용하려면 가능합니다
paftools.js gff2bed anno.gff > anno.bed
minimap2 -ax splice --junc-bed anno.bed ref.fa query.fa > aln.sam
여기서 anno.gff
는 GTF 또는 GFF3 형식의 유전자 주석입니다 ( gff2bed
형식을 자동으로 테스트합니다). gff2bed
의 출력은 12 열 침대 형식 또는 Bed12 형식입니다. --junc-bed
옵션을 사용하면 미니 맵 2가 정렬 된 정션이 주석의 접합부와 일치하는 경우 -junc-bed 옵션을 사용하여 보너스 점수 ( --junc-bonus
로 조정)를 추가합니다. 옵션 --junc-bed
또한 가닥 필드를 포함하여 5 열 침대를 가져옵니다. 이 경우 각 라인은 방향 정션을 나타냅니다.
minimap2 -x ava-pb reads.fq reads.fq > ovlp.paf # PacBio CLR read overlap
minimap2 -x ava-ont reads.fq reads.fq > ovlp.paf # Oxford Nanopore read overlap
마찬가지로, ava-pb
HPC 미니 마이저를 사용하는 반면 ava-ont
일반적인 최소화기를 사용합니다. 일반적으로 겹치는 모드에서 기본 수준 정렬을 수행하는 것이 좋습니다. 속도가 느리고 오 탐지 겹침을 생성 할 수 있기 때문입니다. 그러나 성능이 걱정되지 않으면 -a
또는 -c
추가하려고 시도 할 수 있습니다.
minimap2 -ax sr ref.fa reads-se.fq > aln.sam # single-end alignment
minimap2 -ax sr ref.fa read1.fq read2.fq > aln.sam # paired-end alignment
minimap2 -ax sr ref.fa reads-interleaved.fq > aln.sam # paired-end alignment
두 개의 읽기 파일이 지정되면 Minimap2는 각 파일에서 차례로 읽고 내부적으로 인터리브 스트림으로 병합합니다. 입력 스트림에 인접 해 있고 동일한 이름을 갖는 경우 두 개의 판독 값이 쌍을 이루는 것으로 간주됩니다 (존재하는 경우 /[0-9]
접미사가 다듬 었음). 단일 및 페어링 엔드 읽기를 혼합 할 수 있습니다.
Minimap2는 짧은 접합 판독으로 잘 작동하지 않습니다. 짧은 판독을위한 유능한 RNA-Seq 매퍼가 많이 있습니다.
minimap2 -ax asm5 ref.fa asm.fa > aln.sam # assembly to assembly/ref alignment
종교 간 전세체 정렬의 경우, 스코어링 시스템은 서열 발산에 따라 조정되어야합니다.
디자인 결함으로 인해 BAM은> 65535 작업 (SAM 및 CRAM 작업)을 갖춘 시가 줄과 함께 작동하지 않습니다. 그러나, 초 긴 나노 포어 판독의 경우 Minimap2는 BAM의 능력을 넘어서서 ~ 1%의 판독베이스를 긴 시가와 정렬 할 수 있습니다. 이러한 SAM/Cram을 BAM으로 변환하면 Picard와 최근 Samtools가 오류를 던지고 중단합니다. 오래된 Samtools 및 기타 도구는 손상된 BAM을 만들 수 있습니다.
이 문제를 피하려면 Minimap2 명령 줄에서 옵션 -L
추가 할 수 있습니다. 이 옵션은 긴 시가를 CG
태그로 움직이고 Sam 시가 칼럼에 완전히 잘린 시가를 남깁니다. 시가를 읽지 않는 현재 도구 (예 : 병합 및 정렬)는 여전히 BAM 레코드와 함께 작동합니다. 시가를 읽는 도구는 이러한 레코드를 효과적으로 무시합니다. 미래의 도구는 옵션 -L
로 생성 된 장거리 기록을 완벽하게 인식 할 것으로 결정되었습니다.
TL; DR : 매우 긴 판독 값으로 작업하고 BAM 파일 만 처리하는 도구를 사용하는 경우 옵션 -L
추가하십시오.
cs
SAM/PAF 태그는 불일치 및 indels에서베이스를 인코딩합니다. 정규 표현식 /(:[0-9]+|*[az][az]|[=+-][A-Za-z]+)+/
일치합니다. 시가와 마찬가지로 cs
일련의 작업으로 구성됩니다. 각 주요 캐릭터는 작업을 지정합니다. 다음 순서는 작업과 관련된 순서입니다.
cs
태그는 명령 줄 옵션 --cs
에 의해 활성화됩니다. 예를 들어 다음과 같은 정렬 :
CGATCGATAAATAGAGTAG---GAATAGCA
|| |||| |||||||||| |||| || |
CGATCG---AATAGAGTAGGTCGAATtGCA
:6-ata:10+gtc:4*at:3
, 여기서 :[0-9]+
동일한 블록을 나타내고, -ata
삭제, +gtc
ansertion을 나타내고 *at
참조베이스 a
대체된다는 것을 나타냅니다. 쿼리베이스 t
. MD
SAM 태그와 유사하지만 독립형이며 구문 분석하기가 더 쉽습니다.
--cs=long
사용하는 경우 cs
문자열에는 정렬에서 동일한 시퀀스도 포함되어 있습니다. 위의 예는 =CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA
가됩니다. 긴 형태의 cs
참조 및 쿼리 시퀀스를 하나의 문자열로 인코딩합니다. cs
태그는 또한 인트론 위치 및 스 플라이 싱 신호를 인코딩합니다 (자세한 내용은 Minimap2 Manpage 참조).
Minimap2는 또한 PAF 형식의 정렬을 처리하는 (Java) 스크립트 paftools.js와 함께 제공됩니다. 변형을 조립으로 회의 대 회의 대정 정렬, 정렬에 따라 침대 파일을 들어 올리고 형식 간 변환 및 다양한 평가를위한 유틸리티를 제공합니다. 자세한 내용은 misc/readme.md를 참조하십시오.
다음에서 Minimap2 명령 줄 옵션은 대시를 앞두고 대담하게 강조 표시됩니다. 설명은 Minimap2 매개 변수를 조정하는 데 도움이 될 수 있습니다.
읽기 -i [= 4g ] 기준베이스, 추출 ( -k , -w ) -민간화제를 읽고 해시 테이블에 색인하십시오.
-K [= 200m ] 쿼리베이스를 읽으십시오. 각 쿼리 시퀀스에 대해 3 단계에서 7 단계를 수행합니다.
각 ( -k , -w ) -쿼리에 대해 참조 인덱스에 대해 확인하십시오. 참조 최소화가 최상위 -f [= 2e -4 ]가 가장 빈번하지 않은 경우, 씨앗 이라고하는 참조에서 발생을 수집하십시오.
참조 위치에 따라 씨앗을 정렬하십시오. 역동적 인 프로그래밍으로 쇄신. 각 체인은 잠재적 매핑을 나타냅니다. 중첩을 읽으려면 모든 체인을보고 한 다음 8 단계로 이동하십시오. 기준 매핑은 5 ~ 7 단계를 수행하십시오.
P를 기본 매핑 세트로, 처음에는 빈 세트입니다. 체인 점수에 따라 최상의 체인에서 최악의 각 체인에 대해 : 쿼리에서 체인이 p 의 체인과 -마스크 수준 [= 0.5 ] 이상의 짧은 체인의 비율로 겹치면 체인을 다음과 같이 표시합니다. p 의 사슬에 이차적이다 . 그렇지 않으면 체인을 p 에 추가하십시오.
모든 1 차 매핑을 유지하십시오. 또한 체인 점수가 해당 1 차 매핑의 -p [= 0.8 ]보다 높은 경우 최대 -n [= 5 ] 최고 2 차 매핑을 유지합니다.
정렬이 요청되면 잠재적으로 긴 삽입과 긴 삭제로 이어질 경우 내부 시드를 필터링하십시오. 가장 왼쪽 씨앗에서 연장됩니다. 내부 종자 간의 글로벌 정렬을 수행하십시오. 글로벌 정렬을 따른 축적 점수가 -z [= 400 ]로 떨어지면 긴 간격을 무시한 경우 체인을 분할하십시오. 가장 오른쪽 씨앗에서 뻗어 있습니다. 출력 체인과 그 정렬.
입력에 쿼리 시퀀스가 더 있으면 더 이상 쿼리가 남지 않을 때까지 2 단계로 이동하십시오.
참조 시퀀스가 더 있으면 쿼리 파일을 시작하여 1 단계로 이동하십시오. 그렇지 않으면 중지하십시오.
Manpage Minimap2.1은 Minimap2 명령 줄 옵션 및 선택적 태그에 대한 자세한 설명을 제공합니다. FAQ 페이지는 자주 묻는 몇 가지 질문에 답변합니다. 버그가 발생하거나 추가 질문이나 요청이 있으면 문제 페이지에서 문제를 제기 할 수 있습니다. 당분간 특정 메일 링리스트가 없습니다.
작업에서 Minimap2를 사용하는 경우 다음을 인용하십시오.
Li, H. (2018). Minimap2 : 뉴클레오티드 서열에 대한 쌍별 정렬. 생물 정보학 , 34 : 3094-3100. doi : 10.1093/bioinformatics/bty191
및/또는 :
Li, H. (2021). Minimap2 정렬 정확도를 향상시키기위한 새로운 전략. 생물 정보학 , 37 : 4572-4574. doi : 10.1093/bioinformatics/btab705
Minimap2는 명령 줄 도구 일뿐 만 아니라 프로그래밍 라이브러리이기도합니다. 인덱스를 빌드/로드하고 인덱스에 대해 시퀀스를 정렬하기위한 C API를 제공합니다. File Example.c는 C API의 전형적인 사용을 보여줍니다. 헤더 파일 Minimap.h는보다 자세한 API 문서를 제공합니다. Minimap2는이 헤더의 API를 안정적으로 유지하는 것을 목표로합니다. 파일 mmpriv.h에는 추가 개인 API가 포함되어 있으며, 이는 자주 변경 될 수 있습니다.
이 저장소는 또한 C API의 서브 세트에 대한 파이썬 바인딩을 제공합니다. 파일 python/readme.rst는 전체 문서를 제공합니다. Python/minimap2.py는 예를 보여줍니다. 이 Python Extension, Mappy는 PIP를 통해 pip install mappy
또는 conda install -c bioconda mappy
통해 Bioconda에서 제공됩니다.
Minimap2는 종자 위치가 차선책 일 수있는 길고 복잡성 영역을 통해 차선 적 정렬을 생성 할 수 있습니다. 그러한 지역에서 최적의 정렬조차 잘못 될 수 있기 때문에 이것은 큰 관심사가되어서는 안됩니다.
Minimap2는 ARM CPU의 X86 CPU 또는 NEON에 대한 SSE2 지침이 필요합니다. 비 SIMD 지원을 추가 할 수는 있지만 MinimAP2가 여러 번 느려집니다.
Minimap2는 단일 쿼리 또는 데이터베이스 시퀀스 ~ 20 억 기초 이상으로 작동하지 않습니다 (정확히 2,147,483,647). 모든 시퀀스의 총 길이는이 임계 값을 잘 초과 할 수 있습니다.
Minimap2는 종종 작은 엑손을 그리워합니다.