| # cython: language_level=3 | |
| from libc.stdint cimport int8_t, int16_t, int32_t, int64_t | |
| from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t | |
| from libc.stdlib cimport malloc, calloc, realloc, free | |
| from libc.string cimport memcpy, memcmp, strncpy, strlen, strdup | |
| from libc.stdio cimport FILE, printf | |
| from pysam.libcfaidx cimport faidx_t, FastaFile | |
| from pysam.libcalignedsegment cimport AlignedSegment | |
| from pysam.libchtslib cimport * | |
| from cpython cimport array | |
| cimport cython | |
| cdef extern from *: | |
| ctypedef char* const_char_ptr "const char*" | |
| cdef extern from "htslib_util.h": | |
| char * pysam_bam_get_qname(bam1_t * b) | |
| #################################################################### | |
| # Utility types | |
| ctypedef struct __iterdata: | |
| htsFile * htsfile | |
| bam_hdr_t * header | |
| hts_itr_t * iter | |
| faidx_t * fastafile | |
| int tid | |
| char * seq | |
| int seq_len | |
| int min_mapping_quality | |
| int flag_require | |
| int flag_filter | |
| bint compute_baq | |
| bint redo_baq | |
| bint ignore_orphans | |
| int adjust_capq_threshold | |
| cdef class AlignmentHeader(object): | |
| cdef bam_hdr_t *ptr | |
| cdef class AlignmentFile(HTSFile): | |
| cdef readonly object reference_filename | |
| cdef readonly AlignmentHeader header | |
| # pointer to index | |
| cdef hts_idx_t *index | |
| # current read within iteration | |
| cdef bam1_t * b | |
| cdef bam1_t * getCurrent(self) | |
| cdef int cnext(self) | |
| # write an aligned read | |
| cpdef int write(self, AlignedSegment read) except -1 | |
| cdef class IteratorRow: | |
| cdef int retval | |
| cdef bam1_t * b | |
| cdef AlignmentFile samfile | |
| cdef htsFile * htsfile | |
| cdef hts_idx_t * index | |
| cdef AlignmentHeader header | |
| cdef int owns_samfile | |
| cdef class IteratorRowRegion(IteratorRow): | |
| cdef hts_itr_t * iter | |
| cdef bam1_t * getCurrent(self) | |
| cdef int cnext(self) | |
| cdef class IteratorRowHead(IteratorRow): | |
| cdef int max_rows | |
| cdef int current_row | |
| cdef bam1_t * getCurrent(self) | |
| cdef int cnext(self) | |
| cdef class IteratorRowAll(IteratorRow): | |
| cdef bam1_t * getCurrent(self) | |
| cdef int cnext(self) | |
| cdef class IteratorRowAllRefs(IteratorRow): | |
| cdef int tid | |
| cdef IteratorRowRegion rowiter | |
| cdef class IteratorRowSelection(IteratorRow): | |
| cdef int current_pos | |
| cdef positions | |
| cdef bam1_t * getCurrent(self) | |
| cdef int cnext(self) | |
| cdef class IteratorColumn: | |
| # result of the last plbuf_push | |
| cdef IteratorRowRegion iter | |
| cdef int tid | |
| cdef int pos | |
| cdef int n_plp | |
| cdef uint32_t min_base_quality | |
| cdef const bam_pileup1_t * plp | |
| cdef bam_mplp_t pileup_iter | |
| cdef __iterdata iterdata | |
| cdef AlignmentFile samfile | |
| cdef FastaFile fastafile | |
| cdef stepper | |
| cdef int max_depth | |
| cdef bint ignore_overlaps | |
| cdef int cnext(self) | |
| cdef char * get_sequence(self) | |
| cdef _setup_iterator(self, | |
| int tid, | |
| int start, | |
| int stop, | |
| int multiple_iterators=?) | |
| cdef _setup_raw_rest_iterator(self) | |
| cdef reset(self, tid, start, stop) | |
| cdef _free_pileup_iter(self) | |
| # backwards compatibility | |
| cdef char * getSequence(self) | |
| cdef class IteratorColumnRegion(IteratorColumn): | |
| cdef int start | |
| cdef int stop | |
| cdef int truncate | |
| cdef class IteratorColumnAllRefs(IteratorColumn): | |
| pass | |
| cdef class IteratorColumnAll(IteratorColumn): | |
| pass | |
| cdef class IndexedReads: | |
| cdef AlignmentFile samfile | |
| cdef htsFile * htsfile | |
| cdef object index | |
| cdef int owns_samfile | |
| cdef AlignmentHeader header | |