annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/pysam/libcbcf.pxd @ 69:33d812a61356

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