annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/pysam/libcbcf.pxd @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 # cython: language_level=3
jpayne@68 2 ###############################################################################
jpayne@68 3 ###############################################################################
jpayne@68 4 ## Cython wrapper for htslib VCF/BCF reader/writer
jpayne@68 5 ###############################################################################
jpayne@68 6 #
jpayne@68 7 # The MIT License
jpayne@68 8 #
jpayne@68 9 # Copyright (c) 2015, 2016 Kevin Jacobs (jacobs@bioinformed.com)
jpayne@68 10 #
jpayne@68 11 # Permission is hereby granted, free of charge, to any person obtaining a
jpayne@68 12 # copy of this software and associated documentation files (the "Software"),
jpayne@68 13 # to deal in the Software without restriction, including without limitation
jpayne@68 14 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
jpayne@68 15 # and/or sell copies of the Software, and to permit persons to whom the
jpayne@68 16 # Software is furnished to do so, subject to the following conditions:
jpayne@68 17 #
jpayne@68 18 # The above copyright notice and this permission notice shall be included in
jpayne@68 19 # all copies or substantial portions of the Software.
jpayne@68 20 #
jpayne@68 21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
jpayne@68 22 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
jpayne@68 23 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
jpayne@68 24 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
jpayne@68 25 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
jpayne@68 26 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
jpayne@68 27 # DEALINGS IN THE SOFTWARE.
jpayne@68 28 #
jpayne@68 29 ###############################################################################
jpayne@68 30
jpayne@68 31 from libc.stdint cimport int8_t, int16_t, int32_t, int64_t
jpayne@68 32 from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t
jpayne@68 33 from libc.stdlib cimport malloc, calloc, realloc, free
jpayne@68 34 from libc.string cimport memcpy, memcmp, memmove, strncpy, strlen, strdup
jpayne@68 35
jpayne@68 36 from pysam.libchtslib cimport *
jpayne@68 37
jpayne@68 38
jpayne@68 39 cdef class VariantHeader(object):
jpayne@68 40 cdef bcf_hdr_t *ptr
jpayne@68 41
jpayne@68 42 cdef _add_sample(self, name)
jpayne@68 43 cdef _hdr_sync(self)
jpayne@68 44 cdef _subset_samples(self, include_samples)
jpayne@68 45
jpayne@68 46
jpayne@68 47 cdef class VariantHeaderRecord(object):
jpayne@68 48 cdef readonly VariantHeader header
jpayne@68 49 cdef bcf_hrec_t *ptr
jpayne@68 50
jpayne@68 51
jpayne@68 52 cdef class VariantHeaderRecords(object):
jpayne@68 53 cdef readonly VariantHeader header
jpayne@68 54
jpayne@68 55
jpayne@68 56 cdef class VariantHeaderContigs(object):
jpayne@68 57 cdef readonly VariantHeader header
jpayne@68 58
jpayne@68 59
jpayne@68 60 cdef class VariantHeaderSamples(object):
jpayne@68 61 cdef readonly VariantHeader header
jpayne@68 62
jpayne@68 63
jpayne@68 64 cdef class VariantContig(object):
jpayne@68 65 cdef readonly VariantHeader header
jpayne@68 66 cdef int id
jpayne@68 67
jpayne@68 68
jpayne@68 69 cdef class VariantMetadata(object):
jpayne@68 70 cdef readonly VariantHeader header
jpayne@68 71 cdef int type
jpayne@68 72 cdef int id
jpayne@68 73
jpayne@68 74
jpayne@68 75 cdef class VariantHeaderMetadata(object):
jpayne@68 76 cdef readonly VariantHeader header
jpayne@68 77 cdef int32_t type
jpayne@68 78
jpayne@68 79
jpayne@68 80 cdef class VariantRecord(object):
jpayne@68 81 cdef readonly VariantHeader header
jpayne@68 82 cdef bcf1_t *ptr
jpayne@68 83
jpayne@68 84
jpayne@68 85 cdef class VariantRecordFilter(object):
jpayne@68 86 cdef VariantRecord record
jpayne@68 87
jpayne@68 88
jpayne@68 89 cdef class VariantRecordFormat(object):
jpayne@68 90 cdef VariantRecord record
jpayne@68 91
jpayne@68 92
jpayne@68 93 cdef class VariantRecordInfo(object):
jpayne@68 94 cdef VariantRecord record
jpayne@68 95
jpayne@68 96
jpayne@68 97 cdef class VariantRecordSamples(object):
jpayne@68 98 cdef VariantRecord record
jpayne@68 99
jpayne@68 100
jpayne@68 101 cdef class VariantRecordSample(object):
jpayne@68 102 cdef VariantRecord record
jpayne@68 103 cdef readonly int32_t index
jpayne@68 104
jpayne@68 105
jpayne@68 106 cdef class BaseIndex(object):
jpayne@68 107 cdef tuple refs
jpayne@68 108 cdef dict refmap
jpayne@68 109
jpayne@68 110
jpayne@68 111 cdef class BCFIndex(BaseIndex):
jpayne@68 112 cdef readonly VariantHeader header
jpayne@68 113 cdef hts_idx_t *ptr
jpayne@68 114
jpayne@68 115
jpayne@68 116 cdef class TabixIndex(BaseIndex):
jpayne@68 117 cdef tbx_t *ptr
jpayne@68 118
jpayne@68 119
jpayne@68 120 cdef class BaseIterator(object):
jpayne@68 121 cdef VariantFile bcf
jpayne@68 122 cdef hts_itr_t *iter
jpayne@68 123
jpayne@68 124
jpayne@68 125 cdef class BCFIterator(BaseIterator):
jpayne@68 126 cdef BCFIndex index
jpayne@68 127
jpayne@68 128
jpayne@68 129 cdef class TabixIterator(BaseIterator):
jpayne@68 130 cdef TabixIndex index
jpayne@68 131 cdef kstring_t line_buffer
jpayne@68 132
jpayne@68 133
jpayne@68 134 cdef class VariantFile(HTSFile):
jpayne@68 135 cdef readonly VariantHeader header
jpayne@68 136 cdef readonly BaseIndex index
jpayne@68 137
jpayne@68 138 cdef readonly bint drop_samples # true if sample information is to be ignored
jpayne@68 139
jpayne@68 140 # FIXME: Temporary, use htsFormat when it is available
jpayne@68 141 cdef readonly bint is_reading # true if file has begun reading records
jpayne@68 142 cdef readonly bint header_written # true if header has already been written
jpayne@68 143
jpayne@68 144 cpdef int write(self, VariantRecord record) except -1