more functional minimap2.py; added categories
This commit is contained in:
parent
0b660c70e2
commit
cf93e5c0a1
|
|
@ -10,6 +10,10 @@ matrix:
|
||||||
python: "2.7"
|
python: "2.7"
|
||||||
before_install: pip install cython
|
before_install: pip install cython
|
||||||
script: python setup.py build_ext
|
script: python setup.py build_ext
|
||||||
|
- language: python
|
||||||
|
python: "3.0"
|
||||||
|
before_install: pip install cython
|
||||||
|
script: python setup.py build_ext
|
||||||
- language: python
|
- language: python
|
||||||
python: "3.5"
|
python: "3.5"
|
||||||
before_install: pip install cython
|
before_install: pip install cython
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
.TH minimap2 1 "14 September 2017" "minimap2-2.1.1-r364-dirty" "Bioinformatics tools"
|
.TH minimap2 1 "17 September 2017" "minimap2-2.1.1-r402-dirty" "Bioinformatics tools"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
minimap2 - mapping and alignment between collections of DNA sequences
|
minimap2 - mapping and alignment between collections of DNA sequences
|
||||||
|
|
@ -398,6 +398,7 @@ NM i Total number of mismatches and gaps in the alignment
|
||||||
AS i DP alignment score
|
AS i DP alignment score
|
||||||
ms i DP score of the max scoring segment in the alignment
|
ms i DP score of the max scoring segment in the alignment
|
||||||
nn i Number of ambiguous bases in the alignment
|
nn i Number of ambiguous bases in the alignment
|
||||||
|
ts A Transcript strand (splice mode only)
|
||||||
cg Z CIGAR string (only in PAF)
|
cg Z CIGAR string (only in PAF)
|
||||||
.TE
|
.TE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,11 @@ cdef class Alignment:
|
||||||
else: strand = '?'
|
else: strand = '?'
|
||||||
if self._is_primary != 0: tp = 'tp:A:P'
|
if self._is_primary != 0: tp = 'tp:A:P'
|
||||||
else: tp = 'tp:A:S'
|
else: tp = 'tp:A:S'
|
||||||
|
if self._trans_strand > 0: ts = 'ts:A:+'
|
||||||
|
elif self._trans_strand < 0: ts = 'ts:A:-'
|
||||||
|
else: ts = 'ts:A:.'
|
||||||
return "\t".join([str(self._q_st), str(self._q_en), strand, self._ctg, str(self._ctg_len), str(self._r_st), str(self._r_en),
|
return "\t".join([str(self._q_st), str(self._q_en), strand, self._ctg, str(self._ctg_len), str(self._r_st), str(self._r_en),
|
||||||
str(self._blen - self._NM), str(self._blen), str(self._mapq), "NM:i:" + str(self._NM), tp, "cg:Z:" + self.cigar_str])
|
str(self._blen - self._NM), str(self._blen), str(self._mapq), tp, ts, "cg:Z:" + self.cigar_str])
|
||||||
|
|
||||||
cdef class ThreadBuffer:
|
cdef class ThreadBuffer:
|
||||||
cdef cmappy.mm_tbuf_t *_b
|
cdef cmappy.mm_tbuf_t *_b
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,28 @@ import sys, getopt
|
||||||
import mappy as mp
|
import mappy as mp
|
||||||
|
|
||||||
def main(argv):
|
def main(argv):
|
||||||
opts, args = getopt.getopt(argv[1:], "")
|
opts, args = getopt.getopt(argv[1:], "x:n:m:k:w:r:")
|
||||||
if len(args) < 2:
|
if len(args) < 2:
|
||||||
print("Usage: minimap2.py <ref.fa>|<ref.mmi> <query.fq>")
|
print("Usage: minimap2.py [options] <ref.fa>|<ref.mmi> <query.fq>")
|
||||||
|
print("Options:")
|
||||||
|
print(" -x STR preset: sr, map-pb, map-ont, asm5, asm10 or splice")
|
||||||
|
print(" -n INT mininum number of minimizers")
|
||||||
|
print(" -m INT mininum chaining score")
|
||||||
|
print(" -k INT k-mer length")
|
||||||
|
print(" -w INT minimizer window length")
|
||||||
|
print(" -r INT band width")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
a = mp.Aligner(args[0]) # load/build index
|
|
||||||
|
preset, min_cnt, min_sc, k, w, bw = None, None, None, None, None, None
|
||||||
|
for opt, arg in opts:
|
||||||
|
if opt == '-x': preset = arg
|
||||||
|
elif opt == '-n': min_cnt = int(arg)
|
||||||
|
elif opt == '-m': min_chain_score = int(arg)
|
||||||
|
elif opt == '-r': bw = int(arg)
|
||||||
|
elif opt == '-k': k = int(arg)
|
||||||
|
elif opt == '-w': w = int(arg)
|
||||||
|
|
||||||
|
a = mp.Aligner(args[0], preset=preset, min_cnt=min_cnt, min_chain_score=min_sc, k=k, w=w, bw=bw)
|
||||||
if not a: raise Exception("ERROR: failed to load/build index file '{}'".format(args[0]))
|
if not a: raise Exception("ERROR: failed to load/build index file '{}'".format(args[0]))
|
||||||
for name, seq, qual in mp.fastx_read(args[1]): # read one sequence
|
for name, seq, qual in mp.fastx_read(args[1]): # read one sequence
|
||||||
for h in a.map(seq): # traverse hits
|
for h in a.map(seq): # traverse hits
|
||||||
|
|
|
||||||
15
setup.py
15
setup.py
|
|
@ -23,14 +23,15 @@ def readme():
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name = 'mappy',
|
name = 'mappy',
|
||||||
version = '2.2rc0',
|
version = '2.2rc1',
|
||||||
url = 'https://github.com/lh3/minimap2',
|
url = 'https://github.com/lh3/minimap2',
|
||||||
description = 'Minimap2 python binding',
|
description = 'Minimap2 python binding',
|
||||||
long_description = readme(),
|
long_description = readme(),
|
||||||
author = 'Heng Li',
|
author = 'Heng Li',
|
||||||
author_email = 'lh3@me.com',
|
author_email = 'lh3@me.com',
|
||||||
license = 'MIT',
|
license = 'MIT',
|
||||||
keywords = ['bioinformatics', 'sequence-alignment'],
|
keywords = 'sequence-alignment',
|
||||||
|
scripts = ['python/minimap2.py'],
|
||||||
ext_modules = [Extension('mappy',
|
ext_modules = [Extension('mappy',
|
||||||
sources = [module_src, 'align.c', 'bseq.c', 'chain.c', 'format.c', 'hit.c', 'index.c',
|
sources = [module_src, 'align.c', 'bseq.c', 'chain.c', 'format.c', 'hit.c', 'index.c',
|
||||||
'ksw2_extd2_sse.c', 'ksw2_exts2_sse.c', 'ksw2_extz2_sse.c', 'ksw2_ll_sse.c',
|
'ksw2_extd2_sse.c', 'ksw2_exts2_sse.c', 'ksw2_extz2_sse.c', 'ksw2_ll_sse.c',
|
||||||
|
|
@ -41,4 +42,14 @@ setup(
|
||||||
extra_compile_args = ['-msse4'], # WARNING: ancient x86_64 CPUs don't have SSE4
|
extra_compile_args = ['-msse4'], # WARNING: ancient x86_64 CPUs don't have SSE4
|
||||||
include_dirs = ['.'],
|
include_dirs = ['.'],
|
||||||
libraries = ['z', 'm', 'pthread'])],
|
libraries = ['z', 'm', 'pthread'])],
|
||||||
|
classifiers = [
|
||||||
|
'Development Status :: 4 - Beta',
|
||||||
|
'License :: OSI Approved :: MIT License',
|
||||||
|
'Operating System :: POSIX',
|
||||||
|
'Programming Language :: C',
|
||||||
|
'Programming Language :: Cython',
|
||||||
|
'Programming Language :: Python :: 2.7',
|
||||||
|
'Programming Language :: Python :: 3',
|
||||||
|
'Intended Audience :: Science/Research',
|
||||||
|
'Topic :: Scientific/Engineering :: Bio-Informatics'],
|
||||||
cmdclass = cmdclass)
|
cmdclass = cmdclass)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue