2017-09-17 05:51:13 +08:00
|
|
|
from libc.stdint cimport int8_t, uint8_t, int32_t, int64_t, uint32_t, uint64_t
|
2017-09-16 20:44:47 +08:00
|
|
|
|
|
|
|
|
cdef extern from "minimap.h":
|
|
|
|
|
#
|
|
|
|
|
# Options
|
|
|
|
|
#
|
|
|
|
|
ctypedef struct mm_idxopt_t:
|
2017-11-12 08:54:06 +08:00
|
|
|
short k, w, flag, bucket_bits
|
2020-01-19 01:24:44 +08:00
|
|
|
int64_t mini_batch_size
|
2017-09-16 20:44:47 +08:00
|
|
|
uint64_t batch_size
|
|
|
|
|
|
|
|
|
|
ctypedef struct mm_mapopt_t:
|
2019-05-01 10:30:32 +08:00
|
|
|
int64_t flag
|
2017-10-06 05:10:07 +08:00
|
|
|
int seed
|
2017-09-16 20:44:47 +08:00
|
|
|
int sdust_thres
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2019-02-28 03:41:01 +08:00
|
|
|
int max_qlen
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2021-05-25 04:09:09 +08:00
|
|
|
int bw, bw_long
|
2017-09-16 20:44:47 +08:00
|
|
|
int max_gap, max_gap_ref
|
2017-10-16 23:15:07 +08:00
|
|
|
int max_frag_len
|
2019-02-28 03:41:01 +08:00
|
|
|
int max_chain_skip, max_chain_iter
|
2017-09-16 20:44:47 +08:00
|
|
|
int min_cnt
|
|
|
|
|
int min_chain_score
|
2020-01-18 23:29:33 +08:00
|
|
|
float chain_gap_scale
|
2021-05-24 09:00:15 +08:00
|
|
|
int rmq_size_cap, rmq_inner_dist
|
2021-05-25 04:38:45 +08:00
|
|
|
int rmq_rescue_size
|
|
|
|
|
float rmq_rescue_ratio
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2017-09-16 20:44:47 +08:00
|
|
|
float mask_level
|
2020-08-21 23:12:50 +08:00
|
|
|
int mask_len
|
2017-09-16 20:44:47 +08:00
|
|
|
float pri_ratio
|
|
|
|
|
int best_n
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2020-01-21 23:33:39 +08:00
|
|
|
float alt_drop
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2017-09-16 20:44:47 +08:00
|
|
|
int a, b, q, e, q2, e2
|
2018-05-01 07:55:23 +08:00
|
|
|
int sc_ambi
|
2017-09-16 20:44:47 +08:00
|
|
|
int noncan
|
2019-04-28 10:39:26 +08:00
|
|
|
int junc_bonus
|
2018-02-15 06:10:02 +08:00
|
|
|
int zdrop, zdrop_inv
|
2017-10-16 23:15:07 +08:00
|
|
|
int end_bonus
|
2017-09-16 20:44:47 +08:00
|
|
|
int min_dp_max
|
|
|
|
|
int min_ksw_len
|
2017-12-12 23:39:20 +08:00
|
|
|
int anchor_ext_len, anchor_ext_shift
|
2018-02-13 02:29:18 +08:00
|
|
|
float max_clip_ratio
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2017-10-06 05:10:07 +08:00
|
|
|
int pe_ori, pe_bonus
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2017-09-16 20:44:47 +08:00
|
|
|
float mid_occ_frac
|
2018-03-13 02:32:27 +08:00
|
|
|
int32_t min_mid_occ
|
2017-09-16 20:44:47 +08:00
|
|
|
int32_t mid_occ
|
2017-10-06 05:10:07 +08:00
|
|
|
int32_t max_occ
|
2020-01-19 01:24:44 +08:00
|
|
|
int64_t mini_batch_size
|
2018-11-06 08:28:44 +08:00
|
|
|
int64_t max_sw_mat
|
2021-05-24 09:00:15 +08:00
|
|
|
|
2018-07-25 11:29:55 +08:00
|
|
|
const char *split_prefix
|
2017-09-16 20:44:47 +08:00
|
|
|
|
|
|
|
|
int mm_set_opt(char *preset, mm_idxopt_t *io, mm_mapopt_t *mo)
|
2017-09-18 03:21:36 +08:00
|
|
|
int mm_verbose
|
2017-09-16 20:44:47 +08:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Indexing
|
|
|
|
|
#
|
|
|
|
|
ctypedef struct mm_idx_seq_t:
|
|
|
|
|
char *name
|
|
|
|
|
uint64_t offset
|
|
|
|
|
uint32_t len
|
|
|
|
|
|
|
|
|
|
ctypedef struct mm_idx_bucket_t:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
ctypedef struct mm_idx_t:
|
2017-11-12 08:54:06 +08:00
|
|
|
int32_t b, w, k, flag
|
2017-09-16 20:44:47 +08:00
|
|
|
uint32_t n_seq
|
|
|
|
|
mm_idx_seq_t *seq
|
|
|
|
|
uint32_t *S
|
|
|
|
|
mm_idx_bucket_t *B
|
2018-03-27 03:12:54 +08:00
|
|
|
void *km
|
|
|
|
|
void *h
|
2017-09-16 20:44:47 +08:00
|
|
|
|
|
|
|
|
ctypedef struct mm_idx_reader_t:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
mm_idx_reader_t *mm_idx_reader_open(const char *fn, const mm_idxopt_t *opt, const char *fn_out)
|
|
|
|
|
mm_idx_t *mm_idx_reader_read(mm_idx_reader_t *r, int n_threads)
|
|
|
|
|
void mm_idx_reader_close(mm_idx_reader_t *r)
|
|
|
|
|
void mm_idx_destroy(mm_idx_t *mi)
|
|
|
|
|
void mm_mapopt_update(mm_mapopt_t *opt, const mm_idx_t *mi)
|
|
|
|
|
|
2018-02-23 23:18:26 +08:00
|
|
|
int mm_idx_index_name(mm_idx_t *mi)
|
|
|
|
|
|
2017-09-16 20:44:47 +08:00
|
|
|
#
|
2017-09-17 12:05:30 +08:00
|
|
|
# Mapping (key struct defined in cmappy.h below)
|
2017-09-16 20:44:47 +08:00
|
|
|
#
|
|
|
|
|
ctypedef struct mm_reg1_t:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
ctypedef struct mm_tbuf_t:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
mm_tbuf_t *mm_tbuf_init()
|
|
|
|
|
void mm_tbuf_destroy(mm_tbuf_t *b)
|
2018-07-25 11:29:55 +08:00
|
|
|
void *mm_tbuf_get_km(mm_tbuf_t *b)
|
|
|
|
|
int mm_gen_cs(void *km, char **buf, int *max_len, const mm_idx_t *mi, const mm_reg1_t *r, const char *seq, int no_iden)
|
|
|
|
|
int mm_gen_MD(void *km, char **buf, int *max_len, const mm_idx_t *mi, const mm_reg1_t *r, const char *seq)
|
2017-09-16 20:44:47 +08:00
|
|
|
|
2017-09-16 21:30:00 +08:00
|
|
|
#
|
2017-09-18 02:41:59 +08:00
|
|
|
# Helper header (because it is hard to expose mm_reg1_t with Cython)
|
2017-09-16 21:30:00 +08:00
|
|
|
#
|
2017-09-17 12:05:30 +08:00
|
|
|
cdef extern from "cmappy.h":
|
2017-09-16 20:44:47 +08:00
|
|
|
ctypedef struct mm_hitpy_t:
|
2017-09-17 05:51:13 +08:00
|
|
|
const char *ctg
|
|
|
|
|
int32_t ctg_start, ctg_end
|
|
|
|
|
int32_t qry_start, qry_end
|
2017-10-16 23:15:07 +08:00
|
|
|
int32_t blen, mlen, NM, ctg_len
|
2017-09-17 05:51:13 +08:00
|
|
|
uint8_t mapq, is_primary
|
|
|
|
|
int8_t strand, trans_strand
|
2018-02-01 00:33:08 +08:00
|
|
|
int32_t seg_id
|
2017-09-17 05:51:13 +08:00
|
|
|
int32_t n_cigar32
|
|
|
|
|
uint32_t *cigar32
|
2017-09-17 10:43:52 +08:00
|
|
|
|
2017-09-16 23:14:01 +08:00
|
|
|
void mm_reg2hitpy(const mm_idx_t *mi, mm_reg1_t *r, mm_hitpy_t *h)
|
2017-09-16 20:44:47 +08:00
|
|
|
void mm_free_reg1(mm_reg1_t *r)
|
2018-02-01 00:33:08 +08:00
|
|
|
mm_reg1_t *mm_map_aux(const mm_idx_t *mi, const char *seq1, const char *seq2, int *n_regs, mm_tbuf_t *b, const mm_mapopt_t *opt)
|
2018-02-23 23:18:26 +08:00
|
|
|
char *mappy_fetch_seq(const mm_idx_t *mi, const char *name, int st, int en, int *l)
|
2018-08-06 08:57:05 +08:00
|
|
|
mm_idx_t *mappy_idx_seq(int w, int k, int is_hpc, int bucket_bits, const char *seq, int l)
|
2017-09-18 02:41:59 +08:00
|
|
|
|
|
|
|
|
ctypedef struct kstring_t:
|
|
|
|
|
unsigned l, m
|
|
|
|
|
char *s
|
|
|
|
|
|
|
|
|
|
ctypedef struct kstream_t:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
ctypedef struct kseq_t:
|
|
|
|
|
kstring_t name, comment, seq, qual
|
|
|
|
|
int last_char
|
|
|
|
|
kstream_t *f
|
|
|
|
|
|
|
|
|
|
kseq_t *mm_fastx_open(const char *fn)
|
|
|
|
|
void mm_fastx_close(kseq_t *ks)
|
|
|
|
|
int kseq_read(kseq_t *seq)
|
2017-09-18 03:21:36 +08:00
|
|
|
|
2018-02-21 00:05:54 +08:00
|
|
|
char *mappy_revcomp(int l, const uint8_t *seq)
|
2017-09-18 03:21:36 +08:00
|
|
|
int mm_verbose_level(int v)
|
|
|
|
|
void mm_reset_timer()
|