HTSeq-0.5.4p3/0000775000175000017500000000000012137504327013527 5ustar andersanders00000000000000HTSeq-0.5.4p3/setup.py0000664000175000017500000000452312134000123015223 0ustar andersanders00000000000000#!/usr/bin/env python import sys import os.path try: from setuptools import setup, Extension except ImportError: sys.stderr.write( "Could not import 'setuptools', falling back to 'distutils'.\n" ) from distutils.core import setup, Extension if sys.version_info[0] < 2 or sys.version_info < 5: sys.stderr.write( "Error in setup script for HTSeq:\n" ) sys.stderr.write( "You need at least version 2.5 of Python to use HTSeq.\n" ) sys.exit( 1 ) if sys.version_info[0] >= 3: sys.stderr.write( "Error in setup script for HTSeq:\n" ) sys.stderr.write( "Sorry, this package does not yet work with Python 3.\n" ) sys.stderr.write( "Please use Python 2.x, x>=5.\n" ) sys.exit( 1 ) try: import numpy except ImportError: sys.stderr.write( "Setup script for HTSeq: Failed to import 'numpy'.\n" ) sys.stderr.write( "Please install numpy and then try again to install HTSeq.\n" ) sys.exit( 1 ) numpy_include_dir = os.path.join( os.path.dirname( numpy.__file__ ), 'core', 'include' ) setup( name = 'HTSeq', version = file("VERSION").readline().rstrip(), author = 'Simon Anders', author_email = 'sanders@fs.tum.de', url = 'http://www-huber.embl.de/users/anders/HTSeq/', description = "A framework to process and analyze data from " + "high-throughput sequencing (HTS) assays", classifiers = [ 'Development Status :: 4 - Beta', 'Topic :: Scientific/Engineering :: Bio-Informatics', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: POSIX', 'Programming Language :: Python' ], requires = [ 'numpy', 'python (>=2.5, <3.0)' ], py_modules = [ 'HTSeq._HTSeq_internal', 'HTSeq.StepVector', 'HTSeq._version', 'HTSeq.scripts.qa', 'HTSeq.scripts.count' ], ext_modules = [ Extension( 'HTSeq._HTSeq', ['src/_HTSeq.c'], include_dirs=[numpy_include_dir], extra_compile_args=['-w'] ), Extension( 'HTSeq._StepVector', ['src/StepVector_wrap.cxx'], extra_compile_args=['-w'] ), ], scripts = [ 'scripts/htseq-qa', 'scripts/htseq-count', ] ) HTSeq-0.5.4p3/HTSeq/0000775000175000017500000000000012137504327014513 5ustar andersanders00000000000000HTSeq-0.5.4p3/HTSeq/__init__.py0000664000175000017500000010034412134000065016611 0ustar andersanders00000000000000"""HTSeq is a package to process high-throughput sequencing data. See http://www-huber.embl.de/users/anders/HTSeq for documentation. """ import itertools, warnings, os try: from _HTSeq import * except ImportError: if os.path.isfile( "setup.py" ): raise ImportError( "Cannot import 'HTSeq' when working directory is HTSeq's own build directory.") else: raise from _version import __version__ #from vcf_reader import * ######################### ## Utils ######################### class FileOrSequence( object ): """ The construcutor takes one argument, which may either be a string, which is interpreted as a file name (possibly with path), or a connection, by which we mean a text file opened for reading, or any other object that can provide an iterator over strings (lines of the file). The advantage of passing a file name instead of an already opened file is that if an iterator is requested several times, the file will be re-opened each time. If the file is already open, its lines can be read only once, and then, the iterator stays exhausted. Furthermore, if a file name is passed that end in ".gz" or ".gzip" (case insensitive), it is transparently gunzipped. """ def __init__( self, filename_or_sequence ): self.fos = filename_or_sequence self.line_no = None def __iter__( self ): self.line_no = 1 if isinstance( self.fos, str ): if self.fos.lower().endswith( ( ".gz" , ".gzip" ) ): lines = gzip.open( self.fos ) else: lines = open( self.fos ) else: lines = self.fos for line in lines: yield line self.line_no += 1 if isinstance( self.fos, str ): lines.close() self.line_no = None def __repr__( self ): if isinstance( self.fos, str ): return "<%s object, connected to file name '%s'>" % ( self.__class__.__name__, self.fos ) else: return "<%s object, connected to %s >" % ( self.__class__.__name__, repr( self.fos ) ) def get_line_number_string( self ): if self.line_no is None: if isinstance( self.fos, str ): return "file %s closed" % self.fos else: return "file closed" if isinstance( self.fos, str ): return "line %d of file %s" % ( self.line_no, self.fos ) else: return "line %d" % self.line_no class GeneratedSequence( object ): """GeneratedSequence is a little helper class to get "respawnable" iterator generators. Pass its constructor a function that generates an iterator, and its arguments, and it will call this functionion whenever an iterator is requested. """ def __init__( self, generator, *args ): self.generator = generator self.args = args def __iter__( self ): return self.generator( *self.args ) ######################### ## Features ######################### class GenomicFeature( object ): """A genomic feature, i.e., an interval on a genome with metadata. At minimum, the following information should be provided by slots: name: a string identifying the feature (e.g., a gene symbol) type: a string giving the feature type (e.g., "gene", "exon") iv: a GenomicInterval object specifying the feature locus """ def __init__( self, name, type_, interval ): self.name = name self.type = intern( type_ ) self.iv = interval def __repr__( self ): return "<%s: %s '%s' at %s: %d -> %d (strand '%s')>" % \ ( self.__class__.__name__, self.type, self.name, self.iv.chrom, self.iv.start_d, self.iv.end_d, self.iv.strand ) def __eq__( self, other ): if not isinstance( other, GenomicFeature ): return False return self.name == other.name and self.type == other.type and \ self.iv == other.iv def __neq__( self, other ): if not isinstance( other, GenomicFeature ): return True return not self.__eq__( other ) def get_gff_line( self, with_equal_sign=False ): try: source = self.source except AttributeError: source = "." try: score = self.score except AttributeError: score = "." try: frame = self.frame except AttributeError: frame = "." try: attr = self.attr except AttributeError: attr = { 'ID': self.name } if with_equal_sign: sep = "=" else: sep = " " attr_str = '; '.join( [ '%s%s\"%s\"' % ( ak, sep, attr[ak] ) for ak in attr ] ) return "\t".join( str(a) for a in ( self.iv.chrom, source, self.type, self.iv.start+1, self.iv.end, score, self.iv.strand, frame, attr_str ) ) + "\n" _re_attr_main = re.compile( "\s*([^\s\=]+)[\s=]+(.*)" ) _re_attr_empty = re.compile( "^\s*$" ) def parse_GFF_attribute_string( attrStr, extra_return_first_value=False ): """Parses a GFF attribute string and returns it as a dictionary. If 'extra_return_first_value' is set, a pair is returned: the dictionary and the value of the first attribute. This might be useful if this is the ID. """ if attrStr.endswith( "\n" ): attrStr = attrStr[:-1] d = {} first_val = "_unnamed_" for (i, attr) in itertools.izip( itertools.count(), attrStr.split( ";" ) ): if _re_attr_empty.match( attr ): continue if attr.count( '"' ) not in ( 0, 2 ): raise ValueError, "The attribute string seems to contain mismatched quotes." mo = _re_attr_main.match( attr ) if not mo: raise ValueError, "Failure parsing GFF attribute line" val = mo.group(2) if val.startswith( '"' ) and val.endswith( '"' ): val = val[1:-1] #val = urllib.unquote( val ) d[ intern(mo.group(1)) ] = intern(val) if extra_return_first_value and i == 0: first_val = val if extra_return_first_value: return ( d, first_val ) else: return d _re_gff_meta_comment = re.compile( "##\s*(\S+)\s+(\S*)" ) class GFF_Reader( FileOrSequence ): """Parse a GFF file Pass the constructor either a file name or an iterator of lines of a GFF files. If a file name is specified, it may refer to a gzip compressed file. Iterating over the object then yields GenomicFeature objects. """ def __init__( self, filename_or_sequence, end_included=True ): FileOrSequence.__init__( self, filename_or_sequence ) self.end_included = end_included self.metadata = {} def __iter__( self ): for line in FileOrSequence.__iter__( self ): if line == "\n": continue if line.startswith( '#' ): if line.startswith( "##" ): mo = _re_gff_meta_comment.match( line ) if mo: self.metadata[ mo.group(1) ] = mo.group(2) continue ( seqname, source, feature, start, end, score, strand, frame, attributeStr ) = line.split( "\t", 8 ) ( attr, name ) = parse_GFF_attribute_string( attributeStr, True ) if self.end_included: iv = GenomicInterval( seqname, int(start)-1, int(end), strand ) else: iv = GenomicInterval( seqname, int(start)-1, int(end)-1, strand ) f = GenomicFeature( name, feature, iv ) if score != ".": score = float( score ) if frame != ".": frame = int( frame ) f.source = source f.score = score f.frame = frame f.attr = attr yield f def make_feature_dict( feature_sequence ): """A feature dict is a convenient way to organize a sequence of Feature object (which you have got, e.g., from parse_GFF). The function returns a dict with all the feature types as keys. Each value of this dict is again a dict, now of feature names. The values of this dict is a list of feature. An example makes this clear. Let's say you load the C. elegans GTF file from Ensemble and make a feature dict: >>> worm_features_dict = HTSeq.make_feature_dict( HTSeq.parse_GFF( ... "test_data/Caenorhabditis_elegans.WS200.55.gtf.gz" ) ) (This command may take a few minutes to deal with the 430,000 features in the GTF file. Note that you may need a lot of RAM if you have millions of features.) Then, you can simply access, say, exon 0 of gene "F08E10.4" as follows: >>> worm_features_dict[ 'exon' ][ 'F08E10.4' ][ 0 ] 17479001 (strand '-')> """ res = {} for f in feature_sequence: if f.type not in res: res[ f.type ] = {} res_ftype = res[ f.type ] if f.name not in res_ftype: res_ftype[ f.name ] = [ f ] else: res_ftype[ f.name ].append( f ) return res ######################### ## GenomicArray ######################### def read_chrom_lens( filename, delimiter="\t" ): return dict( ( ( chrom, int(len) ) for chrom, len in csv.reader( open(filename), delimiter=delimiter ) ) ) ######################### ## Sequence readers ######################### _re_fasta_header_line = re.compile( r'>\s*(\S+)\s*(.*)' ) class FastaReader( FileOrSequence ): """A Fasta_Reader is associated with a FASTA file or an open connection to a file-like object with content in FASTA format. It can generate an iterator over the sequences. """ def __iter__( self ): seq = None for line in FileOrSequence.__iter__( self ): if line.startswith( ">" ): if seq: s = Sequence( seq, name ) s.descr = descr yield s mo = _re_fasta_header_line.match( line ) name = mo.group(1) descr = mo.group(2) seq = "" else: assert seq is not None, "FASTA file does not start with '>'." seq += line[:-1] if seq is not None: s = Sequence( seq, name ) s.descr = descr yield s def get_sequence_lengths( self ): seqname = None seqlengths = {} for line in FileOrSequence.__iter__( self ): if line.startswith( ">" ): if seqname is not None: seqlengths[ seqname ] = length mo = _re_fasta_header_line.match( line ) seqname = mo.group(1) length = 0 else: assert seqname is not None, "FASTA file does not start with '>'." length += len( line.rstrip() ) if seqname is not None: seqlengths[ seqname ] = length return seqlengths @staticmethod def _import_pysam(): global pysam try: import pysam except ImportError: sys.stderr.write( "Please install the 'pysam' package to be able to use the Fasta indexing functionality." ) raise def build_index( self, force = False ): self._import_pysam() if not isinstance( self.fos, str ): raise TypeError, "This function only works with FastaReader objects " + \ "connected to a fasta file via file name" index_filename = self.fos + ".fai" if os.access( index_filename, os.R_OK ): if (not force) and os.stat( self.filename_or_sequence ).st_mtime <= \ os.stat( index_filename ).st_mtime: # index is up to date return pysam.faidx( self.fos ) if not os.access( index_filename, os.R_OK ): raise SystemError, "Building of Fasta index failed due to unknown error." def __getitem__( self, iv ): if not isinstance( iv, GenomicInterval ): raise TypeError, "GenomicInterval expected as key." if not isinstance( self.fos, str ): raise TypeError, "This function only works with FastaReader objects " + \ "connected to a fasta file via file name" self._import_pysam() fasta = pysam.faidx( self.fos, "%s:%d-%d" % ( iv.chrom, iv.start, iv.end-1 ) ) ans = list( FastaReader( fasta ) ) assert len( ans ) == 1 ans[0].name = str(iv) if iv.strand != "-": return ans[0] else: return ans[0].get_reverse_complement() class FastqReader( FileOrSequence ): """A Fastq object is associated with a FASTQ self.file. When an iterator is requested from the object, the FASTQ file is read. qual_scale is one of "phred", "solexa", "solexa-old". """ def __init__( self, file_, qual_scale = "phred" ): FileOrSequence.__init__( self, file_ ) self.qual_scale = qual_scale if qual_scale not in ( "phred", "solexa", "solexa-old" ): raise ValueError, "Illegal quality scale." def __iter__( self ): fin = FileOrSequence.__iter__( self ) while True: id1 = fin.next() seq = fin.next() id2 = fin.next() qual = fin.next() if qual == "": if id1 != "": warnings.warn( "Number of lines in FASTQ file is not " "a multiple of 4. Discarding the last, " "incomplete record" ) break if not qual.endswith( "\n" ): qual += "\n" if not id1.startswith( "@" ): raise ValueError( "Primary ID line in FASTQ file does" "not start with '@'. Either this is not FASTQ data or the parser got out of sync." ) if not id2.startswith( "+" ): raise ValueError( "Secondary ID line in FASTQ file does" "not start with '+'. Maybe got out of sync." ) if len( id2 ) > 2 and id1[1:] != id2[1:]: raise ValueError( "Primary and secondary ID line in FASTQ" "disagree." ) yield SequenceWithQualities( seq[:-1], id1[1:-1], qual[:-1], self.qual_scale ) class BowtieReader( FileOrSequence ): """A BowtieFile object is associated with a Bowtie output file that contains short read alignments. It can generate an iterator of Alignment objects.""" def __iter__( self ): for line in FileOrSequence.__iter__( self ): try: algnt = BowtieAlignment( line ) except ValueError: if line.startswith( "Reported " ): continue warnings.warn( "BowtieReader: Ignoring the following line, which could not be parsed:\n%s\n" % line, RuntimeWarning ) yield algnt def bundle_multiple_alignments( sequence_of_alignments ): """Some alignment programs, e.g., Bowtie, can output multiple alignments, i.e., the same read is reported consecutively with different alignments. This function takes an iterator over alignments and bundles consecutive alignments regarding the same read to a list of Alignment objects and returns an iterator over these. """ alignment_iter = iter( sequence_of_alignments ) algnt = alignment_iter.next() ma = [ algnt ] for algnt in alignment_iter: if algnt.read.name != ma[0].read.name: yield ma ma = [ algnt ] else: ma.append( algnt ) yield ma class SolexaExportAlignment( Alignment ): """Iterating over SolexaExportReader objects will yield SoelxaExportRecord objects. These have four fields: read - a SequenceWithQualities object aligned - a boolean, indicating whether the object was aligned iv - a GenomicInterval giving the alignment (or None, if not aligned) passed_filter - a boolean, indicating whether the object passed the filter nomatch_code - a code indicating why no match was found (or None, if the read was aligned) As long as 'aligned' is True, a SolexaExportRecord can be treated as an Alignment object. """ def __init__( self ): # Data is filled in by SolexaExportRecord pass def __repr__( self ): if self.aligned: return "< %s object: Read '%s', aligned to %s >" % ( self.__class__.__name__, self.read.name, self.iv ) else: return "< %s object: Non-aligned read '%s' >" % ( self.__class__.__name__, self.read.name ) class SolexaExportReader( FileOrSequence ): """Parser for *_export.txt files from the SolexaPipeline software. Iterating over a SolexaExportReader yields SolexaExportRecord objects. """ def __init__( self, filename_or_sequence, solexa_old = False ): FileOrSequence.__init__( self, filename_or_sequence) if solexa_old: self.qualscale = "solexa-old" else: self.qualscale = "solexa" @classmethod def parse_line_bare( dummy, line ): if line[-1] == "\n": line = line[:-1] res = {} ( res['machine'], res['run_number'], res['lane'], res['tile'], res['x_coord'], res['y_coord'], res['index_string'], res['read_nbr'], res['read_seq'], res['qual_str'], res['chrom'], res['contig'], res['pos'], res['strand'], res['match_descr'], res['single_read_algnt_score'], res['paired_read_algnt_score'], res['partner_chrom'], res['partner_contig'], res['partner_offset'], res['partner_strand'], res['passed_filtering'] ) \ = line.split( "\t" ) return res def __iter__( self ): for line in FileOrSequence.__iter__( self ): record = SolexaExportAlignment() fields = SolexaExportReader.parse_line_bare( line ) if fields['read_nbr'] != "1": warnings.warn( "Paired-end read encountered. PE is so far supported only for " + "SAM files, not yet for SolexaExport. All PE-related fields are ignored. " ) record.read = SequenceWithQualities( fields['read_seq'], "%s:%s:%s:%s:%s#0" % (fields['machine'], fields['lane'], fields['tile'], fields['x_coord'], fields['y_coord'] ), fields['qual_str'], self.qualscale ) if fields['passed_filtering'] == 'Y': record.passed_filter = True elif fields['passed_filtering'] == 'N': record.passed_filter = False else: raise ValueError, "Illegal 'passed filter' value in Solexa export data: '%s'." % fields['passed_filtering'] record.index_string = fields['index_string'] if fields['pos'] == '': record.iv = None record.nomatch_code = fields['chrom'] else: if fields['strand'] == 'F': strand = '+' elif fields['strand'] == 'R': strand = '-' else: raise ValueError, "Illegal strand value in Solexa export data." start = int( fields['pos'] ) chrom = fields['chrom'] if fields['chrom'] == "": chrom = fields['contig'] record.iv = GenomicInterval( chrom, start, start + len( fields['read_seq'] ), strand ) yield record class SAM_Reader( FileOrSequence ): """A SAM_Reader object is associated with a SAM file that contains short read alignments. It can generate an iterator of Alignment objects.""" def __iter__( self ): for line in FileOrSequence.__iter__( self ): if line.startswith( "@" ): # do something with the header line continue try: algnt = SAM_Alignment.from_SAM_line( line ) except ValueError, e: e.args = e.args + ( self.get_line_number_string(), ) raise yield algnt class GenomicArrayOfSets( GenomicArray ): """A GenomicArrayOfSets is a specialization of GenomicArray that allows to store sets of objects. On construction, the step vectors are initialized with empty sets. By using the 'add_value' method, objects can be added to intervals. If an object is already present in the set(s) at this interval, an the new object is added to the present set, and the set is split if necessary. """ def __init__( self, chroms, stranded=True, storage='step', memmap_dir = "" ): GenomicArray.__init__( self, chroms, stranded, 'O', storage, memmap_dir ) def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): GenomicArray.add_chrom( self, chrom, length, start_index ) for cv in self.chrom_vectors[ chrom ].values(): cv[:] = set() cv.is_vector_of_sets = True ########################### ## paired-end handling ########################### def pair_SAM_alignments( alignments, bundle=False ): def process_list( almnt_list ): while len( almnt_list ) > 0: a1 = almnt_list.pop( 0 ) # Find its mate for a2 in almnt_list: if a1.pe_which == a2.pe_which: continue if a1.aligned != a2.mate_aligned or a1.mate_aligned != a2.aligned: continue if not (a1.aligned and a2.aligned): break if a1.iv.chrom == a2.mate_start.chrom and a1.iv.start == a2.mate_start.pos and \ a2.iv.chrom == a1.mate_start.chrom and a2.iv.start == a1.mate_start.pos: break else: if a1.mate_aligned: warnings.warn( "Read " + a1.read.name + " claims to have an aligned mate " + "which could not be found. (Is the SAM file properly sorted?)" ) a2 = None if a2 is not None: almnt_list.remove( a2 ) if a1.pe_which == "first": yield ( a1, a2 ) else: assert a1.pe_which == "second" yield ( a2, a1 ) almnt_list = [] current_name = None for almnt in alignments: if not almnt.paired_end: raise ValueError, "'pair_alignments' needs a sequence of paired-end alignments" if almnt.pe_which == "unknown": raise ValueError, "Paired-end read found with 'unknown' 'pe_which' status." if almnt.read.name == current_name: almnt_list.append( almnt ) else: if bundle: yield list( process_list( almnt_list ) ) else: for p in process_list( almnt_list ): yield p current_name = almnt.read.name almnt_list = [ almnt ] if bundle: yield list( process_list( almnt_list ) ) else: for p in process_list( almnt_list ): yield p ########################### ## variant calls ########################### _re_vcf_meta_comment = re.compile( "^##([a-zA-Z]+)\=(.*)$" ) _re_vcf_meta_descr = re.compile('ID=[^,]+,?|Number=[^,]+,?|Type=[^,]+,?|Description="[^"]+",?') _re_vcf_meta_types = re.compile( "[INFO|FILTER|FORMAT]" ) _vcf_typemap = { "Integer":int, "Float":float, "String":str, "Flag":bool } class VariantCall( object ): def __init__( self, chrom = None, pos = None, identifier = None, ref = None, alt = None, qual = None, filtr = None, info = None ): self.chrom = chrom self.pos = pos self.id = identifier self.ref = ref self.alt = alt self.qual = qual self.filter = filtr self.info = info @classmethod def fromdict( cls, dictionary ): ret = cls() ret.chrom = dictionary["chrom"] ret.pos = dictionary["pos"] ret.id = dictionary["id"] ret.ref = dictionary["ref"] ret.alt = dictionary["alt"] ret.qual = dictionary["qual"] ret.filter = dictionary["filter"] ret.info = dictionary["info"] @classmethod def fromline( cls, line, nsamples = 0, sampleids = [] ): ret = cls() if nsamples == 0: ret.format = None ret.chrom, ret.pos, ret.id, ret.ref, ret.alt, ret.qual, ret.filter, ret.info = line.rstrip("\n").split("\t", 7) else: lsplit = line.rstrip("\n").split("\t") ret.chrom, ret.pos, ret.id, ret.ref, ret.alt, ret.qual, ret.filter, ret.info = lsplit[:8] ret.format = lsplit[8].split(":") ret.samples = {} spos=9 for sid in sampleids: ret.samples[ sid ] = dict( ( name, value ) for (name, value) in itertools.izip( ret.format, lsplit[spos].split(":") ) ) spos += 1 ret.pos = GenomicPosition( ret.chrom, int(ret.pos) ) ret.alt = ret.alt.split(",") return ret def infoline( self ): if self.info.__class__ == dict: return ";".join(map((lambda key: str(key) + "=" + str(self.info[key])), self.info )) else: return self.info def sampleline( self ): if self.format == None: print >> sys.stderr, "No samples in this variant call!" return "" keys = self.format ret = [ ":".join( keys ) ] for sid in self.samples: tmp = [] for k in keys: if k in self.samples[sid]: tmp.append( self.samples[sid][k] ) ret.append( ":".join(tmp) ) return "\t".join( ret ) def to_line( self ): if self.format == None: return "\t".join( map( str, [ self.pos.chrom, self.pos.pos, self.id, self.ref, ",".join( self.alt ), self.qual, self.filter, self.infoline() ] ) ) + "\n" else: return "\t".join( map( str, [ self.pos.chrom, self.pos.pos, self.id, self.ref, ",".join( self.alt ), self.qual, self.filter, self.infoline(), self.sampleline() ] ) ) + "\n" def __descr__( self ): return "" % (str(self.pos).rstrip("/."), self.ref, str(self.alt).strip("[]")) def __str__( self ): return "%s:'%s'->%s" % (str(self.pos).rstrip("/."), self.ref, str(self.alt).strip("[]")) def unpack_info( self, infodict ): tmp = {} for token in self.info.strip(";").split(";"): if re.compile("=").search(token): token = token.split("=") if infodict.has_key( token[0] ): tmp[token[0]] = map( infodict[token[0]], token[1].split(",") ) else: tmp[token[0]] = token[1].split(",") if len( tmp[ token[0] ] ) == 1: tmp[token[0]] = tmp[token[0]][0] else: #Flag attribute found tmp[token] = True diff = set( infodict.keys() ).difference( set( tmp.keys() ) ) for key in diff: if infodict[key] == bool: tmp[key] = False self.info = tmp class VCF_Reader( FileOrSequence ): def __init__( self, filename_or_sequence ): FileOrSequence.__init__( self, filename_or_sequence ) self.metadata = {} self.info = {} self.filters = {} self.formats = {} self.nsamples = 0 self.sampleids = [] def make_info_dict( self ): self.infodict = dict( ( key, _vcf_typemap[self.info[key]["Type"]] ) for key in self.info.keys() ) def parse_meta( self, header_filename = None ): if header_filename == None: the_iter = FileOrSequence.__iter__( self ) else: the_iter = open( header_filename, "r" ) for line in the_iter: if line.startswith( '#' ): if line.startswith( "##" ): mo = _re_vcf_meta_comment.match( line ) if mo: value = mo.group(2) if mo.group(1) == "INFO": value = dict( e.rstrip(",").split("=",1) for e in _re_vcf_meta_descr.findall(value) ) key = value["ID"] del value["ID"] self.info[ key ] = value elif mo.group(1) == "FILTER": value = dict( e.rstrip(",").split("=",1) for e in _re_vcf_meta_descr.findall(value) ) key = value["ID"] del value["ID"] self.filters[ key ] = value elif mo.group(1) == "FORMAT": value = dict( e.rstrip(",").split("=",1) for e in _re_vcf_meta_descr.findall(value) ) key = value["ID"] del value["ID"] self.formats[ key ] = value else: self.metadata[ mo.group(1) ] = mo.group(2) else: self.sampleids = line.rstrip("\t\n").split("\t")[9:] self.nsamples = len( self.sampleids ) continue else: break def meta_info( self, header_filename = None ): ret = [] if header_filename == None: the_iter = FileOrSequence.__iter__( self ) else: the_iter = open( header_filename, "r" ) for line in the_iter: if line.startswith( '#' ): ret.append( line ) else: break return ret def __iter__( self ): for line in FileOrSequence.__iter__( self ): if line == "\n" or line.startswith( '#' ): continue vc = VariantCall.fromline( line, self.nsamples, self.sampleids ) yield vc class BAM_Reader( object ): def __init__( self, filename ): global pysam self.filename = filename self.sf = None # This one is only used by __getitem__ self.record_no = -1 try: import pysam except ImportError: sys.stderr.write( "Please Install PySam to use the BAM_Reader Class (http://code.google.com/p/pysam/)" ) raise def __iter__( self ): sf = pysam.Samfile(self.filename, "rb") self.record_no = 0 for pa in sf: yield SAM_Alignment.from_pysam_AlignedRead( pa, sf ) self.record_no += 1 def fetch( self, reference = None, start = None, end = None, region = None ): sf = pysam.Samfile(self.filename, "rb") self.record_no = 0 try: for pa in sf.fetch( reference, start, end, region ): yield SAM_Alignment.from_pysam_AlignedRead( pa, sf ) self.record_no += 1 except ValueError as e: if e.message == "fetch called on bamfile without index": print "Error: ", e.message print "Your bam index file is missing or wrongly named, convention is that file 'x.bam' has index file 'x.bam.bai'!" else: raise except: raise def get_line_number_string( self ): if self.record_no == -1: return "unopened file %s" % ( self.filename ) else: return "record #%d in file %s" % ( self.record_no, self.filename ) def __getitem__( self, iv ): if not isinstance( iv, GenomicInterval ): raise TypeError, "Use a HTSeq.GenomicInterval to access regions within .bam-file!" if self.sf is None: self.sf = pysam.Samfile( self.filename, "rb" ) if not self.sf._hasIndex(): raise ValueError, "The .bam-file has no index, random-access is disabled!" for pa in self.sf.fetch( iv.chrom, iv.start+1, iv.end ): yield SAM_Alignment.from_pysam_AlignedRead( pa, self.sf ) def get_header_dict( self ): sf = pysam.Samfile(self.filename, "rb") return sf.header class BAM_Writer( object ): def __init__( self, filename, template = None, referencenames = None, referencelengths = None, text = None, header = None ): try: import pysam except ImportError: sys.stderr.write( "Please Install PySam to use the BAM_Writer Class (http://code.google.com/p/pysam/)" ) raise self.filename = filename self.template = template self.referencenames = referencenames self.referencelengths = referencelengths self.text = text self.header = header self.sf = pysam.Samfile( self.filename, mode="wb", template = self.template, referencenames = self.referencenames, referencelengths = self.referencelengths, text = self.text, header = self.header ) @classmethod def from_BAM_Reader( cls, fn, br ): return BAM_Writer( filename = fn, header = br.get_header_dict() ) def write( self, alnmt): self.sf.write( alnmt.to_pysam_AlignedRead( self.sf ) ) def close( self ): self.sf.close() HTSeq-0.5.4p3/HTSeq/StepVector.py0000664000175000017500000006076712110432535017173 0ustar andersanders00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 2.0.4 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. from sys import version_info if version_info >= (2,6,0): def swig_import_helper(): from os.path import dirname import imp fp = None try: fp, pathname, description = imp.find_module('_StepVector', [dirname(__file__)]) except ImportError: import _StepVector return _StepVector if fp is not None: try: _mod = imp.load_module('_StepVector', fp, pathname, description) finally: fp.close() return _mod _StepVector = swig_import_helper() del swig_import_helper else: import _StepVector del version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'SwigPyObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError(name) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 except AttributeError: class _object : pass _newclass = 0 class _Pair_int_float(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _Pair_int_float, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _Pair_int_float, name) __repr__ = _swig_repr __swig_setmethods__["first"] = _StepVector._Pair_int_float_first_set __swig_getmethods__["first"] = _StepVector._Pair_int_float_first_get if _newclass:first = _swig_property(_StepVector._Pair_int_float_first_get, _StepVector._Pair_int_float_first_set) __swig_setmethods__["second"] = _StepVector._Pair_int_float_second_set __swig_getmethods__["second"] = _StepVector._Pair_int_float_second_get if _newclass:second = _swig_property(_StepVector._Pair_int_float_second_get, _StepVector._Pair_int_float_second_set) def __init__(self, *args): this = _StepVector.new__Pair_int_float(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _StepVector.delete__Pair_int_float __del__ = lambda self : None; _Pair_int_float_swigregister = _StepVector._Pair_int_float_swigregister _Pair_int_float_swigregister(_Pair_int_float) class _StepVector_Iterator_float(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_Iterator_float, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_Iterator_float, name) __repr__ = _swig_repr def __init__(self, *args): this = _StepVector.new__StepVector_Iterator_float(*args) try: self.this.append(this) except: self.this = this def next(self): return _StepVector._StepVector_Iterator_float_next(self) def __iter__(self): return _StepVector._StepVector_Iterator_float___iter__(self) __swig_destroy__ = _StepVector.delete__StepVector_Iterator_float __del__ = lambda self : None; _StepVector_Iterator_float_swigregister = _StepVector._StepVector_Iterator_float_swigregister _StepVector_Iterator_float_swigregister(_StepVector_Iterator_float) class _StepVector_float(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_float, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_float, name) __repr__ = _swig_repr def __init__(self): this = _StepVector.new__StepVector_float() try: self.this.append(this) except: self.this = this def set_value(self, *args): return _StepVector._StepVector_float_set_value(self, *args) def add_value(self, *args): return _StepVector._StepVector_float_add_value(self, *args) def get_all_values_pystyle(self): return _StepVector._StepVector_float_get_all_values_pystyle(self) def get_values_pystyle(self, *args): return _StepVector._StepVector_float_get_values_pystyle(self, *args) def num_values(self): return _StepVector._StepVector_float_num_values(self) __swig_destroy__ = _StepVector.delete__StepVector_float __del__ = lambda self : None; _StepVector_float_swigregister = _StepVector._StepVector_float_swigregister _StepVector_float_swigregister(_StepVector_float) cvar = _StepVector.cvar _StepVector_float.min_index = _StepVector.cvar._StepVector_float_min_index _StepVector_float.max_index = _StepVector.cvar._StepVector_float_max_index class _Pair_int_int(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _Pair_int_int, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _Pair_int_int, name) __repr__ = _swig_repr __swig_setmethods__["first"] = _StepVector._Pair_int_int_first_set __swig_getmethods__["first"] = _StepVector._Pair_int_int_first_get if _newclass:first = _swig_property(_StepVector._Pair_int_int_first_get, _StepVector._Pair_int_int_first_set) __swig_setmethods__["second"] = _StepVector._Pair_int_int_second_set __swig_getmethods__["second"] = _StepVector._Pair_int_int_second_get if _newclass:second = _swig_property(_StepVector._Pair_int_int_second_get, _StepVector._Pair_int_int_second_set) def __init__(self, *args): this = _StepVector.new__Pair_int_int(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _StepVector.delete__Pair_int_int __del__ = lambda self : None; _Pair_int_int_swigregister = _StepVector._Pair_int_int_swigregister _Pair_int_int_swigregister(_Pair_int_int) class _StepVector_Iterator_int(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_Iterator_int, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_Iterator_int, name) __repr__ = _swig_repr def __init__(self, *args): this = _StepVector.new__StepVector_Iterator_int(*args) try: self.this.append(this) except: self.this = this def next(self): return _StepVector._StepVector_Iterator_int_next(self) def __iter__(self): return _StepVector._StepVector_Iterator_int___iter__(self) __swig_destroy__ = _StepVector.delete__StepVector_Iterator_int __del__ = lambda self : None; _StepVector_Iterator_int_swigregister = _StepVector._StepVector_Iterator_int_swigregister _StepVector_Iterator_int_swigregister(_StepVector_Iterator_int) class _StepVector_int(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_int, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_int, name) __repr__ = _swig_repr def __init__(self): this = _StepVector.new__StepVector_int() try: self.this.append(this) except: self.this = this def set_value(self, *args): return _StepVector._StepVector_int_set_value(self, *args) def add_value(self, *args): return _StepVector._StepVector_int_add_value(self, *args) def get_all_values_pystyle(self): return _StepVector._StepVector_int_get_all_values_pystyle(self) def get_values_pystyle(self, *args): return _StepVector._StepVector_int_get_values_pystyle(self, *args) def num_values(self): return _StepVector._StepVector_int_num_values(self) __swig_destroy__ = _StepVector.delete__StepVector_int __del__ = lambda self : None; _StepVector_int_swigregister = _StepVector._StepVector_int_swigregister _StepVector_int_swigregister(_StepVector_int) _StepVector_int.min_index = _StepVector.cvar._StepVector_int_min_index _StepVector_int.max_index = _StepVector.cvar._StepVector_int_max_index class _Pair_int_bool(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _Pair_int_bool, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _Pair_int_bool, name) __repr__ = _swig_repr __swig_setmethods__["first"] = _StepVector._Pair_int_bool_first_set __swig_getmethods__["first"] = _StepVector._Pair_int_bool_first_get if _newclass:first = _swig_property(_StepVector._Pair_int_bool_first_get, _StepVector._Pair_int_bool_first_set) __swig_setmethods__["second"] = _StepVector._Pair_int_bool_second_set __swig_getmethods__["second"] = _StepVector._Pair_int_bool_second_get if _newclass:second = _swig_property(_StepVector._Pair_int_bool_second_get, _StepVector._Pair_int_bool_second_set) def __init__(self, *args): this = _StepVector.new__Pair_int_bool(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _StepVector.delete__Pair_int_bool __del__ = lambda self : None; _Pair_int_bool_swigregister = _StepVector._Pair_int_bool_swigregister _Pair_int_bool_swigregister(_Pair_int_bool) class _StepVector_Iterator_bool(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_Iterator_bool, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_Iterator_bool, name) __repr__ = _swig_repr def __init__(self, *args): this = _StepVector.new__StepVector_Iterator_bool(*args) try: self.this.append(this) except: self.this = this def next(self): return _StepVector._StepVector_Iterator_bool_next(self) def __iter__(self): return _StepVector._StepVector_Iterator_bool___iter__(self) __swig_destroy__ = _StepVector.delete__StepVector_Iterator_bool __del__ = lambda self : None; _StepVector_Iterator_bool_swigregister = _StepVector._StepVector_Iterator_bool_swigregister _StepVector_Iterator_bool_swigregister(_StepVector_Iterator_bool) class _StepVector_bool(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_bool, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_bool, name) __repr__ = _swig_repr def __init__(self): this = _StepVector.new__StepVector_bool() try: self.this.append(this) except: self.this = this def set_value(self, *args): return _StepVector._StepVector_bool_set_value(self, *args) def add_value(self, *args): return _StepVector._StepVector_bool_add_value(self, *args) def get_all_values_pystyle(self): return _StepVector._StepVector_bool_get_all_values_pystyle(self) def get_values_pystyle(self, *args): return _StepVector._StepVector_bool_get_values_pystyle(self, *args) def num_values(self): return _StepVector._StepVector_bool_num_values(self) __swig_destroy__ = _StepVector.delete__StepVector_bool __del__ = lambda self : None; _StepVector_bool_swigregister = _StepVector._StepVector_bool_swigregister _StepVector_bool_swigregister(_StepVector_bool) _StepVector_bool.min_index = _StepVector.cvar._StepVector_bool_min_index _StepVector_bool.max_index = _StepVector.cvar._StepVector_bool_max_index class _Pair_int_obj(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _Pair_int_obj, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _Pair_int_obj, name) __repr__ = _swig_repr __swig_setmethods__["first"] = _StepVector._Pair_int_obj_first_set __swig_getmethods__["first"] = _StepVector._Pair_int_obj_first_get if _newclass:first = _swig_property(_StepVector._Pair_int_obj_first_get, _StepVector._Pair_int_obj_first_set) __swig_setmethods__["second"] = _StepVector._Pair_int_obj_second_set __swig_getmethods__["second"] = _StepVector._Pair_int_obj_second_get if _newclass:second = _swig_property(_StepVector._Pair_int_obj_second_get, _StepVector._Pair_int_obj_second_set) def __init__(self, *args): this = _StepVector.new__Pair_int_obj(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _StepVector.delete__Pair_int_obj __del__ = lambda self : None; _Pair_int_obj_swigregister = _StepVector._Pair_int_obj_swigregister _Pair_int_obj_swigregister(_Pair_int_obj) class _StepVector_Iterator_obj(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_Iterator_obj, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_Iterator_obj, name) __repr__ = _swig_repr def __init__(self, *args): this = _StepVector.new__StepVector_Iterator_obj(*args) try: self.this.append(this) except: self.this = this def next(self): return _StepVector._StepVector_Iterator_obj_next(self) def __iter__(self): return _StepVector._StepVector_Iterator_obj___iter__(self) __swig_destroy__ = _StepVector.delete__StepVector_Iterator_obj __del__ = lambda self : None; _StepVector_Iterator_obj_swigregister = _StepVector._StepVector_Iterator_obj_swigregister _StepVector_Iterator_obj_swigregister(_StepVector_Iterator_obj) class _StepVector_obj(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _StepVector_obj, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _StepVector_obj, name) __repr__ = _swig_repr def __init__(self): this = _StepVector.new__StepVector_obj() try: self.this.append(this) except: self.this = this def set_value(self, *args): return _StepVector._StepVector_obj_set_value(self, *args) def add_value(self, *args): return _StepVector._StepVector_obj_add_value(self, *args) def get_all_values_pystyle(self): return _StepVector._StepVector_obj_get_all_values_pystyle(self) def get_values_pystyle(self, *args): return _StepVector._StepVector_obj_get_values_pystyle(self, *args) def num_values(self): return _StepVector._StepVector_obj_num_values(self) __swig_destroy__ = _StepVector.delete__StepVector_obj __del__ = lambda self : None; _StepVector_obj_swigregister = _StepVector._StepVector_obj_swigregister _StepVector_obj_swigregister(_StepVector_obj) _StepVector_obj.min_index = _StepVector.cvar._StepVector_obj_min_index _StepVector_obj.max_index = _StepVector.cvar._StepVector_obj_max_index import sys class StepVector( object ): """A step vector is a vector with integer indices that is able to store data efficiently if it is piece-wise constant, i.e., if the values change in "steps". So, if a number of adjacent vectort elements have the same value, this values will be stored only once. The data can be either one of a number of elementary types, or any object. Usage example: >>> sv = StepVector.StepVector( 20 ) >>> sv[5:17] = 13 >>> sv[12] 13.0 >>> list( sv ) [0.0, 0.0, 0.0, 0.0, 0.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 0.0, 0.0, 0.0] >>> list( sv.get_steps() ) [(0, 5, 0.0), (5, 17, 13.0), (17, 20, 0.0)] """ @classmethod def create( cls, length = sys.maxint, typecode = 'd', start_index = 0 ): """Construct a StepVector of the given length, with indices starting at the given start_index and counting up to (but not including) start_index + length. The typecode may be: 'd' for float values (C type 'double'), 'i' for int values, 'b' for Boolean values, 'O' for arbitrary Python objects as value. The vector is initialized with the value zero (or, for typecode 'O', with None). """ if typecode == 'd': swigclass = _StepVector_float elif typecode == 'i': swigclass = _StepVector_int elif typecode == 'b': swigclass = _StepVector_bool elif typecode == 'O': swigclass = _StepVector_obj else: raise ValueError, "unsupported typecode" obj = cls() obj._typecode = typecode obj._swigobj = swigclass( ) obj.start = start_index obj.stop = start_index + length return obj def __setitem__( self, index, value ): """To set element i of StepVector sv to the value v, write sv[i] = v If you want to set a whole step, say, all values from i to j (not including j), write sv[i:j] = v Note that the StepVector class will only notice that all the values from i to j are equal if you assign them in this fashion. Assigning each item individually in a loop from i to j will result in the value v being stored many times. """ if isinstance( value, StepVector ): if self._swigobj is value._swigobj and \ value.start == index.start and value.stop == index.stop: return else: raise NotImplemented, "Stepvector-to-Stepvector assignment still missing" if isinstance( index, slice ): if index.step is not None and index.step != 1: raise ValueError, "Striding slices (i.e., step != 1) are not supported" if index.start is None: start = self.start else: if index.start < self.start: raise IndexError, "start too small" start = index.start if index.stop is None: stop = self.stop else: if index.stop > self.stop: raise IndexError, "stop too large" stop = index.stop self._swigobj.set_value( start, stop-1, value ) # Note the "-1": The C++ object uses closed intervals, but we follow # Python convention here and use half-open ones. else: self._swigobj.set_value( index, index, value ) def get_steps( self, values_only = False, merge_steps=True ): """To get a succinct representation of the StepVector's content, call the 'get_steps' method. It returns an iterator that generates triples of values. Each triple contains one step, giving first the start index of the step, then the stop index (i.e., one more than the index of the last element), and as third element the value of the step. If you want to see only a part of the StepVector, use the 'start' and 'stop' parameters of 'get_steps' to specify a window. Sometimes, one might only be interested in the values, not the step boundaries. Then, set 'values_only' to true, and the iterator generates only the values insted of the triples. """ startvals = self._swigobj.get_values_pystyle( self.start ) prevstart = self.start prevval = startvals.next().second for pair in startvals: stepstart, value = pair.first, pair.second if merge_steps and value == prevval: continue if self.stop is not None and stepstart >= self.stop: if not values_only: yield prevstart, self.stop, prevval else: yield prevval return if not values_only: yield prevstart, stepstart, prevval else: yield prevval prevstart, prevval = stepstart, value else: if not values_only: yield prevstart, min( self.stop, self._swigobj.max_index+1), prevval else: yield prevval def __getitem__( self, index ): """Given a StepVector sv, writing sv[i] returns sv's element i (where i is an integer). If you use a slice, i.e., 'sv[i:j]', you get a view on the StepVector, i.e., the same data, but changed boundaries. """ if isinstance( index, slice ): if index.step is not None and index.step != 1: raise ValueError, "Striding slices (i.e., step != 1) are not supported" if index.start is None: start = self.start else: if index.start < self.start: raise IndexError, "start too small" start = index.start if index.stop is None: stop = self.stop else: if index.stop > self.stop: raise IndexError, "stop too large" stop = index.stop res = self.__class__() res._typecode = self.typecode res._swigobj = self._swigobj res.start = start res.stop = stop return res else: return self._swigobj.get_values_pystyle( index ).next().second def __iter__( self ): """When asked to provide an iterator, a StepVector will yield all its value, repeating each value according to the length of the step. Hence, calling, e.g., 'list( sv )' will transform the StepVector 'sv' into an ordinary list. """ for start, stop, value in self.get_steps(): for i in xrange( start, stop ): yield value def __repr__( self ): if self.start == -sys.maxint - 1: start_s = "-inf" else: start_s = str( self.start ) if self.stop == sys.maxint: stop_s = "inf" else: stop_s = str( self.stop ) return "<%s object, type '%s', index range %s:%s, %d step(s)>" % ( self.__class__.__name__, self.typecode(), start_s, stop_s, self.num_steps() ) def typecode( self ): "Returns the typecode." return self._typecode def __len__( self ): """The length of a StepVector is defined by its index range, not by the number of steps. """ return self.stop - self.start def num_steps( self ): """Returns the number of steps, i.e., the number of triples that get_steps returns. """ return self._swigobj.num_values() def __eq__( self, other ): """StepVectors can be compared for equality. This is conceptually done element for element, but, for performance, taking steps in one go. """ if self.start_index() != other.start_index() or len(self) != len(other) or \ self.typecode() != other.typecode(): print "Mark A" return False selfsteps = self.get_steps() othrsteps = other.get_steps() selfstart, selfstop, selfval = selfsteps.next() othrstart, othrstop, othrval = othrsteps.next() while selfstop < self.start_index() + len(self) and \ othrstop < other.start_index() + len(other): assert selfstart < othrstop and othrstart < selfstop if not( selfval == othrval ): return False if selfstop < othrstop: selfstart, selfstop, selfval = selfsteps.next() elif othrstop < selfstop: othrstart, othrstop, othrval = othrsteps.next() else: selfstart, selfstop, selfval = selfsteps.next() othrstart, othrstop, othrval = othrsteps.next() return True def __neq__( self, other ): return not ( self == other ) def __reduce__( self ): if self.__class__ is not StepVector: raise NotImplemented, "Attempting to pickle a subclass of StepVector without redefined __reduce__." return ( _StepVector_unpickle, ( self.stop - self.start, self._typecode, self.start ), None, None, ( ( slice( start, stop ), val ) for start, stop, val in self.get_steps() ) ) def __iadd__( self, value ): self._swigobj.add_value( self.start, self.stop-1, value ) return self def apply( self, func, start = None, stop = None ): # TODO: check! for stepstart, stepstop, value in self.get_steps( start, stop ): self[ stepstart : stepstop ] = func( value ) def _StepVector_unpickle( length, typecode, start ): return StepVector.create( length, typecode, start ) # This file is compatible with both classic and new-style classes. HTSeq-0.5.4p3/HTSeq/scripts/0000775000175000017500000000000012137504327016202 5ustar andersanders00000000000000HTSeq-0.5.4p3/HTSeq/scripts/qa.py0000664000175000017500000001706112111155364017155 0ustar andersanders00000000000000#!/usr/bin/env python # HTSeq_QA.py # # (c) Simon Anders, European Molecular Biology Laboratory, 2010 # released under GNU General Public License import sys, time, os.path, optparse from itertools import * import numpy import HTSeq def main(): try: import matplotlib except ImportError: sys.stderr.write("This script needs the 'matplotlib' library, which ") sys.stderr.write("was not found. Please install it." ) matplotlib.use('PDF') from matplotlib import pyplot # **** Parse command line **** optParser = optparse.OptionParser( usage = "%prog [options] read_file", description= "This script take a file with high-throughput sequencing reads " + "(supported formats: SAM, Solexa _export.txt, FASTQ, Solexa " + "_sequence.txt) and performs a simply quality assessment by " + "producing plots showing the distribution of called bases and " + "base-call quality scores by position within the reads. The " + "plots are output as a PDF file.", epilog = "Written by Simon Anders (sanders@fs.tum.de), European Molecular Biology " + " Laboratory (EMBL). (c) 2010. Released under the terms of the GNU General " + " Public License v3. Part of the 'HTSeq' framework, version %s." % HTSeq.__version__ ) optParser.add_option( "-t", "--type", type="choice", dest="type", choices = ("sam", "bam", "solexa-export", "fastq", "solexa-fastq"), default = "sam", help="type of read_file (one of: sam [default], bam, " + "solexa-export, fastq, solexa-fastq)" ) optParser.add_option( "-o", "--outfile", type="string", dest="outfile", help="output filename (default is .pdf)" ) optParser.add_option( "-r", "--readlength", type="int", dest="readlen", help="the maximum read length (when not specified, the script guesses from the file" ) optParser.add_option( "-g", "--gamma", type="float", dest="gamma", default = 0.3, help="the gamma factor for the contrast adjustment of the quality score plot" ) optParser.add_option( "-n", "--nosplit", action="store_true", dest="nosplit", help="do not split reads in unaligned and aligned ones" ) optParser.add_option( "-m", "--maxqual", type="int", dest="maxqual", default=41, help="the maximum quality score that appears in the data (default: 41)" ) if len( sys.argv ) == 1: optParser.print_help() sys.exit(1) (opts, args) = optParser.parse_args() if len( args ) != 1: sys.stderr.write( sys.argv[0] + ": Error: Please provide one argument (the read_file).\n" ) sys.stderr.write( " Call with '-h' to get usage information.\n" ) sys.exit( 1 ) readfilename = args[0] if opts.type == "sam": readfile = HTSeq.SAM_Reader( readfilename ) isAlnmntFile = True elif opts.type == "bam": readfile = HTSeq.BAM_Reader( readfilename ) isAlnmntFile = True elif opts.type == "solexa-export": readfile = HTSeq.SolexaExportReader( readfilename ) isAlnmntFile = True elif opts.type == "fastq": readfile = HTSeq.FastqReader( readfilename ) isAlnmntFile = False elif opts.type == "solexa-fastq": readfile = HTSeq.FastqReader( readfilename, "solexa" ) isAlnmntFile = False else: sys.error( "Oops." ) twoColumns = isAlnmntFile and not opts.nosplit if opts.outfile is None: outfilename = os.path.basename( readfilename ) + ".pdf" else: outfilename = opts.outfile # **** Get read length **** if opts.readlen is not None: readlen = opts.readlen else: readlen = 0 if isAlnmntFile: reads = ( a.read for a in readfile ) else: reads = readfile for r in islice( reads, 10000 ): if len( r ) > readlen: readlen = len( r ) max_qual = opts.maxqual gamma = opts.gamma # **** Initialize count arrays **** base_arr_U = numpy.zeros( ( readlen, 5 ), numpy.int ) qual_arr_U = numpy.zeros( ( readlen, max_qual+1 ), numpy.int ) if twoColumns: base_arr_A = numpy.zeros( ( readlen, 5 ), numpy.int ) qual_arr_A = numpy.zeros( ( readlen, max_qual+1 ), numpy.int ) # **** Main counting loop **** i = 0 try: for a in readfile: if isAlnmntFile: r = a.read else: r = a if twoColumns and (isAlnmntFile and a.aligned): r.add_bases_to_count_array( base_arr_A ) r.add_qual_to_count_array( qual_arr_A ) else: r.add_bases_to_count_array( base_arr_U ) r.add_qual_to_count_array( qual_arr_U ) i += 1 if i % 200000 == 0: print i, "reads processed" except: sys.stderr.write( "Error occured in: %s\n" % readfile.get_line_number_string() ) raise print i, "reads processed" # **** Normalize result **** def norm_by_pos( arr ): arr = numpy.array( arr, numpy.float ) arr_n = ( arr.T / arr.sum( 1 ) ).T arr_n[ arr == 0 ] = 0 return arr_n def norm_by_start( arr ): arr = numpy.array( arr, numpy.float ) arr_n = ( arr.T / arr.sum( 1 )[ 0 ] ).T arr_n[ arr == 0 ] = 0 return arr_n base_arr_U_n = norm_by_pos( base_arr_U ) qual_arr_U_n = norm_by_start( qual_arr_U ) nreads_U = base_arr_U[0,:].sum() if twoColumns: base_arr_A_n = norm_by_pos( base_arr_A ) qual_arr_A_n = norm_by_start( qual_arr_A ) nreads_A = base_arr_A[0,:].sum() # **** Make plot **** def plot_bases( arr ): xg = numpy.arange( readlen ) pyplot.plot( xg, arr[ : , 0 ], marker='.', color='red') pyplot.plot( xg, arr[ : , 1 ], marker='.', color='darkgreen') pyplot.plot( xg, arr[ : , 2 ], marker='.',color='lightgreen') pyplot.plot( xg, arr[ : , 3 ], marker='.',color='orange') pyplot.plot( xg, arr[ : , 4 ], marker='.',color='grey') pyplot.axis( (0, readlen-1, 0, 1 ) ) pyplot.text( readlen*.70, .9, "A", color="red" ) pyplot.text( readlen*.75, .9, "C", color="darkgreen" ) pyplot.text( readlen*.80, .9, "G", color="lightgreen" ) pyplot.text( readlen*.85, .9, "T", color="orange" ) pyplot.text( readlen*.90, .9, "N", color="grey" ) pyplot.figure() pyplot.subplots_adjust( top=.85 ) pyplot.suptitle( os.path.basename(readfilename), fontweight='bold' ) if twoColumns: pyplot.subplot( 221 ) plot_bases( base_arr_U_n ) pyplot.ylabel( "proportion of base" ) pyplot.title( "non-aligned reads\n%.0f%% (%.3f million)" % ( 100. * nreads_U / (nreads_U+nreads_A), nreads_U / 1e6 ) ) pyplot.subplot( 222 ) plot_bases( base_arr_A_n ) pyplot.title( "aligned reads\n%.0f%% (%.3f million)" % ( 100. * nreads_A / (nreads_U+nreads_A), nreads_A / 1e6 ) ) pyplot.subplot( 223 ) pyplot.pcolor( qual_arr_U_n.T ** gamma, cmap=pyplot.cm.Greens, norm=pyplot.normalize( 0, 1 ) ) pyplot.axis( (0, readlen-1, 0, max_qual+1 ) ) pyplot.xlabel( "position in read" ) pyplot.ylabel( "base-call quality score" ) pyplot.subplot( 224 ) pyplot.pcolor( qual_arr_A_n.T ** gamma, cmap=pyplot.cm.Greens, norm=pyplot.normalize( 0, 1 ) ) pyplot.axis( (0, readlen-1, 0, max_qual+1 ) ) pyplot.xlabel( "position in read" ) else: pyplot.subplot( 211 ) plot_bases( base_arr_U_n ) pyplot.ylabel( "proportion of base" ) pyplot.title( "%.3f million reads" % ( nreads_U / 1e6 ) ) pyplot.subplot( 212 ) pyplot.pcolor( qual_arr_U_n.T ** gamma, cmap=pyplot.cm.Greens, norm=pyplot.normalize( 0, 1 ) ) pyplot.axis( (0, readlen-1, 0, max_qual+1 ) ) pyplot.xlabel( "position in read" ) pyplot.ylabel( "base-call quality score" ) pyplot.savefig( outfilename ) if __name__ == "__main__": main() HTSeq-0.5.4p3/HTSeq/scripts/__init__.py0000664000175000017500000000000012110432344020267 0ustar andersanders00000000000000HTSeq-0.5.4p3/HTSeq/scripts/count.py0000664000175000017500000002661112137504253017710 0ustar andersanders00000000000000import sys, optparse, itertools, warnings, traceback, os.path import HTSeq class UnknownChrom( Exception ): pass def invert_strand( iv ): iv2 = iv.copy() if iv2.strand == "+": iv2.strand = "-" elif iv2.strand == "-": iv2.strand = "+" else: raise ValueError, "Illegal strand" return iv2 def count_reads_in_features( sam_filename, gff_filename, stranded, overlap_mode, feature_type, id_attribute, quiet, minaqual, samout ): def write_to_samout( r, assignment ): if samoutfile is None: return if not pe_mode: r = (r,) for read in r: if read is not None: samoutfile.write( read.original_sam_line.rstrip() + "\tXF:Z:" + assignment + "\n" ) if quiet: warnings.filterwarnings( action="ignore", module="HTSeq" ) if samout != "": samoutfile = open( samout, "w" ) else: samoutfile = None features = HTSeq.GenomicArrayOfSets( "auto", stranded != "no" ) counts = {} # Try to open samfile to fail early in case it is not there if sam_filename != "-": open( sam_filename ).close() gff = HTSeq.GFF_Reader( gff_filename ) i = 0 try: for f in gff: if f.type == feature_type: try: feature_id = f.attr[ id_attribute ] except KeyError: sys.exit( "Feature %s does not contain a '%s' attribute" % ( f.name, id_attribute ) ) if stranded != "no" and f.iv.strand == ".": sys.exit( "Feature %s at %s does not have strand information but you are " "running htseq-count in stranded mode. Use '--stranded=no'." % ( f.name, f.iv ) ) features[ f.iv ] += feature_id counts[ f.attr[ id_attribute ] ] = 0 i += 1 if i % 100000 == 0 and not quiet: sys.stderr.write( "%d GFF lines processed.\n" % i ) except: sys.stderr.write( "Error occured in %s.\n" % gff.get_line_number_string() ) raise if not quiet: sys.stderr.write( "%d GFF lines processed.\n" % i ) if len( counts ) == 0 and not quiet: sys.stderr.write( "Warning: No features of type '%s' found.\n" % feature_type ) try: if sam_filename != "-": read_seq = HTSeq.SAM_Reader( sam_filename ) first_read = iter(read_seq).next() else: read_seq = iter( HTSeq.SAM_Reader( sys.stdin ) ) first_read = read_seq.next() read_seq = itertools.chain( [ first_read ], read_seq ) pe_mode = first_read.paired_end except: sys.stderr.write( "Error occured when reading first line of sam file.\n" ) raise try: if pe_mode: read_seq_pe_file = read_seq read_seq = HTSeq.pair_SAM_alignments( read_seq ) empty = 0 ambiguous = 0 notaligned = 0 lowqual = 0 nonunique = 0 i = 0 for r in read_seq: i += 1 if not pe_mode: if not r.aligned: notaligned += 1 write_to_samout( r, "not_aligned" ) continue try: if r.optional_field( "NH" ) > 1: write_to_samout( r, "alignment_not_unique" ) nonunique += 1 continue except KeyError: pass if r.aQual < minaqual: lowqual += 1 write_to_samout( r, "too_low_aQual" ) continue if stranded != "reverse": iv_seq = ( co.ref_iv for co in r.cigar if co.type == "M" and co.size > 0 ) else: iv_seq = ( invert_strand( co.ref_iv ) for co in r.cigar if co.type == "M" and co.size > 0 ) else: if r[0] is not None and r[0].aligned: if stranded != "reverse": iv_seq = ( co.ref_iv for co in r[0].cigar if co.type == "M" and co.size > 0 ) else: iv_seq = ( invert_strand( co.ref_iv ) for co in r[0].cigar if co.type == "M" and co.size > 0 ) else: iv_seq = tuple() if r[1] is not None and r[1].aligned: if stranded != "reverse": iv_seq = itertools.chain( iv_seq, ( invert_strand( co.ref_iv ) for co in r[1].cigar if co.type == "M" and co.size > 0 ) ) else: iv_seq = itertools.chain( iv_seq, ( co.ref_iv for co in r[1].cigar if co.type == "M" and co.size > 0 ) ) else: if ( r[0] is None ) or not ( r[0].aligned ): write_to_samout( r, "not_aligned" ) notaligned += 1 continue try: if ( r[0] is not None and r[0].optional_field( "NH" ) > 1 ) or \ ( r[1] is not None and r[1].optional_field( "NH" ) > 1 ): nonunique += 1 write_to_samout( r, "alignment_not_unique" ) continue except KeyError: pass if ( r[0] and r[0].aQual < minaqual ) or ( r[1] and r[1].aQual < minaqual ): lowqual += 1 write_to_samout( r, "too_low_aQual" ) continue try: if overlap_mode == "union": fs = set() for iv in iv_seq: if iv.chrom not in features.chrom_vectors: raise UnknownChrom for iv2, fs2 in features[ iv ].steps(): fs = fs.union( fs2 ) elif overlap_mode == "intersection-strict" or overlap_mode == "intersection-nonempty": fs = None for iv in iv_seq: if iv.chrom not in features.chrom_vectors: raise UnknownChrom for iv2, fs2 in features[ iv ].steps(): if len(fs2) > 0 or overlap_mode == "intersection-strict": if fs is None: fs = fs2.copy() else: fs = fs.intersection( fs2 ) else: sys.exit( "Illegal overlap mode." ) if fs is None or len( fs ) == 0: write_to_samout( r, "no_feature" ) empty += 1 elif len( fs ) > 1: write_to_samout( r, "ambiguous[" + '+'.join( fs ) + "]" ) ambiguous += 1 else: write_to_samout( r, list(fs)[0] ) counts[ list(fs)[0] ] += 1 except UnknownChrom: if not pe_mode: rr = r else: rr = r[0] if r[0] is not None else r[1] empty += 1 #if not quiet: # sys.stderr.write( ( "Warning: Skipping read '%s', because chromosome " + # "'%s', to which it has been aligned, did not appear in the GFF file.\n" ) % # ( rr.read.name, iv.chrom ) ) if i % 100000 == 0 and not quiet: sys.stderr.write( "%d sam %s processed.\n" % ( i, "lines " if not pe_mode else "line pairs" ) ) except: if not pe_mode: sys.stderr.write( "Error occured in %s.\n" % read_seq.get_line_number_string() ) else: sys.stderr.write( "Error occured in %s.\n" % read_seq_pe_file.get_line_number_string() ) raise if not quiet: sys.stderr.write( "%d sam %s processed.\n" % ( i, "lines " if not pe_mode else "line pairs" ) ) if samoutfile is not None: samoutfile.close() for fn in sorted( counts.keys() ): print "%s\t%d" % ( fn, counts[fn] ) print "no_feature\t%d" % empty print "ambiguous\t%d" % ambiguous print "too_low_aQual\t%d" % lowqual print "not_aligned\t%d" % notaligned print "alignment_not_unique\t%d" % nonunique def main(): optParser = optparse.OptionParser( usage = "%prog [options] sam_file gff_file", description= "This script takes an alignment file in SAM format and a " + "feature file in GFF format and calculates for each feature " + "the number of reads mapping to it. See " + "http://www-huber.embl.de/users/anders/HTSeq/doc/count.html for details.", epilog = "Written by Simon Anders (sanders@fs.tum.de), European Molecular Biology " + "Laboratory (EMBL). (c) 2010. Released under the terms of the GNU General " + "Public License v3. Part of the 'HTSeq' framework, version %s." % HTSeq.__version__ ) optParser.add_option( "-m", "--mode", type="choice", dest="mode", choices = ( "union", "intersection-strict", "intersection-nonempty" ), default = "union", help = "mode to handle reads overlapping more than one feature" + "(choices: union, intersection-strict, intersection-nonempty; default: union)" ) optParser.add_option( "-s", "--stranded", type="choice", dest="stranded", choices = ( "yes", "no", "reverse" ), default = "yes", help = "whether the data is from a strand-specific assay. Specify 'yes', " + "'no', or 'reverse' (default: yes). " + "'reverse' means 'yes' with reversed strand interpretation" ) optParser.add_option( "-a", "--minaqual", type="int", dest="minaqual", default = 0, help = "skip all reads with alignment quality lower than the given " + "minimum value (default: 0)" ) optParser.add_option( "-t", "--type", type="string", dest="featuretype", default = "exon", help = "feature type (3rd column in GFF file) to be used, " + "all features of other type are ignored (default, suitable for Ensembl " + "GTF files: exon)" ) optParser.add_option( "-i", "--idattr", type="string", dest="idattr", default = "gene_id", help = "GFF attribute to be used as feature ID (default, " + "suitable for Ensembl GTF files: gene_id)" ) optParser.add_option( "-o", "--samout", type="string", dest="samout", default = "", help = "write out all SAM alignment records into an output " + "SAM file called SAMOUT, annotating each line with its feature assignment " + "(as an optional field with tag 'XF')" ) optParser.add_option( "-q", "--quiet", action="store_true", dest="quiet", help = "suppress progress report and warnings" ) if len( sys.argv ) == 1: optParser.print_help() sys.exit(1) (opts, args) = optParser.parse_args() if len( args ) != 2: sys.stderr.write( sys.argv[0] + ": Error: Please provide two arguments.\n" ) sys.stderr.write( " Call with '-h' to get usage information.\n" ) sys.exit( 1 ) warnings.showwarning = my_showwarning try: count_reads_in_features( args[0], args[1], opts.stranded, opts.mode, opts.featuretype, opts.idattr, opts.quiet, opts.minaqual, opts.samout ) except: sys.stderr.write( "Error: %s\n" % str( sys.exc_info()[1] ) ) sys.stderr.write( "[Exception type: %s, raised in %s:%d]\n" % ( sys.exc_info()[1].__class__.__name__, os.path.basename(traceback.extract_tb( sys.exc_info()[2] )[-1][0]), traceback.extract_tb( sys.exc_info()[2] )[-1][1] ) ) sys.exit( 1 ) def my_showwarning( message, category, filename, lineno = None, line = None ): sys.stderr.write( "Warning: %s\n" % message ) if __name__ == "__main__": main() HTSeq-0.5.4p3/HTSeq/_HTSeq_internal.py0000664000175000017500000000257712111155603020106 0ustar andersanders00000000000000import HTSeq import itertools import numpy def GenomicInterval_xrange( gi, step ): for pos in xrange( gi.start, gi.end, step ): yield HTSeq.GenomicPosition( gi.chrom, pos, gi.strand ) def GenomicInterval_xranged( gi, step ): if gi.strand == "-": step *= -1 for pos in xrange( gi.start_d, gi.end_d, step ): yield HTSeq.GenomicPosition( gi.chrom, pos, gi.strand ) def ChromVector_steps( cv ): if isinstance( cv.array, numpy.ndarray ): start = cv.iv.start prev_val = None for i in xrange( cv.iv.start, cv.iv.end ): val = cv.array[ i - cv.offset ] if prev_val is None or val != prev_val: if prev_val is not None: yield ( HTSeq.GenomicInterval( cv.iv.chrom, start, i, cv.iv.strand ), prev_val ) prev_val = val start = i yield ( HTSeq.GenomicInterval( cv.iv.chrom, start, cv.iv.end, cv.iv.strand ), prev_val ) elif isinstance( cv.array, HTSeq.StepVector.StepVector ): for start, stop, value in cv.array[cv.iv.start:cv.iv.end].get_steps(): yield ( HTSeq.GenomicInterval( cv.iv.chrom, start, stop, cv.iv.strand ), value ) else: raise SystemError, "Unknown array type." def GenomicArray_steps( ga ): for a in ga.chrom_vectors.values(): for cv in a.values(): for iv, val in cv.steps(): yield iv, val HTSeq-0.5.4p3/HTSeq/_version.py0000664000175000017500000000003012137504033016674 0ustar andersanders00000000000000__version__ = "0.5.4p3" HTSeq-0.5.4p3/scripts/0000775000175000017500000000000012137504327015216 5ustar andersanders00000000000000HTSeq-0.5.4p3/scripts/htseq-qa0000664000175000017500000000011012110432433016641 0ustar andersanders00000000000000#!/usr/bin/env python import HTSeq.scripts.qa HTSeq.scripts.qa.main() HTSeq-0.5.4p3/scripts/htseq-count0000664000175000017500000000011612110432433017376 0ustar andersanders00000000000000#!/usr/bin/env python import HTSeq.scripts.count HTSeq.scripts.count.main() HTSeq-0.5.4p3/PKG-INFO0000664000175000017500000000130612137504327014624 0ustar andersanders00000000000000Metadata-Version: 1.1 Name: HTSeq Version: 0.5.4p3 Summary: A framework to process and analyze data from high-throughput sequencing (HTS) assays Home-page: http://www-huber.embl.de/users/anders/HTSeq/ Author: Simon Anders Author-email: sanders@fs.tum.de License: UNKNOWN Description: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Topic :: Scientific/Engineering :: Bio-Informatics Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU General Public License (GPL) Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Requires: numpy Requires: python (>=2.5, <3.0) HTSeq-0.5.4p3/clean0000775000175000017500000000011112110432433014515 0ustar andersanders00000000000000#!/bin/bash (cd src; make clean) > /dev/null rm -rf dist build MANIFEST HTSeq-0.5.4p3/MANIFEST.in0000664000175000017500000000013112110432433015245 0ustar andersanders00000000000000include src/step_vector.h include VERSION prune example_data prune test exclude todo.txt HTSeq-0.5.4p3/doc/0000775000175000017500000000000012137504327014274 5ustar andersanders00000000000000HTSeq-0.5.4p3/doc/sequences.rst0000664000175000017500000003222112110432433017006 0ustar andersanders00000000000000.. _sequences: ******************************* Sequences and FASTA/FASTQ files ******************************* .. currentmodule:: HTSeq .. doctest:: :hide: >>> import HTSeq ``Sequence`` ============ A **Sequence** object holds a DNA sequence. Besides the actual sequence, an object may also hold a name. Instantiation .. class:: Sequence( seq, name="unnamed" ) Pass the DNA sequence and, optionally, a name or ID to the constructor:: >>> myseq = HTSeq.Sequence( "ACCGTTAC", "my_sequence" ) (If the name is omitted, the default ``"unnamed"`` is used.) Attributes .. attribute:: Sequence.seq Sequence.name Sequence.descr The information can be accessed via the attributes **seq** and **name**, which are strings:: >>> myseq.seq 'ACCGTTAC' >>> myseq.name 'my_sequence' There is a third attribute, called **descr**, which is by default ``None`` but may contain a "description". See class :class:`FastaReader` for more information. Representation and string conversion The **__repr__** method gives name and length:: >>> myseq The **__str__** method returns just the sequence: >>> print myseq ACCGTTAC Note that the length of a sequence is the number of bases:: >>> len( myseq ) 8 Subsetting Subsetting works as with strings:: >>> myseq2 = myseq[3:5] >>> myseq2.name 'my_sequence[part]' >>> myseq2.seq 'GT' (Note that ``"[part]"`` is appended to the name of the subsetted copy.) Reverse complement .. method:: Sequence.get_reverse_complement( ) :: >>> print myseq.get_reverse_complement() GTAACGGT >>> rc = myseq.get_reverse_complement() >>> rc.name 'revcomp_of_my_sequence' >>> rc.seq 'GTAACGGT' Writing to FASTA file .. method: Sequence.write_to_fasta_file( fasta_file ) To write **Sequence** objects into a FASTA file, open a text file for writing, then call **write_to_fasta_file** for each sequence, providing the open file handle as only argument, and close the file:: >>> my_fasta_file = open( "test.fa", "w" ) >>> myseq.write_to_fasta_file( my_fasta_file ) >>> my_fasta_file.close() To read from a FASTA file, see class :class:`FastaReader`. Extended UIPAC letters These are not (yet) supported. A sequence should only contain A, C, G, T and N. Counting bases .. method: Sequence.add_bases_to_count_array( count_array ) For read quality assessment, it is often helpful to count the proportions of called bases, stratified by position in the read. To obtain such counts, the following idiom is helpful: .. doctest:: >>> import numpy >>> reads = HTSeq.FastqReader( "yeast_RNASeq_excerpt_sequence.txt" ) >>> counts = numpy.zeros( ( 36, 5 ), numpy.int ) >>> for read in reads: ... read.add_bases_to_count_array( counts ) >>> counts #doctest:+NORMALIZE_WHITESPACE,+ELLIPSIS array([[16194, 2048, 4017, 2683, 57], [10716, 3321, 4933, 6029, 0], [ 7816, 5024, 5946, 6213, 0], ... [ 8526, 4812, 5460, 6197, 4], [ 8088, 4915, 5531, 6464, 1]]) Here, a two-dimensional numpy array of integer zeroes is defined and then passed to the **add_bases_to_count_array** method of each Sequence object obtained from the Fastq file. The method *add_bases_to_count_array* adds, for each base, a one to one of the array elements such that, in the end, the 36 rows of the array correspond to the positions in the reads (all of length 36 bp in this example), and the 5 columns correspond to the base letters 'A', 'C', 'G', 'T', and 'N', as given by the constant **base_to_columns** .. data:: base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } Hence, we can get the proportion of 'C's in each position as follows: .. doctest:: >>> counts = numpy.array( counts, numpy.float ) #doctest:+ELLIPSIS,+NORMALIZE_WHITESPACE >>> #counts[ : , HTSeq.base_to_column['C'] ] / counts.sum(1) array([ 0.08192328, 0.13284531, 0.20096804, 0.16872675, 0.21200848, ... 0.18560742, 0.19236769, 0.19088764, 0.17872715, 0.1924877 , 0.19660786]) (Here, we first convert the count array to type ``float`` to allow to proper division, and then divide the second column (``HTSeq.base_to_column['C']``) by the row-wise sums (``counts.sum(1)``; the ``1`` requests summing along rows).) Trimming reads .. method:: Sequence.trim_left_end( pattern, mismatch_prop = 0. ) Sequence.trim_right_end( pattern, mismatch_prop = 0. ) In high-throughput sequencing, reads are sometimes contaminated with adapters or sequencing primers. These function take a pattern and attempt to match either the right end of the pattern to the left end of the sequence (``trim_left_end``) or the left end of the pattern to the right end of the sequence (``trim_right_end``). The match is the trimmed off. Here is an example:: >>> seq2 = HTSeq.Sequence( "ACGTAAAGCGGTACGGGGGG" ) >>> left_seq = HTSeq.Sequence( "CCCACG" ) >>> print seq2.trim_left_end( left_seq ) TAAAGCGGTACGGGGGG The right end of the pattern ("ACG") matched the left end of the sequence, and has hence been trimmed off. The optional argument ``mismatch_prop`` is the number of allowed mismatches as proportion of the length of the match:: >>> right_seq = HTSeq.Sequence( "GGGTGGG" ) >>> print seq2.trim_right_end( right_seq ) ACGTAAAGCGGTACGGG >>> print seq2.trim_right_end( right_seq, 1/6. ) ACGTAAAGCGGTAC >>> print seq2.trim_right_end( right_seq, 1/7. ) ACGTAAAGCGGTACGGG Here, if we allow at least one mismatch per six bases, the whole pattern gets cut off. If you have quality information, you can use this, too, to specify the allowed amount of mismatch. See :meth:`SequenceWithQualities.trim_left_end_with_quals` and :meth:`SequenceWithQualities.trim_left_end_with_quals`. ``SequenceWithQualities`` ========================= The sequences obtained from high-throughput sequencing devices (in the following also referred to as "reads") typically come with `base-call quality scores`, which indicate how sure the software was that the right base was called. The class ``SequenceWithQualities`` represents such reads. ``SequenceWithQualities`` is a daughter class of :class:`Sequence` and inherits all its features. Instantiation .. class:: SequenceWithQualities( seq, name qualstr, qualscale="phred" ) A ``SequenceWithQualities`` can be instantiated as a ``Sequence``, but now with a third argument, the quality string:: >>> myread = HTSeq.SequenceWithQualities( "ACGACTGACC", "my_read", "IICGAB##(!" ) The quality string is interpreted as Sanger-encoded string of Phred values, as defined in the `FASTQ format specification`_, i.e., each letter in the quality string corresponds to one base in the sequence and if the value 33 is subtracted from the quality characters ASCII value, the Phred score is obtained. The Phred scores can then be found in the slot ``qual``:: >>> myread.qualstr 'IICGAB##(!' >>> myread.qual array([40, 40, 34, 38, 32, 33, 2, 2, 7, 0]) If the quality string follows the `Solexa FASTQ` specification, the value to be subtracted is not 33 but 64. If you pass a quality string in this format, set ``qualscale="solexa"``. Prior to version 1.3, the SolexaPipeline software used a yet another style of encoding quality string. If you want to use this one, specify ``qualscale="solexa-old"`` .. _`FASTQ format specification`: http://maq.sourceforge.net/fastq.shtml Attributes As for ``Sequence`` objects, there are attributes ``name``, ``seq``, and ``descr``. Furthermore, we now have the attributes ``qual`` and ``qualstr``, already mentioned above. .. attribute:: SequenceWithQuality.qual ``qual`` is a ``numpy`` array of data type *integer*, with as many elements as there are bases. Each element is a `Phred score`. A Phred score *S* is defined to mean that the base caller estimates the probability *p* of the base call being wrong as *p* = -log10 ( *S*/10 ). Note that ``qual`` is always the probability, even if the ``solexa-old`` quality string format has been used, which encodes the odds *p* ( 1 - *p* ), i.e., in that case, the odds are converted to probabilities. .. attribute:: SequenceWithQuality.qualstr The quality string according to Sanger Phred encoding. In case the quality was originally given in ``solexa`` or ``solexa-old`` format, it is converted:: >>> read2 = HTSeq.SequenceWithQualities( "ACGACTGACC", "my_read", "hhgddaZVFF", "solexa" ) >>> read2.qual array([40, 40, 39, 36, 36, 33, 26, 22, 6, 6]) >>> read2.qualstr "IIHEEB;7''" Writing to FASTQ file .. method:: SequenceWithQuality.write_to_fastq_file( fasta_file ) To write ``SequenceWithQualities`` objects into a FASTQ file, open a text file for writing, then call ``write_to_fastq_file`` for each sequence, providing the open file handle as only argument, and close the file:: >>> my_fastq_file = open( "test.fq", "w" ) >>> myread.write_to_fastq_file( my_fastq_file ) >>> my_fastq_file.close() Note that the reads will always be written with quality strings in Sanger encoding. To read from a FASTQ file, see class :class:`FastqReader`. Counting quality values .. method: Sequence.add_qual_to_count_array( count_array ) Similar to :meth:`Sequence.add_bases_to_count_array`, this method counts the occuring quality values stratified by position. This then allows to calculate average qualities as well as histograms. Here is a usage example: .. doctest:: >>> import numpy #doctest:+NORMALIZE_WHITESPACE,+ELLIPSIS >>> reads = HTSeq.FastqReader( "yeast_RNASeq_excerpt_sequence.txt", "solexa" ) >>> counts = numpy.zeros( ( 36, 41 ), numpy.int ) >>> for read in reads: ... read.add_qual_to_count_array( counts ) >>> #counts array([[ 0, 0, 64, ..., 0, 0, 0], [ 0, 0, 93, ..., 0, 0, 0], ..., [ 0, 0, 2445, ..., 0, 0, 0], [ 0, 0, 2920, ..., 0, 0, 0]]) The value ``counts[i,j]`` is then the number of reads for which the base at position ``i`` hat the quality scores ``j``. According to the Fastq standard, quality scores range from 0 to 40; hence, the array is initialized to have 41 columns. Trimming reads .. method:: SequenceWithQualities.trim_left_end_with_quals( pattern, max_mm_qual = 5 ) SequenceWithQualities.trim_right_end_with_quals( pattern, max_mm_qual = 5 ) These methods work as :meth:`Sequence.trim_left_end` and :meth:`Sequence.trim_right_end` (which are, of course, avilable for ``SequenceWithQualities`` objects, too). The difference is, that for the ``_with_quals`` trimming methods, the maximum amount of allowed mismatch is specified as the maximum value that the sum of the quality scores of the mismatched bases may take. *TODO*: Add example ``FastaReader`` =============== The FastaReader class allows to read and parse a FASTA file. It can generates an iterator of ``Sequence`` objects. .. class:: FastaReader( filename_or_sequence ) As daughter class of ``FileOrSequence``, ``FastaReader`` can be instantiated with either a filename, or with a sequence. See :class:`FileOrSequence` for details. Example 1 The typical use for FastaReader is to go through a FASTA file and do something with each sequence, e.g.:: >>> for s in HTSeq.FastaReader( "fastaEx.fa" ): ... print "Sequence '%s' has length %d." % ( s.name, len(s) ) Sequence 'sequence1' has length 72. Sequence 'sequence2' has length 70. Example 2 Often, one might to read a whole Fasta file into memory to access it as a dict. This is a good idiom for this purpose:: >>> sequences = dict( (s.name, s) for s in HTSeq.FastaReader("fastaEx.fa") ) >>> sequences["sequence1"].seq 'AGTACGTAGTCGCTGCTGCTACGGGCGCTAGCTAGTACGTCACGACGTAGATGCTAGCTGACTAAACGATGC' ``FastqReader`` =============== The **FastqReader** class works similar to :class:`FastaReader`. It reads a Fastq file and generates an iterator over :class:`SequenceWithQualities` objects. .. class:: FastqReader( filename_or_sequence, qual_scale="phred" ) As daughter class of ``FileOrSequence``, ``FastaReader`` can be instantiated with either a filename, or with a sequence. See :class:`FileOrSequence` for details. By default, the quality strings are assumed to be encoded according to the Sanger/Phred standard. You may alternatively specify ``"solexa"`` or ``"solexa-old"`` (see :class:`SequenceWithQuality`). HTSeq-0.5.4p3/doc/tss3.py0000664000175000017500000000235712110432433015536 0ustar andersanders00000000000000import HTSeq import numpy from matplotlib import pyplot bamfile = HTSeq.BAM_Reader( "SRR001432_head.bam" ) gtffile = HTSeq.GFF_Reader( "Homo_sapiens.GRCh37.56_chrom1.gtf" ) halfwinwidth = 3000 fragmentsize = 200 tsspos = HTSeq.GenomicArrayOfSets( "auto", stranded=False ) for feature in gtffile: if feature.type == "exon" and feature.attr["exon_number"] == "1": p = feature.iv.start_d_as_pos window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) tsspos[ window ] += p profile = numpy.zeros( 2*halfwinwidth, dtype="i" ) for almnt in bamfile: if almnt.aligned: almnt.iv.length = fragmentsize s = set() for step_iv, step_set in tsspos[ almnt.iv ].steps(): s |= step_set for p in s: if p.strand == "+": start_in_window = almnt.iv.start - p.pos + halfwinwidth end_in_window = almnt.iv.end - p.pos + halfwinwidth else: start_in_window = p.pos + halfwinwidth - almnt.iv.end end_in_window = p.pos + halfwinwidth - almnt.iv.start start_in_window = max( start_in_window, 0 ) end_in_window = min( end_in_window, 2*halfwinwidth ) profile[ start_in_window : end_in_window ] += 1 HTSeq-0.5.4p3/doc/history.rst0000664000175000017500000002343112137503704016530 0ustar andersanders00000000000000.. _history: *************** Version history *************** Version 0.5.4 ============= 2013-02-20 Various bug fixed, including - GFF_Reader interpreted the constructor's "end_included" flag in the wrong way, hence the end position of intervals of GFF features was off by 1 base pair before - htseq-count no longer warns about missing chromosomes, as this warning was often misleading. Also, these reads are no properly included in the "no_feature" count. - default for "max_qual" in "htseq-qa" is now 41, to accommodate newer Illumina FASTQ files - BAM_Reader used to incorrectly label single-end reads as paired-end Patch versions: * v0.5.4p1 (2013-02-22): - changed default for GFF_Reader to end_included=True, which is actually the correct style for Ensemble GTF files. Now the behavious should be as it was before. * v0.5.4p2 (2013-04-18): - fixed issue blocking proper built on Windows * v0.5.4p3 (2013-04-29): - htseq-count now correctly skips over "M0" cigar operations Version 0.5.3 ============= 2011-06-29 - added the '--stranded=reverse' option to htseq-count Patch versions: * v0.5.3p1 (2011-07-15): - fix a bug in pair_sam_Alignment (many thanks for Justin Powell for finding the bug and suggesting a patch) * v0.5.3p2 (2011-09-15) - fixed a bug (and a documentation bug) in trim_left/right_end_with_quals * v0.5.3p3 (2011-09-15) - p2 was built improperly * v0.5.3p5 (2012-05-29) - added 'to_line' function to VariantCall objects and 'meta_info' function to VCF_Reader objects to print VCF-lines / -headers respectively * v0.5.3p5b (2012-06-01) - added 'flag' field to SAM_Alignment objects and fixed 'get_sam_line' function of those * v0.5.3p6 (2012-06-11) - fixed mix-up between patches p3, p4 and p5 * v0.5.3p7 (2012-06-13) - switched global pysam import to on-demand version * v0.5.3p9ur1 (2012-08-31) - corrected get_sam_line: tab isntead of space between optional fields Version 0.5.2 ============= 2011-06-24 - added the '--maxqual' option to htseq-qa Version 0.5.1 ============= 2011-05-03 - added steps method to GenomicArray Patch versions: * v0.5.1p1 (2011-05-11): - fixed a bug in step_vector.h causing linkage failure under GCC 4.2 * v0.5.1p2 (2011-05-12): - fixed pickling * v0.5.1p3 (2011-05-22): - fixed quality plot in htseq-qa (top pixel row, for quality score 40, was cut off) Version 0.5.0 ============= 2011-04-21 - refactoring of GenomicArray class: - field ``step_vectors`` replaced with ``chrom_vector``. These now contain dicts of dicts of ``ChromVector`` objects rather than ``StepVector`` ones. - ``chrom_vectors`` is now always a dict of dict, even for unstranded GenomicArrays to make it easier to loop over them. (The inner dict has either keys ``"+"`` and ``"-"``, or just one key, ``"."``.) - The new ``ChromVector`` class wraps the actual vector and supports three different storage modes: ``step``, ``ndarray`` and ``memmap``, the latter two being numpy arrays, without and with memory mapping. - The ``GenomicArray`` constructor now take two new arguments, one for the storage class, one for the memmap directory (if needed). - The ``add_value`` methods had been replaced with an ``__iadd__`` method, to enable the ``+=`` semantics. - Similarily, ``+=`` for ``GenomicArrayOfSets`` adds an element to the sets. - Instead of ``get_steps``, now use ``steps``. - new parser class ``VCF_Reader`` and record class ``VariantCall`` - new parser class ``BAM_Reader``, to add BAM support (including indexed random access) (requires PySam to be installed) - new documentation page :ref:`tss` - ``Fasta_Reader`` now allows indexed access to Fasta files (requires Pysam to be installed) - peek function removed Patch Versions: - v0.5.0p1 (2011-04-22): - build was incomplete; fixed - v0.5.0p2 (2011-04-22): - build was still faulty; new try - v0.5.0p3 (2011-04-26) - fixed regression bug in htseq-count Version 0.4.7 ============= 2010-12-22 - added new option ``-o`` (or ``--samout``) to htseq-count Patch versions: * Version 0.4.7p1 (2011-02-14) - bug fix: GFF files with empty attribute fiels are now read correctly * Version 0.4.7p2 (2011-03-13) - fixed assertion error in pair_SAM_alignment, triggered by incorrect flags * Version 0.4.7p3 (2011-03-15) - fixed problem due to SAM_Alignment.peek (by removing the method) * Version 0.4.7p4 (2011-03-18) - removed left-over debugging print statement Version 0.4.6 ============= 2010-12-09 - pair_SAM_alignments now handles multiple matches properly - SAM_Alignments now allows access to optional fields via the new methods optional_field and optional_fields - htseq-count now skips reads that are non-uniquely mapped according to the 'NH' optional field - updated documentation Patch versions: * Version 0.4.6p1 (2010-12-17) - updated htseq-count documentation page - htseq-count now accepts '-' as SAM file name * Version 0.4.6p2 (2012-12-21) - corrected a bug in htseq-count regarding the handling of warnings and added SAM_Reader.peek. Version 0.4.5 ============= 2010-08-30 - correction to GenomicArray.get_steps() when called without arguments - correction to FileOrSequence.get_line_number_string - removed use of urllib's quote and unquote in GFF parsing/writing - GFF_Reader now stores "meta information" - qa.py now gives progress report - auto add chrom now also works on read access - refactored CIGAR parser - added bool fields to SAM_Alignment for all flag bits Patch versions: * Version 0.4.5p1 (2010-10-08) - correction of a mistake in CIGAR checking, misreading symbol "N" * Version 0.4.5p2 (2010-10-13) - Sequence.add_bases_to_count_array and hence htseq-qa now accepts '.' instead of 'N' in a fastq file * Version 0.4.5p3 (2010-10-20) - fixed error reporting for PE in htseq-count * Version 0.4.5p4 (2010-10-21) - fixed another error reporting for PE in htseq-count * Version 0.4.5p5 (2010-10-28) - Not only 'N' but also 'S' was read the wrong way. Fixed. - Cython had some odd way handling properties overloading attributes, which caused issues with 'Alignment.read'. Worked around. * Version 0.4.5p6 (2010-11-02) - write_to_fastq should not break lines. Fixed. * Version 0.4.5p7 (2010-11-16) - added fallback to distutils in case setuptools in unavailable - fixed documentation of '-a' option to htseq-count Version 0.4.4 ============= 2010-05-19 - StepVectors (and hence also GenomicArrays) now notice if, when setting the value of a step, this value is equal to an adjacent step and merge the steps. - GenomicArray's constructor now allows the special value ``"auto"`` for its first arguments in order to start without chromosomes and automatically add them when first encountered. Patch versions: * Version 0.4.4p1 (2010-05-26): - minor change to make it run on Python 2.5 again - changed 'str' to 'bytes' at various places, now compiles with Cython 0.12 (but no longer with Cython 0.11 and Python 2.5) * Version 0.4.4p2 (2010-06-05): - change to SAM parser: if flag "query unmapped is set" but RNAME is not "*", a warning (rather than an error) is issued * Version 0.4.4p3 (2010-06-25) - again removed an "except sth as e" * Version 0.4.4p4 (2010-07-12) - dto. * Version 0.4.4p5 (2010-07-13) - rebuilt with Cython 0.12.1 (previous one was accidently built with Cython 0.11.1, causing it to fail with Python 2.5) * Version 0.4.4p6 (2010-07-21) - fixed bug in error reporting in count.py - losened GFF attribute parsing - changed "mio" to "millions" in qa output - improved error reporting in GFF parser - made SAM parsing more tolerant Version 0.4.3 ============= 2010-05-01 New argument to constructer of GFF_Reader: ``end_include`` * Version 0.4.3-p1 (2010-05-04): version number was messed up; fixed * Version 0.4.3-p2 (2010-05-15): fixed '-q' option in htseq-count * Version 0.4.3-p3 (2010-05-15): parse_GFF_attribute_string can now deal with empty fields; score treated as float, not int * Version 0.4.3-p3 (2010-05-15): - parse_GFF_attribute_string can now deal with empty fields; score treated as float, not int - fixed bug in SAM_Reader: can now deal with SAM files with 11 columns - SAM_Alignment._tags is now a list of strings * Version 0.4.3-p4 (2010-05-16): bumped version number again just to make sure Version 0.4.2 ============= 2010-04-19 Bug fixes to htseq-count and pair_SAM_alignments. Bumped version number to avoid confusion. * Version 0.4.2-p1 (2010-04-20): there was still a bug left in htseq-count, fixed. * Version 0.4.2-p2 (2010-04-26): bug fix: adapter trimming failed if the adapter was completely included in the sequence * Version 0.4.2-p3 * Version 0.4.2-p4 (2010-04-29): bug fix: error in warning when htseq-count encountered an unknown chromosome * Version 0.4.2-p5 (2010-04-30): bug fixes: error in warning when PE positions are mismatched, and misleading error when calling get_steps with unstranded interval in a stranded array Version 0.4.1 ============= 2010-04-19 Bug fixes: * Fixed bug in ``htseq-count``: CIGAR strings with gaps were not correctly handled * Fixed bug in Tour (last section, on counting): An wrong indent, and accidental change to the ``exons`` variable invalidated data. * SolexaExportReader no longer complains about multiplexing (indexing) not being supported. * Mention link to example data in Tour. * Fix installation instructions. (``--user`` does not work for Python 2.5.) Enhancements: * Paired-end support for SAM_Alignment. * "_as_pos" attributes for GenomicInterval Version 0.4.0 ============= 2010-04-07 First "official" release, i.e., uploaded to PyPI and announced at SeqAnswers Version 0.3.7 ============= 2010-03-12 First version that was uploaded to PyPI HTSeq-0.5.4p3/doc/tss1.py0000664000175000017500000000156712110432433015536 0ustar andersanders00000000000000import HTSeq import numpy from matplotlib import pyplot bamfile = HTSeq.BAM_Reader( "SRR001432_head.bam" ) gtffile = HTSeq.GFF_Reader( "Homo_sapiens.GRCh37.56_chrom1.gtf" ) halfwinwidth = 3000 fragmentsize = 200 coverage = HTSeq.GenomicArray( "auto", stranded=False, typecode="i" ) for almnt in bamfile: if almnt.aligned: almnt.iv.length = fragmentsize coverage[ almnt.iv ] += 1 tsspos = set() for feature in gtffile: if feature.type == "exon" and feature.attr["exon_number"] == "1": tsspos.add( feature.iv.start_d_as_pos ) profile = numpy.zeros( 2*halfwinwidth, dtype='i' ) for p in tsspos: window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) wincvg = numpy.fromiter( coverage[window], dtype='i', count=2*halfwinwidth ) if p.strand == "+": profile += wincvg else: profile += wincvg[::-1] HTSeq-0.5.4p3/doc/features.rst0000664000175000017500000002722112111631265016642 0ustar andersanders00000000000000.. _features: ******** Features ******** .. currentmodule:: HTSeq .. doctest:: :hide: >>> import HTSeq The easiest way to work with annotation is to use :class:`GenomicArray` with ``typecode=='O'`` or :class:`GenomicArrayOfSets`. If you have your annotation in a flat file, with each line describing a feature and giving its coordinates, you can read in the file line for line, parse it (see the standard Python module ``csv``), use the information on chromosome, start, end and strand to create a :class:`GenomicInterval` object and then store the data from the line in the genomic array at the place indicated by the genomic interval. For example, if you have data in a tab-separated file as follows: .. doctest:: >>> for line in open( "feature_list.txt" ): #doctest:+NORMALIZE_WHITESPACE ... print line, chr2 100 300 + "gene A" chr2 200 400 - "gene B" chr3 150 270 + "gene C" Then, you could load this information as follows:: >>> import csv >>> genes = HTSeq.GenomicArray( [ "chr1", "chr2", "chr3" ], typecode='O' ) >>> for (chrom, start, end, strand, name) in \ ... csv.reader( open("feature_list.txt"), delimiter="\t" ): ... iv = HTSeq.GenomicInterval( chrom, int(start), int(end), strand ) ... genes[ iv ] = name Now, to see whether there is a feature at a given :class:`GenomicPosition`, you just query the genomic array:: >>> print genes[ HTSeq.GenomicPosition( "chr3", 100, "+" ) ] None >>> print genes[ HTSeq.GenomicPosition( "chr3", 200, "+" ) ] gene C See :class:`GenomicArray` and :class:`GenomicArrayOfSets` for more sophisticated use. ``GFF_Reader`` and ``GenomicFeature`` ===================================== One of the most common format for annotation data is GFF_ (which includes GTF_ as a sub-type). Hence, a parse for GFF files is included in HTSeq. .. _GFF: http://www.sanger.ac.uk/resources/software/gff/spec.html .. _GTF: http://mblab.wustl.edu/GTF22.html As usual, there is a parser class, called **GFF_Reader**, that can generate an iterator of objects describing the features. These objects are of type :class`GenomicFeature` and each describes one line of a GFF file. See Section :ref:`tour` for an example. .. class:: GFF_Reader( filename_or_sequence, end_included=True ) As a subclass of :class:`FileOrSequence`, GFF_Reader can be initialized either with a file name or with an open file or another sequence of lines. When requesting an iterator, it generates objects of type :class:`GenomicFeature`. The GFF specification is unclear on whether the end coordinate marks the last base-pair of the feature (closed intervals, ``end_included=True``) or the one after (half-open intervals, ``end_included=False``). The default, True, is correct for Ensembl GTF files. If in doubt, look for a CDS or stop_codon feature in you GFF file. Its length should be divisible by 3. If "end-start" is divisible by 3, you need ``end_included=False``. If "end-start+1" is divisible by 3, you need ``end_included=True``. GFF_Reader will convert the coordinates from GFF standard (1-based, end maybe included) to HTSeq standard (0-base, end not included) by subtracting 1 from the start position, and, for ``end_included=True``, also subtract 1 from the end position. .. attribute:: GFF_Reader.metadata GFF_Reader skips all lines starting with a single '#' as this marks a comment. However, lines starying with '##' contain meta data (at least accoring to the Sanger Institute's version of the GFF standard.) Such meta data has the format ``##key value``. When a metadata line is encountered, it is added to the ``metadata`` dictionary. .. class:: GenomicFeature( name, type_, interval ) A GenomicFeature object always contains the following attributes: .. attribute:: GenomicFeature.name A name of ID for the feature. As the GFF format does not have a dedicated field for this, the value of the first attribute in the *attributes* column is assumed to be the name of ID. .. attribute:: GenomicFeature.type The type of the feature, i.e., a string like ``"exon"`` or ``"gene"``. For GFF files, the 3rd column (*feature*) is taken as the type. .. attribute:: GenomicFeature.interval The interval that the feature covers on the genome. For GFF files, this information is taken from the first (*seqname*), the forth (*start*), the fifth (*end*), and the seventh (*strand*) column. When created by a :class:`GFF_Reader` object, the following attributes are also present, with the information from the remaining GFF columns: .. attribute:: GenomicFeature.source The 2nd column, denoted *source* in the specification, and intended to specify the data source. .. attribute:: GenomicFeature.frame The 8th column (*frame*), giving the reading frame in case of a coding feature. Its value is an integer (0, 1, or 2), or the string ``'.'`` in case that a frame is not specified or would not make sense. .. attribute:: GenomicFeature.score The 6th column (*score*), giving some numerical score for the feature. Its value is a float, or ``'.'`` in case that a score is not specified or would not make sense .. attribute:: GenomicFeature.attr The last (9th) column of a GFF file contains *attributes*, i.e. a list of name/value pairs. These are transformed into a dict, such that, e.g., ``gf.attr['gene_id']`` gives the value of the attribute ``gene_id`` in the feature described by ``GenomicFeature`` object ``gf``. The parser for the attribute field is reasonably flexible to deal with format variations (it was never clearly established whetehr name and value should be sperarated by a colon or an equal sign, and whether quotes need to be used) and also does a URL style decoding, as is often required. In order to write a GFF file from a sequence of features, this method is provided: .. method:: GenomicFeature.get_gff_line( with_equal_sign=False ) Returns a line to describe the feature in the GFF format. This works even if the optional attributes given above are missing. Call this for each of your ``GenomicFeature`` objects and write the lines into a file to get a GFF file. .. function:: parse_GFF_attribute_string( attrStr, extra_return_first_value=False ) This is the function that :class:`GFF_Reader` uses to parse the attribute column. (See :attr:`GenomicFeature.attr`.) It returns a dict, or, if requested, a pair of the dict and the first value. ``VCF_Reader`` and ``VariantCall`` ===================================== VCF is a text file format (most likely stored in a compressed manner). It contains meta-information lines, a header line, and then data lines each containing information about a position in the genome. There is an option whether to contain genotype information on samples for each position or not. See the definitions at .. `1000genomes Project VCF _` .. `1000genomes Project VCF for structural variants _' As usual, there is a parser class, called **VCF_Reader**, that can generate an iterator of objects describing the structural variant calls. These objects are of type :class`VariantCall` and each describes one line of a VCF file. See Section :ref:`tour` for an example. .. class:: VCF_Reader( filename_or_sequence ) As a subclass of :class:`FileOrSequence`, VCF_Reader can be initialized either with a file name or with an open file or another sequence of lines. When requesting an iterator, it generates objects of type :class:`VariantCall`. .. attribute:: VCF_Reader.metadata VCF_Reader skips all lines starting with a single '#' as this marks a comment. However, lines starying with '##' contain meta data (Information about filters, and the fields in the 'info'-column). .. function:: parse_meta( header_filename = None ) The VCF_Reader normally does not parse the meta-information and also the :class:`VariantCall` does not contain unpacked metainformation. The function parse_meta reads the header information either from the attached :class:`FileOrSequence` or from a file connection being opened to a provided 'header-filename'. This is important if you want to access sample-specific information for the :class`VariantCall`s in your .vcf-file. .. function:: make_info_dict( ) This function will parse the info string and create the attribute :attribute:`infodict` which contains a dict with key:value-pairs containig the type-information for each entry of the :class:`VariantCall`'s info field. .. class:: VariantCall( line, nsamples = 0, sampleids=[] ) A VariantCall object always contains the following attributes: .. attribute:: VariantCall.alt The alternative base(s) of the :class:`VariantCall`'. This is a list containing all called alternatives. .. attribute:: VariantCall.chrom The Chromosome on which the :class:`VariantCall`' was called. .. attribute:: VariantCall.filter This specifies if the :class:`VariantCall`' passed all the filters given in the .vcf-header (value=PASS) or contains a list of filters that failed (the filter-id's are specified in the header also). .. attribute:: VariantCall.format Contains the format string specifying which per-sample information is stored in :attribute:`VariantCall.samples`. .. attribute:: VariantCall.id The id of the :class:`VariantCall`', if it has been found in any database, for unknown variants this will be ".". .. attribute:: VariantCall.info This will contain either the string version of the info field for this :class:`VariantCall`' or a dict with the parsed and processed info-string. .. attribute:: VariantCall.pos A :class:`HTSeq.GenomicPosition` that specifies the position of the :class:`VariantCall`'. .. attribute:: VariantCall.qual The quality of the :class:`VariantCall`'. .. attribute:: VariantCall.ref The reference base(s) of the :class:`VariantCall`'. .. attribute:: VariantCall.samples A dict mapping sample-id's to subdicts which use the :attribute:`VariantCall.format` as keys to store the per-sample information. .. function:: VariantCall.unpack_info( infodict ) This function parses the info-string and replaces it with a dict rperesentation if the infodict of the originating VCF_Reader is provided. Example Workflow for reading the dbSNP in VCF-format (obtained from `dbSNP _`): .. doctest:: >>> vcfr = HTSeq.VCF_Reader( "00-All.vcf.gz" ) #doctest: +SKIP >>> vcfr.parse_meta() #doctest: +SKIP >>> vcfr.make_info_dict() #doctest: +SKIP >>> for vc in vcfr: #doctest: +SKIP ... print vc, 1:10327:'T'->'C' 1:10433:'A'->'AC' 1:10439:'AC'->'A' 1:10440:'C'->'A' *FIXME* The example above is not run, as the example file is still missing! HTSeq-0.5.4p3/doc/misc.rst0000664000175000017500000000272112110432433015750 0ustar andersanders00000000000000.. _misc: ************* Miscellaneous ************* .. currentmodule:: HTSeq .. doctest:: :hide: >>> import HTSeq ``FileOrSequence`` ================== .. class:: FileOrSequence( filename_or_sequence ) This class is a a canvenience wrapper around a file. The construcutor takes one argument, which may either be a string, which is interpreted as a file name (possibly with path), or a connection, by which we mean a text file opened for reading, or any other object that can provide an iterator over strings (lines of the file). The advantage of passing a file name instead of an already opened file is that if an iterator is requested several times, the file will be re-opened each time. If the file is already open, its lines can be read only once, and then, the iterator stays exhausted. Furthermore, if a file name is passed that end in ".gz" or ".gzip" (case insensitive), it is transparently gunzipped. .. attribute:: FileOrSequence.fos The argument passed to the constructor, i.e., a filename or a sequence .. attribute:: FileOrSequence.line_no The line number (1-based) of the most recently read line. Initially None. .. method:: FileOrSequence.get_line_number_string( ) Returns a string describing the position in the file. Useful for error messages. Version ======= .. attribute:: __version__ a string containing the current version HTSeq-0.5.4p3/doc/alignments.rst0000664000175000017500000003461612110432433017166 0ustar andersanders00000000000000.. _alignments: *************** Read alignments *************** .. currentmodule:: HTSeq .. doctest:: :hide: >>> import HTSeq Concepts ======== There are a large number of different tools to align short reads to a reference. Most of them use their own output format, even though the `SAM format`_ seems to become the common standard now that many of the newer tools use it. .. _`SAM format`: http://samtools.sourceforge.net/SAM1.pdf HTSeq aims to offer a uniform way to analyse alignments from different tools. To this end, for all supported alignment formats a parse class is offered that reads an alignment file and generates an iterator over the individual alignment records. These are represented as objects of a sub-class of :class:`Alignment` and hence all offer a common interface. So, you can easily write code that should work for all aligner formats. As a simple example, consider this function that counts the number of reads falling on each chromosome: .. doctest:: >>> import collections >>> def count_in_chroms( alignments ): ... counts = collections.defaultdict( lambda: 0 ) ... for almnt in alignments: ... if almnt.aligned: ... counts[ almnt.iv.chrom ] += 1 ... return counts If you have a SAM file (e.g., from BWA or BowTie), you can call it with: .. doctest:: >>> count_in_chroms( HTSeq.SAM_Reader( "yeast_RNASeq_excerpt.sam" ) ) #doctest:+ELLIPSIS defaultdict(..., {'XVI': 1509, 'V': 999, ..., 'XV': 2133}) If, however, you have done your alignment with Eland from the SolexaPipeline, which uses the "Solexa export" format, you can use the same function, only using :class:`SolexaExportReader` instead of :class:`SAM_Reader`: .. doctest:: >>> count_in_chroms( HTSeq.SolexaExportReader( "mydata_export.txt" ) ) #doctest:+SKIP Both class generate iterators of similar objects. On the other hand, some formats contain more information and then the ``Alignment`` objects from these contain additional fields. Parser classes ============== Depending on the format of your alignment file, choose from the following parsers: .. class:: BowtieReader( filename_or_sequence ) SAM_Reader( filename_or_sequence ) BAM_Reader( filename_or_sequence ) SolexaExportReader( filename_or_sequence ) All of these are derived from :class:`FileOrSequence`. When asked for an iterator, they yield ``Alignment`` objects of types :class:`BowtieAlignment`, :class:`SAM_Alignment`, or :class:`SolexaExportAlignment`. See below for their properties. Adding support for a new format is very easy. Ask me if you need something and I can probably add it right-away. Alternatively, you can convert your format to the SAM format. The SAMtools_ contain Perl skripts to convert nearly all common formats. .. _SAMtools: http://samtools.sourceforge.net/ .. method:: SAM_Reader.peek( num = 1 ): Peek into a SAM file or connection, reporting the first ``num`` records. If you then call an iterator on the ``SAM_Reader``, the record will be yielded again. ``Alignment`` and ``AlignmentWithSequenceReversal`` =================================================== .. class:: Alignment( read, iv ) This is the base class of all Alignment classes. Any class derived from ``Alignment`` has at least the following attributes: .. attribute:: read The read. An object of type :class:`SequenceWithQuality`. See there for the sub-attributes. Note that some aligners store the reverse complement of the read if it was aligned to the '-' strand. In this case, the parser revers-complements the read again, so that you can be sure that the read is always presented as it was sequenced (see also :class:`AlignmentWithSequenceReversal`). .. attribute:: aligned A boolean. Some formats (e.g., those of Maq and Bowtie) contain only aligned reads (and the aligner collects the unaligned reads in a seperate FASTQ file if requested). For these formats, ``aligned`` is always ``True``. Other formats (e.g., SAM and Solexa Export) list all reads, including those which could not be aligned. In that case, check ``aligned`` to see whether the read has an alignment. .. attribute:: iv An object of class :class:`GenomicInterval` or ``None``. The genomic interval to which the read was aligned (or ``None`` if ``aligned=False``). See :class:`GenomicInterval` for the sub-attributes. Note that different formats have different conventions for genomic coordinates. The parser class takes care of normalizing this, so that ``iv`` always adheres to the conventions outlined in :class:GenomicInterval. Especially, all coordinates are counted from zero, not one. .. attribute:: paired_end A boolean. True if the read stems from a paired-end sequencing run. (Note: At the moment paired-end data is only supported for the SAM format.) .. class:: AlignmentWithSequenceReversal( read_as_aligned, iv ) Some aligners store the reverse complement of the read if it was aligned to the '-' strand. For these aligners, the Alignment class is derived from ``AlignmentWithSequenceReversal``, which undoes the reverse-complement if necessary to ensure that the ``read`` attribute always presents the read in the ordder in which it was sequenced. To get better performance, this is done via lazy evaluation, i.e., the reverse complement is only calculated when the ``read`` attribute is accessed for the first time. The original read as read from the file is stored as well. You can access both with these attributes: .. attribute:: AlignmentWithSequenceReversal.read_as_aligned A :class:`SequenceWithQualities` object. The read as it was found in the file. .. attribute:: AlignmentWithSequenceReversal.read_as_sequenced A :class:`SequenceWithQualities` object. The read as it was sequenced, i.e., an alias for :attr:`Alignment.read`. Format-specific Alignment classes ================================= Note: All format-specific Alignment classes take a string as argument for their constructor. This is a line from the alignment file describing the alignment and is passed in by the corresponding ``Reader`` object. As you do not create ``Alignment`` objects yourself but get them from the ``Reader`` object you typically never call the constructor yourself. .. class:: BowtieAlignment( bowtie_line ) ``BowtieAlignment`` objects contain all the attributes from :class:`Alignment` and :class:`AlignmentWithSequenceReversal`, and, in addition, these: .. attribute:: BowtieAlignment.reserved A string. The ``reserved`` field from the Bowtie output file. See the Bowtie manual for its meaning. .. attribute:: BowtieAlignment.substitutions A string. The substitutions string that describes mismatches in the format ``22:A>C, 25:C>T`` to indicate a change from A to C in position 22 and from C to T in position 25. No further parsing for this is offered yet. .. class:: SAM_Alignment( line ) ``BowtieAlignment`` objects contain all the attributes from :class:`Alignment` and :class:`AlignmentWithSequenceReversal`, and, in addition, these: .. attribute:: SAM_Alignment.aQual An int. The alignment quality score in Phread style encoding. .. attribute:: SAM_Alignment.cigar A list of :class:`CigarOperation` objects, as parsed from the extended CIGAR string. See :class:`CigarOperation` for details. .. attribute:: SAM_Alignment.nor_primary_alignment A boolean. Whether the alignment is not primary. (See SAM format reference, flag 0x0100.) .. attribute:: SAM_Alignment.failed_platform_qc A boolean. Whether the read failed a platform quality check. (See SAM format reference, flag 0x0200.) .. attribute:: SAM_Alignment.pcr_or_optical_duplicate A boolean. Whether the read is a PCR or optical duplicate. (See SAM format reference, flag 0x0400.) These methods access the optional fields: .. attribute:: SAM_Alignment.optional_field( tag ) Returns the optional field ``tag``. See SAM format reference for the defined tags (which are two-letter strings). .. attribute:: SAM_Alignment.optional_fields( ) Returns a dict with all optional fields, using their tags as keys. This method is useful to write out a SAM file: .. method:: SAM_Alignment.get_sam_line( ) Constructs a SAM line to describe the alignment, which is returned as a string. **Paired-end support** SAM_Alignment objects can represent paired-end data. If :attr:`Alignment.paired_end` is True, the following fields may be used: .. attribute:: SAM_Alignment.mate_aligned A boolean. Whether the mate was aligned .. attribute:: SAM_Alignment.pe_which A string. Takes one of the values "first", "second", "unknown" and "not_paired_end", to indicate whether the read stems from the first or second pass of the paired-end sequencing. .. attribute:: SAM_Alignment.proper_pair Boolean. Whether the mates form a proper pair. (See SAM format reference, flag 0x0002.) .. attribute:: SAM_Alignment.mate_start A :class:`GenomicPosition` object. The start (i.e., left-most position) of the mate's alignment. Note that mate_start.strand is opposite to iv.strand for proper pairs. .. attribute:: SAM_Alignment.inferred_insert_size An int. The inferred size of the insert between the reads. .. function:: pair_SAM_alignments( alnmt_seq ) This function takes a generator of :class:`SAM_Alignment` objects (e.g., a :class:`SAM_Reader` object) and yields a sequence of pairs of alignments. A typical use may be:: for first, second in HTSeq.SAM_Reader( "some_paired_end_data.sam" ): print "Pair, consisting of" print " ", first print " ", second Here, ``first`` and ``second`` are :class:`SAM_Alignment` objects, representing two reads of the same cluster. If a read does not have a mate, it is assigned to one of ``first`` or ``second`` (depending on the sequencing pass it originates from) and the other is set to ``None``. *Important*: For this to work, the SAM file has to be arranged such that paired reads are always in adjacent lines. As the SAM format requires that the query names (first column of the SAM file) is the same for mate pairs, this arrangement can easily be achieved by sorting the SAM file lines lexicographically. (If your sorting tool cannot handle big files, try Ruan Jue's *msort*, available from the SOAP_ web site.) Special care is taken to properly pair up multiple alignment lines for the same read. .. _SOAP: http://soap.genomics.org.cn .. class:: SolexaExportAlignment( line ) ``SolexaExportAlignment`` objects contain all the attributes from :class:`Alignment` and :class:`AlignmentWithSequenceReversal`, and, in addition, these: .. attribute:: SolexaExportAlignment.passed_filter A boolean. Whether the read passed the chastity filter. If ``passed_filter==False``, then ``aligned==False``. .. attribute:: SolexaExportAlignment.nomatch_code A string. For ``aligned==False``, a code indicating why no match could be found. See the description of the 11th column of the Solexa Export format in the SolexaPipeline manual for the meaning of the codes. For ``aligned==True``, ``nomatch_code==None``. Multiple alignments =================== .. function:: bundle_multiple_alignments( sequence_of_alignments ) Some alignment programs, e.g., Bowtie, can output multiple alignments, i.e., the same read is reported consecutively with different alignments. This function takes an iterator over alignments (as provided by one of the alignment Reader classes) and bundles consecutive alignments regarding the same read to a list of Alignment objects and returns an iterator over these. CIGAR strings ============= When reading in SAM files, the CIGAR string is parsed and stored as a list of ``CigarOperation`` objects. For example, assume, a 36 bp read has been aligned to the '+' strand of chromosome 'chr3', extending to the right from position 1000, with the CIGAR string ``"20M6I10M"``. The function :function:parse_cigar spells out what this means: .. doctest:: >>> HTSeq.parse_cigar( "20M6I10M", 1000, "chr2", "+" ) #doctest:+NORMALIZE_WHITESPACE [< CigarOperation: 20 base(s) matched on ref iv chr2:[1000,1020)/+, query iv [0,20) >, < CigarOperation: 6 base(s) inserted on ref iv chr2:[1020,1020)/+, query iv [20,26) >, < CigarOperation: 10 base(s) matched on ref iv chr2:[1020,1030)/+, query iv [26,36) >] We can see that the map includes an insert. Hence, the affected coordinates run from 1000 to 1030 on the reference (i.e., the chromosome) but only from 0 to 36 on the query (i.e., the read). We can convenient access to the parsed data by looking at the attributes of the three ``CigarOperation`` objects in the list. .. class:: CigarOperation( ... ) The available attributes are: .. attribute:: CigarOperation.type The type of the operation. One of the letters M, I, D, N, S, H, or P. Use the dict **cigar_operation_names** to transform this to names: .. doctest:: >>> HTSeq.cigar_operation_names #doctest:+NORMALIZE_WHITESPACE {'D': 'deleted', 'I': 'inserted', 'H': 'hard-clipped', 'M': 'matched', 'N': 'skipped', 'P': 'padded', 'S': 'soft-clipped'} .. attribute:: CigarOperation.size The number of affected bases, an int. .. attribute:: CigarOperation.ref_iv A :class:`GenomicInterval` specifying the affected bases on the reference. In case of an insertion, this is a zero-length interval. .. attribute:: CigarOperation.query_from CigarOperation.query_to Two ints, specifying the affected bases on the query (the read). In case of a deletion, ``query_from == query_to``. .. method:: CigarOperation.check( ) Checks the ``CigarOperation`` object for consitency. Returns a boolean. HTSeq-0.5.4p3/doc/overview.rst0000664000175000017500000001035212110432433016662 0ustar andersanders00000000000000.. _overview: .. currentmodule:: HTSeq ************************************************************ HTSeq: Analysing high-throughput sequencing data with Python ************************************************************ HTSeq is a Python package that provides infrastructure to process data from high-throughput sequencing assays. * Please see the chapter :ref:`tour` first for an overview on the kind of analysis you can do with HTSeq and the design of the package, and then look at the reference documentation. .. * While the main purpose of HTSeq is to allow you to write your own analysis scripts, customized to your needs, there are also a couple of stand-alone scripts for common tasks that can be used without any Python knowledge. See the *Scripts* section in the overview below for what is available. .. * For downloads and installation instructions, see :ref:`install`. Documentation overview ====================== * :ref:`install` Download links and installation instructions can be found here * :ref:`tour` The Tour shows you how to get started. It explains how to install HTSeq, and then demonstrates typical analysis steps with explicit examples. Read this first, and then see the Reference for details. * :ref:`tss` This chapter explains typical usage patterns for HTSeq by explaining in detail three different solutions to the same programming task. * Reference documentation The various classes of `HTSeq` are described here. * :ref:`sequences` In order to represent sequences and reads (i.e., sequences with base-call quality information), the classes :class:`Sequence` and :class:`SequenceWithQualities` are used. The classes :class:`FastaReader` and :class:`FastqReader` allow to parse FASTA and FASTQ files. * :ref:`genomic` The classes :class:`GenomicInterval` and :class:`GenomicPosition` represent intervals and positions in a genome. The class :class:`GenomicArray` is an all-purpose container with easy access via a genomic interval or position, and :class:`GenomicArrayOfSets` is a special case useful to deal with genomic features (such as genes, exons, etc.) * :ref:`alignments` To process the output from short read aligners in various formats (e.g., SAM), the classes described here are used, to represent output files and alignments, i.e., reads with their alignment information. * :ref:`features` The classes :class:`GenomicFeature` and :class:`GFF_Reader` help to deal with genomic annotation data. * :ref:`misc` * Scripts The following scripts can be used without any Python knowledge. * :ref:`qa` Given a FASTQ or SAM file, this script produces a PDF file with plots depicting the base calls and base-call qualities by position in the read. This is useful to assess the technical quality of a sequencing run. * :ref:`count` Given a SAM file with alignments and a GFF file with genomic features, this script counts how many reads map to each feature. * Appendices .. * :ref:`history` .. * :ref:`contrib` .. * :ref:`Table of Contents` .. * :ref:`genindex` .. * :ref:`modindex` * :ref:`search` Author ====== HTSeq is developed by `Simon Anders`_ at `EMBL Heidelberg`_ (`Genome Biology Unit`_). Please do not hesitate to contact me (anders *at* embl *dot* de) if you have any comments or questions. .. _`Simon Anders`: http://www.embl.de/research/units/genome_biology/huber/members/index.php?s_personId=6001 .. _`EMBL Heidelberg`: http://www.embl.de/ .. _`Genome Biology Unit`: http://www.embl.de/research/units/genome_biology/index.html License ======= HTSeq is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The full text of the GNU General Public License, version 3, can be found here: http://www.gnu.org/licenses/gpl-3.0-standalone.html HTSeq-0.5.4p3/doc/tss_fig4.png0000664000175000017500000010001612110432433016507 0ustar andersanders00000000000000‰PNG  IHDR,dóò¥(sBIT|dˆ pHYsaa¨?§i IDATxœìÝyxTåáöñ{²ï+ÙXö« –Å­,¶¥úVP©-”J«âŠˆÒª¿Z·Öb«­[‹VlEP@ÜU6Aö=!!{B¶ÉÌûÇ@4†-dfž33ßÏuq=xæ9ϹC¼îœ9çØœN§S`AA¦À©PXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX…€eQXX–ß–%K–hܸqêÔ©“”˜˜¨«®ºJŸ}öY£yãÇWPPP“_={öl²f]]fΜ©ÌÌLEDD¨Gzæ™gNzüÝ»wkôèÑJLLTll¬®¸â ­_¿Þ#_+àoBLð´yóæ©  @wÝu—²³³UZZª'žxBC† Ñ| !C†4ÌŒŒÔ²eËíÙdÍI“&éÕW_Õ¬Y³Ô¿-Z´H·ß~»ÊËËuï½÷6Ì+((РAƒ”œœ¬—^zIááázôÑG5xð`­^½Z]»võÜø›ÓétšáIùùùJMMm´­¦¦F]ºtQ÷îݵdÉI®3, ,PYYÙi×Û²e‹z÷î­9sæèî»ïnØ~Ûm·éÕW_ÕÁƒ•˜˜(Iš6mšžzê)íØ±CíÚµ“$•——«sçÎ:t¨^ýuw~©€ßñû„}¿¬HRxx¸ºu릃6Ú~¢»®Ã½óÎ;r:š0aB£í&LPUU•-ZÔ°íí·ßÖСCÊŠ$ÅÆÆjôèÑZ¸p¡Ç9}M@ ðûÂr2¥¥¥Z³f²³³m¯ªªRZZšBBBÔ®];M™2EÅÅÅælÞ¼Y©©©MŠPNNŽ$טkíÞ½[½{÷nrüœœœ†×œšß_Ãr2“'OVUU•î¿ÿþ†mýúõÓ…^¨Þ½{Ëf³iùòåš;w®>úè#­^½ZÑÑÑ’¤ÂÂB%%%5Y3::Zaaa*,,”$Ëétžtî‰m………êÒ¥K“×=ª>ø@™™™'½†ÖWUU¥½{÷êÊ+¯T«V­LÇñYWX¦OŸ®þóŸzæ™gÔ·o߆íS¦Li4oàÀêÛ·¯FŽ©^xA·ß~»×2~ðÁºñƽv<xΫ¯¾ªn¸Át ŸP…eæÌ™š={¶æÌ™£I“&qþÕW_­ÄÄD}ùå— Û’““µaÆ&s+++U[[«äädIRbb¢l6›ŠŠŠšÌ=±íÄÜïëØ±£$×ÿÜ=zô8ó#¦Nª'Ÿ|Òt œßëã{d}|¬ï‘µmݺU7Þxcÿípn¦°Ìœ9³á×=÷ÜsÖû}ÿüœœ½ñÆ:räˆÒÒÒ¶oÚ´I’Ô«W/I®Û!wéÒE7nl²æ¦M›¥N:ô˜’¤=zèüóÏ?ë¬ð®„„¾?Æ÷ÇúøYß#ëã{äNüÛç& .ºä‘G4sæL=ðÀš>}úYï·páB•””èâ‹/nØvÝu×Éf³éå—_n4wþüùŠŠŠÒðáö5JK—.mt7²òòr-X°@×^{­‚‚â8g~†å‰'žÐŒ34|øp1B+W®lôúE]¤}ûöiâĉºþúë•••%§Ó©+Vè±ÇS¯^½të­·6ÌïÙ³§n¹å͘1CÁÁÁºà‚ ´xñbÍ›7O³gÏVBBBÃÜ;ï¼S¯¼òŠFŒ¡‡~Xaaaš;w®jkkõÐCyëðY~_XÞ{ï=Ùl6-Z´¨Ñ3R$Éf³©¾¾^qqqŠŠŠÒìÙ³•››+›Í¦ÌÌLM™2E÷Ýw_“;u=÷ÜsjÓ¦ž~úiååå©cÇŽzê©§4yòäFóZµj¥O>ùDwÞy§nºé&Ùív 0@Ë—/ç)÷ÀYðû²lÙ²3ÎILLÔ;ï¼sÖk†„„hÆŒš1cÆçvêÔI ,8ëµá;Æg:Nƒïõñ=²>¾GÖÇ÷Àæ<ÝcÝaĺuëÔ¯_?­]»– é|ÿ¦s®ú`Y€åØ}T/?²PŸþo³é(/óûkX¾ïXÖ…ºÉ±Gl’ã°é8/â ÀÒ>úHêæØ#IjçÌ5œàm€¥]v™ªZÕ*TUâiÑh(,˳+TŸV¤ªõñ¦㼈Âð ß?\—k±Þx·“é(/¢°,ëƒÐKõKýY÷Ü#ýòŽú4âr}°4Æt,€q—0€e]iÿDWê•Þ}›¤ uè 8`:À›8𤼃%’¤C¶tÅ'¸Þ®ÒÓ¥êj“©ÞFaXÒ—¸ùú¸é ÛÚ·—J  À’¬Ù%IÊ8ïÛ‹ì;wv›6™H0°¤òíû%Iç ëѰ­GIrêÅ_þ]õv‡™`¯¢°,iWÝôˆí^uëÝ®a[Ÿ>Ò(½­?¯»Iÿ7îiƒéÞBaXÒWÇ®Ð#!sòí[UV–´@c$Iõ啦¢¼ˆÂ°¤ü|):ºñ¶ ï¼k9{7À À’JK¥„„¦ÛÿÐc’$)¬˜Â€G,©ºZJJjº}Ú×ÏêÒˆ1 ‰l­;¼ àe€%ÕÕ¼°HÒ¦È¡Š¯ðn€|$ `9‡ätJ))'=&F*/÷n&€€å<èÓÒNþzB‚tì˜÷òÌ¡°,gÛ¦B] ÕJO*:éëÉÉRm­—CŒ °,gÏòµZ*¥nùI_ÏÈp}lÌn÷n.€÷QX–S~ _’Ô¶GÛ“¾ž™é¿ùÆKÆPX–S›[(IêzAæI_ÏÊr[¶x)À Àr‚Š‹U­pµëØê¤¯wl[¨;õ˜v,ûÈËÉÞFaXNxY™Šl 9ùÛT¯œP=¦i²}EaGaXNô±2ÅŸòõ”Œ8*QaG ¼˜ `…`9ñ5å* Ž=íœÜàVŠ+=ùmþƒÂ°œøÚ …ž¾°ä…$*¹ªØK‰¦„˜À÷ÝüµÍ¨Ð¨ÓÌÉHTûª#^Ë0ƒ3,ËɯI‘-¹ãiçG'*ÃÎGÂÀßQX–c·KÉɧŸS‘ÐJ鎣ª·;¼ `…`)ÕÕ®1%åôójÛvÔnuÒî%ž0†Â°”={\cFÆéç%Œüzk“vìIò|(€1€¥œ(,mÚœ~^÷î®qÛ6Ïæ˜EaXÊ®±C‡ÓÏËÉq»vy6À, ÀRtg*,ééçü…`)µ«_ÕŸôuÌ<óÝ¿BC¥Ü\/„CaXJò¾Ï5A/)6îÌoQ‘‘RABŒ¡°,%²¢T…¶„³š/•–z8À( ÀR¢«*TwVs““¥ÊJEaXJBM¹ŠCbÎjÚP×ÕÉ&QX–’PW¡âÐØ³š_¯îÎ:´·Èé¦PX–’d/WiøÙ–ðÌÖ’¤õ˶z2À ÀR’¥:uv KëåzX˾µ»= `…`)kœý•תçYÍí10K’T¾ó€'# 1€JJ¤ÑúnëvóÏÐEµ •ç{6Àΰ,cçNט‘qvóƒC‚”gKQTñQÏ…EaXÆþý®±]»³ß'7$Y‰Ü% ü Xƹ–g㦨ԙ¤ÿç™HÃ(,Ë8tÈ5vêtöû¬M›¨={<“` XÆ‘#®±C‡³ß'-Mª©ñL€y€eäçK6›ÒŒóÿmÛJ‡T]í¹\s(,Ë(,t4«¬HR×®®ñãÝŸ`…`¿Þu­þgЬ}n½Õ5>ÿ¼Œ£°,#±¦\uÁ¶f퓞.ÅÄH_}å¡P£(,ËH´—«8,¶ÙûEEIUU0ŽÂ°Œd{™Ê›_Xú†|¨ «Þò@"€i<‡`IÎ2‹n~aùIõSÊ©Ü-éz÷‡Å€%ÔÛJv«&>¾ÙûV…G)ÎQéTÓ(,Kؽõ°Be—’’š½oMD¤bÇ< `…` Û×î“$…g$7{ßêäVJuÕ¡½EîŽ0ŒÂ°„üªŽºA¯*±ÿfï›4øË¡…O/ö@2€I€%ä•´Ö?uƒº^УÙûŽœ|¹ì VñÇk= `…` ¹¹®±sçæïÛ&3IÛƒ2•²—{CŒ£°,áÈטšznûoÌTÈ1§û,ç°,¡ @ rý:³²ë믃4Þ­©¦q†` ÅÅRhè¹ïß¹sjk%»Ý}™æQX–PR"EDœûþ99®qõj÷äX…` ååRL̹ïÑE®ñóÏÝ“` \ð„AÇÞPuBkIƒÎmÿã»­[ç¾Ló8ð„?Vß©«jž?çý£¢¤iûv7†GaXB+g±ªãâ[´FB‚tð ›,Â0îÐÞ"ŨRõÉI-Z§uk©:¿X_,þÚMɦQXÆm]³G’šÞªEë ø£ŠIºøÊlÕÛîˆ0ŒÂ0îÀ¦’¤¸Žé-Z'©­á÷/ÜûV‹ÖX…`\ñ®\IR›ìö-Z§×u?hø}ÐËo´h-€5PXÆÕ>"IêÚ¯C‹Öñó‹UZX©Æ_©ž%{Ü `ÏaW_tL•ŠR§n-ûH˜$Å'Eé?í«¼­¡úØ Ùfq†`Ü’ø?(ÞV¦à÷¼-Õw½R+ìCåàº{ðy€qEERhx°ÛÖëÔÉ5îáSaàó(,ãJJ¤ÈH÷­×·¯küè#÷­ 0ƒÂ0®¢BЉqßz×\ã—,qßš3üº°,Y²DãÆS§N¦ÄÄD]uÕUúì³ÏšÌ]·n.»ì2ÅÆÆ*11QcƌўS|–àé§ŸV÷îÝ¡N:éᇖÝno2/??_ãÇWJJŠ¢££5`À-]ºÔí_'øºª*)1Ñ}ëÅÄ¸ÎØlØà¾5føua™7ožòòòt×]wéÃ?ÔßÿþwUUUiÈ!Z¶lYümÛ¶iðàÁ²Ûízë­·ôâ‹/jûöí4hŽ=ÚhÍÙ³gkêÔ©;v¬/^¬I“&iΜ9š}úhÚ´iZ¹r¥Wþ ÀêìvÉé”ÒÒÜ»n‡Ò7߸wM€÷ùõ–ï—I W·nÝtðàAI’Ýn×{ï½§1cÆ4”Ijß¾½† ¢·ß~»aÛ¢E‹TSS£ &4Zs„ r:zçw¶½ýöÛêÞ½{CY‘¤àà`ÝxãZµj•rssÝöu€/ÛµË5¶mëÞu»D|¦iι*-:æÞ…^å×…ådJKKµfÍeggK’víÚ¥êêjõîÝ»ÉÜœœíܹSµµµ’¤Í›77lÿ®ôôtµjÕJ[¶liضyóæS®)©Ñ\d_-þT‹u¹ÚhÙ™'7C;}©¹ºW>ßíÖuÞp…eòäɪªªÒý÷ß/Éõ1/IJJJj27))IN§SÅÅÅ sÃÃÃy’{o&&&6¬%IEEE§\ó»Ç€@wdÓv]®•ѺޭëÆwJ—$mZ±×­ë¼Ë¯¯aù¾éÓ§ëŸÿü§žyæõ=q“~ ›:uªm7nœÆg(¸_U®ë8ísÜû™°¶9$IûÛ"ýa¤[×€ï{íµ×ôÚk¯5ÚVRRb( ˜Â2sæLÍž=[sæÌѤI“¶'''Krù¾¢¢"Ùl6%¿×frr²jjjT]]­ˆˆˆ&sû÷ïßhÝS­ùÝãžÎ“O>©óÏ?ÿ,¾:ð]õE®7ôn}Ü[X²dI’~¯{´oßÝêÐÁ­Ë@#'û¡òºuëÔ¯_?C‰üG@|$læÌ™ ¿î¹çžF¯uîÜY‘‘‘Ú¸qc“ý6mÚ¤¬¬,………IRÃ5)ߟ›——§ÂÂBõêÕ«a[NNÎ)×”Ôh.²à’2U*J Én|r¤¤YßÞxåãݺ4À‹ü¾°<òÈ#š9s¦xàMŸ>½Éë!!!ºæšk´`ÁUTT4lß¿¿–-[¦Ñ£G7l>|¸"""4þüFkÌŸ?_6›M×]w]öQ£FiÛ¶mZµjUÃ6»Ý®W_}U]t‘ÒÓÓÝøU€ï ¯,W±-ÞíëI{Õ^wê1¿g ÀùõGžxâ ͘1CÇ׈#š<û䢋.’ä:Ó¿9R÷Üsªªªôàƒ*55UwÜqGÃüÄÄĆⓔ”¤Ë/¿\«W¯ÖÌ™35qâDuïÞ½aîÍ7߬gŸ}V×_½æÎ«””=÷ÜsÚ±c‡>üðCïü€ˆ¬ªTIPŒÜ|WcIRûú}z"Xºn‡x…_–÷Þ{O6›M‹-Ò¢E‹½f³ÙT_ïº#M·nÝ´|ùrÝ}÷Ý;v¬BBB4lØ0=þøãM®5¹ï¾û«gŸ}V?þ¸222tï½÷6Üuì„°°0}ôÑGš6mš¦L™¢cÇŽ©oß¾zÿý÷5hÐ Ï~áàCbj*T푵ƒ‚¤ÐPiÿ~,ð›ÓétšÆN\ µvíZ.ºà÷~ôÅ8Ë4·x–GֿƶP³ô€ú87xd}8þMç~}†`}¯ÔOSR’4×CëOÒs꣪(«VL\Ä™wXŠß_t°¶š)Þý×Ü7øGÒXIÒö =w€ÇPXFÕÕIÇwå\ëº^qÿ×ðE€1‡ëW«Vž;F\[×âù»ó=w€ÇPXÆ=êSSO?¯%R:gH’*zî ¡°ŒÙµË5¶ní¹ctêÕF’T›Oa_Dasâù(m=ñÔÈã²rZË!›œÅ¥ž;Àc¸­1À˜½Û‹”ª:µm“,O½%……‡è<Û*uLÈðÈúÏâ ÀÇ'Ö¥+=á°GóuÈúô«6zñEà€9G‹eW°ºööàgÂ$EGKÕGËõÈ-{àÜQXzöY)^®ç” ûf™×Ž›h/Wq˜çϰHRfÿ.’¤üÍ®‡¿ôÝö¥Öé|åW¤xåø€sCa€·d‰TT$UÈu¦ÃiðÚ±“ìåª÷üIº`XOIRí¾C’¤.µ‡µY½”›ë•ÃÎ…ܳOVJrhoaœþ>Q)¶#^;öÏloèýÌû½r¬”Œ8U’"䪨 B´3¤*+%×á€eQX ÀùüÇZ:HIIRÍàLe:ê£ë¼rì õýäH;Ï+Ç’¤Õ‘ÝÕkß Hß§`9TÞ!]N§ôÍ7^‹h& ¸îû” Iºä7×J’þ2f—^~ٳǵÛ]cb¢gó]ÿø´Æ:þ£,ÇnIRözH’>úÈ{ÍCa€V]eW¶}·r3:H’.¹º—Öê|E«RS§zöØyy®1)ɳÇù®Ñ“ÎW™âÕUÛ%I¿¼7[’´ø•-ZþÎWÞ 8k!¦ÌyÿïŸi”ªÜ·gö ´V’^åÙcr]û®ädÏç»~ô#×8A/¹ŽÝ*H *Ò¼UCµq\G©j¥÷ÂÎ gX €õœ4A’tÁO/mØf³I±*ÓàÚ÷T[c÷رOœaIñâ]…ƒ‚¤_ýJúÛÄ%ZþözIÒgA)MùTý•í-ò^ÀY¡°@€Ú½Ë¡nŽ=’¤K®êÕ°ý_ÿ’.kõ9¯ÑÛþØcÇ?rüfdéé;ÄI=÷œôÇ¿fhðu®‹ý×Ïþ“æüàE¨F¯ßÿºwÃΈÂêÍ·‚ô²~®/lýòíÛÁèÑÒ¬Å?C6í|s©ÇŽ_püóÞ.,ßwÃ=WéîOg+×–ªˆåŸ˜ h‚Âê“O¤ñzYýkW5y­gßöú:¸‹2¶oñØñ+6-ÑzL)IÇÌcÇhŽ=½ú«oý×ܧHÇÌw(ÀqPRLÌ©_?Ü%[9õÛµ{kžGŽ\Q®2Å*,Ü7¬¼tæ¯Ô^ûU¬$}ñ…é4€(, ÊÊNÿ ”v£.U°Zøø{9~رJ•ÙNÓ˜¼ì’ËÚèÚJ…,„ªªêô¼ùÍå*S¬êV4½ÆÅ"ªŽ©Ì呵ÏÕ‰;—}Å3$À2(,€ª«%‡CêÐáÔs"£Ã´2"[!{m¹¦#ª®J¥ÁÑî_¸RS¥°0içNÓI'PX ­þ$WÃõ¾:·>ýõ)÷tûT¿µ?¯ÝŸ!ºî˜Êƒ­u†E’n~Lc÷üÆt Àq@ÞY¬÷uµ:Ƭ>í¼ÙÁ’¤Í›ÝŸ!Î~Lå!‘î_¸…z…­Ñ+šŽ8ŽÂ¨üËͲ+XWNtÚy/½äCCÝŸ¡È™¬Ã­Ý¿p •d´QGÇAU”U›Ž…R—íëµ+¨½ÒÛ&œv^X˜4v¬ëýŠ ÷fø¹ó¿šßþU÷.êaÙY •]¾î™› š‡ÂæªA‡u}ùGêæØsVó‡uÿûŸ{sØíRl¬{×t‡îWœ'IÚù· + °@€q|ºI’tÈvš{Çù½ ôŠnÔöwþéÞ)>Þ­KºÅÐ1ýT£0Ù·î6 ”={¤RÅk½ÎSéÚ/ÏjŸÞçÇë§z]Á߬s[ŽÚZט˜è¶%Ý&2:L»ƒÚ)éÈAÓQ’BLxÏûïK_ê"¯õrö=»}"£ÃtЖªÈ·åÈ;~7å¤$·-éV»"2Ô®üô·|x…È—ËŽ(DIºwzónûu88Y‰e…nËqèkLNvÛ’nõIÊ0…®ÓU¦ƒøH’+&k]PŽ~¸yû„&(¹¦Ôm9NœaIIqÛ’nµÿâ‡4»n¶ª¹³1Ga€Ò¹ô€vFf4{¿Âˆxµª+s[Žü|טÑü(^ѧküüs³9(Ùµ{´?¹}³÷+ŠWª½Øm9J>yQÔ[1úÆmkºÓ%—¸F ˜Ga€ñÅ⯕î,б.]š½oU\‚REnËâÈ=¤ÞÚ¤6™|‹¤ /t6˜Í °@ÀøòÐ1Eê‡wnö¾¥™ýô¶Fiÿ^7]ÔQV&‡lÊìšêžõÜ,,L •vó(0ŽÂ`Ëšý¿ïý=m¤ Ïnöþ½þßÍú¹^ÑûD¸%OHy¹J§°pëÞ¬2&F:rÄt …À{ãS„ªÕcÞç´ÿ5׸ÆO?uOžðÊ •Øâܳ˜‡$'K¥î»1àQX ØŠk´!¸»~xMïsÚ?&F ’öïwOžèª •Ǹg1i—V¡´ªí¦c@À£°@x>⯺<êÑ#òß IDAT«­á¾HÅÔUª48Ú=‹yÈe5h{}w•3…@i©ÝÂ~'¹éFañuÇTbíÂÖ¹­‚äÔçÿÛh: 4 ø9‡ÃU4²²Z¶Nr²T^îžLoýLÿ¿Þ=‹yHë~®?°]ŸYóY1((,àç¾øBr:¥Áƒ[¶NF†TSã–HúGÝd­KŸìžÅ<¤ÿÕ®ë}ʾÞc8 6 ø¹ÿÛ5þøÇ-[§CÛ:¥;«¸°¶Å™ìv)>¾ÅËxTVvk•(^¡¹¹¦£@@£°€ŸûôS)8XêÕ«eëô¨™§Ãj£ÏÞ]ÝâL‡”˜Øâe×ðŸ]¨°pïÜü18+SaªÓÇÿùªYûåæºÆ´4„ò öí]×Þä7ÿ¤ …(,àÃÞ{~™îÑ”Óîï1|ŽÚ^ìzzä7K75k¿Ãk–é1Ý©„Ð=žˆå1W]åúïUow˜ †Â>ìà׺†LâÕã^:¦¿$©rË®fíWûÍZÝ©'”’ṯ<檫¤X•ié¶lý©ë­¦ã@@¡°€‹Ú·Wy¶å\”éÕã¶ÉLÒA¿Ö¾šìfíç(r=ˤS¯6žˆå1qqÒP-•$ݼgá4XxÒ=ø°Ä²B NUºcßò´ršùc/[Y¹j¦ô¶>ö I;»¶IƒSå{éÀwq†|XZu‘rÃ’Œ;,L*kæ£IB++T*{Ìýq›·†êÑ îTú]Ú½5Ïtðaµ…Ê4SX"#¥òòæíQU©Ò Ïò‚öc†*X½û‡wMG€€AaÖ¦¾@%ñfžÂ-UU5oŸ¨šJ•E{&\ÿÛËU¢xÕ¯Xe:  ø¨Â‚ZmVŽÊÚu7rü¸8©ººyûÄÔSyp¤gyAXxˆî›®Êb:  .ºµiK˜†h¹næø R]]óöÙ§N:^+ïÞ„Ù½–eÜ¡L§€ÀAaµy³kÌnÞ…Ý&9Ùõô÷æ˜éü«ÒÓ¤Û=É+RS¥;L§€ÀÁGÂÀGøGsŸ>fŽŸ’X¡Ú«âÂÚ³Þ§®NŠñÝkî%ImÚ¸ŠšÝn: ¿/,š6mš®¸â ¥¤¤(((H3gÎl2oüøñ jò«gÏžMæÖÕÕiæÌ™ÊÌÌTDD„zôè¡gžyæ¤Çß½{·F­ÄÄDÅÆÆêŠ+®ÐúõëÝþu<{÷ºÆ¶mÍ¿SáóÚ«ŽÚòåö³Þ§®Îuí‹/ËÌtß|c4 ¿/,GÕ¼yóTWW§Q£FI’l6ÛIçFFFjåÊ•~½ñÆMæMš4IsçÎÕ”)S´xñb5J·ß~»}ôÑFó 4hÐ íܹS/½ô’Þ|óMUWWkðàÁÚ¾ýìßààd’BC¥ C“G·qÝlÿ–ƒg½ÃáºöÅ—ee¹Æ-[Ìæ€@á÷×°dffª¸¸X’TXX¨^xá”sƒƒƒuá…žv½-[¶èÅ_Ôœ9stÇwH’.½ôRjÖ¬Yúå/©ÄÄDIÒc=¦ÂÂB­\¹RíÚµ“$]rÉ%êܹ³|ðA½þúëîø¨ü|×­…MiÛ§£$)oÞ³š_{ü“cÇÿŠôY=z¸F~îÞá÷gX¾ËétžÕë§›÷Î;ïÈétj„ ¶O˜0AUUUZ´hQö·ß~[C‡m(+’«Ñ£GkáÂ…r4÷jUøŽ’)ÉÌ3#%ICÆ^ »‚U³m÷YÍ?tÈ5&'{0”ôíëWñ(ðŠ€*,gRUU¥´´4…„„¨]»vš2eJÃÙ™6oÞ¬ÔÔT¥¦¦6Úž““#ÉuæÄZ»wïVïÞ½›'''§áu8WÇ*êÕºµ¹ãÇ'Ei¿­µârÏî#a' KJŠCyAD„tAìj¥-ÿ“Þùë ÓqÀïQXŽëׯŸžzê)ýûßÿÖŠ+ôË_þRóçÏ×ÀUYYÙ0¯°°PI'ù‘ftt´ÂÂÂTXX(I*..–Óé<éÜÛNÌ€æšsñ}²;C4Ì1ÛhŽýaiJ-/8«¹‡»Æ´4ò’ Ñk^ùT]wÛMG¿ç÷×°œ­)S¦4úïªoß¾9r¤^xáÝ~»÷Ÿ0uêT%|ïêÔqãÆiܸq^ÏÀZî[éºÉG\GƒŸ “”ž ´ê¢³š›»ôïÊÓ]ZQõoI—x6˜‡Õ]}¹ô⛦c°×^{M¯½öZ£m%%%†Òø Ëi\}õÕJLLÔ—_~Ù°-99Y6lh2·²²RµµµJ>þáìÄÄDÙl65}#?±-ù ä~òÉ'uþùç·äKà‡fÍ’8þûŽƒšÞzÝ› £u^Åγš[W 4å+#ÓÇo&é×Ïß,½8Q’TUY«Èè0ɘv²*¯[·Nýúõ3”Èð‘°3øþø999*((Б#Gmß´i“$©W¯^’\·HîÒ¥‹6nÜØdÍM›6)**J:uòPjþlút×øfìeeø#I+²gè*ÇⳚ[_T*IêØÓà…7n¤¹#ÿ Iúê³³+l€sCa9… ª¤¤D_|qö뮻N6›M/¿ür£¹óçÏWTT”†Þ°mÔ¨QZºt©üö‚Ôòòr-X°@×^{­‚L=<€Ïª­•âåºÈ®.MoêámIݲµ[YÊË;óÜ Ò2Õ*Tém}ÿ ‹$%\rFè=í;’a: øµ€øHØû￯ÊÊJ•——KrÝÉë_ÿú—$iĈÊÏÏ×ĉuýõ×+++KN§S+V¬Ðc=¦^½zéÖ[omX«gÏžºå–[4cÆ ë‚ .ÐâÅ‹5oÞ<Íž=»Ñ5'wÞy§^yå1B?ü°ÂÂÂ4wî\ÕÖÖꡇòêŸÿp÷ÝR©5ûÞºkFºé8êÜÙ5nÚ$¥Ÿ!Nhe…J§”ÿøaMÏ‹»ëWê®A‡L'ÿ…eÒ¤IÚ·oŸ$×Sîßzë-½õÖ[²ÙlÚ³gâââ¥Ù³g+77W6›M™™™š2eŠî»ï>EFF6Zï¹çžS›6môôÓO+//O;vÔSO=¥É“'7š×ªU+}òÉ'ºóÎ;uÓM7Én·kÀ€Z¾|¹ºví굯€ÿX¼X —îŸÓÖtIR÷î®qÛ6éòËO?7¢ªR¥A1òñ»7èyüò¡?–¦M“8iž…eÏž3?…ùwÞ9ëõBBB4cÆ Í˜1ãŒs;uê¤ œõÚp*õv‡î©U›6¦£48~ÙžvžÅe‘5ÇTíÙ@^Ôª•%-Z$/ýý呂âçAà#žÈž¬ÒªHuïRm:Jƒ¶ÇOôìßæ¹1µÇTì?…E’JK¥¸8iéRÓIÀÄð—n_¯2Ūs–uþê ’BB¾}(äéü3ô6E…WhˆçcyMHˆÔ­›´yM•J‹œŠOŠ2 ügXÀä–©—6ë÷¿Öÿ=iÂ"I‘‘ÒÑ£gž·´n¬VÅ÷xo»øbé˜3J«ÓÏpàœPXÀ¼öп£Juü]?…X«¯hTÄ<*˜yÆyµµRLŒyÙ®uH’.«û\‡ö6}X0 e(,à*WmT­B5zꕦ£4q‰m‘&{õŒóìv×õþfè° }¦’¤%ýn2œü…,Îá⾪ÕvuURŠõNQ”Æ%+£þôŸ s8¤úz)Á?žÙDZëa,CŠ×Nþ‡Â÷ÚkÒd=§,í0å¤jSS”¤å,9åœ+\cŸ>^ åeŸ=ô´žˆœ¨:óGãÍCa‹ûË_¤Uê¯?u¹Ùt”“ oßZ’´véÖSÎyë-×8~¼pÓôk´ãçÕËÎ[TÄe,àV°0‡CZµJº¡Ë*MÛñgÓqN*%»½$iïš]§œ³w¯kìÜÙ iÓÆ5î:õàPXÀÂ-rÝ]ë†L'9µž—t“$•ï8xÊ9Ñ{ß×аEÞŠdD{WoÓž=fs€¿±ØÍ1ßõÉ'®ñúëÍæ8¾—tQ­B¥Ãy§œsÝ¡?©ƒóˆ¤áÞ æe;ºÆ}ûÌæÃ°°Ý»]c·nfsœNpH>¢£Õi§œ“T[®ÂP?¼§ñwtéâžúDàPXÀÂöï—BBd¹‡E~߸ˆô®óÞS¾ž\Wª¢ÿ.,éé®1/Oú,¬¯d³iïŽ|³¡ÀPXÀÂÎßû„ÆEŽÂvCá+º2øÓ1Î(9Yª¨8ùkõv‡RœEªŠOôn(ú‡}¦˜ƒËôœ~%Ij“wT'>ŽÂֵ$·6ãŒÒÒ¤šš“¿¶oG¾¢T¥úädï†2àQçoõ³Ïk²žÓõÖ-ú›$Én7 |…,¨¶Æ®çïzC­T¤šÌLÓqΨm[É锪«›¾öõJ׃I"Úú¢|Q­qzC’S â.S¡\%ííI®çꚇÂôÇŸüI·=þSIRÚ€lÃiÎìÄ-}ׯoúÚ¯seW°’²Úz7”£*—K’ê3Ýû„2‹¿R;í×õ? Ö½=Vp°ôØcf3€¯¡°€9w¹æñRÒ5ºî7WNsf'žó—¿4}-7r¬ÂT«^W_åÝP%„ç+*JJH¶ÈU8Ý6CáªÖœ9Ò?þ!]}µáà#(,`A!eÇ´ÛÖ^ ßURJŒé8g”-ÅÇ;´þ½oš¼và€äTº÷°ø½™Ýà‘KfªX :ÚëÛ6òÒÄ?©àøGÃþ¢ÛTR"Ýsã~ÿV}ú¿Í’\»åžá'Ca šñ‚úDî2£Y~×î>­)ÊQ½½ñ…yy’Í&ÅX¿wµØôOÔ§ïkÅç Û~ó×›õå‹ÿ‘$¥GìPX˜T¥Hݪ¿iÅïß’$=ÿ¼´ýÅOäh×^¹eF²€UQXÀ‚Ž‘¢b|ëŒDhj´ÂT§[7Ú^P`ý_ºÓ5×Haa·œ0Pw™¨ÂÓõÓŸJ‰]Z逭µbv»JéŸÿ,uÑNµ×-s•Ô`]ô¾á7¤ÒÒ¦ÿ赺°t×Çžvn8 n}¾½À¾¸XŠˆ8Õ^ãΕ$Ýpü¿G¶×ÐÜUºëÊ×´eÓU®Á’¤}_l•n¿ÌLH° ΰ€Å|ø¡k¬­5›£¹â;¤H’r¿i|†¥´40>Ö\[~2^‘Î=¶øgÚ¢l i#»‚U·}¯éh`)°˜äMOêyýB}ûšNÒ<Ý]gUÊöå7Ú^V&¥§›Hdm¿›>›ùŒ$©@)úã3a:`k­ø¼C†“€µPXÀBêí]»n¾z¯×Ê•¦Ó4O—>í$I5yG¶•”HuuR¯^¦RYÛϸFs{ß®¢Õm·I+c{hè‘ÕMn\ŒÂò§ñÏk@Ý}1êFŸ»†¥KvkÙ,7l{vÌ£:¢Tõïð¹ÁdÖvφ'õ£[.‘$¾úZuwìÖ ÷¾e8X…,$û߯huH¶~÷ÚÓQš-8$HEJTXÙ··å½é}JU]ÅgÂÎÆ¤&ê°-Mµª/¾0¬»„€EìÝ‘¯ÁÕkõÇ^·©ˆoþúq0ÉUXòò\·2Þ¹å°"T#gJ²éX>çæ›]ãG™ÍVà»ïŠàGöîqèzÇ;Ú|ÕC¦£´È®ñw¿“öå¶RŽ6*ìқ̆òA=z¸Æÿþ×l° XÀÇ+‚´Q}tþ•癎Ò" 1uú‹nSÊáhïþmVŽ:õno:–ÏéÜYúAïÙ} 5+˜ŽFQXÀV­r—^j6GK}±*XÿO¯(qÏgÚ¹Óµ­kW³™|Õ·®Ó ×§/½o: Ea غU²Ù¤ö>~2¢k· ­ë¡n¶è“O¤  o?Þ„æúã äM¹çjÁÓiÀ XÀÞ½RLŒéî±¶íy\ù•¶nªSëÖ®Ò‚æKN‹Ó[ký~ÏCúóÏÿg:ÃÛX@A”’b:…{DŽªx•©[å:]x¡é4¾­$ÈÕb3+¨¬Ìp0„†íÙãzvIß¾¦“¸ÇU¿¾\’ÔE;5z´á0>®sýAIÒû¡ýËp0„†͙ãï»ÏlwÉÌJU©â”¡\c:o{zèÝz?b ©­þǧÂ( vÞ7êÖè§tþù¦“¸O¼Ê4YÏ*"ÂtßvïGÓuUէЉ‘Ö®5Ì1Ù–5û5±üMý1;Ñt·š3hº";µÑoMñ;K_m:˜Aaƒ>úë‡ÊVÚÝ4Ât·ºoÅæ#ø•¥ ¤;¤¬,ÓiÀ»øHT¹û$©Ïž†“ÀÊNܼàõ×Íæ(,`-ÿ¨ª®îçµ56dˆôŸ «6ÿW¦£€×QXÀ ¨âB±µRpãÔ‚‚¤°ðRõÉÝh: xï`P|e‰Žû×÷ðŒ­i]Õ¿j«êíÓQÀ«(,`P«êRå‡%˜ŽPÓ-KÉ*Ö†/v›Ž^Eaƒk„>L¸Út ø€Ø®í%I›?Þj8 x·5ƒž­½Gu4¾ ó‚Î’¤‚-û 'ïâ âpHõõRzºé$ð^ž-IªÙØpð. ²oŸklßÞlø†”Œ8*Qaùù¦£€WQXÀU«\c—.fsÀw<y§Þ¯¹Ùt ð*®aC^{Í5þô§fsÀw|‘sŸÖ¬‘ìv)„wp‚3,`ÈçŸK‰‰RR’é$ðãÆ¹®}zë-ÓIÀ{(,`€Ý.H^h: |É­·ºÆ—^2›¼‰Âl\W¤AZ¡>Ý LG‰‰qÝUîË/M'ï¡°€¥—× ýPƒ—˜Ž3t¨TV&õÊv˜Ž^Aa†Ô¬–$µ;§F¢y&M’nדzóë^¦£€WPXÀËJ‹ŽI’V‡dkÄÏ/6œ¾fà@©$4R=µU{wðLþÂ^¶fù6IÒòÝj8 |ÕESâ%IK^\a8 x…¼lÿ†ý’¤¸Ž†“ÀW »ùRIRÁg 'Ï£°€—Ìo¥7u½:_ÔÃtø¨¬ìÖÚok­Ø=»MGã9¹àeks/уºDu?2¾l[x{µ/>`:xgXÀ˶o—"#¥~d„Ø›¡NÕy¦c€ÇQXÀ‹–…_¨{¶þ\))¦“ÀוÇÄ+½¾PõvžÇÀ¿QXÀ‹ÒkËUªxuêd: |]ÅПi‚ækéR ÿFa/øû¬…’ͦÚ¦}ê ÌLÓ‰àënzðrýW#õê?øl!ÿFa/˜ÿdtÃ歹FŒ0~¡}{)*JúôSÓIÀ³(,àaeeÒò¢¡ú\®§Úú[k8üB›6R×ÝðsœG{äÉ锊~.”¸›1Ü%+KÚ±Cr8¤ ~ ÀOñ×xØ«¯º>º3r¤é$ð7ýú¹ÆÕ«ÍæO¢°€9®ì h: üÑW¸ÆE‹ÌæO¢°€}ù¥k¼è"³9àŸ l6.¼àß(,àA~èOü$p§  iLì?”³þÓQÀc(,àA+WºFΰÀS†EþG“‹_0<†ÂtÞÚ{45rŽB¸'#<¤¸K7uvì××ë÷›ŽAaº¼ä# Yj:üX»®ÓwKž]b8 x…<¨CíåÅ¥™Ž?vÝäaªR„ª¿øÊtð xÈÝGÕÎyXi¦£ÀÅÄEhSHµ=´Ótð xÈ+ÿïI…¨^=n»Ötø¹-qÕ«béàðAkþ§Â/Ôu¿¸Ôtø¹¼YêY¿KG•™ŽnGaxí‰4¨v½V i: @ü°Kô¾®Òß8`: ¸…Ü,-MÚx×*QŠn}õvÓq~|÷(ýHïêã Ù¦£€ÛQXÀ^~YÊÏ—V;/Ö+]~¤”Œ8Ó‘Zµ’¤uëL'÷óûÂRQQ¡iÓ¦éŠ+®PJJŠ‚‚‚4sæÌ“Î]·n.»ì2ÅÆÆ*11Qcƌў='¿ˆñé§ŸV÷îÝ¡N:éᇖÝno2/??_ãÇWJJŠ¢££5`À-]Ê35a‚kLs™îÜ1Ïl”Œ iï^Ó)Àýü¾°=zTóæÍS]]F%I²ÙlMæmÛ¶Mƒ–Ýn×[o½¥_|QÛ·o× AƒtôèÑFsgÏž­©S§jìØ±Z¼x±&Mš¤9sæhòäÉæÕÔÔhذaZ¶l™žzê)½ûî»JKKÓðáõbÅ Ï}ÑŒ v“&™ÍÀ““#UTHµµ¦“€{…˜ài™™™*..–$ê…^8é¼|P‘‘‘zï½÷#IêׯŸ²²²ôøãkîܹ kÌš5K¿øÅ/4kÖ,IÿŸ½ûŽ«ªþã8þºDà^9rï–{—åÊÌ_–šijCjfV–‰¥•#-3MËBsæs¥–[pç,÷BÅ…2¾¿?nQ*pî½¼Ÿ ßó=ç¾_î½çÃYP¿~}nܸÁ[o½Eÿþý)[¶,S¦LaÏž=lذڵkаaC*W®ÌÀÙ¸qcš®»ˆ¤¯ÚŒ¦Zl]ZÕ¥qc«ÓHFS¿>,^ +VÀÃ[FD$õ¸ý–3Æ$ÛËâÅ‹éСCB±P¤H5jÄüùóÚ–.~V‚u IDAT]Jtt4Ýÿ>îã/Ý»wÇÂ ÚæÏŸO™2eŠºtéÂæÍ›9}útj­šˆX,ô×C¼ºð ºøNbìX«ÓHFÔ¾½ã18ØÚ""©-C,·òÇE¥J•’L«X±"‡"æ¯}ì»wïNhÿ·|ùò‘+W.öìٓж{÷î[.HÔWD\Ûæ[ñ$ßWÚP²¤Õi$#*QÂqHâ¦MV'I]*XpæàïïŸdš¿¿?ƘD‡•eΜŸ$}ýüü–~ËeþûyEÄõ]Üq€ÚmjXœD2²B¹"ˆ?´Íê""©ÊíÏaqeýû÷'gΜ‰Ú:wîLçÎ-J$"·âyì—ÈAùE¬Ž"XïyêìbâbÃððÔÿ$EÒSPPAAA‰Ú.]ºdQ÷¢‚{DnŽÍfÃÏÏ/¡ott4QQQx{{'é[³fÍD˽Õ2ÿý¼·2f̪U«vg+#"–?ÃaÏTµ:ˆdhÑË“ûètV,ØFÓÇ«[G$CIîŸÊ¡¡¡T¯®×â½Ò¿_€%JàããÃÎ;“LÛµk%K–ÄËË áœ”›ûž9s† .P¡B…„¶Š+Þr™@¢¾"âÚ ^;DZ̹­Ž!\åÎ ™±ÚÚ ""©H àééÉ£>ʼy󈈈Hh?vì¿üò íÿ¾ô вeK¼½½™6mZ¢eL›6 ›ÍFÛ¶mÚÚµkǾ}ûؼysB[ll,3fÌà _¾|i·R"’®ŠÆœátÖ¼VÇ ®Ù5¸€^;w[ED$ÕdˆC‚ƒƒ¹víW¯^Wçš3g<ò>>> 6Œš5kÒºukÞxã "##yûí·É“'¯½öZ²üüüxë­·:t(þþþ4kÖŒ-[¶0lØ0zöìI™2eú>ûì³L˜0Ž;2räHrçÎÍĉ9xð +V¬Hß_‚ˆ¤™ØXØ_ƒ…ªXE28O;Û3—¤XØa«£ˆˆ¤š Q°ôíÛ—£GŽ»ÜÏž=›Ù³gc³Ù8|ø0EŠ¡téÒ¬^½šAƒñøããééI“&M=zt’sMÞ|óM²eËÆ„ =z4ùóçgðàÁ 2$Q?///V®\ÉÀy饗¸~ý:U«V%88˜zõê¥Ûú‹HÚš=þǼÓÚê$"°ß¿­Î¬·:†ˆHª±™[ÝMQ,ó÷ Z!!!:é^ÄäÌ ‘‘páüëÞ³"–lð6ƒ×¾ÏŽu‡©\·¨ÕqD24mÓ¥Ã""r-‚Ë—áå—U¬ˆs¸¯u]V}µÊâ$""©C‹ˆÈ==Úñ8t¨µ9DþÖ®ocòrš_Î?ku‘T¡‚EDäìÝ yò@öìV'qðñõâšo>öì±:‰ˆHêPÁ""r"#u(˜8ŸB…àôi«Sˆˆ¤,""w)6"" hQ«“ˆ$V¡‚£˜ŽŠ²:‰ˆÈ½SÁ""r—æ~¹•®L£EÃóVGI䡇Ë—[›CD$5¨`¹KN›ÍzоC¬ÕQDyäÇ£ q*XDDîR‘ƒ»ØåQŠûËå³:ŠH"%K‚Ý!!V'¹w*XDDîB䵚]ÚÂoy«ZE$YþþpèÕ)DDî ‘»0uÐ,òp[»VVGIV真0ïÜÏØhu‘{¢‚EDä.Ä/XÊ9xöÃNVGIVþbQ€`ÿþ4 +"’ ,""w`ñbÈ’jÖ´:‰HÊdÏÅŠAæC¨»›«ïvÛþW¢lò>q±ñ7y…:ñ!œˆ(ÄÀéÓðn•iÄÅÆ§Sz,"")ÇŽA­ZV'¹3<P€,‘Ñü¾íX²ýâãadÉw¼êm>ª;˜çOÏ&Ð÷%Žp?‘‘дà‚¢º4*8=ã‹H§‚ED$…>ÿÜñØ«—µ9DîTûöp™œ„R•'¯/åZ­‡“í÷øã0?ìžÛ2…ö¢<»m(¾¾-g@EbÈĉ eé]DD‹ˆHJ}÷ã\€Nº¹½¸˜G…êÕá„gá±Y¾,6I¿U«à(÷±Ê\°çà—>ïP¬dV.]rœ´ß§Ÿ?¼*RæÏé½ "’©`I¸Øxý>’z÷ïÁ®wNq1žž°u+dŸ=ŠZ¥•íg^y5ñ †Ë—áY™Þ;eâþà…ÏžN˜¿];G¿mù+RïÚNb¢“<""iA»"")4*˜Oo æ‘Ê+­Ž"r×¶­ÂE/S£ìÝë8gåÌÇãð¿nÔŸ~zëeØšÖ#€‹|7bqú„‘ O‹ˆH œ2Ÿ«d¥ë˜nVG¹gMš8Š”Áƒá±üèÿðbòÎy“FÙWR­Úíçýßû‰Ä›?&­gÓ¦ôÉ+"› ‘¨{l Ë³Ö wþìVG¹g:8?ú>f ýü8#®Ò¬ÄOÿ9oîüÙÙàU™Zg÷Q§ŽãFª""iI‹ˆÈøí§ÝÔ¾±‹}•´:ŠHª¨QÃq‰L™à`¶\x @ãÑ=S4ÿ®œ%©ÌŒ1ÿ¹GFDä^©`ù¿™ŠÁFóž±:ŠHªY°vì€3U+'´Õn\&Eó>¼êCzæú°qâDù‹çwɸâbãyl×"û>D›†¥¬Ž#’jZ·v<–Zù6ëWt¤x…‚äKá¼%Ëà‡ƒ(PŒI³ˆ""€ö°ˆˆÜÖ˜®_P>îG:=mu‘4áái§nËòä+”óŽæË™š>t‘²Ñ[ˆ‹O£t""*XDDnkáÊ*ŒÎÜ›'=ku§S‡‰„šZìÚ|Äê("âÆT°ˆˆÜƆðºÌ¬ð9žz»¹™_…bl[¾Ëâ$"âÎô ,"r ññpã.luçPÌqÖË•ãç-N""îL‹ˆÈ->ìx,^ÜÚ"ΪfË \!™-e\¯©VÇ7¥‚ED$aaШ‘ãûòå­Í"⬊–ÌôÂmè6‡—'÷`ýšp«#‰ˆRÁ""’Œž[AÉã+ñ –J•¬N#â¼úî„ï׬÷·0‰ˆ¸+݇ED$c5 1*XDn£Z½ûÙzÁ‹kâ·Éê4"⎴‡EDä&áç"¾ÿý@&¼¼, #âÞXô:¡YðÓOàç¿ýfu"q'*XDDn²òûüì]‡’%-#â"ÞßqU½K—`ʫӈˆ;QÁ""r“Ã_Î'/ ¯Ÿiu—Ñ¿?<ñ„ãûp{/"©H‹ˆÈ¿\ºÑG¼XàÛrU‹XGĥ̚«<êÒdK«£ˆˆÑI÷""9zŠø”žÏÅÓÉâ<"®¨QÜÞ@䵩øøê0¹wÚÃ""ò—Þ½ÿù~È[z{¹sÇ-·:‚ˆ¸ }"‹ˆgO^aû²S ?ßwŸ…aD\Øè'Æp|Á¯'w¡‚ED˜QÿUÅ—¤i­ã|û­ÕiD\×ë³^f·GIòþ±×ê("â&t‹ˆdxÁ36ÒïÏiL,Ü™å› [GÄåmËV’¼W®XCDÜ„ö°ˆH†·mr0žÄQæ0«£ˆ¸…ßÚϦõ_È” –.µ:ˆ¸:,"’áåÚ·‡ö¢T©[Üê("náÓñYˆ…·Þ²8Œˆ¸<,"’áU¼xЬ¥¬Ž!â6²d>r|é’µYDÄõ©`‘ -ü\UoìçH‘ÒVGq+@©RpêÔ÷¹,"’¡Íýd)ÞD“£qm«£ˆ¸Š!2®_·:‰ˆ¸2,"’¡ý±ö4gÈK»XEÄíÄvZGD\„ ÉPÆÖ@ÍØ=ìö¼ÕQD2¤éßzâïyŠÞkÇ1-àQâbu|˜ˆÜž q—.Áþý·žþëšÚìú™¯rµåÅÏ»¦_0Idy«gñçÝÂó[ðn«ãˆˆ“SÁ""náÇ)¿‘ÓÏÆev0vlÒ“zãã¡ýã^Ô±o¤þª Ö„^Ÿ÷*?úÖ`ËŒÕÖ†§§‚EDÜÂïŸÍ ÇèßœD‡šÌ›çÏóýrRªb«bŠàái§Õ…•\!„î&* |}¡ys«“‰ˆ3RÁ""n¡ð‘}„R•Å<бœ^…G&Û‹ðå øóOG¿Ç³6§ˆ8xeöd¶O+N^,BïÞpý:ÔZ>œx›]絈H"*XDÄåÅÅÆSçÊBråùçá%Ƴ6ª ÅÌqÊ~2Н¾rô­PÁ "’È´ê³sá-¦O‡û<3œ¡Ø1,˜´Æêh"âDT°ˆˆËûæý…”ˆ?Æ¥ øâ h2µV´·k§}ìO<mÛB®\‘D–/‡–-ß®](¡ýñ?è>-"’@‹ˆ¸¼ë_Íâ<þôšÔ€ÖÝ$âr$—#yo㢲æ`à@+SŠÈͼ½aÖ,¨\>Ÿ”‰Ë®±!S%îÿ‚¥ÅÚZODœ„ qYññ0,û«ô>õ r7 ‡–„iY³{“5»7;wBÿþP§ŽUIEäV²g‡íÛ‡kæðϵï§òEŽ'¸x]Ç,"â²æÌw¯~ÌË5§ÒfÇ´[ö+V >ý4ýr‰ÈÝkúxuBŸ˜EŸØi ‡ŒÝîþJ"âþT°ˆˆË?l6£Vw%wþìVÇ‘Tò÷y-Í›ÃÏ?CçÎÖæk©`—›7C‰%Ë÷×Ñö_§¯,Û¶Á•+Öåk©`—-Z8ŸzÊê4"’Úìv˜;¯;£!tõn«c‰ˆET°ˆˆËˆ¼C`“÷yµù\¼W, ¯¾ju*I íÛÑ#ç>oŠpœ 7YID,¢‚ED\ƘGG2xÕÛŒ\Ó•wy›ÍFvº"âÖºïÀö"äž3Ûê("b,"â2òì à¬=€Ñ¥†°b…ÅD$ÍyeödÞý-iy5¡¿²:ŽˆX@‹ˆ8½Àf34º°ƒiþ­)på AûÛÓ¸±ÕÉD$=ÔÿüìijâùO¬Ž""PÁ""NmÓª}Ü8}Žû9DqŽp¶^C||½¬Ž%"é¨vã2ÌÏÞ€¶ûƒ‰‹·:Žˆ¤3,"â´Ö/ÝCÕ&•x—wñ'œõÔ¡c . &’íÔ™RñGûì—VG‘t¦‚EDœÎo?í&.6žµc~Ä‹üZéQöøÖfmàzŠ—Ígu<±À »±Çã~â…XEDÒ™§ÕDDþmÜ»;i9ìqö{ÄS$ëý¶f掖VÇ‹yxÚñð¾_T€rKbù½_û2=\Áêh"’Æ´‡EDœJÐÏ•ènÿŠqÇùßåŸùÅ¿ªÕ‘DÄI|üe2e‚N­#yýÐd²·~‚˜èX«c‰HSÁ""NeçN8Y¸>‹²>Ä^{ X>ÞêH"â$òåƒÏ>ƒ²Ñ†T2{ùnÄb«c‰HSÁò—Õ«Wc·Û“ýÚ¼ys¢¾+V¬ N:øúú’;wnºwïιsç’,óÆ 6Œ¢E‹âííMÙ²eùì³ÏÒk•D\ÎÁƒpý:4m íKÞ3Û)WµˆÕ±Dĉ<óŒãqŽëšù>_¼6ÓÂD"’ÖT°Ü$007&ú*_¾|Âô5kÖЪU+òçÏÏÂ… ;v,+V¬ I“&ÄÄÄ$ZVß¾}9r$/½ôË–-£]»vôë×ÀÀÀô^-—0þ¯)½{C¾B9ñÏÕÚ@"ât¼½dãË<(s¿¯¦XJDÒ”Nº¿IÉ’%©U«Ö-§0€2eÊ0gÎìvG½W¬X1|ðA¦NJïÞ½سgS§NeĈ¼öÚkÔ¯_Ÿ .0|øpz÷_Ú¯ˆ Y²Ä±1R£†ÕIDÄ™mÜ™2Aµjs˜˜¿­În°:’ˆ¤!ía¹‰1cL²ÓNž<ÉÖ­[yúé§Š€:uêPªT)æÏŸŸÐ¶`ÁŒ1tïÞ=Ñ2ºwïNdd$K—.M›qQ±±pø0T®luqvµkCµjŽï/)Æ}æ'„[JDÒŒ –›ôéÓ‡L™2‘#GZ¶lɺuë¦íÞ½€J•*%™¯bÅŠ Óÿî›'OòäÉ“¤8öÀˆÈ?ÆžÆèÜÙê$"âJ²5¨Ï×tgõÏ*XDÜ• –¿øùù1hÐ ¾ùæÖ¯_ÏçŸNXX 6dÙ²e\¸pÿ$óûûû'Lÿ»orý|}}ñòòJÔW$£û¸ó^»ñ#={ZFD\I‹žóSغï~«£ˆHÑ9,©\¹2•ÿu,J­ZµhÓ¦ +VdРA4oÞ<Ý3õïߟœ9s&jëܹ3õ/hq#q±ñ4˜ó9?Ò²$H¦ˆHrJ–› ¶o·:‰dtAAA%j»té’EiÜ‹ –Ûðõõ¥M›6Œ;–èèhOºÛ9<<œ\¹r%üÀŽ;’ô»ví111 ˺1cÆPíïƒtEÜÐåðëLéÿ ¯Æîaoνô"ÚÁ""w*[6Ç9p"VJîŸÊ¡¡¡T¯^Ý¢DîC‡„¥Íf£B… ìܹ3Éô]»v%Lǹ*çÎãìÙ³Iú‰úŠdDÀ;_òê·}(»n=·8•ˆ¸¢2eàèQøê+«“ˆHZPÁrÌŸ?ŸªU«âååEÁ‚©U«3fÌ >>>¡ßÆ9pàíÛ·OhkÛ¶-6›éÓ§'Zæ´iÓÈ’% -[¶L·õqFAA°‡òl¡Õ_§tåBVGìØËÒ·/üëãYDÜ„ ûK·nÝ(^¼85jÔ {öìüù矌=šÓ§O3uêÔ„~~ø!Íš5£cÇŽôéÓ‡°°0Þxã *V¬˜èÆåÊ•£G¼óÎ;xxxP£F –-[ÆäÉ“ùàƒ’œ›"’Q¬] µjAd$¬ ^7cÉ«S‰ˆ+ó÷‡ÁƒáÍ7ÿ yê)«‰HjRÁò—Ò¥K3kÖ,FEdd$Ô«W¯¿þ:ѱ‡ 4à§Ÿ~âí·ßæ±Ç#K–,<ú裌5ŠL™2%ZæÄ‰)X° ãÇçÌ™3+VŒqãÆñ /¤÷ê‰Xêä‘pæ=ôWýò°{w žÈÕ‘‹½¨S+"’*úõƒ!C`üx,"îÆfnu—D±Ìß'h…„„è¤{q ŸëÎ+G¦pŠ|ã0&“7³gC›6Öf÷ñTÑt<ùF.ÁÃSG½‹õ´M—:ôj‘4q%ŠöG—°Ù³[¾šÍåHo¢¢T¬ˆHêª^/‚¶±K™2dŽÕQD$©`‘45þñ¹Ïœä˳¨¹ƒ6=ÂÛìz÷‘TÖkB7ÂÈÅoç[EDR‘6D$MÛâ͸,Ýéõá:DCDÒTÖìÞ,xGÎüÆöõku$IÚz‘4_^y JSÿ»³ˆH*¸òèÃ5'¨ò` >~`€ÕqD$¨`‘4Ó­›ãž=uûzI'ÏÖ-áû•GZYä.œ<ÎöõZCÄé¨`‘T1êñ1ÜsŠcÇ X1°Ù÷C(U ž}Öêt"’Qøøzñaëx,ç\V^jάYV'J¹måÛPåÁD^‹±:ŠˆSQÁ""wmÒ$غ>ï÷æ¾Âå*Í™PôŽù§ÏÂ…–Å‘ jТ YÚOOxòIÈ›ÂÂHöœ–øxÇWrÓ.]‚åË!°éû,ômÀÁ=§î8Ë•+0`€ã9’óæ›°pÆ>FVîOëë¿0þé wü<"îL‹ˆÜ±¿?x{÷†š5¡èä‰ÔˆÝÇæ-&zvgôh˜8J—¶0¨ˆdXµkÃÕ«ŽCSÃÂàý¼ã±yû€ÍƸ^ÿœWW¨´Ë4‡‹Þ˜þþ"àŸ"¦^=hÝ<š+¿å±ëkÙôÐswœ£A=šd÷ô,Z°ñéy¼±s,ìEùÔ£3×6OÔ/.6^ M‹ˆÜ‘/ó>ÎlNËw€Î|O«Èõ>ø»6fW5.7)Ék¯AŸ>‡‘ ÍÛ¦Lq|ÿCÈ„c£ÿåÉ=øøc¸|úßÅw#/ç(>ü5rÌ»{7.‘™1ƒ ¬5ˆ.—‚ lú>3—üS6‘mÊsé,^ ÝsLÄ#“›³×L›_’ˆ ð´:€ˆ¸Žs§¯Ð+l.Ág[q„nl£*ãrwᵕïà•Ù¢Ch`qN‘¿Ùíк5 80šò <Š•yóàõ×!»of>¸o9ìçxc÷xöï8ÁÆ…¸qÃq.ÞêÕP¨P âbG0×o ƒW¾ +¡[¸R²íÍdäí<¸j;Û=ÊpÆËŸ7×ãòç<=»Ý‘aíÚ2…†:öÞDFB™2ЦC¦ iC£¯ß À ˜?ß±WfÄ`®ðPÌvF<øo®nÁoQÄZ*XD$łޙÃËÀzê°2ë#Ìû ,mÚ|«AŠˆÓZ´ ¿¦íº9tï—WfNžñ$kÖ¡|ñÚLØ=ž Q¡ÄÄ¢kWÇC r,ÃÃÓN©åS N1R’+a,ƒ©ÏV¶×®Ì++‡Q1³'ãŠ=C–}v.ϸqv¶‡ðTðM}ÝŸÍgYX®_¯‹¼û.tꔞ_@…¿Î· c ê¤6Lxw;ù®žåõ#õx.Ì韾¿@‹ÙŒ1Æê’Xhh(Õ«W'$$„jÕªYG$Á§Å»Óíð|¼#Âðñõ²:ŽˆÈÛ²1ŠZu¼; ¯¾êhÿsïò–+ÁJÏy1v2+ÜGÉ’IçŸ4`Wf­`OãÉlÛ;wB‹°tiâ~Ï<·/¿„#ÃÈ^ª43¦ö] ¨>†Q[û%›1_>8{:t€9sm1ѱ¬ÏQ‡qר¹[7âuÚ¦K*Xœþ¸ÅY­ò®Å5o½¶ö¿;‹ˆ8©¼y!G8p qû„éqz>ss4â©KÁ)ZÖòåФ ÿ¹—yfŽl3šA ^KQ>±–¶éR‡ÊsI‘ðs<½›½E*XEDäžœ> ûö%máTö¨ˆ+Íšýw±p²uæfmIJ -Ü}è–Å @‰I‹€'=Ë£Yæ0aÃó)Î'ât‹ˆ¤È¬ï¢ØG å;U´:ŠˆÈ=¹]á•9m6^û®/Ð÷ž–ááiÇ«eŽÏƒrå`ï^G»Ÿ„‡ß{Fg¥=,"’"‹–åbýxæÆVGɰ†u<îÝ Ù³CíŠøäb7°ÙXüõ:K³‰¤,"’"!!à¸7ˆˆX£JèÚòäaú·‘tc:­Ÿ}ˆe>uXòÍ‹SФ.,"r[ÇúuŽ;EW©bu™6Íq±!C tåB|RüYÀq2¹è£˜çß W/Ø ºEÜ„ ¹¥oGSuè#t¨w€6m,$""I¼úÇN¾Àýч˜òô—ôˆúÉ“áÁaÆ GŸ#Ø;ávì™ù·3'.1¡`gæOZ“þáER@‹ˆ$øû¤Í˜èXN 'ß°a”âá&€§Ÿ¶0œˆˆÜRÁ¢þxxÚúukî–—É“ÁÃÃqcJ€…_å‘[1 Òw:ΰaï˜ös¥.¼pj&ž¯µ,¿Èí¨`‚‚ hÀefd{”¯‹t&O±™<{ŒIDAT¼4‹ÚÄìV½éð¤mÛBÎ[_…SDDœ€Ý_ Ï=իßBL q±ñ*TDDÜ@ýû¶ñݱǘýô^ý¦÷ö‹gD ‹áÓO¡xqøãtꦴM—:´E"’ÁT÷U.“ƒ‡YB¼Í“ß~K\¬*VDDÜDïÂø®bû+àxÿ:>ùš7wœsóù,³fAÑ¢ŽCÊDÒƒ¶JDÜLðŒŒ¨ó&¶þˆ3'Ÿ2ÇŽÁÑ£ŽiåãÔ¬?™‡‰‡Úµ-,""iæ[ðÆÎ±w5ï‹/:ÇÞ4ûˆ·¯pô( páDRH§ÒЏ‘s§¯PóéGh…ã ãï*ü©!Á ä8G¥ÁÙ4ÃÇFt±8©ˆˆ8»GL™`ÖÌ8¼·Áý:Ε(ÃâƒÓy‰ |ýu[Æw\™L$-©`q#ßøŽW ç«7ç>o%5÷ýN×±<±‡¦ë¹ïXîS›V5ŠXUDDœœÝ/Î}£±ï3äà œƒ?ìE(òt"¿1càÕW­N*îN5±ˆ ûúkÈ• vüœuÙ NÚòÑ}X;þ·lMl«‰Ã“—^‚w†‡1d™õ¹µ¡EDÄe´Ð–Ùjpг0Ÿë@蘯óõýdÎ ãÆYP2íaqaýûÕ+P±"t øŠ¯ÏÍcl‘gèçi§Pa;ýûCT …ÇÈœ|O²âÑJVÇñÐÃàÊ ªÆÆsòÄh:õ pa8rNœ€B…, )nO{XD\Ô7ß8Š•Â…!sfð »Ì¼¬ yzë„„>Ÿ|':îf<+8sö6´.°ˆˆ¸4O;ÿ*VÞybc¡^¥0 SIF ‚EÄÅü¼ø2õê9î`ìí ¿ÿ.ÀÄÈ×hõüsgMv¾–-!gÎt+""n«Kx«á]ÌÏúŸ·:ޏ1,’È„¿år¸.¬î¬>*÷™mÃo¿A¥JŽsW²&_Ÿˆˆˆ¤¹VƒšáA<«ß²:Џ1,’`D7yaÂ3L­ñ‚ÕQ$÷œ¢ÇÞ ÂrxráìØùòYJDD2²º-˳ų<­6ÍeÅœ«ãˆ›RÁ’Á„†BÞ¼°s§ãçøxÇcÐÇ?Óo£ãÎP]/ èãŸ-J(·²¡^/2Cö‰#ð÷ÿïþ"""é!äå·Èw‰*›óñS­Ž#nH‹›™3-ºõô^½ , Ú¶…M› §Çe®Ø²óÈë9jÏÏʹ!œòÈMžÔ¯Ÿ~¹åö›à™‹K_ëEZþ¯–ÕqDDDôþøIήZÍ6ï’<÷ý`–|³¸Øx«c‰QÁâF®_‡Žá±Çw5oÒ¦OwL‹‡S§{XÀqîÃ@qq°iÊ.ž _Æ?x¶ÝV7vl /X~˜ü²==aáBÈ”Éñf“âbã ?‘6 ¿I|¼ãž%®âw`ß>ˆŠ2Ø0DàK–¬Ž%""r[mz<Ąϑ#¼ù¦c;¢IØþëÖµýˆÈk1|•»-Ÿª @Öò䓎m˜xøax¢özšw®É¢Âm,^q*XœØ¤Iÿ|¿u«ãœ“µk—±Í™Óñ¢ÇÌ{ôp´‡„8®‹þõ×þþð^¥ç9ííKû =¯EŠŸ¿E èÜÙ±ü_‚O¦ÊåŽ{õ‚F`ÌÀ5lÍR…°|•9¸ç#[Ž °úë÷ü7‹‡ò忳޽…ž³ûùgÈ– ÀFŸ²kàòyrøg±:–ˆˆÈ²ÛáûïÿD-]ÚqÄGYö2’7X›«!Ï_À˜ûºòÕ{«xðñäÉ … App<£7? @ç+ËtȘ`3Æ«CHb¡¡¡T¯^¡R¥jlÙ⸓98þSaŒã†ŽËÚ–-ë(hV¯†jÕ/ëò™£x)Ê–.h8uÕgY¹š65üL °†Ýž÷ó{Ö¢xÇEs¨F}¯z;ÅËŠw䇧ù†wmo‘Û\ä¼ÍYŠÓöÚ¢®ßÀÛ'õŽVìѦN__¸vÍÑöÐCðÕg'(]¹PŠ–ñqç úéGþ,^ÁÛ>Iµlɹt üüþÙ æååxóqE[¶üuÔÈÀ¶<{áGÆî NO8Ìyÿ~(Wα}ðòËP2v:Ñ—®Ñ|ÖX2›nlZCùE¬]‰»ô÷6]HHÕnÞH“”3âtBBB `71`L¶lÆ8Êc||ŒY¹Ò˜Ë—©WϘE‹n¿¬_z·4ј³‡vÜU–¸8ÇóúqÁŒ.×ËL÷{Älñ,oþ°6ÉaÖÿ¼Ç?îè;s¦1Ÿ~jÌÕ«É/kölDzz÷6æÛ©áæBØUó٠ߘ/s·3k½ªšÍžåÍÌ4ysß0çÎ%ç†ÃfFŽ–fOèÑçß¾î°Ég;iŠw¬Ë/¿Sµª1EùÓÄài>,Ý;Qÿ³g9}úŸŸ-2¦U½“æ:ÞæO[acÀŒ¨90Éó:d̈Æ4ib̲eÆ,šú›™î÷ˆ ¬ø²‰½—¨ïÕ«Ž~Uª8žïfï½~Øxe,HñjŠˆˆ8½K®™Æ­LvÚ”)Æ´n¸mþ¤5&œf}¦J¦Oé ¦dIcBBÒ!h*ú{›.ÄÕ‚;,NèßÜ=z86òsä0féRc¢£S¾œ+çNšóYlfM«r÷”gÂcV¬Hܶå—ýæ"ÙÍ [^qf„ŠªÂy¯%ÙH7ƘÆÓ/_¾õs½û®£Ož<Æ´liÌÅ‹ÿLWè)GÁÐhXBÛîÝŽBäV¦´1G)dB·\Kh۵˛͘U™j™XìfV¶¦fË/ûMçÎŽçöòr¯¿îè—™ëæ¸-¿ Y{ÐÌÌÞÔµ0#j4ã t6¯ôøÓ¼ôÒ?ëÆT±m61xšóøæÇ,õͶucE]æÌÿôÍž=iþ¯Ú˜íö²·]/‘Œ`lÏ)&ij¬Ùm+clÄp|6W©b̵kÿ=¿ÕT°¤,Nèæ?î‰Ù¼ùΗóKÏf&Êsr÷ÆTNèX±Ÿ1`ªÛ6›Í±Þé‘f?%͈†ï$êì˜^¾ü/÷é§ÿÙ ÷ó3fÛ6cƾlöÚ‹&‚,&Œóÿ Œyï½ä—óå³M63²ü‹ÉN¿mF–Ñ\$‡ù6g+ÓÛ>Ö 8—ðfÆsäˆI(À>í6É0±ØÍ[1“‰èDÅʾ}ƼŸó%óIÑnæð³f䣣ÌršKd7sꛦöŸŒ··1³fóÎ;&Qþè¨fD³ÌI[^3)O‡Ž‚ˆˆHÆðûïÆ<ù¤15j8>?N»çêSv¢›ç)³dɽ-GKêPÁâ„RëûøŽ_ͺ^J¥TIÅÞˆ3¿.ÙeÚ´q¼q”,éhŸµ± #Àl^µ×L÷{ļPáó„=Gޤ|ùÿŸó¼9l+dÆöœb>)ÚÍ|íßÚ¼Áˆ„åöèaL¡BÆ8à˜7:ê†Ù©’ÙáQÊ\½yÛçù°LŸ„'šùÉ2Ó­›1… 3iRòýç|¶ÊûÃqÌÚæÍÆ¼ü²1Ç;öÜ$ç×%»ÌgùŸ4Wñ5¿Ûï7û÷:v“ÅÅãïï(Ž-¾ÌÌ÷m` ˜ëx›Ï^ú6å¿(‘ Æ××OOcúô1fîœÔ=$aæLczñ…1`rfrårüóøn¨`I*Xœ«ýqŸ<é(~ùÅñóºàÝæ<~f³gù„Bàï_ÍÉ“w¶Ü¸8crç6¦xqc¾½5¡HøÛøñÆ jŒ··ãiJ±Ïæìm>í6É|™»1`ÆöœòŸÏsúøEsÔVÀ¬ËTùÎÞ¡»O&9ÿæÀcòå3f5õXñå4Í ""âÖ¯7Æn7âÍlÚ›‘å_Löpô;µd‰ã‰…33±6̸ªÝ¶3:ÜÅÁ®¶Mç¬tãH¹g Àñãÿü\·ey¿B·_>ãW¯ªäŒ»Æ“Oí§@‡îh¹v;„…ýýSõ$Óÿ¾™eîÜŽ«Š4ϳ€ÞaAäœö×ÈÂGeú0ðËgÿóyòÊÉÜñ3È’ÃçŽòÝ©’å $m+ §OÃNÏ3‚¥iwP§œ;GþŒfskíùŒ)ùŽÓãü‚»Z^l¬ãÊœ½{;îE·rWa~X…ž‹¿¦\—cô]·Œ¹síìßï¸T³¤/],UÒÄà•CÉ–zÑ¡TŒÝO¿¯z¤Ùs½ô’ãMküÙAD?Âìq+9²e/÷NLñ2:¼ÐˆV]H³ŒÿåâüÙŒ¨ûf²Eˆˆˆ$åïÕjxÓûÌ|T¶Ý/,Ltß–S§`à@Çå’o%* ¦O‡ªU¡cG¸pÁ±]Q²$Ôþö6¶«I“i+ÞæÀq+‰>Jë5“›é>,NH×ìI¹ðsDä-ÍÞÌ÷q<[>öµý˜É³Šqå - gÏBÕ’a¬Û‘'až¸Øx^)ø“Â^!†Ì<ü04iýû'¾ÿÙö29ñŠºAÜ«4nbçüy0 iá ÂŽP¢\¾ ‘‘¡\¸ mº{¥CÂDDDDÄ¥ùçÎʤªú1DA¯É-¹B/Žú9W³dgk¦ý†è+‘äž:¿Œ‹ÞŒ÷C9¨þb:uJ~ÙñCÞ¤Ü3ƒØ²é}~‡rå`Ô(ÇM½7o†cLJ¦ø!= ŋÞ=`³éÆÏ©E‹ˆˆˆˆ¸¼¾ËßcÄ£ÞÜXïÁÊsô(œ?^^P´ÈœðËK¹‡Q ö.–³¶‘¿lM«£ˆˆˆˆ¤«þYxsÝp‚‚ ¬)âørðæÇGúðÚ¢7ØåYгӧÑòµ¨‚åÚìvþ°9ág//:V®„±c¡Bh×BB`ÂGŸt<††¦æf\:‡Å Ýí9,×̧dÃöìœ;‘Jíoÿß‘Œ&òZ >¾^éö|:/9uèÈ:7rzÙ–ÌM[ZEDDDD$Õ¨`qG§áz&¨ôÌ«£ˆˆˆˆ¸µ]ó'±yÒÛVÇÈ0T°¸‰\?ÿÊŽªÈ’#—ÕQDDDDÜÚ¥‰“ëí‘„?hu” A‹¸|æ(EN]#¾}[«£ˆˆˆˆ¸½¬Ý{S üÞ%J±¶U9ý¶ÈêHnM‹È‘ï>¼Î_¤Æ‹VGq{Uÿ÷*gó3M(µ~?…>ÆÑ­+­Žå¶T°¸ ï¬9Éì›Ýê""""B®¢eiøÕ ²9M´'œ{¶§÷mµ:–[RÁ"""""r—|ýò°÷Ó!9r‘S[XÇ-yZ@DDDDÄ•Õî3œËíz’çÌQ«£¸%,"""""÷(G¾ûÈ‘ï>«c¸%&"""""NK‹ˆˆˆˆˆ8-,.juŸVìœ÷¹Õ1DDDDDÒ” tdórêMZÊ¥Ík­Ž"""""’¦tÒ½ :>¸/ÞÙìÔzK{XDDDDĽi‹‹9µguVb÷ÇðΚÓê8"""""iJ‹‹90a7ìPí­ VGIs*X\L¾Å«ÙV³Ùr°:ŠˆˆˆˆHšSÁâBþX·˜2Ç#ñø_«£ˆˆˆˆˆ¤ ,.äø¤¸ì Uº¶:ŠˆˆˆˆHºÐUÂ\Hé7?á`£Ÿ©á›Ýê("""""éB‹ É_¦ùËÔ°:†ˆˆˆˆHºÑ!a"""""â´T°ˆˆˆˆˆˆÓRÁ""""""NK‹ˆˆˆˆˆ8-,"""""â´T°8¹#›—[ADDDDÄ2*XœØá ?Qäæl:Üê("""""–PÁâÄ"ÇŒæHn/ªtyÝê("""""–PÁ’Æ"""èß¿? ÄÇLJªU«2kÖ¬Í[îÐe†ôÃÓË;SÊÝ ²:‚܆ÆÇùiŒœŸÆÈùiŒ$#PÁ’ÆÚ·oÏ7ß|ûï¾ËÒ¥K©Y³&;wNÑÌ¡>Ô~qd:¤”»¡ ç¦ñq~#ç§1r~#É<­àÎ~úé'V¬XAPP:u Aƒ=z”ЩS'ìö[׌±}{c»Ítw§­á44þ|²eËFÇŽµwïÞS§N±iÓ¦ÛÎ_ºÅÿÒ2žˆˆˆˆˆÓSÁ’†vïÞMÙ²e“ìE©X±"{öì¹íüÚ»""""" KC.\àþûïOÒîïïŸ0=9QQQìÝ»7íÂÉ=»té¡¡¡VÇ[Ðø8?‘óÓ9?‘sû{[.22Òâ$®M‹:|ø0]ºt±8‰ü—êÕ«[AnCããü4FÎOcäü4FÎïÈ‘#<øàƒVÇpY*XÒP@@@²{QÂÃæ'§E‹̘1ƒ¢E‹âã㓦EDDD$mDEEqøðaZ´hau—¦‚% UªT‰   âããDzk×.*T¨ì|¹råâ©§žJ—Œ""""’vêÖ­ku—§³ºÓP»v툈ˆ`Μ9‰Ú§M›FÁ‚©]»¶EÉDDDDD\ƒö°¤¡–-[Ò¬Y3úôéÕ+W(Q¢AAA,[¶Œï¾û›ÍfuD§¦=,ihûöíÄÆÆCÏž=iܸ13fÌ gÏžtîÜ9IÿÐÐPš6mJ¶lÙðóó£C‡ 'àßlüøñ”)SoooŠ/Î{ï½Glll’~aaatëÖܹsãëëKݺuYµjUª¯««Z¾|9;w¦xñâxyyáççG«V­X·n]²ý5Fé/""‚Ò¼ysrçÎÝngذa·ì¯1rnôïߟ‚ âããCÕªU™5k–ձܯ¼^ôZ±Æ|îhŒ¬±}ûvš7oNáÂ…ñòòÂ××—5j0yòä$}5FéÄHšY½zµéׯŸ™9s¦Y·nY¶l™éÞ½»±Ùlføðá‰úîÝ»×dË–Í4hÐÀ›yóæ™ *˜‚ šsçÎ%ê;|øpc·ÛÍ!CÌš5k̨Q£LæÌ™M¯^½õ‹ŠŠ2*T0EŠ1ßÿ½Y±b…iÛ¶­É”)“Y³fMš¯¿+èØ±£iذ¡™8q¢Y³fY¸p¡iРɔ)“YµjU¢¾#k>|ØäÌ™Ó4lØÐôìÙÓØl63lذdûjŒœ_³fÍŒŸŸŸùòË/ÍêÕ«Æôûï¿·:š[HéëE¯ë¤ôsGcd”n¿iŒÒ  Ô¯_ß)R$Q[ÇŽMžråÊÅž={ÚvïÞ}Ëe‰úÊ?._¾ÌÖ­[)_¾|B›ÆÈùiŒœßîÝ»)[¶l¢Ë¼ƒ~—éM¯çsóçŽÆÈ9ÜnûMc”¾T°¤ƒ>}úàåå…¿¿?½{÷føðá¼ôÒK Óÿ¾¹¤¿¿’yýýý1ÆpñâÅ„¾™3gNö†’~~~‰nT~Ëeþûy%±^xÈÈH† ’Ц1r~#çwáÂý.€^+ÎçæÏ‘s¸Ýö›Æ(}©`I¡Õ«Wc·ÛSôµsçÎDó2„­[·²råJ^|ñEÌ»ï¾kÍŠ¸±{£¿ :”ï¿ÿžO?ý”ªU«¦ó¸¿Ô#w¢Ïç¥í7ç¡û°¤P™2eøê«¯RÔ·páÂI~þ»­Q£FØív†N¯^½(P €£ª¾Yxx86› ???ˆŽŽ&** ooï$}kÖ¬™ðs@@À-—ù÷twr/c0lØ0>øàFŒAß¾}MÓ¥Ž{£ÛÑ9¿€€€dÿ;¨ßeúÒkÅyÜêsGcänµýöüóÏkŒÒ™ –Ê—/Ï>ûlª,«zõêÄÇÇsüøq (@‰%ðññIö?Ê»ví¢dÉ’xyy$׸sçNjÕª•ÐïÌ™3\¸p *$´U¬Xñ–Ëõu÷2FÆ Køzã7’L×¥ŽÔ|ÝLcäü*UªDPPñññ‰ÎcÑï2}éµân÷¹£1rNo¿;vŒêÕ«kŒÒ“uçûg\Ï?ÿ¼ñôô4çÏŸOhëÔ©“É›7o²—ÆT¨P¡D…1Æ|ðÁ 7Z½zµ5j”ñöö6Ï?ÿ|¢~ÑÑщn>´|ùrÓ®];ãååeÖ®]›æëï Fml6›iÕª•Ù¸q£Ù°aC¢¯ÓYç§Ÿ~2³gÏ6S§N56›Í<ñÄföìÙföìÙæúõë ý4FίyóæÆßßßLž<Ù¬ZµJ7ŽL)y½èµb”~îhŒ¬“Òí7QúQÁ’†¦L™bêÖ­küüüŒ‡‡‡ñóó352ß}÷]²ýCBBLÓ¦M¯¯¯É‘#‡iß¾½ùóÏ?“í;nÜ8Sºti“9sfS´hQ3lØ0›¤ßÙ³gM×®]M@@€ñññ1uëÖ5+W®LÕõte 64v»ÝØl¶$_v»=I‘5Š-šh\þýýÑ£GõÕ9·ˆˆÓ¯_?“?~“9sfS¥J•${\äÞ¤ôõ¢×Š5îäsGcd;Ù~Ó¥›1ÆX}XšˆˆˆˆˆHrtYcqZ*XDDDDDÄi©`§¥‚EDDDDDœ– qZ*XDDDDDÄi©`§¥‚EDDDDDœ– qZ*XDDDDDÄi©`§¥‚EDDDDDœ– qZ*XDDDDDÄi©`§¥‚EDDDDDœ– qZ*XDDDDDÄi©`§¥‚EDDDDDœ– qZ*XDDDDDÄi©`‘ÿ·_ǃü­§±£,‚-a¶„Ø`KX€-a¶„Ø`KX€-a¶„Ø`KX€-a¶„Ø`KX€-a¶„Ø`KX€­Î s#¬IEND®B`‚HTSeq-0.5.4p3/doc/qualplot.png0000664000175000017500000002321412110432433016632 0ustar andersanders00000000000000‰PNG  IHDRXµ%TŠsBIT|dˆ pHYsaa¨?§i IDATxœíÝ}tõÇñÏMBh"Ü‹B…å!Pž-]5Ñ4Q’‚Mk+®Ê£T< ÄEÀø€±Ævm­ë1À*ŠQAÒÆ(*m´D‘F+aI)ña“@bB™ýcYc ðK&™y¿Î¹G˜™{ç;w~:ó›ßõY–e Æ9]€Û° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a®X«W¯VPPÂÃÛ¬Û½{·âââ.¿ß¯ääd:tÈ*€Û¸6`}öÙgº÷Þ{Õ·o_ù|¾Fëöï߯˜˜ÕÕÕiÆ Z»v­8 I“&©¤¤Ä¡Š€[ø,˲œ.¢-$$$($$D={öÔÆuüøñ†u3gÎÔ¶mÛTTT¤îÝ»K’Š‹‹©»ï¾[éééN• ÜÀr¡^xÁêÑ£‡õÙgŸY·Ür‹Õ½{÷†u'Ož´Â¬yóæ5yßäÉ“­!C†´ø¹’xñâÅ‹/^çùò×Ý"üòË/µhÑ"¥§§«oß¾MÖ©¦¦FÑÑÑMÖEEEéàÁƒª­­mñó-ËRBB‚,Ëòì‹ãçø®ãçø9þÎwü^㺀µ`Á >\sçÎmv}ii©$)4YdY–Ž=Ú¦5w qº“6nܨÜÜ\}ôÑGm¶ÄÄD½ÿþûJLLlX–’’¢”””6Û'EVV–²²²œ.Ãq® X•••ºóÎ;õË_þR}úôQyy¹$5Ü¨PHHˆzõê%I*++kòeeeòù|òûý-î'''G‰‰‰ÊÉÉiƒ£ sk©ÓáÛOô»kVII‰Ž9¢ŒŒ edd4Yï÷ûuã7jÆ Óž={šlSPP ÈÈH…††¶GÉÀ¥\°.½ôRååå5JÈ–e)==]Û¶mÓ[o½¥‹/¾XÁÁÁJHHЦM›ô«_ýªÑ4 yyyºçž{κ/¯ßäø9~/ãø9~/óúñ·†kçÁ:mÖ¬Yzíµ×̓UXX¨ &hìØ±JMMUuuµV¬X¡òòråçç7ÜFü6ŸÏçÉ'!¸P^»†ºî)Âoóù|Mîû:T[·nU—.]ôãÿX·Þz«† ¢íÛ··®Î•ë{°LòZúÀ¯]C]߃ÐÞX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€ÕJÙÙÒŸþät ##`µÒ‹/J×^+Í›'?ît5 #"`µÒ† Òï/­['EGKyyNW:V+IóçK{öHýûKW_--\(UU9]è(\°òó󯈈…††ª[·n?~¼233›l»{÷nÅÅÅ)<<\~¿_ÉÉÉ:tèP«ö7hÝ{õä“Òš5voÖöí¦Žtf® X>|¸222´uëVýáPtt´æÌ™£Gy¤a»ýû÷+&&FuuuÚ°aƒÖ®]«hÒ¤I*))iÕ>ƒ‚¤_þRúè#éÒK¥˜iÑ"éë¯ èT|–eYNÑ–®ºê*ýóŸÿÔáÇ%I3gÎÔ¶mÛTTT¤îÝ»K’Š‹‹©»ï¾[ééé-~–ÏçSK_שSÒo+ýû¿KßûžôÜsÒ•W?:¥3]CÝÈ5=X-ñûý ®««Snn®’““•$õïß_±±±ÊÎÎ>ïýKwß-åçK_,Mš$ÝsT]}Aå€NÈu˲,ÕÕÕ©¼¼\kÖ¬ÑæÍ›uï½÷J’ŠŠŠTSS£èèè&ŠÒÁƒU[[{Aû:TúÛߤ_ýÊ~Úpôhé½÷.è#@'㺀5oÞ<…††*hîܹzøá‡µpáBIRii©$)4y_ eY:zôè×,Ý{¯ô÷¿K={Ú· —,‘jj.ø£@'ât¦-[¶L³gÏVEE…rrrtß}÷©ªªJ<ð€‘ÏOLLl²,%%E)))M–&½û®ôøãÒH¹¹öج+®0R NVV–²²²œ.Ãq®ä~Ï=÷èÉ'ŸÔ'Ÿ|¢cÇŽiذazúé§5wîÜFÛ-^¼X¿þõ¯U]]­ÐÐÐf?ëBèíÝ+Íše÷j-]*­\)uíz^@§Ã w—7nœêëëU\\¬Aƒ),,L{öìi²]AA"##[ WjäHiÇéÁ¥Œ iÜ8éÃÛdWÀa®XÛ·oWpp°¬%$$hÓ¦Mª¬¬lئ¸¸XyyyJJJjÓZºt‘–-“ví²ÿüƒHË—K8®t0®¹E¸`ÁõìÙS'NT Pii©6mÚ¤uëÖiÉ’% ó[j„ ;v¬RSSU]]­+V¨¼¼\ùùùêÕ«W‹û0Ù½yò¤ôè£ÒCIÇÛc³ÆŒ1òÑt8^»E蚀µvíZ­Y³Fü±Ž;¦‹.ºH£GÖí·ß®Ÿþô§¶Ý½{·–.]ª;v($$D×\s2224`À€3î£-G~¾tË-Òÿ·tÿýöD¥]ºÝŽ#`¡EmÕ8jk¥‡–V­’¢¢¤çŸ·Û· `¡EmÝ8>üÐ~Ò°°Ð«õöîýÝ»ÛïñùÚ¤<Î -jÆqâ„ý¤azºT_ßú÷ßx£ôÌ3RŸ>ækà|°Ð¢öl_}Õúß1ܹSZ°ÀfO=%Ýt½Y€Ž€…u†ÆñÕWÒwJ¯¾*%'KO?-õîítU¯ë ×P“\?–×\r‰ôÊ+ökëViÄiãF§«À[X.5s¦´oŸô£I3fH?ù‰TRâtUxËÅúô±{¯²²¤-[ìÞ¬ìl§«ÀýX.çóÙ½WûöÙS8$%I7ß,••9]îEÀòˆï~×î½záéÍ7íÞ¬œ§«ÀxаÜòÄçŸKsæH¹¹ÒÕWK={¶ý>¥_ü‚i#À«Ür =W¬VpSã°,iÝ:ûiöVY)ýõ¯Òu×IÏ>+õíÛöût,nº†ž V+x­q˜ôúëÒìÙRMô»ßI?û½Yà%^»†2 í"!ÁhÝuÒÏ.MŸ.}ñ…ÓUÐ6Xh7€ôâ‹ö`û;ìöYYöíJÜ„€…vwãvoV|¼ôÓŸJ?þ±täˆÓU` ޏøb»÷jãF{üˆöï'à,8*9ÙîÍŠ‰‘nºÉþ‰Ÿ¯¾rº*. O¶‚מ€ho¯¾*ÍŸ/IO?-]u•Ó™ã÷K!!NWÎñÚ5”€Õ ^kNøòKiÞ<÷ýfâøñÒsÏÙ·BÀ‹¼v %`µ‚ׇS,Ë—U^ît%f|ýµôàƒRQ‘ýÏ{î¡7 €÷xíJÀj¯5˜SS#­\)edüoÖ°aNWíÇk×P¹íà;ß‘{Lz÷]©¢B3FzüqéÔ)§+´ÐŽ&N”þþwéÎ;¥¥K¥I“¤ÂB§«˜FÀÚYX˜}«ð¯µ§¤=ZúÍoèÍ7!`¹òJ飤¹síïW]%ýÏÿ8]Àà ù»÷jëVéÿW5Júío¥úz§+\ž"l¯=öUU%ÝwŸô»ßÙc³®½ÖéŠ:—.]¤Ûo·†©#ÉζƒôäÉNW8Ëk×PV+x­qÀ[·J J¥¥NWÒ¹”—KááÒ3ÏHÓ§;]}þ.´sS’î¸Ã{wÑEÎÖ8Åk×PV+x­qÉ_ØãÙþøG)%Åî ìÕË™ZþøGiΩ¶Ö¾åûõ×ö8»@@Z³FŠ‹s¦.ÀI^»†2 €+|÷»öí¸_”ÞzËþY¢œœö­¡¬LúùÏ¥o”&L°Èü曥ٳ¥‚ið`ûÖï¼yÒñãí[€öEÀà>Ÿô³ŸI{÷Ú熤_üB:z´í÷›+)½þºôüóv¸»ôÒÿ_ùåÒ–-Òï/­['EGKyym_g°¸Nß¾vÀyî9ûŸ#Fب-”—K³fI öœfûöÙ¡ÎçkºmP4¾Ý›uÙeÒÕWÛ“ÎVV¶MmœCÀàJ>ŸtË-và=Ú@·ÞjöGÄ7o¶{­²³í±Uo¼!õëwö÷ (ýå/öø¬µkíé9¶o7Wç°¸Z¿~vðY³FÚ´ÉDo½uaŸYQ!Ýv›4mšÝ;¶w¯ôoÿÖ|¯UK‚‚ì§ ÷ì±o%^u•t×]öt:?×óùìTP .MjÏ™UQÑúÏzç;¤mØ =û¬Ö""ο¶Áƒ¥mÛ¤_ÿÚþ¼Ñ£¥¿ýíü?@ÇÀ4 ­àµGL7²,)3Óž6AjݼT–eϸÍ5vØe—™­­°Ð¾ùÞ{È·•ðp{n®ë¯oû}^»†°ZÁkp³þÓ~š¯µÿJhO½ÐšÛ­qê”ô_ÿ%}öYÛ|þ7íØ!½ý¶=Ví?þCêÙ³í÷ ïòÚ5”€Õ ^kÜͲì'--²{³23íÛ§@[ðÚ5”1XàQ>Ÿ}Krï^{°þ´iç?6 @c,ð¸ˆ{°~f¦ôê«ö þwÞqº* s#`äóÙ½WÒСÒäÉöOü;æte@çDÀ4¸ì2û'}þó?¥—^’¢¢¤?ÿÙ骀·€hÄç“æÎµ{³ ’ââìŸøá'}€sÇS„­àµ'  ¾ÞîÍZ²DêÝ[zè!©G§«j*(ÈžŸì;ßqº´Äk×PV+x­qÀiEEöløù7‡·§˜0ÁéJЯ]C X­àµÆßT_/}õ•ÓU4¯¸Ø¾­ùÑGRjª´|¹Ôµ«ÓU᛼v %`µ‚×t&'OJ=&=ø ý$äóÏKcÇ:]NóÚ5”AîWèÒEºÿ~郤éŠ+¤•+¥ÚZ§+ƒÑƒÕ ^KßÐYÕÖJ«VI¯]C X­àµÆèØŽ•îºKzá…öÙ_pðùÏæµk(«¼Ö8ÃHeem¿ŸÏt~ïõÖ5”€Õ ^k˜âµk(ƒÜ #`FÀ0Œ€` À0€a,ÃX†° sMÀÚ²e‹RRR4pà@…††Êï÷kêÔ©z÷Ýw›l»{÷nÅÅÅ)<<\~¿_ÉÉÉ:tèU7rMÀÊÌÌÔ_|¡Å‹ëOú“Ö­[§êêjÅÆÆ*//¯a»ýû÷+&&FuuuÚ°aƒÖ®]«hÒ¤I*))qð€[¸æ·9¢Þ½{7ZvâÄ 謲²²”••åtŽseÀJKKÓ#<¢U«Viþüù Ë{õê%I*++kòž²²2ù|>ùýþ3~vNNŽÙbp‘–:|>ŸÕ8Çu·ÓÒÒ^©©©Ö 4HaaaÚ³gO“÷(22R¡¡¡íU*p)W¬‡zHiiiºÿþûµ|ùò&ëCBB” M›6©²²²ayqq±òòò”””Ôžå—rÍ}º$Éçó5ÙnÿþýЉ‰Q]]6lØ µk×êÀš4i’JJJÚ»là2!N`Òå—_®£GJ’JKKµzõêf·[±b…”››«îÝ»K’ƧÈÈHedd(==½Ýjî㪬o²,«ÙåuuuÊÍÍUrrrC¸’¤þýû+66VÙÙÙíU"p)׬–©¦¦FÑÑÑMÖEEEéàÁƒª­­u 2àž X¥¥¥’¤@ Ðd] eY ··«Æ`µ‡ÄÄÄ&ËRRR”’’â@5t,YYYÊÊÊrº Çy.`õêÕK’TVVÖd]YY™|>Ÿü~‹ïÏÉÉi³ÚèìZêthî©~7óÜ-ÂAƒ),,L{öìi²®  @‘‘‘ u 2àž X!!!JHHЦM›TYYÙ°¼¸¸XyyyJJJr°:à>«¥ù :©Í›7«ªªJÇ×m·Ý¦3fhÆŒ’¤ë®»Naaa*,,Ô„ 4vìX¥¦¦ªººZ+V¬Pyy¹òóón#~›ÏçkqúÐ2¯]C]°  Ã‡Kj|2}>Ÿ:¤þýûK²*géÒ¥Ú±c‡BBBtÍ5×(##C hñ³½Ö80Åk×P׬¶äµÆ€)^»†zn @[#`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° ólÀª¬¬Ô¢E‹Ô¯_?………i̘1zå•Wœ. ¸@ˆÓ8%))I»víÒc=¦!C†hýúõJIIQ}}½RRRœ.tb>˲,§‹hoo¾ù¦®¿þzeee馛njX>yòdíÛ·OÅÅÅ jÚ¹çóùäÁ¯ € æµk¨'ofgg+<<\3fÌh´üÖ[oÕ矮;wžñýYYYmY^‡Çñsü^Æñsü^æõão O¬½{÷jذaMz©¢¢¢$Iûöí;ãû½ÞÀ8~ŽßË8~Žß˼~ü­áÉ€UZZª@ Ðdùée¥¥¥í]pÏr?_‰‰‰zÿý÷•˜˜Ø°,%%…ñÈî墧ˣ«W¯^ÍöR•••5¬oINNŽ•““ÓfõÐYµÔéàóù¨Æ9ž¼E­?þXõõõ–H’FŽéDYÀ%<9MÃ[o½¥iÓ¦éå—_ÖÌ™3–O™2¥aš†æ’¶×Ò7&y)rxòá”)Stíµ×jÞ¼y:vì˜ ¤¬¬,½óÎ;Z¿~}‹AÊK œ?Oö`IRUU•–-[¦W_}Ueee6l˜î»ï¾F=Zçó  ­xr;@["`FÀ:•••Z´h‘úõë§°°03F¯¼òŠÓeµ›­[·*((¨Ù×ûï¿ïtyÆTVVjÉ’%Š×%—\¢   ¥¥¥5»íîÝ»§ððpùý~%''ëСCí\±yçúÌš5«Ùö0|øpª6cË–-JIIÑÀ*¿ß¯©S§êÝwßm²­Ïÿ¹¿Ͻ$åçç+>>^ U·nÝ4~üxeff6ÙÖç_:÷ïÀ­mÀ4O>EØZIIIÚµk—{ì1 2DëׯWJJŠêëë=5ƒû£>ªØØØFËFŒáP5æ•””(33S£GÖôéÓµzõêfŸ(Ý¿¿bbb4vìXmذAÕÕÕZ±b…&Mš¤üü|]|ñÅToƹ~’¦¼¼¼&Ë:«ÌÌL}õÕWZ¼x±FŒ¡ŠŠ =ñÄŠÕÛo¿ÝÐöÝzþÏõø%÷{Iª¨¨ÐðáÃuÛm·)""BUUUÊÊÊÒœ9stäÈ-[¶L’{Ï¿tîßäÎ6`œ…3zã7,ŸÏg½üòË–ÇÇÇ[ýúõ³N:åPeí'//Ïòù|Ök¯½æt)í¦¤¤Äòù|VZZZ“u3f̰z÷îm?~¼aÙáÇ­ÐÐPkéÒ¥íYf›:ÓwpË-·XáááTÕv¾üòË&Ëjjj¬ï}ï{V\\\Ã2·žÿs=~7žû3ùÑ~dõïß¿áïn=ÿgòíïÀkmà|q‹ð,²³³®3f4Z~ë­·êóÏ?×Ш~ø"IDATÎ;ª¬ýY–噹ÀZ:κº:åææ*99YÝ»woXÞ¿ÅÆÆ*;;»½Jlsg;×§×»¥Môîݻɲ®]»jèСúôÓO%¹ûüŸËñŸæ¶s&~¿¿áÏn>ÿgòÍïà4/µóEÀ:‹½{÷jذa jüUEEEI’öíÛçDYŽ˜7ožºté¢=zhÊ”)ÍŽMq»¢¢"ÕÔÔ(::ºÉº¨¨(""B’¤ØØXéá‡Öœ9sÛwpäÈÝqÇš1c†"##eY–¶oß®Ç\ÔÎ;;儃O<ñ„/^¬)S¦håÊ•Mþo|âĉ’äÚó.ÇøðaWž{ÉÐß³gOMœ8Q@@¥¥¥Ú´i“Ö­[§%K–(==]’{Ï¿tnߛۀqí6ãV'VYYiÝu×]Ö¥—^juíÚÕ=z´õÊ+¯8]V»Yµj•5jÔ(«{÷îVpp°Õ»wo+99ÙÚµk—Ó¥wùå—[>ŸÏòù|VPPP£?>|¸a»?üЊ‹‹³ºuëfõèÑÃJJJ²þñ8X¹9gûÊÊʬn¸Áºì²Ë¬ÐÐP«k×®ÖСC­ÔÔTëØ±cN—Þbbbï7_AAA¶uãù?—ãwë¹·,ËZ³fõ¯ÿú¯–ßï·‚ƒƒ-¿ßoÅÆÆZëׯo²­Ï¿eÛwàæ6`=X†1 À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À0€a,ÃX†° #`FÀ0Œ€` À°ÿ½m 1:è!IEND®B`‚HTSeq-0.5.4p3/doc/tss2.py0000664000175000017500000000227012110432433015527 0ustar andersanders00000000000000import HTSeq import numpy from matplotlib import pyplot sortedbamfile = HTSeq.BAM_Reader( "SRR001432_head_sorted.bam" ) gtffile = HTSeq.GFF_Reader( "Homo_sapiens.GRCh37.56_chrom1.gtf" ) halfwinwidth = 3000 fragmentsize = 200 tsspos = set() for feature in gtffile: if feature.type == "exon" and feature.attr["exon_number"] == "1": tsspos.add( feature.iv.start_d_as_pos ) profile = numpy.zeros( 2*halfwinwidth, dtype='i' ) for p in tsspos: window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth - fragmentsize, p.pos + halfwinwidth + fragmentsize, "." ) for almnt in sortedbamfile[ window ]: almnt.iv.length = fragmentsize if p.strand == "+": start_in_window = almnt.iv.start - p.pos + halfwinwidth end_in_window = almnt.iv.end - p.pos + halfwinwidth else: start_in_window = p.pos + halfwinwidth - almnt.iv.end end_in_window = p.pos + halfwinwidth - almnt.iv.start start_in_window = max( start_in_window, 0 ) end_in_window = min( end_in_window, 2*halfwinwidth ) if start_in_window >= 2*halfwinwidth or end_in_window < 0: continue profile[ start_in_window : end_in_window ] += 1 HTSeq-0.5.4p3/doc/tour.rst0000664000175000017500000006334612111631227016023 0ustar andersanders00000000000000.. _tour: ******************** A tour through HTSeq ******************** .. currentmodule:: HTSeq This tour demonstrates the functionality of HTSeq by performing a number of common analysis tasks: - Getting statistical summaries about the base-call quality scores to study the data quality. - Calculating a coverage vector and exporting it for visualization in a genome browser. - Reading in annotation data from a GFF file. - Assigning aligned reads from an RNA-Seq experiments to exons and genes. The following description assumes that the reader is familiar with Python and with HTS data. (For a good and not too lengthy introduction to Python, read the `Python Tutorial` on the Python web site.) .. _`Python Tutorial`: http://docs.python.org/tutorial/ If you want to try out the examples on your own system, you can download the used example files here: `HTSeq_example_data.tgz`_ .. _HTSeq_example_data.tgz: http://www-huber.embl.de/users/anders/HTSeq/HTSeq_example_data.tgz Reading in reads ================ In the example data, a FASTQ file is provided with example reads from a yeast RNA-Seq experiment. The file ``yeast_RNASeq_excerpt_sequence.txt`` is an excerpt of the ``_sequence.txt`` file produced by the SolexaPipeline software. We can access it from HTSeq with :: >>> import HTSeq >>> fastq_file = HTSeq.FastqReader( "yeast_RNASeq_excerpt_sequence.txt", "solexa" ) The first argument is the file name, the optional second argument indicates that the quality values are encoded according to Solexa's specification. If you omit it, the default "phred" is assumed, which means the encoding originally suggested by the Sanger Institute. (A third option is "solexa_old", for data from the SolexaPipeline prior to version 1.3.) The variable ``fastq_file`` is now an object of class :class:`FastqReader`, which refers to the file:: >>> fastq_file When used in a ``for`` loop, it generates an iterator of objects representing the reads. Here, we use the ``islice`` function from ``itertools`` to cut after 10 reads. :: >>> import itertools >>> for read in itertools.islice( fastq_file, 10 ): ... print read CTTACGTTTTCTGTATCAATACTCGATTTATCATCT AATTGGTTTCCCCGCCGAGACCGTACACTACCAGCC TTTGGACTTGATTGTTGACGCTATCAAGGCTGCTGG ATCTCATATACAATGTCTATCCCAGAAACTCAAAAA AAAGTTCGAATTAGGCCGTCAACCAGCCAACACCAA GGAGCAAATTGCCAACAAGGAAAGGCAATATAACGA AGACAAGCTGCTGCTTCTGTTGTTCCATCTGCTTCC AAGAGGTTTGAGATCTTTGACCACCGTCTGGGCTGA GTCATCACTATCAGAGAAGGTAGAACATTGGAAGAT ACTTTTAAAGATTGGCCAAGAATTGGGGATTGAAGA Of course, there is more to a read than its sequence. The variable ``read`` still contains the tenth read, and we may examine it:: >>> read A :class:`Sequence` object has two slots, called :attr:`seq ` and :attr:`name `. This here is a :class:`SequenceWithQualities`, and it also has a slot :attr:`qual `:: >>> read.name 'HWI-EAS225:1:10:1284:142#0/1' >>> read.seq 'ACTTTTAAAGATTGGCCAAGAATTGGGGATTGAAGA' >>> read.qual array([33, 33, 33, 33, 33, 33, 29, 27, 29, 32, 29, 30, 30, 21, 22, 25, 25, 25, 23, 28, 24, 24, 29, 29, 29, 25, 28, 24, 24, 26, 25, 25, 24, 24, 24, 24]) The values in the quality array are, for each base in the sequence, the Phred score for the correctness of the base. As a first simple example for the use of HTSeq, we now calculate the average quality score for each position in the reads by adding up the ``qual`` arrays from all reads and the dividing by the number of reads. We sum everything up in the variable ``qualsum``, a ``numpy`` array of integers:: >>> import numpy >>> len( read ) 36 >>> qualsum = numpy.zeros( len(read), numpy.int ) Then we loop through the fastq file, adding up the quality scores and counting the reads:: >>> nreads = 0 >>> for read in fastq_file: ... qualsum += read.qual ... nreads += 1 The average qualities are hence:: >>> qualsum / float(nreads) array([ 31.56838274, 30.08288332, 29.4375375 , 29.00432017, 28.55290212, 28.26825073, 28.46681867, 27.59082363, 27.34097364, 27.57330293, 27.11784471, 27.19432777, 26.84023361, 26.76267051, 26.44885795, 26.79135165, 26.42901716, 26.49849994, 26.13604544, 25.95823833, 25.54922197, 26.20460818, 25.42333693, 25.72298892, 25.04164167, 24.75151006, 24.48561942, 24.27061082, 24.10720429, 23.68026721, 23.52034081, 23.49437978, 23.11076443, 22.5576223 , 22.43549742, 22.62354494]) If you have `matplotlib`_ installed, you can plot this. .. _matplotlib: http://matplotlib.sourceforge.net/ .. doctest:: >>> from matplotlib import pyplot >>> pyplot.plot( qualsum / nreads ) #doctest:+ELLIPSIS [] >>> pyplot.show() #doctest:+SKIP .. image:: qualplot.png This is a very simple way of looking at the quality scores. For more sophisticated quality-control techniques, see the Chapter :ref:`qa`. What if you did not get the ``_sequence.txt`` file from your core facility but instead the ``export.txt`` file? While the former contains only the reads and their quality, the latter also contains the alignment of the reads to a reference as found by Eland. To read it, simply use .. doctest:: >>> alignment_file = HTSeq.SolexaExportReader( "yeast_RNASeq_excerpt_export.txt" ) #doctest:+SKIP ``HTSeq`` can also use other alignment formats, e.g., SAM:: >>> alignment_file = HTSeq.SAM_Reader( "yeast_RNASeq_excerpt.sam" ) If we are only interested in the qualities, we can rewrite the commands from above to use the ``alignment_file``:: >>> nreads = 0 >>> for aln in alignment_file: ... qualsum += aln.read.qual ... nreads += 1 We have simple replaced the :class:`FastqReader` with a :class:`SolexaExportReader`, which iterates, when used in a ``for`` loop, over :class:`SolexaExportAlignment` objects. Each of these contain a field :attr:`read ` that contains the :class:`SequenceWithQualities` object, as before. There are more parses, for example the :class:`SAM_Reader` that can read SAM files, and generates :class:`SAM_Alignment` objects. As all :class:`Alignment` objects contain a :attr:`read ` slot with the :class:`SequenceWithQualities`, we can use the same code with any alignment file for which a parser has been provided, and all we have to change is the name of the reader class in the first line. The other fields that all :class:`Alignment` objects contain, is a Boolean called :attr:`aligned ` that tells us whether the read has been aligned at all, and a field called :attr:`iv ` (for "interval") that shows where the read was aligned to. We use this information in the next section. Reading and writing BAM files ============================= HTSeq exposes the samtools API trough pysam, enabling you to read and write BAM files. A simple example of the usage is given here: .. doctest:: >>> bam_reader = HTSeq.BAM_Reader( "SRR001432_head_sorted.bam" ) >>> for a in itertools.islice( bam_reader, 5 ): # printing first 5 reads ... print a [*FIXME*] The following is currently broken, likely due to a bug in pysam. .. doctest:: >>> bam_writer = HTSeq.BAM_Writer.from_BAM_Reader( "region.bam", bam_reader ) #set-up BAM_Writer with same header as reader #doctest: +SKIP >>> for a in bam_reader.fetch( region = "1:249000000-249200000" ): #fetching reads in a region #doctest: +SKIP ... print "Writing Alignment", a, "to file", bam_writer.filename ... bam_writer.write( a ) >>> bam_writer.close() #doctest: +SKIP Genomic intervals and genomic arrays ==================================== Genomic intervals ----------------- At the end of the previous section, we looped through a SAM file. In the for loop, the :class:`SAM_Reader` object yields for each alignment line in the SAM file an object of class :class:`SAM_Alignment`. Let's have closer look at such an object, still found in the variable ``aln``: .. doctest:: >>> aln Every alignment object has a slot ``read``, that contains a :class:`SequenceWithQualities` object as described above .. doctest:: >>> aln.read >>> aln.read.name 'HWI-EAS225:1:11:76:63#0/1' >>> aln.read.seq 'ACTGTAAATACTTTTCAGAAGAGATTTGTAGAATCC' >>> aln.read.qual array([33, 33, 33, 33, 31, 33, 30, 32, 33, 30, 29, 33, 32, 32, 32, 31, 32, 31, 29, 28, 30, 28, 30, 24, 28, 30, 28, 26, 24, 29, 24, 23, 23, 27, 25, 25]) Furthermore, every alignment object has a slot ``iv`` (for "interval") that describes where the read was aligned to (if it was aligned). To hold this information, an object of class :class:`GenomicInterval` is used that has slots as follows: .. doctest:: >>> aln.iv >>> aln.iv.chrom 'IV' >>> aln.iv.start 246048 >>> aln.iv.end 246084 >>> aln.iv.strand '+' Note that all coordinates in HTSeq are zero-based (following Python convention), i.e. the first base of a chromosome has index 0. Also, all intervals are half-open, i.e., the ``end`` position is not included. The strand can be one of ``'+'``, ``'-'``, and ``'.'``, where the latter indicates that the strand is not defined or not of interest. Apart from these slots, a :class:`GenomicInterval` object has a number of convenience functions, see the reference. Note that a SAM file may contain reads that could not be aligned. For these, the `iv` slot contains `None`. To test whether an alignment is present, you can also query the slot `aligned`, which is a Boolean. Genomic Arrays -------------- The :class:`GenomicArray` data structure is a convenient way to store and retrieve information associated with a genomic position or genomic interval. In a GenomicArray, data (either simple scalar data like a number) or can be stored at a place identified by a GenomicInterval. We demonstrate with a toy example. Assume you have a genome with three chromosomes with the following lengths (in bp): .. doctest:: >>> chromlens = { 'chr1': 3000, 'chr2': 2000, 'chr1': 1000 } We wish to store integer data (typecode "i") .. doctest:: >>> ga = HTSeq.GenomicArray( chromlens, stranded=False, typecode="i" ) Now, we can assign the value 5 to an interval: .. doctest:: >>> iv = HTSeq.GenomicInterval( "chr1", 100, 120, "." ) >>> ga[iv] = 5 We may want to add the value 3 to an interval overlapping with the previous one: >>> iv = HTSeq.GenomicInterval( "chr1", 110, 135, "." ) >>> ga[iv] += 3 .. doctest:: To see the effect of this, we read out an interval encompassing the region that we changed. To display the data, we convert to a list: .. doctest:: >>> iv = HTSeq.GenomicInterval( "chr1", 90, 140, "." ) >>> list( ga[iv] ) #doctest: +NORMALIZE_WHITESPACE [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0] It would be wasteful to store all these repeats of the same value as it is displayed here. Hence, GenomicArray objects use by default so-called StepVectors that store the data internally in "steps" of constant value. Often, reading out the data that way is useful, too: .. doctest:: >>> for iv2, value in ga[iv].steps(): ... print iv2, value ... chr1:[90,100)/. 0 chr1:[100,110)/. 5 chr1:[110,120)/. 8 chr1:[120,135)/. 3 chr1:[135,140)/. 0 If the steps become very small, storing them instead of just the unrolled data may become inefficient. In this case, GenomicArrays should be instantiated with storage mode ``ndarray`` to get a normal numpy array as backend, or with storage mode ``memmap`` to use a file/memory-mapped numpy array (see reference for details). In the following section, we demonstrate how a GenomicArray can be used to calculate a coverage vector. In the section after that, we see how a GenomicArray with type code 'O' (which stands for 'object', i.e., any kind of data, not just numbers) is useful to organize metadata. Calculating coverage vectors ============================ By a "coverage vector", we mean a vector (one-dimensional array) of the length of a chromosome, where each element counts how many reads cover the corresponding base pair in their alignment. A GenomicArray can conveniently bundle the coverage vectors for all the chromosomes in a genome. Hence, we start by defining a :class:`GenomicArray`: >>> cvg = HTSeq.GenomicArray( "auto", stranded=True, typecode='i' ) Instead of listing all chromosomes, we instruct the GenomicArray to add chromosome vectors as needed, by specifiyng ``"auto"``. As we set ``stranded=True``, there are now two chromosome vectors for each chromosome, all holding integer values (``typecode='i'``). They all have an "infinte" length as we did not specify the actual lengths of the chromosomes. To build the coverage vectors, we now simply iterate through all the reads and add the value 1 at the interval to which each read was aligned to:: >>> alignment_file = HTSeq.SAM_Reader( "yeast_RNASeq_excerpt.sam" ) >>> cvg = HTSeq.GenomicArray( "auto", stranded=True, typecode='i' ) >>> for alngt in alignment_file: ... if alngt.aligned: ... cvg[ alngt.iv ] += 1 We can plot an excerpt of this with: .. doctest:: >>> pyplot.plot( list( cvg[ HTSeq.GenomicInterval( "III", 200000, 500000, "+" ) ] ) ) #doctest:+ELLIPSIS [] However, a proper genome browser gives a better impression of the data. The following commands write two BedGraph (Wiggle) files, one for the plus and one for the minus strands:: >>> cvg.write_bedgraph_file( "plus.wig", "+" ) >>> cvg.write_bedgraph_file( "minus.wig", "-" ) These two files can then be viewed in a genome browser (e.g. IGB_), alongside the annotation from a GFF file (see below). .. _IGB: http://igb.bioviz.org/ Counting reads by genes ======================= As the example data is from an RNA-Seq experiment, we want to know how many reads fall into the exonic regions of each gene. For this purpose we first need to read in information about the positions of the exons. A convenient source of such information are the GTF files from Ensembl_ (to be found here_). .. _Ensembl: http://www.ensembl.org/index.html .. _here: ftp://ftp.ensembl.org/pub/current_gtf/ These file are in the `GTF format`_, a tightening of the `GFF format`_. HTSeq offers the :class:`GFF_Reader` class to read in a GFF file: .. _`GTF format`: http://mblab.wustl.edu/GTF22.html .. _`GFF format`: http://www.sanger.ac.uk/resources/software/gff/spec.html >>> gtf_file = HTSeq.GFF_Reader( "Saccharomyces_cerevisiae.SGD1.01.56.gtf.gz", ... end_included=True ) The GFF format is, unfortunately, a not very well specified file format. Several standard documents exist, from different groups, and they even contradict each other in some points. Most importantly, it is unclear whether a range specified in a GFF line is supposed to include the base under the "end" position or not. Here, we specied the this file does include the end. Actually, this is the default for GFF_Reader, so it would not have been necessary to specify it. (Hint, if you are unsure about your GFF file: The length of most coding exons is divisible by 3. If start-end is divisible by 3, too, end is not included, if the division leaves a remainder of two, end is included.) We iterate through this file as follows: >>> for feature in itertools.islice( gtf_file, 10 ): ... print feature ... 1523 (strand '+')> 1520 (strand '+')> 254 (strand '+')> 1523 (strand '+')> 1885 (strand '-')> 1888 (strand '-')> 3004 (strand '-')> 1885 (strand '-')> 3816 (strand '+')> 3813 (strand '+')> The ``feature`` variable is filled with objects of class :class:`GenomicFeature`. If you compare the coordinated with the original file, you will notice that the GFF_Reader has subtracted one from all starts. This is because all file parsers in HTSeq adjust coordinates as necessary to fit the Python convention, which is that indexing starts with zero and the end is not included. Hence, you can immediately compare coordinates from different data formats without having to worry about subtleties like the fact that GFF is one-based and SAM is zero-based. As with all Python objects, the **dir** function shows us the slots and functions of our loop variable **feature** and so allow us to inspect what data it provides: .. doctest:: >>> dir( feature ) #doctest:+NORMALIZE_WHITESPACE,+ELLIPSIS ['__class__', ..., '__weakref__', 'attr', 'frame', 'get_gff_line', 'iv', 'name', 'score', 'source', 'type'] Ignoring the attributes starting with an underscore, we can see now how to access the information stored in the GFF file. The information from the columns of the GFF table is accessible as follows:: >>> feature.iv >>> feature.source 'protein_coding' >>> feature.type 'CDS' >>> feature.score '.' The last column (the attributes) is parsed and presented as a dict: .. doctest:: >>> feature.attr #doctest:+NORMALIZE_WHITESPACE {'exon_number': '1', 'gene_id': 'R0030W', 'transcript_name': 'RAF1', 'transcript_id': 'R0030W', 'protein_id': 'R0030W', 'gene_name': 'RAF1'} The very first attribute in this column is usually some kind of ID, hence it is stored in the slot :attr:`name `: >>> feature.name 'R0030W' To deal with this data, we will use a :class:`GenomicArray`. A GenomicArray can store not only numerical data but also arbitrary Python objects (with `typecode` `'O'`). Hence, we can assign those features that correspond to exons, to steps in the GenomicArray:: >>> exons = HTSeq.GenomicArray( "auto", stranded=False, typecode='O' ) >>> for feature in gtf_file: ... if feature.type == "exon": ... exons[ feature.iv ] = feature Now, we can ask what exons occur in a certain interval:: >>> iv = HTSeq.GenomicInterval( "II", 120000, 125000, "." ) >>> list( exons[iv].steps() ) #doctest:+NORMALIZE_WHITESPACE [(, 119380 (strand '-')>), (, None), (, 122754 (strand '-')>), (, None)] However, our RNA-Seq experiment was not strand-specific, i.e., we do not know whether the reads came from the plus or the minus strand. This is why we defined the GenomicArray as non-stranded (``stranded=False`` in the instantiation of ``exons`` above), instructing it to ignore all strand information. An issue with this is that we now have many overlapping genes and the simple assignment ``exons[ feature.iv ] = feature`` is overwriting, so that it is not clear which feature we set. The proper solution is to store not just single features at an interval but sets of all features which are present there. A specialization of :class:`GenomicArray`, :class:`GenomicArrayOfSets` is offered to simplify this:: >>> exons = HTSeq.GenomicArrayOfSets( "auto", stranded=False ) We populate the array again with the feature data. This time, we use the ``+=``, which, for a GenomicArrayOfSets, does not mean numerical addition, but adds an object without overwriting what might already be there. Instead, it uses sets to deal with overlaps. (Also, we only store the gene name this time, as this will be more convenient later). >>> for feature in gtf_file: ... if feature.type == "exon": ... exons[ feature.iv ] += feature.name Assume we have a read covering this interval:: >>> iv = HTSeq.GenomicInterval( "III", 23850, 23950, "." ) Its left half covers two genes (YCL058C, YCL058W-A), but its right half only YCL058C because YCL058W-A end in the middle of the read:: >>> list( exons[iv].steps() ) #doctest:+NORMALIZE_WHITESPACE [(, set(['YCL058C', 'YCL058W-A'])), (, set(['YCL058C']))] Assuming the transcription boundaries in our GTF file to be correct, we may conclude that this read is from the gene that appears in both steps and not from the one that appears in only one of the steps. More generally, whenever a read overlaps multiple steps (a new step starts wherever a feature starts or ends), we get a set of feature names for each step, and we have to find the intersection of all these. This can be coded as follows:: >>> intersection_set = None >>> for iv2, step_set in exons[iv].steps(): ... if intersection_set is None: ... intersection_set = step_set.copy() ... else: ... intersection_set.intersection_update( step_set ) ... >>> print intersection_set set(['YCL058C']) When we look at the first step, we make a copy of the steps (in order to not disturb the values stored in ``exons``.) For the following steps, we use the **intersection_update** method Python's standard **set** class, which performs a set intersection in place. Afterwards, we have a set with precisely one element. Getting this one element is a tiny bit cumbersome; to access it, one needs to write:: >>> list(intersection_set)[0] 'YCL058C' In this way, we can go through all our aligned reads, calculate the intersection set, and, if it contains a single gene name, add a count for this gene. For the counters, we use a dict, which we initialize with a zero for each gene name:: >>> counts = {} >>> for feature in gtf_file: ... if feature.type == "exon": ... counts[ feature.name ] = 0 Now, we can finally count:: >>> sam_file = HTSeq.SAM_Reader( "yeast_RNASeq_excerpt.sam" ) >>> for alnmt in sam_file: ... if alnmt.aligned: ... intersection_set = None ... for iv2, step_set in exons[ alnmt.iv ].steps(): ... if intersection_set is None: ... intersection_set = step_set.copy() ... else: ... intersection_set.intersection_update( step_set ) ... if len( intersection_set ) == 1: ... counts[ list(intersection_set)[0] ] += 1 We can now conveniently print the result with: .. doctest:: >>> for name in sorted( counts.keys() ): ... print name, counts[name] #doctest:+ELLIPSIS 15S_rRNA 0 21S_rRNA 0 HRA1 0 ... YPR048W 2 YPR049C 3 YPR050C 0 YPR051W 1 YPR052C 1 YPR053C 5 YPR054W 0 ... tY(GUA)M2 0 tY(GUA)O 0 tY(GUA)Q 0 Some aligners can output gapped or spliced alignments. In a SAM file, this in encoded in the CIGAR string. HTSeq has facilities to handle this conveniently, too, with the class :class:`CigarOperation`. Chapter :ref:`count` describes a script which offers some further counting schemes. Mapping structural variants to genes ==================================== If we have performed SNP- or SV-calling on our dataset and end up with a set of structural variations (e.g. snps and indels) we might want to map those to genes to see which genes are potentially influenced by them. Using the previously described :class:`GFF_Reader` we get the :class:`GenomicArray` of exons that we're interested in. >>> exons = HTSeq.GenomicArray( "auto", stranded=False, typecode='O' ) >>> for feature in gtf_file: ... if feature.type == "exon": ... exons[ feature.iv ] = feature If our variant calls are in a `VCF`_-file we can use the :class:`VCF_Reader` to extract the :class:`VariantCall` objects describing our snps and indels and start mapping them to our genes. .. _`VCF`: http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-40 *FIXME*: We need to include this example file! >>> vcfr = HTSeq.VCF_Reader( "00-All.vcf.gz" ) #doctest: +SKIP >>> vcfr.parse_meta() #doctest: +SKIP >>> vcfr.make_info_dict() #doctest: +SKIP >>> for vc in vcfr: #doctest: +SKIP ... print list( exons[vc.pos] ) And much more ============= This tour was only meant to give an overview. There are many more tasks that can be solved with HTSeq. Have a look at the reference documentation in the following pages to see what else is there. HTSeq-0.5.4p3/doc/install.rst0000664000175000017500000001146612134100177016474 0ustar andersanders00000000000000.. _install: **************************** Prequisites and installation **************************** HTSeq is available from the `Python Package Index (PyPI)`_. Download HTSeq from the .. _`Python Package Index (PyPI)`: http://pypi.python.org/ `HTSeq package download page on PyPI`_, .. _`HTSeq package download page on PyPI`: http://pypi.python.org/pypi/HTSeq where you will find various version of the package. To use HTSeq, you need at least version 2.5 of Python_ (Python 3 does not work yet), together with NumPy_, a commonly used Python package for numerical calculations, and matplotlib_, a plotting library. .. _Python: http://www.python.org/ .. _NumPy: http://numpy.scipy.org/ .. _matplotlib: http://matplotlib.org/ HTSeq can be installed like any other Python package. For users unfamiliar with this, more detailled instructions are given below. Installation on Linux ===================== Make sure that you the standard GNU build environment installed, as well as Python together with its development headers and numpy and matplotlib. Users of Ubuntu Linux simply type:: sudo apt-get install build-essential python2.7-dev python-numpy python-matplotlib This command installs the required packages as listed (or simply does nothing if they are already installed. For users of RedHat or RedHat-derived distros (Fedora, CentOS), the equivalent command seems to be (untested):: sudo yum groupinstall "Development Tools" sudo yum install python-devel numpy python-matplotlib To install HTSeq itself, download the *source* package from the `HTSeq PyPI page`_, unpack the tarball, go into the directory with the unpacked files and type there .. _`HTSeq PyPI page`: http://pypi.python.org/pypi/HTSeq :: python setup.py install --user to install HTSeq for the current users. To make HTSeq available to all users, use instead:: python setup.py build sudo python setup.py install To test the installation, change to another director than the build directory, start Python (by typing ``python``) and then try whether typing ``import HTSeq`` causes an error meesage. Installation on MacOS X ======================= Mac users should install NumPy as explained here_ in the NumPy/SciPy documentation. Note that you need to install Xcode to be able to compile NumPy. Due to the mess that Apple recently made out of Xcode, the whole process may be a slight bit more cumbersome than necessary, especially if you work with OSX Lion, so read the instructions carefully. .. _here: http://www.scipy.org/Installing_SciPy/Mac_OS_X If you want to produce plots or use htseq-qa, you will also need matplotlib. (For htseq-count, it is not required.) There seems to be a binary package (a "Python egg") available on the matplotlib SourceForge page. To install HTSeq itself, download the *source* package from the `HTSeq PyPI page`_, unpack the tarball, go into the directory with the unpacked files and type there: .. _`HTSeq PyPI page`: http://pypi.python.org/pypi/HTSeq :: python setup.py build to compile HTSeq. If you get an error regarding the availability of a C compiler, you may need to set environment variables to point Python to the . The NumPy/SciPy installation instructions above cover this topic well and apply here, too, so simply do the same as you did to install NumPy. Once building has been successful, use:: python setup.py --user to install HTSeq for the current users. To make HTSeq available to all users, use instead:: python setup.py build sudo python setup.py install To test the installation, change to another director than the build directory, start Python (by typing ``python``) and then try whether typing ``import HTSeq`` causes an error meesage. MS Windows ========== If you have not yet installed Python, do so first. You can find an automatic installer for Windows on the `Python download page`_. Make sure to use Python 2.7, not Python 3.3. .. _`Python download page`: http://www.python.org/getit/ Then install the newest version of NumPy. Look on `NumPy's PyPI page`_ for the automatic installer. .. _`NumPy's PyPI page`: https://pypi.python.org/pypi/numpy If you want to produce plots or use htseq-qa, you will also need matplotlib. (For htseq-count, it is not required.) Follow the installation instructions on their web page. To install HTSeq itself, simply download the Windows installer from the `HTSeq download page`_ and run it. .. _`HTSeq download page`: http://pypi.python.org/pypi/HTSeq To test your installation, start Python and then try whether typing ``import HTSeq`` causes an error meesage. If you get the error message "ImportError: DLL load failed", you are most likely missing the file MSVCR110.DLL on your system, which you can get by downloading and installing the file "vcredist_x86.exe" from `this page`_. .. _`this page`: http://www.microsoft.com/en-us/download/details.aspx?id=30679 HTSeq-0.5.4p3/doc/qa_example.png0000664000175000017500000026410112110432433017107 0ustar andersanders00000000000000‰PNG  IHDR XE„Éd pHYsdd–ÅÝ vpAg XRp¡€IDATxÚì½y|TÕýÿÿžì„UA–THET„Ä ÜÀ¤.µ‚µ ¶Z—ª‰~¤j]šÔŠXk1± ­{"(*ŠMD@@Є]$a•²ïóûãõ»ßœps'wfîd&Éëùx87wÎ=÷Üå¼Ïë¼ßïc³Ûív»]!„B!„BñIü¼]B!„B!„BA‹B!„B!„ø4°!„B!„BˆOC‹B!„B!„ø4°!„B!„BˆOC‹B!„B!„ø4°!„B!„BˆOC‹B!„B!„ø4°!„B!„BˆOC‹B!„B!„ø4°!„B!„BˆOàí Bi&?????ßâââââ⢢¢¢¢¢¼}6­S\\\\\\¨€í ¨9ÎÂÛ55{.@½v111111q ž8¢Ñ>Ö¶aiiiii©z¥Ôsæ…ZᯎÏà®p§5¼õDÕͨ>¾s.íW;Kzzzzzºzw%%%%%%¥¤¤¤¤¤x«VƒììììììÜÜÜÜÜ\laÛBñ!ì„B|÷ßêyyyyyyÞ>ÖIKKKKK3s¢{»¾Öœ †ýíy\€ÁgIIIII‰;ÇÕ –Œö× OhÔĵ³(*****r­5pGa®/ÇZpŽFÒžÑê çbÕ]•••••• €’­ª§þî²¶ü®Œþ`ÛBñBH!ÄãÀc"33333ÓÌþðÐñv­Cõ S·Ã“%99999¹ýkO ÷IBÝßý5Åõ¾„(Á5ï!”ïÚ½_Á»$66666ß­mm€61ã_æíy.®ÝÕª÷Ðûâ¹äTU 3’ !„Ò™`!!„øðÎÐoOLLLLLT·ddddddèýbÔ-4ªáZ@ò™ø©AøÊAùŽ… ýð³ú8 lA9îª,F¨Ajj­ÐfÎË3žð Ò_½`ç995QïýÑ­ MÅUSKÆw´Z,55555Uý-~å8å«÷ƒ^ S…#_!µõÁ¯Tñ õ´Vþ0õÜióö<—ö¼«Õ§LÿÄ©g‡Vűàw†ªw”þ¬Í”‰-úvS8”`$äµÏQôGtç½ð[]]»šæk‹³‹ÑaTC×ú¯ö¿.„BÚ o»€BiýÛÛq¨ ùP Ç!fØn4°ÑÔíú} î„:š9;£ó²êŒ““““““£–`UP¤þÜõ¡|F2¨ûGziÃ(KŽ6èìYK½æËA°›~Š:»ß&ú°A£»Ô|¡·ÎÅ3wµyD=;ý¯TITßzfBÍ— à!¨J¨ú3Õ‡L¶ÏQŒî=íó>7ƒÞgÓ}ùî÷_íy]!„´'°!¤ 7©Í X :ôF¼ÑÅ(q¯ãy~}iúA‘Z7ìá±ãlMú:C®¯•^09{F*ØàŠ`¤/ͪ<2úúãXi fÚÁp¾f†—î‹5Ž[Ò|9Žïk¯ D7l÷D›xú\Ô«ìì]m•€åøŽrMÀrŒÿõʶçQÜï•ÜyûéÁ;ÜèŠU˜v,`¹ÖµÏu!„ÒþPÀ"„€Þ˜v,`aði$é `Ô}Œ!˜©Æ>H mf8aäd4З`Tý¬¸~0†£[{F*ŽKÖúÅ8›þܨ•<]Ç-æš  t•ãXôÑûwÚAo«­­?–U–'ÎEÅ»ÚÙs1:„3<¹hU<¡® Xª? ÑÛ"…zDÇ-ì飸ÿÞs\Žûo?3O„Q 8¢þ\Üï¿ÚçêBi˜‹B:!0Ö‘­™D×#JAÝ_ŸËFŸµJ]ûL= ¶8Îûƒá†ØÓ(Ëò’¨¥a«¯Žž« nWÏÈ(”;g¤b”w [ÔÛæÃj̃³p\äP3 º¥hyµµU)Ê|i(Áq›«ù\«³µ‹ 45çÎZöè <½Ðwïj\k½_›;eêƒÈP¦únÁqõÏ”·Žâþ{ï^kßçŽÑŸ‘úÎW3v©~Uúst§ÿòÖÕ'„âi(`BH'‚…'Vþr¿ÕsDM$ŒáŠ:Hv\3’‡§Ïè3§`x¯JØ‚’µC#”¦z=  ±fZÉLúsgÁ0ÃBõ*`ðé¬Lf4hTC¥ŒZÍc$¸Sš~ðŒdçF¿RWi4ʹÓþç¢Ç»wuû$ÌÖÅ«Z{÷ß{Às Î÷ú,¨‰ØÕw>îUõDÿeTOu ײ$„߇!„t*ô‹ÖÃ(‡Àï3¢£££££-ÙñêNF`ТÄ)à¯ÉÉÉÉÉÉfêƒýÍxè}€çH’é×ãó´× P×ùRϺ}ŽîzÎZp÷ª~CÀÚ•×ÌÈ j\°Úç\ôx÷®&ÀÙ÷žÑ_Ýyû©k b‹^€†P[]G¨¾cª°Ž¿z¢ÿ"„Ò9 €E!UÎÀ3Ãl5]®:@ÅŒ:†%fèÒz0èE9ø­BbTŽ>ÜC­:Òûæ¨eyˆ œ‘¨hæŒ ´á\ômeÔžö+Q½Œ';7h U)}Ȫšm͵c©ÞaFû诂z'ûι«îj½t¢Þ™(Y/…=î¿÷ÔrÔ=ÝyûaOøIa ®©*@££õI᪠UFa€®õ_„B:-ÞNÂE!¤môoo£TÐÈs¤ß_Íj[¹6Èן‘³%Xµ‚•kõG›àÞ°öÎt6]·;¿²¶5<‘Ø^þèæ“¸·ÿ¹XuW›Y§R}¦Ì$eWq-‰»™}ôWG_óö?Šûï=wî13‹rèŸ_£zêÅMuõL«ú¯ö¹.„BÚ?g»1B!¾ŒQ€‰:oo>鲚ÄH¨2“™H¿tº8 ލO×#â¯ê@HÍ¥¥ú‹¡uO ꌚæ™?ËsÁqfŽA¡+gxÁˆ+‹ArÇMÒì¹s±ê®F9xÖècå>î¿÷€Uo?3ÕS¿àƒzYÛBé|Ø cy»„B¬GŸ©Ä|ø’Z¾ý $j¨†IŽBúÐ*×Ö~Ò¯f¾uP¤þ a5j  ÎEï¡oawÎ…_€wµïãÎ{½ý¬­§;÷’ûý!„Î,B!†@fR3㨃u^[ÔPµŽ;Ì0/`B!„BÚ&q'„Ò˜ wœÜ¡ÈZÕq¥«öAM~l£DȽ¾Fgj“Ît.„B!€!„C²YJ Z1 iè«OîëZz#œ]С=¾P_£3µIg:B!„ÀBB!„B!„âÓpBB!„B!„âÓPÀ"„B!„B!> ,B!„B!„âÓPÀ"„B!„B!> ,B!„B!„âÓPÀ"„B!„B!> ,B!„B!„âÓPÀ"„B!„B!> ,B!„B!„âÓPÀ"„B!„B!> ,BH'§´´´´´4?????¿°°°°°Ðµ}ˆJ¾‚·ëÒ‘`»B:ìg=û ×`»Ò¹±Ùív»ÝîíjBˆ§€“˜˜˜˜˜˜—————çì>DÅf³Ùl6|g?b¶!¤óÁ~Ö°¿p ¶!z`B!„B!„Ÿ&ÀÛ „ï‡Ùਨ¨¨¨(o׈Bé<°Ÿ%„â>°é0¨ñü1 æK@ 5÷„kåX[+ó æ8 lAì¾)ŒÔ`þWÅ (õq§&Vµ§ZŽkuóÄÙ¹V3WÙýóµêÝôO«;µ"„3øN?ë¹>ˆý¬¾þޝ²ûg ØÏB,ÀNñÔ|0ò²²²²²²Œ:Ñ´´´´´4Çe–”””””¤¤¤¤¤¤½p¬‚‚‚‚‚‚ö©•y’’’’’’¿Çpv8S3õwmPTTTTTdd‚ÃFK½i=מØÓ¨Ô-'''''ÇñÝâÎÙ™Ç|;`OOœ¯ûw—µífæi0¯]kyBQñ~ÖýÖèXìgígÝ?S«î.kÛý,!z`â£`F³^èhU3";;;;;;33333ÛajèËAÂT”†^5&Ô£`OtÿF³‘VÕÊ<¹¹¹¹¹¹¨³¾Vø+Ž‹¹8Ï%…ÅL]rrrrr2ÚÆÚžjK¶çUNMMMMMÅþF{¢ÔF§Þ¬TïýÙ¡µÍŸyÔv€yªÎ¦ê h«Îת»ËªvCqDõiE™êÜ5Ê´ö*Bº&¾ÐÏz¢‡ìgõíฟµêLÕ3b?K± o+h„fôÝvFFFFF†~OÌ¡a£9"utÒF³[ªóÎsµrÌÇýg¤šDz?2«f†qÖŽ÷úBϵ' G3WY=.öt|,}9Ø¢wÔwíÊêÛÁ̸Uç Ü¿»¬m7õXfæ¢]kyBQñ…~ÖªV,ö³æûYk{XÀ~–b-°ñ!ÌÀq'­yèþÊyaFpq¿Vž@Ô©V Xj{:v›WM@O·§*>:¾Ê@5ïT3Ѫ³3Ú˜ã5ó+«Î×<Žï.kÛͱO!ÞÂÓý¬µïRö³úv0Ó϶ ØÏBÌÃBB|÷S¡«i)§Mű`ܨ)-õsYî×JMªGŸ8.åpù.TP÷Ä>Ø_Mj-jÍ·§™ŒžhO´LzzzzzºÑþjû¨ßÍß-æÏÎ<æÓ¯Zu¾Àý»ËÚvÃ>¨O|||||¼Ú ú „÷ñ…~Ö=,`? ÌôÖö°€ý,!ÄZ(`ÒiQ3:l˜/ž“g(Àl! ˜,ØõA õ9,€jyßY›F½RÈéà~9¾svž;_«î.kÛM ¢ÁÙå*`;žeìé‰A!¤ëà›ý¬¯õA]§ŸµêLûYBˆ' €EH—fcK5Œ~dëPgƒÝŸ!'„te|§ŸõÍV_·ÎÝÏZu¦€ý,!ÄPÀ"¤Ó¢vùè€æ-ÕŽ o¡f@ÐooSOmOu^QÝ[ð×öiÕÌ2ª•½±¨¿[Œ~ë]cΪóUqçî²¶ÝÌ 9LñÞíg}³‡]§ŸõD ØÏB¬‚!„„tZ E©îÐÈD fP#ÿ±Åqˆ_{¢æä‚#·ê¥…í0VÔЃöiO=66666V5øð×ö4}Œj…íúyKÕUky¨å =±z·`üÕÈ íXçkÕÝem»©wTœ‚zFêàÍ7åfBHGÁwúYßìa×­óõ³V)`?KñÞ^‘ÒŒ™…¨UÌ<Ë%%%%%%fV!4ZNص2jî8}&þªŠnøîlýÍŸ#j…£è³0ÀÐÁ>Fíà¹ö4ª•ÔS_î£R”ì‰å½Í´ƒµçkÕÝem»™ ÝÅÓêx)qB1ƒ¯õ³î÷°æ¥Â~ÖgÊ~–â løŸBºú\Wèò}Á`}Íc¼]»ÓÁ –g†É¨‘íƒQžÇR¦þ,ÔQó¿mÜ9_kï.÷Û ¿ÕÏ$w”§•Òé(ý¬/ô° ëô³îŸ)ûYBˆUPÀ"„'0³ž#\åᄹDuÙfB!„èaK!Ä1°!Ä yswú?˜Ô0Á1‡˜}y©lB!Ä`K!Ä1°!Ä °b£ãU‘ÓAMVêíZB!¾{XB!Ž¡€E!.¢Ïéà›Ù+!„Ž{XB!z(`B!„B!„ŸÆÏÛ „B!„B!İ!„B!„BˆOC‹ÒEAfüüüüü|£d±¤ë€{÷Caaaaa¡çŽÅ{BÚ¾o‰ ûzB::°éð kÌÌÌÌÌÌLMMMMMÅBÔXÍǵҒ“““““ccccccm6›ÍfC™(_Mªj–»Æ¯ÔP¾ãߢ›ŽŽŽŽŽÆ¯<Ñnê9^„õÁžññññññê¡å=QC´y¢Öi2ó[«®©Z£ÖÀv3WÙ×€!ëγã,j‹yûì !¾Žµ½³j- ”‰ò±™Zu޾ÞÚ61ßnÖѪ;$ÑI|/(((((З““““““ƒ=ãâââââP²ºÜu^^^^^žQMRRRRRR°gQQQQQ‘µí¦žiVVVVV–Ñž8ºþÜõ-:[5ôGÄY´Ï5h+3=‹™ºù¸']{v\C½Ï?„®ŒUor}9Žqܯu޾ÞÚ6qíjºDkûzóuÖ^5OþžŽN{éBT’’’’’’Ч)8Û1ÃpTͽ©WRRRRR¢vÃ0ô¥©R ~¥? j®ÿ­jXxN‰Rp¼§z.8wý©Æºc9Ì5222222Ô67Ó>Ö^Sõº ÝP+ýž0‹;¢‰†Ö@Í÷V£8~"!]kßäè5ЯA~Òï£ö8ÀhÏÎÑ×[Û&f°öˆÖÞ!@--Ïž¸vžƒ}=! X„t*\›YR…yT£=Ññ;žys|t”od<©U b«P}ˆÏjªF!Ì_£ú¨³ÐŽBgQý¿T™ÒŒÑoí5U…3#éª}PfÇwˆù=]C5‚k¸:h[Oø B:.Ö¾ÉÍ¿ U±Ã¨¯ì}½µmbkhíÌìÓ>t¦Ÿ}=!VÁX„8Îåø¯æË×'³D&)ä&€Dâþ±ô¨Y9`ª¹'ôNø*˜OÃ÷b÷k‹Œ h+ý|¬³mîÚ_qEpFl8þà,¸FjædûRó¤lQs9ÞÓq¶2ýqõû¨ÙÐôGAÎ|7ŸV½­Í±BéL¸ß;›ïUÕ=]ëÑ:J_ßžmâé#zÚ~óíßã›éëµ=>ûzB,ÃÛ !ÄJ\óÀÂÌ’jܹU«2ŠãyW½Ó¾:û§þV=º§ó¨çèxOuæÓL€ƒjš¸ïT¯¶³ztóXV]Sõˆh̪AðPŽû3ŸúpEõè8®zu€zêžz¹Íèê˜yvÔTUÎS[C­¹™YÖöÏÇAé(XÛ;›ÇLØ9úzkÛÄZÌÑwˆÚcêûzl±Ê‡¨ý{|ó}®µ=>ûzB¬‚! w:H¸Ü«9#T³@íªÑ©uÕzɵRM5GƒêÁä9·j5c7{ ž¯³–;¦­6¨¾0/`YuMõYÕÌÌñº“WB½‡USU¿§ÞT5³§™@ ý³£¤8{Qïgóa&êY¸Ön„ΊU½³Ô¾Òq¿Ü9úzkÛÄgaæˆÖÞ!b÷ó~¶oÆNö\Ͼž÷áÃCH§ÂKŸæÓ“Å(ÐL•]ŒÒ¸Â´BMpøn•,b¦eœõ¨²JÀR!ýq°Ü¿¦úà ˜¿jÝp½ôs•î_)ÇåègnöTFWßñ¢¶ƒ™•+5RiÔBŒ°¶wv|óK…€ŽÞ×{¢MÚÿˆÖÞ!°C°§z-жª•ÜIißþ=¾™;Äs=>ûzB܇! wBUŠš®Šº™¹&5í¥þ¯1 ØSõ?R Ô-®™¶îXf >÷,5¼Q ΆºMõ–Qûë\3jÍ_)g¯©;–z^fæÞÍtèëÜA%„t<×;;>Šk%tľÞsmÒ>GlŸ;D*c¹ãéÖþ=¾™r<×㳯'Ä}(`Ò©pÍt3ŸÁ|¶ǨBŒÚ…«ó‡jÉî/Bìl˨ƙ³!„®Í«†;ÌÍ<ú5‰°]¬º¦ê•2ãWål»¹s¥ÚSÀrvÖÔY>µ|®ODžî=-Óø~_ßþmbíÛß~ú G×ÊñMËs=>ûzB܇«BZ¬×£šPz`ú¨û¨¿5VÒÁÚ10OÕŽ+¹Ä)¨µÂžÎÑ5T~óçåÚoA©Brrrrrr¢ýú;Øžžžžžž®–fÕ5U]3çåÚ¹w,̬¥îãìÚO]¡ !fð\F]C ¢‰šýÇ:J_ßžmâ‰#¶§ý¦âøX Ïõøìë qoW€ÒµP¥uæÀ€Ó‡­©è—å6ƒjl™YðXÝ ëk аÅqý0Ê$¢o8 êé93H?ä0SC|÷ÍE»Ýi‡|£l#úûÁ±¡ï¾ôI!æÑ‹&xGY+Ót”¾¾=ÛÄ»G´ØEøÞ™úzà‰Ÿ}=!–ám0Bˆ•¸Bèx½½Ó¸yt£4®*j ý_Õ<®µjX8›×À(£“ù5hÔ˜]s7ŸËÚkª[FëþXµN“o†ªí‰»Èª5‰ÔኧU! kßäúP5Ço3×èX}½'ÚÄq_oí­½CÌôÚÖ†Xúf¡'z|öõ„X=°éÀÀ9_Sg,1§‡ù=õWjç ЕffffffbŽ(>>>>>Ûa¡45„Mõ2SÛÔÔÔÔÔT”fäÍ„Ò0ß…ù[ì©ÖÍŒ§’¨3Îíæ¸4=UA)ÍU€!î¸4œ…ZÏÍÂY{Max©áЏӰ§¾´CgšcD»áZ«O¶ãê;{?ÕGÀ5ß=BHgÅÚ79ÊÑ¿sÔ¾IŽbf…;бúzO´‰ã¾ÞÚ#Z{‡d+@šÑ{WᯰÌ÷t Oôøìë ± o+h„×qÍh0* sqfºUtáæg Ò¸aTlwg^T]ðØüº9oŒœäa ¶ÏJsæ=°ªÀt6ßæ0_g~ÞIý•>ù¨;`~³ˆ0;Ì”ŒšèsVÊ€é V]_³¾¨öd6B!ÄZØ×B!„è¡€EZ€W|7šïUƒŒÙ%„Bˆo¾žB! X¤0j§†Uçi9+K!„t,Ø×B!¤#àí ߪÙê,È—‘—————g´O¨‚·Ï˜BHg ¼¼¼¼¼¼¾¾¾¾¾ÞhŸÔÔÔÔÔTkóIuDÜïëZˆ4ðFûvëÖ­[·nÞ>cB!j£} ïíú롱HW›7oÞ¼ys‰Ž_:] 6lذÁÛµð]pŸìÚµk×®]Þ®‹ï‚öA[y».¾ Ÿ5Çt¦»¨¬¬¬¬¬Ì¨ßY¿~ýúõëéIdß|óÍ7ß|ƒV5js\o×Ô›t¦çËsð-íÞEfà]ä˜ÎdWciÔïlÛ¶mÛ¶mj˜<é|Ћ´Ëi»ÿØ0`À€»wïÞ½{··ÏÉÁÌ€c?µ®L¾çOŒ€·c‚‚·kä‹ðYsL×¹‹l6›Ífóv-|«úzÀ¾Þˆ®ó|¹ßÒŽá]dÞEŽé:v5îoׂxz`‘   TA¿šÌÕB!„´?ìë !„Ò¡€Õ…€‘ “Ô(ŒBÛÉÍÍÍÍÍÕœ "„B| Ç=>ûzB!„tDBØ!;1¾«s§PÿŠTµXi…keZZZZZšÞ‰ûgfffff¢œ(˜¹(%`»·ÛƒBél¸Ö׫ûõøìë !„Ò¡€Õ!ѩ߮F8c fM/•­#1äÉ ê>IIIIII0jõ%`mÁèèèèèho·“ï‚6ôv-|ܱœówŒ³OwׄϚcxù2¾Ü×÷èÑ£GΟd8ø|AëÌO(Ÿ/3ð-íÞEfà]äÚÕ¤3a³Ûív»ÝÛÕ ¾‹j"Ç(í¯&Ïc2EB!¾’¸ygûzømAb3gI"Œ¹´Nžþþ}úÛlÁÁÆe>¬IÎ'ÔZÚÉ“'Ož<©Ç 2dÈ!Fe:tèСC555555Ž÷$Îâù¾þÅ_|Q“®@MMMÈ‘#GŽh>Yô¡ „øìëÍ㨯ìñ‰UPÀ"„Bœ]ø„Q[RRRâZY0d33—.ÍÌÌÌüòËÖBÆ@TTxxTTZÚ5פ¥áÓhO²55øÔï£n6,(hذ BC'LˆŒôó‹Œl¹ï²e®/J=iR^žH¿~­™ãȲ´jÕªU«VaËo~ó›ßüæ7F¦ªš’ü©§žzê©§\­±–Å‹¹öÚ Œ0«Ìo'„ï¾Þ<ŽúzÀŸX,B!Ä)²³³³µï˜KÄ–”””gËJNÎÊJNÎÏß¶-??!aĈ„„””Ë/OIIJŠ‹KJRçi³³W®ÌÎÆwÇFí_TV~ñæ`1û:rdpðÈ‘ ˆ9ØýûöïÇ>0pG 5ª5£†©žÓÓEJJ ÷Á¬¬Y`°þîw¿ûÝï~çé«H¬£²rï^‘õë~Xäâ‹çÏomŸÙ³gÏY´hÑ"‘²²²2m{Ïž={ÂÌÛgA!*ìëõ}=`O\ƒ!„b¯0d‘G s³ÈäœQ«©Û¶åç'%ÅÇ'%å䤦æä¨û ¬.>aÔ•¹uk]ÝÖ­0U1×zÝuáá×]§ßó¬³Î: Ÿ0gkj4§ªúÚ8šw52.a®uýúõëׯ;vìØ±cݽb¤ý¨­=vÌø¯È¨µaÆ "±±±±Úç?üðƒæÝ@!¾ûz+ûzÀŸ¸ƒŸ·+@!„tš]k&,²ö ƒÒT›F-¾gdLŸn.­¸ãì[·ÖÖnÝŠï0S&fb[›m?ââââââ°Ž­b@:‘‘"guË-mí©&†/***¢tEñ=Ø×{öøÄ(`B!mƒÆ+ÌY ¼ÕÐ'5Ü mº5&¦w˜˜^½¬X"ýÈ‘††#Gºw÷÷ïÞÝŒTóÀ…Q‹$¯˜•õv½ˆââ^yE$&fÆ oׄBÜ}}{ÀŸ¸,B!¤M`ÎÕŬ,üJÔ}Q\|ü¸6 £Öýú••55iy…ºw÷óëÞÝhO¬R„¼ê§Z‚·˜1,B!¤U`˜Â´ÅjDŽQóe´½JŒZ|bV6>þ¹çâãa¶æçoßžŸÏÌÌ¥K33ccŸx"667·°ÐØ\92(häÈQ£‚ƒGÂÜìûï——¿ÿþÖ­uu[·ªi\þ¹¾þçŸ}-†ÌÊVWWWWW1ƒÍn‡3$!Ö˜˜˜˜˜ˆïyyyyyyÞ®!„t$0C«†`ù혘^½\]„Ëi«!HÛ§¿Ÿ>Þ>ãöÀf³Ùl¶´´´´´´Œ d-!®“žžžžžž™™™™™i·oØ–&2ztÛ­Š¤È™™™™Ú–´´´4- !„tØ×{ŽC»ôÀ"„B|÷Ó»êé:Æ+!„âû°¯'Ä5˜‹B!„´3X~ž9°!„b X„B!¤@NGKÎB!„A‹B!„¸ ’¸›)Ûã⬜!„BHW€9°Ü"?????¿°°°°°0******%ÅÌò«„B!]øaåççç{»&„BéPÀrÈUÉÉÉÉÉÉêŸ ª€…uJKKKKK ¼]wB!„_KÎÃ'‹B!¤mBè4® Keeeeeey]%%%%%%AðÂþÞ®;!„B!„BHǃ– `^W999999®<¨ß?.®9Ëd,oŸ!„BˆµTThÞèm[Ho5q’B!mCË `á;ï÷xB!„Ίy B¬#5•;'ù!„Ò6°œ@õ¨R³_¡ ^F^Z„B!]ÚE„Bq XN z]¥§§§§§퉌W™™™™™™ðÃRÅ/B!„B!„b®Bèð¢JKKKKKƒ8«î“šššššš›››››  Ù²¼]wB!„ßAõÀjÛ«B!„XN“‘‘‘‘‘¡ÊRÅ ÙÙÙÙÙÙº°Ö"ôv­ !„B<‡ãLXj–+HWªg:,B!„´ =°\$I[ñ ¡‚žÎxß.øyA8KPp¿|¬™ˆ3±p^(Ÿù¼!„OÓÑúzX­/_£®3Ȥ „Bq X–a•Aéxx!ÌMlGH#Lϼ¼¼¼¼<×d&„@â(ú¿¢Lø ¥¤¤¤¤¤x¾] !„®ûzB!„= !tÌ…bÞRÝŽ-‰‰‰‰‰‰6›Íf³%'''''ë÷t ̾ªÉã ìv»Ýn‡¡‰c9N0oD¶ĸ¢¢¢¢¢"”C{êMjB!„¸O×ëëáe¥D!„Î ,'€ÉY &¦úW˜zpŇQˆï®™˜z`n”„ «®lˆÔò8.öÔ×Ð1¨-¾£|¬Ÿˆ-(3±¨ƒUÂ!„B@×ëë™”€B!f¡€åª™¨f¿Âv…0.1‡ ÓÛÝ7ÕŒ\úÕ0FÕH5ƒj¡ÎÄ2!„b-¹¯/)qdç蓸B!„8,'0¡TóQ¶Ôïî;áãèŽMOužÖÙYYÔ¦*²cä+ ï†t ‹B!îÓ‘ûúº:GvŽã$î\…B!mÃ$îN 7abªÂ–ºµ™#Ô‚/#£Yý•gBj’<ì¯&eW÷wÊguÖY"ß}÷Ýw"aaaa"sçÎÛ—’Bñ:o_O!„â.Ìå4jö+l‰RÐÏvZµÖÊG@b²‚º M}6.3dd4gžÂÙé¥75 ˜uié}ôÑGE8p@ÛR]]]-2{öìÙ"wÝu×]LëN!¤+Ðyûz3X¹v3!„B:°œâ >̑¼ƒñ‡PA˜†˜É„ÑimZY”†¬[jã„vRòvíƒúÃ,V“ȤöLŠÜ-[¶lim{ppp°æŸÕRóB!fèŒ}½£újßQú|B!¤u(`9jä9žù„ùy 2–‘«¿;XåÛ¥õô\ù-™ní“HžB!®$îàðáü|‘~ýN_[8ž”¢!„BÁBâ#èÓ»Ò%„B|UÀÒ£öæFÒ,pñB!„8‚X.‚€A¤iWóa©¯à«ÅàAs `PÍÆX„B!„B¡€åÙÙÙÙÙÙHÓ^ZÚº—„-äÃÊËËËËËcwgÀ -×p$„B!„BˆCr¤+lÉÉÉÉÉɱëP½c]Bo×Ý÷Qý­à³q„„BHçFõUg !!„BZ‡–À¯ 2¤«¤¤¤¤¤$ýž„Œ…ýÕ0CÒj¡ê­FC–BñeôIÜUTûÇq,À‰+B!„´,IHh{u<#y‹´…jà2!„âË8Nâ®âxBB!„GPÀrU´2ãQ…lYøÎXÆèçZ™ÊB!„B!ÍPÀr‚˜˜˜˜˜˜´´´´´´ääääädäÃ*,lsÃ÷tr-BcÔ AÕ¯‹jB!]uâŠ)!„Ò:\…Ð$_wìi•©`´Ojjjjj*²byûœ:üèE!„tnMò•–VU•–Þyç›oÞyç×_oßþõ×çwæ™ç—•uçYYqqƒÑÃBéPÀ2¬úçyŒÒµ¢å9K!„ø>ÑÑqq"%%§ûMÓÚõìW®–,Ù¼yɭĽ{ æÌIH(-}å&}'„Bº° ¡ÏT{¡ ªr¡jìbЉ„Bˆoä(U‚ ~X§OkA®Òïíïïççïïí³&„BHûÁXħPƒ¸!!„ÒuÀ4Õé=þ!½z ¢ß»±±©©±ÑÛu&„BHûA‹ø,ª¿S¹B!]‘%KþøÇ%Kbbz÷Ö¦µBBCBòó~˜I!„®,âuŒÂáÕz@!„B|º:«û먨°°¨¨ŒŒéÓ32°e„aÃ&L`úvB!¤«A‹øF+µP@!„_Â(‰;c1“ËÑâ-j&¬ââcÇhB!] X†*x».]®EH!„ttŒ¦©\!„Ò5¡€eHº¶@ÌJLLLLLôví:§Ì¬0È@BB!„ˆˆ?N‹BéJPÀr‚ÒÒÒÒÒÒü|zµ' ÚwzÃB!]ÓSè½®è‡E!„t5¼]ß%......;;;;;[õÃÎÊX ªCÌ£fÍ€€Å–$„B|¤r r.lý{fff¦&`5Û¥¥UU-½°5køpoŸ-!„BÚ X†¤¤¤¤¤¤äæææææffœjÆÙ@B»Ýn·Û½}N¾†*¥wU·3„BñMúõKHÙ¶-3SKå¾ukó_Í$qo›„„#òó·mËÏg!!„ÒÕ €eHLLLLLLQQQQQü­ ÞXyyyyyyÞ®cg±i‹ Y !$„B:"ÖX*¥¥••œÖ"„Bº°LÀ¨¨¨¨¨¨oÕÙ¸àV\\\\\ì‰ZA°ƒx‡#¢|W¢5ÚëŒaøRÀ"žcÁ‚ D¾úꫯD8P c!„ïÐUûzíæ3…×UZڵצ¥a =°!„®,'€1§ú^+è÷ô„Ù§æä‚¡‰írTkèÚÑQfjjjjj*Œfõ¯8 L[+|ÐTAÊñÜ,þzz}±‚§Ÿ~úi‘—^zé%‘ŠŠŠ ‘‘uëÖ­Y¾|ùro×Òµè\}½yœóÒ¢!„ÒÕà*„N£š}±±±±±±‰:¢£££££õ¦§;@&SÓÉ »VFFFFF†äèÚQTs6-----M= Yëæ~Õ–1#`®I¬%+++K“®@MMMÈæÍ›7{»n„®Egéë+*<é7hP\\aáÞ½ôË&„BºôÀršäääääd8Û«nö PAMý£Óãb>rXVVVVVŽˆ¿ÂE­°'¶ “—™òñ[˜³H`¯¯³¹à…ãÇ¿ûNû~øp~¾–ØÕ˜ÊxÜKuuuu­ýµ¼¼¼\Û§=ƒh!]—ŽÓ×ëQûzXùùÍ2–ë9°ÔPÁ¨¨°°¨(uEB|ÇvO_B!„xz`9š'&#f)aü%%%%%%á;¶Ã4„Œ¥3tíèøŽ’õû¨æ&êi¾|5ˆÀ¨|s44TVjŸß~;}ºñLìé‹d£šÑÌ„EÜwÖ-))) ÖþІ††‘ØØØX†¯BÚ‡ŽÓ×;‹y g×ÜÅÅÇŽiV|¯†×Z€~X„BH×–¨f",Çû«ûX%`9žeUçi=¢º?Ž…@H›¼Ïœ)¹¾¾¬LdçÎW_mí¯ðm1oÔbOw[’tmà¯ÝK9999"Û¶mÛ&‚l/«V­Z…Àí®KNNNAÀ} !ž¢cöõÞDõÆ"„BHç†!„NàlªT«²_©¥©f«µ¨³¾È޹Yx–aÎ Øù2ŒÚd×®#GDÒÓsrDúõûé'‘=´l®®¡ƒžòq ÃRSSS[®l…ìWê@Q?h„¤Ù Ÿð_€ìå©ç‘â,è¡:ŠìbDÇêëAËl\Û¶‰ˆôêµbELÌ¡C=zxÂÇKï•”—”ä‰#„â;ä+èÿºk×®]»v :tèСޮ)ñ°œ@]`®!`PoØÁUs`yÎõðSóbàÜq¦8/5ƒFË_Ûl~~ÑÑMM '^r‰ÈÈ‘ú“º‡6· 3Ú¼”…6lnUBZ‚Îì¹çž{N$"""Bä²Ë.»L»g }â®nÛƒRO7~…;B|¸|ðÁENžé @º‚xTYYY©m_²dɑѣGÖ|©Ü‘’“’’’4ÉA…sçÎÛrŸï¾ûî;MÒzúé§ŸövËÒUèXEFtœ¾þôýµùùá{m­È'Ÿ8à|O¾¾uo똘^½´ÒFŒHH`,Bé:Ä(èÿŠ xoבxæÀr¬ ¤ÊR³Ô¹JlÏPpÿ¸0:Kôû¨î”ΚòîKl~~ÿO­«³2ÜO=£Ž$B¬æÍ7ß|³¥t¥r×]wÝe]¸ž„†………µü+Ö4|ï½÷Þóv›B:§¯7g§šJK++™X€BéPÀrÈREEEEEE%%%%%%pY´Ûív»ÛÍ$z7:é®"¤¢µú™U˜ÂØG?§jfU#u»±©}/)i}^T=ºycZ5‚[w‰tvÔ5U‚‚‚‚DFŽ9Òê#ânôóókõ-Ú«W¯^ÞnBHÇ£ãôõíΦu‰ +Ò‹Bé:PÀ²˜w®¥%7Bq,dà‚i C©Xt`´ˆ¿&&&&&&ÂkL_>2³P¾º%gÄP=°ŒPMjó³Ç $zh³xñâÅ"þþþþ"‘‘‘‘ÚçÔ©S§:“gÍY~ÿûßÿ^Ë·Ð|çßxã7z»e!ŽÓ×{Õ*(,,,,.>~¼¸ƒF¿áZ„„BHW€9°: 0%á畬 îƒl\îx~åäääää¤*¨…É‹}ÌÍÊZB Fx*?é8àHLLL±Ùl6‘uëÖ­k¹§sâ -4žȲ¿ûÝï~§mÇÀÏ»þ „ŽDÇìëU‚‚¢¢šý¯]™v2{Dx`á;ü°ÔÕ !„Òù €ÕÁ@¶ „(ªNþŽÚøˆ!ÈÑqùX6³¸p߇ k.×FPPsò<˜°ž¾¸µ;¬`Ú2„°+£JWÀýíî€çŸo¼ñÆZݰ´<²eBˆY:B_oDDDLŒÈ¾}¹¹"ùùÅÅš”o=QQaašÔE,B!¤+@«ãé EO®è¤ XΞ ÷ÖSÛ:Jxå•W^Ù»wï^‘ûî»ï>ï‰ Ä ¾&]éÁý Ïøa©kBˆstä¾8ëÃ¥î_XXX˜Ÿ¿kW~~JÊå—·ÂôXIIqq§O˜B!¤óÀX¤Ã¡šÚîøa3fŒÈ3Ï<óŒÈ‚ ˆLœ8q"ƒ}ß—®T `a†ð÷%W«€|ŒgǼ/$ê?sæÌ™Ú“‚§†B¬E}«7¿9£¢ÂÃ[ aª!„Bº°ˆ‡îÙÓxBwPC'\ EÄÐýÈ‘#GZn¯¨¨¨ùûßÿþ÷öo/Ò\#¤ž;wî\MºÂÕ÷eé @ºBð îRxcy´$¤[´'¾c»c† 6L­V¬X±BóXô´Œ…ºA2ƒ,è;R !Äûp-BB!¤ëÀB·P3G8ÞÓÓ! xÓ¸Ö&ªláN.­ÀÀÀ@‘šššš–ÛCBBB¼Ý>]Hk×®]+R[[[«m5jÔ(Mºê(iÑ<ˆO5œÐ[ÒÛã?þxË{¾¬¬¬Lä±Ç{LdÉ’%KZûÕ¾}ûö‰œ8qâDËí••••"/¾øâ‹Úª‹Ö^—{ï½÷^‘·Þzë-‘ººº:M8[ºtéR‘M›6mòFBƒ$î`È÷Ê*-µÛ›{ÖÑ{fB!¤³BËi° 5·..6+ 8N§Ú±ÙD**\˜O×,gAAAA­ýµOŸ>}Ú³¥ˆ¼® nªÒ€€ÕQ¤+•ŒŒŒ íìNXPPPÐ^GG{—Mߪf@›·V¶mÛ¶‰DGGGkO>!Õá9…—Ö /¼ð‚H@@@€È?þñ´&a£¶ø|ÿý÷ßפ+•={öìÑü°:âý@Hç&:ºY ié7mž¸¸¸¸ÂÂmÛV®é×OÄh…Ax`ef~ù¥÷½\ !„âY(`9ä*,h•zÜYĺ³j,`¹?øtGÀ¯àQ2eÊ”)"wÝu×]"ÿú׿þ%ò·¿ýíoZ€ýæÚ›Ífkmû©S§Ny»n®{ï ¬Ko,wÞ¬{ûí·ß}º&ÃAÆ yî¹çžÙ¿ÿ~í¸8G|žqÆgˆ?~ü¸vD-|;vì˜3ùì)]ÒqpMÀÒžñ’oןB!¾,'P—²ÎÉÉÉÉÉa` «ÀÃÂ<‚°\Ë+„¡5€'Ìk\MHWÉÉÉÉ!×RgíïççwZn> cn¿ã‚»ï5œÐÙ¡¤+ýAZ¿~ýz-PõÂ} ÿ/,c–D ëÖ­['2nܸq">øàƒmwáÂ… µ'4ÊW…$ ûàLq,UºUUUUš•ºn#ZC}âð×êêêjíì.¹ä’K¼}5 !¾‚ºa~þöíùùF¾Z„BéèPÀrJWma³jßá‡áʬ§/³mNf ~"ê€Y-‰·!c!àËÚ¼K¨-ê †\´ <­âãããEFŽ9RKÞ9dDH<8;õî2Ïo¼ñFk’¶Üzë­·Š<òÈ#·˜¹Ê3WûàÂ;5÷VXXX˜ÈÊ•+W¶U&<Èpo¼üòË/‹|ñÅ_hÛ]óì „ø>QQQQ……ÇŽmØ€ÇÄôîÝÚóε !„®W!tU´B&,o×È— ìÖMû®Zµ‚XëËl·Ò¢Œü¿P2d, ›áå>ÈtÅW\¡Õäæ›o¾YdæÌ™3­(¿£Ï8\?üðC-¨­sHWç¢zcýùÏþ³î§¿“ñžÔ…û¬&Çœ}öÙgk‚&ä*=· â@Ô4hÐ ‘ž={ö‰ˆˆˆ¹å–[nñÕv[¾|ùr-ùzIIII[ù¶ŒÀÙáQ½) !¾ƒ*`¹“ÄÝ,ôÀ"„® \%V®¼ñF‘º:ŽÊ;;°œ9° ]A´Â÷èèèèèh›C¼]÷öÇϯ9„ÐH w'(Oý­òÌhÈRf€Ð€3|¦ %8 ~uøðáíýÕßßßßÕvèèàÚ¹vu:._ôa€HvO=ÈUð„è““““#2cÆŒšôÕW_}%²oß¾}®JBí‰UA¸¸Cp·àÎá!¾L{ëðÃ*,Ü»—sï„ҵؾýÅEªª¼]Ò0–À‹+š#  9„ÐsZ8ùŽ×"T×bƒà,jjjxʨY~²ŽÞ«W¯^"åååå-“m_pÁx¦}|µ}œÍÕqq,¸Àë­·Þz«­r|'T°ýQsÕá.ê Ò'!]‡˜˜˜˜ÂÂÍ›Eâ⢣Ï>ÛñÞQQááôÃ"„®HTÔ˜1"~~AA""uuÞ®ñ,°œVF‡Iî †û¹?üƼ®Q‘ê݃cÁ—ÊYà9y%666VäÊ+¯¼RäüóÏ?_¤oß¾}E^|ñÅ[®1§&™Æ`[ }šqï¾ûMW탶êjÉì  )üäÉ“'µíÈõä“O>éíú>¸[Ð’¸‹ºBð)!]‡æg9**(("ÂñÞðÀÊÌüòKWÖ&&„Òq:4%EdëÖgŸ±Ù~ùÅÛõ!ž…!„nQ\\\\\œ¯ƒY±4 CMâ®â~HJ@këÛÃZlw_vı$^T«W¯^­e°Bö"5±4D«¢¢¢¢–ÂÞXOíµ×^{M“rÜϱձPÏ×5Ï¸Ž î%\÷Y³fÍÒ>7lذŒ3¨Ï5Óºâ;ÔÖöèá^wB!Ä iVU8 Ú¿¿·ëC< ,§Q³_ÅÆÆÆÆÆ&ê@V¬ôôôôôô®-fAÀòt!PÓãÍÕÔ×Vy÷¬\¹rekÛEz衇Z­Œ€ÿêf´UÀó ŸÞ½'ÕôÛðBêš’ d¬yóæÍÓ>»f;¸ZL]Õ‘iÝ ñNœð÷ s§”ÂÂ^½D¢¢êêÚÊ%ª®Qȵ !¤+±m[³ïmxø AÞ®ñ, !tšääääädxZ%$$$$$Ä)*dfÂH~ <Ñd&«êª—š KMílmË8p`kÛ±ÜwÜq‡óebøl>¨¹µIƒ,räÈ‘#Ú„=ÂßǪÔÚæ§Œ*=⸋ ]á ‚(Üþ÷6!D%444ÔÕß&$$$”–~ø¡HLLuuó²0­Ó»7'!¤kß«]»²³µ@BG™‘Ig€XNY ÒR¹çåååååAœJJJJJJÂwlOIIIIIŒ…`CoŸAû¬Ã‡OŸ µJÀR³h¡…ñ o&ø@Y›èÃãAƒ éÝ»wo‘ž={ö¹êª«®rõXl£¶¨¹êMæ( ÒUMMMö¹wïÞ½"¯¼òÊ+ÖµŒùÖÃ5‚°H‰¸î"ÜQjn5BHWA°èE!]HW`ÄNŠw (`9¤+|7³¡ºOW°‚‚ÚCž€lÑGͬä ï •÷ìÙ³Gä½÷Þ{O䫯¾úJdáÂ… Ý+µEùVåÂD+=ªO–§Q…E5ý6!V¡Èíšo]Bº"j!!„ÎÔ@À80)Is›  XN圷H×Î~e„µ!„ha1Ë—/_Þ¾™•0T¶Êà µUW*TWltààààÖ¶‰<úè£z²}T¬M¨Oˆ¿Å†`UhuP'!*xv.¾øâ‹5é ÙåÆŒ3Æ Q˜t<î½÷wî½×ÛµèjìÜyà€UeEE••ÕÖšÙViiU§ !¤3ß«~ý´OÒU €å111111Èl•U±"!$-¤xÇöÜÜÜÜÜ\:ë½ÕYðt¡^¨²Ûív‘/¾øâ oŸ»kà>ŒåZ6HE¿ ­X±b…È»ï¾û®Èwß}÷ÕŠz¦N:U;–ÊêÕ«W{«eIWbË–-[Zn)+++ùãÿøGo×´sçæçÏ;þš5óç{».¤=@ aaáÞ½Öä‘$„âk@º¢ïU×…«:MVVVVV)HT³Ô} u¥)x»Ö¾ÀO?5”V÷A®Òƒôê"¶8–AõÒU^^^^Ë_á;JCÉðIiö.´‚Çnmû?üðƒ·Û–tnàWèïïïßÚ_á§Iº Ÿ|²aÃ'ŸÔÖÖ×›óß!¾ƒuòduµ™_EE…‡GE•–VVÒ‹B:'DÆ+d¿"] z`¹V,******)))))Áʃv»Ýn·c;¥«–!„§Nmܨ}·JÀzùå—_Öäªðððp‘=zôyÿý÷ß÷ö¹»î Èûa™‘®ô%㯞X¯­©©©©µí $žwõàÁƒ·ö×+¯¼òJo×´ãÆÅÄŒäíºç(.>~\°ââV­Ú¾Ý̯ÔTîôÃ"„Î|¯**Š‹¹æ`W†–ÀKÍE4<B8cÆŒ";vìØQZš›ûÎ;šÜÓ9„ÜQª·”>µ³ÒPý°¬JÐþgžyæ™"~~~~""ƒ ¤%Ø&ÄÓ`I‡Ç{ì1‘iÓ¦MÓn,"Aº ™™Ó§gfvïÚ½»·ëÒÕØ½»ù;2`¶È…ïÞ΄U\¼`H~þĉ"k×Μ© º!„¸,ø^1x°ëÂBC ‘Ž]MÁŽíΖFyKäСæ°2k3‚EEEEefVW¯]›‘!rÓMÞ>Sk· ‘ˆý¹çž{N¤ªªªJËce^º2*XQQQ‘{µ…ж}ûöí"9999"IItî%íÞ»P•zñÔp5ÌμxŽ+/?vÌÛué:`:¤²ÒÇV,x`%$ ÞÞÖ¤«Â©¯/+9ztÅ ‘>ùDä–[<%«Í;w®È3Ï<óŒ. Ûàã?þØj»‹BÚL„””ŠŒMû­kCË$eÏÏÏÏÏÏGx ¶'&bM+ç@h¡·ÏÉ[`mˆòò]»´-ÖxHÁhˆÈÞ½š¥£gV !ôž,HW*v{S“6 ³vÍ,xgÏž={¶HEEE…¶K¸@¬÷DºBi÷ ‘=ô½êêPÀ2$))))) ¾WHÊŽíÌlå;LŸ>oÞôé{÷ž8±w/¶|÷]QÑwßM™òL™²fMzúš5Þ®£û (O¿Þ"òL…†††º7³ª†(ªò“³5LNNNÖä6ú¶ßA¬ññññšh[PPPàíZO ^9ÅÅ" àêhDEuëÖ³§,ô5m£]ñæ4ðíKDÄ!š×•ŠÍ†°zkr€ª@À2Z¤Âª„Òþ@ôÇ'ò^y:A ñu(`’’rú0á„ ŽKÀþ®…š)k ›¯•kÇRÏÂõ£TVZëÄ^QQ[Û<ÓØÌ† ûömØ`m;xÇ«ªUW›[›©-T?,ÈXæ…Zü õDØ Cˆo÷6 NØ9ÿ>32¦OÏÈHOÿë_ÓÓ½]/çè¨}ýé`±óö–÷<°FŽœ=[d÷î·ß±Û5ß«nÝbc=#`Á+-000P¤¦¦¦FÛŽ-毣š­ÌZ1Bq}ûrs5ÑŠ‰Û‰“¸; ;ó!„Îîo†ììììììØØØØØØÔÔÔÔÔÔÌÌÌÌÌL%>>>>>f¨UGÄQœ/kvëvìXûìŒ3pà˜1ž>J{!wÿþýû·ÜޤÔHSí>kaæBÀ2s!äaY˜ëø>꽊»ÉÝ;¹¹……Zð`RR||G gî˜}½ŠšÄYKœ£5ÿ)óX½zÅÄxoBœ¯ÝÞØ(rÎ9< ңǨQ"µµžÔ0itÏ=÷ÜÓr;,ÇÁƒ/û¾ûZÆ<Á´Ìn¹gÏž=­­_¬²m[F†HeåÞ½"55Zö®'Ö®Õ|!¤}ÀÀÒ¥ññ"_|1j”¶¾W¤ XÆ%fP­*¥aÆ&¬º6"2sÁá{ÂvíX8 æcJ©ËyT½¼ÿ  «Ú$.nР¸¸K/:ôÒK±‰Û;ÖpÅêªjï¿ÿþûžI‘Ÿ|âî5šñFÆ+!€Ž…N¨.A@:6ð½‚ü‘”×1}¯:f_ï BB‚ƒýº„Kûúaaè…@<5Í0¾#x©ˆ­=5¼¡õ‹¨`»55G¶¶½±±¶¶ýÃ?IÇGÍXDˆ³,[– ½KªªDüüüýE¶oñEo×ø °ÚŽô6›Íf³©Nõ6‡À½ó™ú\Z®¡f¦0*SÍXõ];ÌY|‡í^ÝB†Œt¿5TÔ@|÷^æ‹Îc?,ÌùãnÄž¾6à!Ä<úpB×åâ äçoÛ¦õ}1x°#÷õ¾&·ð½}íÕ»Jï/€-ðòֳI.U×W…LïXÀ‚w˜Ÿ_ÀiYq±a;„˜a§+WÞ|³Žºpa¯^”A‰9 zÚl§çümjjl9|øë¯½]Câ+0‰{¨kb®sžfÖ"ÄÚ…Ö XêzˆzÔ¹S×fea CzËÉÉÉÉÉñÍàAˆVÁÐ%?ûöüüŽ8÷î`h¤®Nxíµ×^+¡m‰Ì9Iç@¿:a^^^ž·kEœR<°RR.¿<%EõÄé(°¯GŽïš?5êföL[z`mØ——ðè£sçŠìܹs§ÈäÉ“'‹Ì›7ožuµVÃáo¥ÏÕ‚í7¦§·Ìêâ>¨pϨSJè©Ui^_A\hjjhéÞ}Ä‘€€ÐP‘' 5±Ñ£;‹¸I<¤„Âw (uÓ¦'ž¹ðB+Ÿ8ÒùÀÂv{ë«©"“ !"°ÚD•Ÿ`&ÂÈkÿ¹JÈgžsïWC ’\+mÆ 6lÐ|Ö**ŽÁzµµùùII}údg»/í?®™³˜q…€… Xîqï½÷Þ«Íë^}õÕWkKt‡………1lt.ô«^rÉ%—ˆœ{î¹çŠÌž={vk?â[Ü~{JÊí·—–._^ZºvíÚµk×&&þ÷¿Ö-¢Ò>t¬¾´Lú¾k×®]ø·xq¿~ýú¹ćõ5QÆl÷–Xo¾ùúë"Ë–••iß·oß>í»U2–cß+ÈX†0ìwg½?ÈRªO´Š*`©Ë­¨@PƒÜ–˜¸j•ö}Ù²ÄD­žÚTozBT ƒªÒ• d,Bƒ»ÈÏ/0Póà êÞ]$4tÀ‘qãþýoìWLÀèKÁt̘1c:Ïr^ät(`9f,±ê™åízYÎKÍ»áNixqäåÁ‹G&&Š„‡'$ˆÜx£^ijð`BÂðáš–÷ÖêL¼òÊ+¯hßkk›’¦¦¦&o×OIrÕÚµk×jŸ‹-Z£ˆ2–/Ó­Ûe—uë3p`L̦M/¼°i“úWø{»ŽÞÇÚ¾h}=€˜Õ³gÏž"©©Þóꊊ íÞ½´Ôf;}PméÒ¥K­8]ªGr]y ûCrGÀRƒõ“‚°Qñ©°P䚹袬¬–^c&ääˆ|úil¬È÷ß§¦Š\sMAUW‡xH½?üðÃÚ@x1õ艑K·nƉØl~~"v{³•ˆ@T„©â¼kjŽ×Þ?­û¨¦(èÿjÅ*ºÄ×a,ié ž_jv «@™ª0_³|u¹nlñDMœ¯y³P…yZÌ»RÀ²‚õëׯom{hhh¨ùÕ é8`€W___ßr{YYY™È³Ï>û¬·kHZÞ¸Xy°#æ½Ré,}½ë‰Ve­Š‹2ä ‹‹ÃÃ[Ÿt4hÐ +Ú2d,5q»‰°'<° !¹ÞZjÆ+=ðÃÂu„Çj‹á"ä6}ÍQO[¨!|µº2hC5¨oòÄO}(»Ýn÷ŒDˆwÁ;$$$¤µ¿nÚÔÒ£‡ø®ð½£wä¾ÞÔ¾¾Õš@ã\ºzdÂ*.îÝ»¹ó÷oNüÌ3ÏûðCíˆÛ̈nj€!†šî¯+Iè‚ .¸@äú믿^«§ã·+¤+d·´ŠOlñœ5¹Þ¸ ªªªJäƒ>øÀ3Gt5íƒ êsß–ÃAiþõ^3êÊ›@ QÑ‹éúå/Ña'¦i™å¡½Û¹¤¤¤¤¤$J+¡Vj$0VHt\£}ŒPMd3{mŽõøã"vû×_7ow—„„9sð©n¹ç‘””ÿþ7%ŪcBºyyyyv{NNNÞ¾v{FFF†Ýe·ãMˆ7þJ¼CAÁž=xçgd|ùeF†Ñž®õ}íOGéëÕµ˜[þ%...%Ùí6¤¥Ùíï¾ëŒ”–¶paZ®©z4í¹3KFÆ»ï>öÊ)*zôÑY³´¿¤¤¤¤h¥¹z­¾ü2.În_¼8&ÆÕÊË‹Š´öY·Î9‹¤¤$³í‘‘a·ÿö·"ÚOœ((p戇åå¹Z[=ÚUP?ûõë×O;/ÜEêçùçŸ~k¿Âç¬YÍWÙ*ð†híˆ=zôèaõÝ©'Ú u ·Û{öìÙÓnŒŒŒÔÚPíŰýy~þ9+Ë™;–nnT”Ý^[ÛÕ{L<õx7¢%»&êûäÛo;ÇÚ¦µq(él0‰»ÀK5ÚÚ²0L“Ô}ÕÂ[5l‹£GEÜËõp:HÙž–víµ-Ï7!aĈ„z`B\E$‹÷*äƒÔÔÔÔ–k{©ÉqáAγЇo’›[XØ<ر³_Žß×­ˆg½ouËŒZð²i{9…¸¸+~üQûÍ5×\z©ö Ô LxŠ]WWÍ]ß×PóOÁ+ ¥9öAÀ;¾HæÃùo¸áâ‹E6l9qbôhçW„¯|jÔôóÎf«AÍív»]dÚ4‘3ÏY¾\DdëÖǵst6YÁÊ•+Wj廞…­e;ãmU˜[æI¼îºë®sï(îƒóEâjõéƒï¤¾5ÔL<ø-Zû®»îºKä_ÿú׿DvïÞ½[K(1gΜ9"ååùùšï®¾™€/Ü3꺖î<5—ââ D x@¤¾¾¬LÄß?8XdÏž÷ÞIHÀÐùaØ qo+hÄuT·ÿ¢"wf­¤5åßx _?ggbƒ™UÌÖªÛ[›¿%„k–:›¢}¿`Ú´iÓ¼]ÏÎLLÌãÇÄ$%½þz[ó·°y|ßKoöõÆXØ‚vvÅ«5ßjxˆ d3Þ"%%%%C†DFÂÈÊZ±âtOwü°à/`•G <¡ÐJh1Ç æxó˜^0o¾`·ÇÅ èjmq¾ð;s­à+ôç?ûùÙíóç7{„-X`³Ùí/¼pá…mývРAƒZzBkßÑ2®yÈêý˜bbbb´»ŸðóÂ_q-¼EAAAv¾øÌÊrΣç‹¶Rû2ýçý÷_½vÅá{èìu‡¯®5¼T®¸âŠ+´:À¯íå—_~Ù\Éx~quÐ&¾É矮µ€ú™“ÙZ›tVÔ~aïÞœkK§VW€9°ÜB¿‚~Ï¡>¢ðóv{8Æ(5²+äçoßÞœÂöôŒ'êuOB±ä)***5jÔ(‘ššší³¢¢¢B䫯¾úŠ9³ZÃݼHð½‚·Žšý°óÑÑúz_ ;;;;.n÷n-cÖ©l¹ê#o3à¾Ý·/7Wóœr?c‹š^]ÓPlKxÍ8Î{¥1|úù%$ˆîÛçê{ ç‹EîUO ”ï87ê?sæ%—ˆÄÄØí"AAÍ ´ÛEFŽùDÛŽ}bccc5ß+Ü!šw>çÍ›7OóÆÅ¯Ú#nKTÏ)€swœÎߨ=цè˰ҴJx¸ˆÈùç/Y¢mq-W‘ºpî€v^·nÝ:í9yòäIm-ÅO?ýôSã2±Ò"2 ¡5®¸âŠ+´ kžF]HÁ v{ë+¢v¸Ú ± XNq*55555566666V¿ŽOttttt4½·˜Õ(/oîÝ]ÅF]+ ©¥€Ei/0ˆŽŽŽní¯••••ZŠb„¢¨á?*0¸o»í¶ÛÚËønvì˜;W$7·{w‘¯¾ºðB‘>ŠŠr-´!äQQááQQ#x°³cV²Ä:Âî Ãû˜˜˜Ü!­• )ÐYBMDílâvÇ`xyÅ(ݵšÔß|xª3eʼy­•æ,ÝbbfÌÐä¼o¿6Mä“OÔžtXzXî›on¾YäãûôINÞ±C“«ôÔÔ>Ü–†·.®älA›@ÊQ³ÖâÝ;vìYg‰¼ýv¯^";wÞwŸÈêÕÓ¦‰<ÿ|h¨¶î ˆVuŒB]@ ú,ªƒãêkë~¸:ÎôÌ3Ež|RDä•WDDþþw‘°°¦&‘I“òòœ>˜Å}®Šª®0ñ£R]]]-rã7Þ(b³Ùl-?!MâP“ë£Ï}òÉ'ŸlK¢]³æÏ™??0PäÍ7DÞx£W/s `ñ¬J ùlúôéÓ÷×Êlýž =ã ­}ƒ3ò–lê> $ÖÀXNƒlð´ÂŒhœB¡Bffs—fÅ:>¬urÅ·Þ*"²}»û%¶¶Ìv311½zÅÄh+;Öñ^ñ„ŽÌe $`@ &L˜0A3:U_ ·à«ÃÙU>þøãE6mÚ´Idþüùó½}vV±yóSOi¹?T`Ô^sMA™R0‘½revvJÊå—§¤è§1ˆ7Ð˲ð*R×™j{†þ½evKÕï …‘|QC»¬¬¬¬¸¸ÊÊÜÜÖ<°€ù|X‚ÂC Ò•™§yÔ5! éóáÜÑf<°Ôõ 1\ìÝ{ð`í·h+w¬Ó“'·lѾ××——7_Ç:}Ïà`‘õëDÆÿõ¯E†=uJäð᯿ih¨ªñóC†©òr‘O?ÕÄÕsÇ<¸CàU„ë»eËý÷‹„†6{Á@Dëׯ¦Fä‘Gn¹EäÅÍŠzz÷’U>’¸‡!‘¨ ¸é¦›nyë­·Þ²"Û—ÊsÏ‹è=…öî ±ÙÜ=;\MÜ™7ãã'NÔò—ÙíÍO÷îÝ»‹<öØcµÖŽÅ)ô¹® >/ºhäH‘Aƒþñ‘ˆõ\OœyõÕË.¹à‚Ö§‘à·mÛ¶mZf4°dÉ’%Ú3¥>›xo ÿWMͱc"\ðüóZ?xðà—_ŠTUíßßÖw×믿þºÖaaaa"¯½öÚk"3f̘aÝ=`-ªX‰s„ÿ&W$®CË KAºBö½,…Ôªø/-ÈXX9ˆÎÿVaf†~XLåNñ<,}òÉ'Ÿˆ¼ùæ›ojAÓH|«0`àÂøVÛ*X¥u& T=ÕÕ¿üb¾”ÜÜ‚m‰%;¼}^¨CJk—/0o;AJÀ{lÁ-ÔÔ¸d32„ç|¯Túö½òJm°÷Þ{6›H¯^—\"2dÈ¿þÕ2´Í16C €¿ŒZg¼¯Pš~Èmžºº'ZÛ*û§?‰<öØâÅ"Ë–mÙ¢‰ƒwßÝ\x_bX‹zªa‰¨?Zœ³¢!J›4ID$0°õ®à`›Md„ֽccFÅ9âŒÐbgœqÍ5"^Øì §çÅ_|±5á\{íµ×Z-]´RmíéÛ»w¯­Å$~Kï6glqm²cÇO?‰‰DFFFŠôèÑ£‡–HÞ±§á½÷Þ{¯&äÕÕÕÕ‰k„ðŠB«†û…„ä狜sNëeÚí?þØ2<Ó èµQg¼=FŠ‰Ñ¤+Üázÿ5<•kq·CÜу’1ݪªªªDfÏž=Û÷,ÜóË–áÚÙí"uu§N‰ôìyÑE $îÃB'€t…ïfVÿQ÷A¶,oŸw©®î×Oûîn!fS] `Ál5ž}%„kX° ,ìÀ‰ÇŽ=thúô‹.*++.nl<]jÇ@QÍ9YZ$’Ÿæ™"ø® ]šûŽÍÐê´†smƒð¬¬•+³²àc›”GSØñÄÐÚ1°²ð¼@ŠŠŠŠR-ãß…ƒ­];s¦HNN·n"Û·¿ø¢HXØ™gºBe†={Þy§å–ãÇ¿ûNdÕª›nÒ¶‰M4~öÙÙg‹|úé!š|£÷äRKpç ƒ'+©©„…ÅĈ¤¦~ùeKéJŸ¡ -‰-Ä)l?&jŽóRùª7œ>k˜*áWø.R_o³µ¬„«ÊÊ… µýQ¦¢jÞ7 ÍRÝž="ÅÅóçk–FôíÛ·okÛ15â¹ç«©©yE•ÐÐAƒ´»ŒîгgR’È‘#áá"7ÞX]-òí·K—Š=zô¨ÈÎ;wš ’…?žÙ[o½õV­oEöI\—¿ü%-Mä•WD^~YDä¶ÛDDüýO¿@Ÿ>~~"‹ßsOËpT|.^¼x±&´©ˆ,_¾|9VÄyíµ³Î9qâ§ŸD.¼pÑ"íÞÆ‚»eÇŽÒRÍ+ ~—AnKO‡‡Z||KéJE]ÓwX½ú¶ÛDêêNžÔ¤+P^¾c‡·ëF:°œ‹[›ßŸÙ¯ZF£GoU¹0F‡¨™°è‡Eñ ¬Y³`Á|ðÁ¬X±s犋­_¿hÑ¥—fd\z©š³¯µß>üðÔ©ƒßv›Í6sæWˆàû‚£G‡‡kóÀøìè!!!}úˆøù‰÷ê¥m êÑÃñ/'N|ñʼno¼ñŸÿ¼ñÆõë÷î]¿þÄ‰ŠŠ'·-éX¨=µqÿndY©ÂS멬§²ô2Ä–-Ÿ~*²o_NŽHCCE…–€¹¦æèQgg©ªjÝ18xï^‘ÿÛß_äÔ©ôtͳ‚Îúõ=$’ŸÅ"åå?ÿ¬ m6??‘S§¶nmYšê¡æN&,ø #j8¼yðü¢G{ë­ÊJ-»V`àҥΗYpذìl‘éÓ—.2dî\‘={Þ}·åuÄU¸Ö'Oþá"Gúù‰”•ùù‰lÝ.Ò¯ßå—‹TTüûß" éé"cÇ6gX»á†nY¸páBÍÏ Ÿ_~ùå—"›7/^,òôÓ!!"‘‘55"³gWVŠŒ3mšÈÔ©S§j9³ Nœ8q¢HZÚêÕ"õõÁÁ"o¿=uª&Z©ï4ø´ÂOM÷†/Œ7UYÙ8ã¡•b¼œ¯ðÝq‚vlWs`!C–·ÏÀ»X9_ 3ðFû¨¹±(`B<Ç‚«W/XPVV]Ý2ÜãðáS§¾øâ^¸øâÄÄ—_NLÔþþ÷G~üqYY` Ý~à@x¸¾?òÈ„ ÚÐCA¬…YY_0X̓a'2æÄÇ¿úªÈôéÇŽiƒÒââÿüÇ(u.¼®Ö®Ý½{íÚªªººª*l?uªºúÔ©ŒŒ/¿ìºù%}5ËIÛIÜU9R¿¾°6€Ô˸xÔP¸æ@ÕpÆkñâ^Ðr3©4554h^Qž ,¬ÿÖ¶#¿TccsN5ÝûO?Í+ÒÐМ}@tÛ¿¿y­=}{ª­ç,x/]sÍþ#òÐC55"7ܰd‰Èš57º']©À3 "Ô¹ç>üpk^B¸R••ÅÅšìuà EEšT÷ xüñ¬,‘_ZWçÔ©íÛ5ŸÊʽ{EÖ¬ùõ¯[1q}q­ÿð‡W_yðÁÆF‘ /üþ{‘^¨¨¹êªo¾Ñ¼ÿPH¢ª÷žø[á"׎3fˆ„……†ŠÜ|óºu"™™99Ú{ y²Ô°PøUýï«V‰ü÷¿µµ"ýû×ÖŠ¼õÖ´iš6rkâSõ5ÓuðàÁƒš è «-€sǯöÔ¸gŒ¼õ„…u–Õ5$]æÀrd°B6«ììììììÜÜÜÜÜ\佂Bl „Îzou^à@ëÊšSÀÜ m3Ì„Eñ4C†ôê5d|¯ÔíÁÁÁÁXMÿ+äò«®®««®Öÿµ¾ÞnolÔ"`ªÂxÅ'f¿ÕU·šššš´Ù]¤÷…~Gfësñ`˜„Áö9=Ü ¢Fmm}½>+‹ÈÑ£eeGzû ПÔP;g‡¦æÁ³€£;’K4køðÖÿ®úa½újv¶È?þ.ÒØØ, !\nðà;îð̹\rÉÛo‹|÷ÝwŠTW:$RV ’™yü¸H~þ{ïµ–Ÿ m»dÉÈ‘"§¿Ozõ7®µcaP AþòÎúõ@Â8yòäIíÀWÈ}éJO¯^_lü×Aƒn¿½µIgÁ; ŸA~øáÞ{[JQ úßÿ´Ï³Î5Jäý÷‰MHùóŸsrDvïþÏD6mš=[»üýCC5Ï,ˆ#jºzUŒÀ»½}¦À!=¨k¥ÙF­0¡‚ÚB^qœ«w‹šiwHiéEiÞsŸ>|¸ˆ¿HˆÈùç?óŒÈ9ç<ø v‡cì ÿÔƒ¦LùñGsyÓô-ŒÀ=€–A…@¿3ϼúj‘ýû?þXµ±AppË\WIIøLJY±bÅ ‘;N£ yé¥5kD¾ç‘ŠŠo¾0àôöðÁl­æh[\ \÷{´í×_OšÔré•mÛþúW‘  ž=[¾ÕÑVêb›6=ñ„ȱckÖˆtë6t¨È¸qÿþ·{µ"D„X.•••••¥ÊR³àoI Û3¼]ko¡†¢cswÕ‰¶fhOy²°àº·[ƒÒ9™3çW¿š3'0Ðß?00 Àß? ¢Õm·]tÑm·­]ûøãk׿å=ôP^žúYPðä“S¦œþ”)ú2{ô k¬Ãû³ß0O±Œ7ü&0tļ.Lä'žxâ o· Pg­õKÕØm}¾w޽ýü ÕLddhhdä}÷Mštß}ŽkP[k··&~«q7‰»«¡ã9=oNK,3Ù01´†,úË/hÛô:bDzzKkÁ wÊ”mÛDn¹¥´Täùç##5AÄH À}ôè^ éÝ[$0ɰÏ?_«³w !¯ìÚµkWëõ‰ˆðLÈ3ZAm*8ßáÃ}Ôê#bXŽòõÀÓä–[JJDn¸aóf‘ÈÈ”‘ý«°PÂ'$˜ääòr‘ë¯ÿùgͧ醊‹5ÿ ˆ#ï¾#R[[X¨M]´t…·4Þ½xK;¶Õq稩ܑÜÝÈH 9„h¥ŽŒöî}ÿ}í{SS]&—¬_ÿÈ#"}Ô£‡æÝ³jUrrËUMƒƒ{ölíˆC†X±N(Ú‰Õñ xçÎyóDª«©­=~\Ûÿb£y‹ÃÛ½“Ñlذaô Q´¿:ñã´'l¼­òÆÚ¾ýïomÕ`„'ûùh¾Š¸ÿñ÷3Ú !Æ×]·i“Èe—-\È•‰UPÀrÈREEEEEE%%%%%%yyyyyyv»Ýn·c»™Dï] Õðj=TÄ ª/•ãBmŸ^½´}è‡Eñx·Ô×76Ö×ßrK\Ü-·@œš?æÌ¶Ö|ûíßþöí·gͺâŠY³ÆŽ4hìØ#Îz´Èœ9'ŠÍ+²ÿGiâØ¿Ñ"ë;Ç5ó—yÐk¨r-¦UÐ7•———kOMNNNNk%œuÖM7iyåà ÆÅýãÆgŠ;᪫֬q¯ÌÓ³çÅ‹ìÞýî»-kaÎ7Sí…@‰; =)Ä;3רA…_~ùÑG"ÇŽ}ø¡6Q„Þ­Š©&K]²àĉø#u<ζ¬Ìn©­6¬½ÚœÓ¡€å"Èu…€Ad¼ÂvˆYHÙŽlY];ûº4+gá`€šñ½«ÎÓVWBqHêð“JI¹üò”óÒ•c Ù@ÆJNÎÊJN†W—&Ü£gÁZH3gΜ)rüøñãÚ¼îüùóçkÃQôPøT=,à7ÌY5555"¯¿þúëZ0ˆ£Ð„b©«Á¶œ€Œyc3)ÃÑ]»²³wíúê«éÓ ÷î-.Îʺóά,g¥+P]m··–_Œ´/¸úÖzŽÀºÀ]íH €Íðý÷»wÿ}EEMMEÅÔ©¯¾:u*<ŸÖààŸÖ¾ñž}"/¼0uªH¿~ýú‰lذaƒvD:ÕP+Hî@mmm­È¶mÛ¶iO+Ö’SAióæÍ›'²wïÞ½-ÿzûí·ß.²f§êÈg„÷¾Ïš5k–Èÿþ÷¿ÿiíŒêS³c(®ÏÎÓù€\e ¦‚öA{BÖ1J'‚÷-øÇ?þýoíÝ[_¿¿È¾} ¶Ü!]Ô|‚ÎÁåàÝëŽÁ^zIëMði³Ùl"Ó§OŸn,áA,+Û±CäÀO> èÖMä ÿõ/OzÕ¹ÚrÄD0xðí·[\Œw¦ê‡¥Ê¦ŽÑËX}tÎ9"Ý»7ËmXöáÆUUˆ45……‰lÝÚ»·HNαc"»w×Ôˆôíëç'rÑEMMZHìòå~~"|ú„´#vâ$ÈeF–Â>Þ®uû‘ €iŸ`Æ´4»ýÝwEìöòò¢"çËŸ3'!ŸÎþ*&æñÇcb¼ÝB„ÎCZÚÂ…ii"÷Ü#RP°gÕo{”õÀQQqqÏ>WRRYYRâzyvûˆ#F`F¿µÏ´´´4£ßçåmÛ–—yÿý‘‘8k|Ÿ1ã­·f̰ÛkkKJìöÜܨ(»ýË/ã✭ߗ_¾ýöèÑè#Þx#7÷Ö[Ýi½Å‹+*/ž;·¤dî\ôËí·öuMÔ$ ê6í.Rùúë„íÓ))ÿýoJ îv£cjå'%%%iß‹ŠŒm‰~ýþô§~ýp¯ªŸ³f½ýö¬YÆuyÿý„»=;Ûf3~Rœý p¯O“““c··vÄîÝ»w×Z¾¤Äõ7O×ÖoTTTTk­§ÞÏYYYY-ÿºyóSOiÖ²úùÞ{~~vû?fd¸Z+¼¥/މÑ>Ýõ7ºoo½Õ½7y×F½R¸væù÷¿zÈn_°àô»ŸóçØí“&‰Øíáá"v{\\\œÝž‘‘‘¡½WgÍš5Ënïׯ_?»}àÀíönݺuÓîj_ᶇ’Î s`9VLO‡µÜasrôÍ ‘ û$&“uv•ùX¤cw6 ûÃ_ÀÕ4±„r:D€’'“Q&¼àK‚ B×Ë‹‹yúé§ŸÖ-«øûûû‹\sMë9>DDþøÇ÷ßÿãËʪ«µÄ®øþÑG……}TS³yó_þbœ²Ýðb»ýöÕ«7n¬¬´Ûƒƒï¹':úøq×ÎsÙ²ªªeËvﮫ۽{èР ¡C-»$Äø"¹žvž}ÆÏ‘tßø´îåÒ™Nÿ×¥KüqéRãº46~÷ÈÖ­Í¡[*#FŒ¡y~©K+`-6| ÓöGˆ.~e·Ûí­}â·ƒ ÔÚ‡7Z;Ñ]-Z´HóÓxuåx×0ʇ…ÐBlÁ=¬_±ñœsx@$<|Ð -˜Y·°œ¼rÔ€/ó¨IÐ] Ôƒg32òôT÷AAAA"ãÆµ¾&1®‘š­Ì1j«ˆˆÿþW$0°õ=¿ÿÞn¹ð´4‘+ ´·î[¼WázèСCšgè7ß|óVF¸j^BBÚ XN€€AÈX®’’ZϹ€àAÈXØ_ 3ìJà¥fÑãŽð¤†Ÿ0•;!Ä} ¸@OJŠ‹snùyç@ùÓ§gd@2KO_´¨õ•ÅÌ•—”¤åÙéÑ£Gm°ÝØØØ(òüóÏ?¯îìÎvî˜-‰òãâÎ>;!!<ü¼ó|°en³¬^]]½zõ–-µµ[¶ŒÓdHÀC¼Ã÷-[¶lц‚¯¼òÊ+me¿Âo ¹ Ï&¾#Ô'€¸€,]*x'¨nÄYp' …^7`À€Z¸¥š]‚Èn¼qÏm·Ë/_¼XdêÔ;´À:d°‚Ta„uCA0šU!o;pŸ÷ìÙ³§v÷Þ}÷ÝwwðRÏkԫ׸qÚµËÍíÞ]dÅŠ©SE*+÷ìѤ̥Kããµ±§Ÿ_Ïž"6›–Á Päæ›_ï{ªkPRÆ"í s`¹ˆ™”íFòVWóNê쨚 Å9¬¶Ö'r„>•»kU!äæææ"²_yúˆii×\“–É,3óË/331Dwíè÷Þ{é¥"|€ä¬"AAO=>yòe—½ñÆgŸå榤Œ“›Û«WY™š=ð¼óú÷?ï¼;Þ¹SõmùÛßbcýüJKë뛚bcß~{Á‚¤¤¢¢  ÔMÿƆwLiieei)Ä8ì“““šš“#‚ÌDj Û¶slÝZW·ukAAMMA¤«I“ÂÂ&Mòôu!ž~@Xš@å7ÞxCäoûÛߌ~‰•@ï¹ç?ÿ¹çžŠŠÚÚŠŠÚÚúúÚÚçž»é¦çžkí°ÀË/¯^-Ò»÷+¯h9}yä‘GÌeöÄ>Fò„"[VûqáÛo¿ýV󭨯¯¯×n×ýéˆÆ?þø£HCCCƒÈ/¿üò‹–jâĉÍ ¾z™ )½ñnTתÚ†F9Í/¬áXeŸÄZ© Ú/¿,Y¢}ÈšÈh¦¦i8±T{ïO<ƒ®|-9:qLccMMkÛýýƒƒE®¸âóÏýé°è®}Ö¬©®>xP¤{÷áà ?þÿÈÊ?^Ú23—.ÍÌD !OèϨÿ=ú÷×VWTQ×`RÃ^šß?ªtÕ·o@@ß¾×]~ÝuíyEˆ|®õ=>†ÊÈŒæÈ˶`Á‚§—|z7G¨‹¸'!–i÷|X0µæÎún„XéUÏØ±cÇZqý«V­JNY¶,!A$,là@‘òò;Eìö†¼¥µýIÇÂϯõLVQQcǶ Šw²>ÏšUè½±zŒO¸Ø2œcÔÕ]ñY¹¢=éè0–Àë*33333™­ð=>>>>>óÉø®î“šššššjÓ¾aé€IDAT¡&ƒïŒ¨–Þû ÃçÌY À¢¢ÂÃ]•Nà…rè‡Õ;vÌ+RPð‡?ˆ=ºb…&c}ùå˜1Þ®!Þ~ úbì¬7¨U ¬/,,(¨eޤTÿýïß}÷÷¿ON~ýõädªÂýe— vÙeAAZø ÿûß“’þþ÷¨¨>X´H{{£·‚A¹iÓOhoƒÊÊ}ûDššDªªöïWKCË@J+)™;·¤åµªñ¹6§°mhØ´)-­¼¼¼|óf½tuóÍ7ßl³žÍ‡´î&q7fΜ9sDfÍš5KË{uÅW\!²lÙ²eΖ¥zxáéÐþ¢úˆ™Y®žÇ`Èýì³Ï>«‰­È…Tý¸«­Æ5×hbÇÉ“›7kž;xK×Ô9âí6!®«ààž=µO$ø?þw¼]7™ 2VïÞ½{c©3‘>øà‘üãÿÐÂf3sæÌ™ÚžÃЧ0Çi†XN z`¹_š™,ZÌ9BØÖúDm£Oåî‰UÃ: p8oh¨ªj¹±÷˜©VÔ éüÀŸßÛ'ï•kœþ€çŸÿÒKÉÉ/½„·œ^h»÷ÞwÞ¹÷^†„†„<õÔõ×?õTË·"ŒÑØØØXÍ”ÌÎ mí˜~~ÁÁŽß ½zEDôê¥-‚k®9ï<ãu10«­ éÑ#(h×®ÿ;0pïÞ÷Þë×/$¤{÷ÆÿË_¦N¥tÕ±AÿŽï­‰Âa=¬^xáw<»ý°<1X«@–1|y)Zî[ÿÖßÒ"6›f{óïX W>ÝÕ•yÛ ÜÛuujÊx-‡àš5kÖh¶„¸>|ÿý÷ßk™øÀÉ“'OŠÜÿý÷k%®,'€€•‘álJή‰õ!„ð8pGrR«šË¤5"#‡9ujûö–Û›šêëBHº&X¼+ãèå—,Ù²eÉ„FF††FF¾õÖŒo½å¸†óæýú×óæáÓø8êœ*ŒÎýûOéÛ÷ô=ñfp$j/[öÈ#Ë–Ý}÷üùwß½woIÉÞ½®^xaÚ´^0úUIÉñãùù‘‘õõ••6›Ýn·‡„ÔÕUVâsܸââå˃ƒããû[o] â>êBm=YÖX­ `½úê—_>ûìË/ûû2ÀŠx’öI'ңǨQš‡¬ŠÝÞØHéŠxžnݺu9uêÔ)g~……°ÄÈXmS[k·×ÖrB«sCË-ŠÔíȇÕõò^©8!D÷éÜâèÚrõññî9öcð©ec™6ÍÛ-嫌9{¶ÈŸ|¢m±Û›šDúõ»òJ@¤«.ÞBíŸ÷ʈ… ï½wáB¬¬Š@< þ[Ë'åx‡geÍ™#rèÐÌ™"MMX–ÛÏOÄßßÏOdðàp\ jµ|ù£._nþØÕÕ'N¬Zݼâ¡JPPyùÏ?·Kc—Qû „é9ÎØÒ¨~XUUð8>ç’ŽÏ%—¼ý¶H~þĉZpwccuµÈÅwþåˆ/€°ÙÇ{ì1‘cÇŽ‰ŒŒŒyæ™gžÑ¼¸à‚ .Ù¼yófmKHHHˆVš#æÏ/+›?ÿØ±ÆÆcÇ 0ÀÛí@<s`9šÙ*666666QGttttt4²\ao×Ú×p.–š¯ÊýxîçÀ*+kj*+ƒÒß^íÖžìÝûÁšhuÞyÿ÷ÚöÈÈ#¼]7BÚäB>_ „VRR\\R’ÕÒ•J·nÿü§H¯^""™™v»ÈoÛØ(2cF}½È¯~噡Qdä™gN›VW¢n·Ûm6›­OŸC‡Ö­ÓVà"Þ±ã»ðÃJHˆŠ©¬´ÛƒƒO:>°±¯»nÓ&‘[n))ùÕ¯ª«E À³„˜©Î8ã‘GÎ8㬳{쬳v ­ß͘1c†ÈÚµk×jÜX ѱt–/_¾\äš§Änºé¦›´2[91«ªššªªìv»ÝÛ-G< =°œë"¡;òXÅ)* •;~Õõáj jŠ_$bw§45<ž æ×4„\õÑG}T^ÞÔT^n³‰Øl1111‰‰aa­Çuw,k~a%¦óÏÿË_DŽÿî;ÍoË0ÒùØ ŸM5ýsWâûïSSµüVŸ|Ò«—ÈÖ­§gâ€×-ü‘­\-Èn<øÓO/¾øÁÇß¾}áÂÐÐúúššººÁƒõ«¾}ݸQ{_©‹Ä{ßǧ+¡¦×u%‰;úb|w¿—7ߘ˜>}D²³¬­MH8~¼¸Ø“B0!„ø:sçæçÏûÖ[«W¿õV]]Cƒ–Óê±Ç>úè±Ç.¿üì³/¿¼­÷¤k«"ziîܹsE>ûì³ÏDÿ¦²²©©²²¡«m’Î=°œ²¤+¤rÏËËËË˃8•”””””„ïØž’’’’’KfØÙÁ`Æ(Q½:‹A‘#Zz`Y/`™ÿmAAMMAÁñã Ç×Ö65ÕÖÖÔ45ÕÔìÜYW·sçÑ£G¶Gëz š ·ÔÕšéÌ xß}Í÷jÿþ††ýûß|óÔ©7ß|íµ“'_{-/¯ª*/Ϻ#àm€+ÈÙGžw^k{VUUUyb¡k¼uù¥[·~ýV­ŠŠš:uß¾¾}GŽ|ñE‘I“òòÔ• E–-KLÔ|²œ[ë–X»ÉÚW8Jvvvvv6ê£úˆ¹_2JCÉ8Qš+£¬¬¬Ì8FÛæ¬¼F­j=ÕËü\ë°aÆAÀ‚h`³ûùGFúùEFÿúÇ_x¡¥ÇY}}Y™Èί½fÕy¹ ®LyHWFiw‘YgA‹t6 ÉJÿïÿ>þøÿþ¯wïnÝz÷6Ÿ)¯}€/rðéÿZZÚØXZúóÏõõέЇçò:˜0!'G†ô¨oø¬¬¬,m‹»2²îÛW_¿o¤+ç—ÄÆ›ª{÷Ö;¾Ý×7—dü×¶“¸£ÆÁíѦ"šP‹{¾_¿„u]Búa«€'ïÌ™óçÏœ9qâ‹/Nœh. 6!íîÒÄÄ—_NLT½ÎKJæÎ-))-}å•ÒÒ'æÎ=qbÓ¦§žÚ´ …ÐÿÜsññžy[ª6†£H¦!CÎ;oÈ'Nœ8qâäÉS§Nžôv‹ÏÂ$îNƒÌV0%ssssss‘ý þY„9Ó„Îzo9F5dU ¦'Ä2äárö¸ª k´Î7+++++ËÕórnM"O¤OÆp/ß/¿ÜºõË/ÿð‡‰ÿðǿ°ª®®©©®îºë""®»<_]Yùõ×.Bäjí× ­…Š44TVм÷žÍ¦ ºàõ€ïø„÷Öúõ=$‚!kXØYg‰$$,_n<¼4ÂmPŽÞ÷Já9ð΀ìuú¢ãè32¾ü2#CM“Ÿ™9}z[sÚ7ÖÖnܸvmMÍڵد·Î’ ßû`5=Õ««×y»^Þæ×|ðÁ”•UW—•a{YYMMYÚÍwÚ ‚NHˆÍRWg³ÕÕˆôèáïߣÞK_|QQñÅ8yrXØäÉ-Ev Ý1Œoh¨¨Ùºõ¹ç´¿ÂƒÉÙõã°ÞPbbb¢&cøgµ jß«îÝýý»w‹ v}ú§wïK/)))(@éíyܧãôõî&q÷êLs/KC8XYYwÞÙìHˆs öÿ7l؉šWȆ û÷oØ€ï3fŒo¼¶!ž–Oròë¯''Ã2ÌȘ>=##-íškZ DE……EEá­[±rrRSsr¬›ðk[ÀBªêj?¿êêüüåËóóá/æív%ž…XNcN•¥`b„¤…í VLOl)(((((°Ûív»ÇÂÜ©ºyð[ˆt0‹KJJJJJp˜³8GcÃ×SëZK^Þ¶mZªã?ýéÃÿô§ .xæ™ .p|Ä­[kk·nŰ BÕÈ‘AA#Gb þj|Ì3ϼöZÄk[üýƒ‚D"#Ï>[†0¤„œ?[ßÏ="uu'Ojûœ<¹y³Èºu÷Üã^K@„Â'ê`Fƒ¹,9§g1»óÎ7ß¼óοýméÒ¿ýmýú½{ׯ啯¿~åÌ@•XVÖÔTV¶fMuõš5HOërútu°òÝwÏŸ÷ݘá;¶{»vVƒlüøŒŒñã±ü3î=ýÓ nðÉÉYYÉɪtjkëëkk-Z¿~Ñ"oŸY3……µµ……§N56ž:5iRXؤI¿ÿ}¿ÿýí·wëvûí3gFFΜ ß%ø1ÍŸêÔüùÚs„göË/ÇŒY±âúëE¾ýö–[41 «øAFwȱ\ñÆ‚t…ó‚èæ^;™)2hÐm·yã*¹NGèë°rºÎ“@ÀÂ}ÞÜëÑ‹Xú—úúÆÆ–)5ÐË,X°z5ý°ˆ÷€\¥úOA–2’®ôà=YPðä“¶çÌIL„M…2ÕISWkê(Öÿ[\üßÿVUUUUU͘1|øŒññƒµp€tl(`¹ÌÇ¢¢¢¢¢"˜}0a\b»™Dïα 3±¨ƒœˆ#"Ô{:›<>'''''"ʇ£`;ö„iÛZF«ŽŽ™«¯<«}”ù曫V½ù&¶ÔÖ64ÔÖnÞ|àÀæÍðÒÿ ÿ‘# GŽŒ'N451¦Ý=ÐþµµØ‚ïæÃàãû«m^qÅßþvÅß}WTôÝw‡Ÿ:uø0Îq„ÌÌ `®Ùl¿ûÍc rÞ‘#§N9è猪tå•çœså•Þ>3‘–>J𮂌®ßóÒKCC/½tæÌîÝgÎÄžøÕÆ›7ß}·HeåÞ½"55"v{c£Ýîç`…G§+2$lx¹¢¶gpÖYV´ÙÅÏŸïÙ«b5¡¯·ôËíµH–+ÁçéÄZ 7{|CþÎÌ\º43Ós“j¤óTFÞ55 55Þ®£oç‹O™ˆAA2äñLJ 1š–Ó£±ÞvÛoÜvÛ“O~òÉ“O"`ûäå=ôP^žkë,à 2²…¦:÷Ü'Ÿ<÷\øvMšôÒK“&¥¥-\èʸ¸uëõ×ׯýõˆˆÞ½#"ªª¬ªJI¹ôR_Z'šx XN3ë/¨"`ö©²<‡z\Ìê÷Qkâl¦ Çaø+B)­HQßö0É µâU®ºs«ìÛWR²oŸ~;VÂB:aýpžø+†ˆ- CRÌåÉ“—-Ó¼ŒZ{bèÜ«Wk{66VWkå·†îgŸýä“gŸOM°€ÿ|¯ ]~EÐeÂpÇ,Šö—“’ÃÃ..Þº5;Þ+ÑÑ<]]]WW]­¯IddhhËa².[VUµlÙÒ¥••K—ê…'.4Ôf µöNè:`¸¢¢¦F“®T‚ƒÛÊ.”—WU•—÷æ›§N½ùæÇWT|üñüùeeóç›[y³ýÀÓ ?ý_wì8|xÇdÓÃ5'gÖ¬œœ¢¢¿þµ¨hÿþ¿ýmÿþ‡JL|è¡nèÛ7<ü7¿éß?,ìž{.ºè–[\3ì<¼¨jjššjj Q9Þaƒ7ßqóÍ| ©®>rD¿§ÍÖÔÔÐPVV[ÛÚ;ÐyŒd¬‰'NÔ¶4Oó¬ZU]½jÎË ß«ŽMçêë£)+$q·6Ó¥1­¶l°°¨(ÔgåÊ;W®LO_¸0==&æñÇcb8À&f€ Û¯_÷îýúa &Hð¹n]qñºuêR!]þÉ'½{H{ÂX.≤ìf€Q ³ÒLÝœ•u Ld”‰ƒÖör6„ðô4Õuß*,̉ALQÃ…üü®¾ú¼ó®¾ZÝ"ËÏ?×Õýü³Q:al° ~Xš¤+€ðg¹âŠÏ?¯©Y·nÆ ?¿êêC‡üüºu:4 àØ±uë´• á±Õìe”Óç¾ûÞ{ï¾û’“¯¼222, 9nN÷½B÷píµ¯¼ríµÇŽ•—;œ‘ñű±}úÄÆÆÅ•”ìÙ“–6hО=?ÿ\\¼kùyy?ÿœ—µuëÏ?oÝZ]]__]½uëñã[·=vô(dA~mÈàóÃ55?üo,Ì^××ãZ´•,ŸˆhW¹ E.$$(($$0P$0PÏ;ïŒ3Œ]Ãß ÷?®>kjDjjV®¬®^¹Ò2”ᎅãº> L˜0tè„ ˜i4*'33 àÃíöQ£m¶ÆÆš»=,lÅ íMå¾w’ëà­‚§ï"¤r7_°aååeeÕÕ'NìÚ¥ÿkmm``XØ?ôé3x°uò‘*c 0`€ÈŠ+VhýñÇÜ¿¿wŸþíoÄyñï}½³xóÙi ,ô}­gyËÍ-(ÈÍÕ¯xòdUÕÉ“O<±hÑOÌ›÷ë_Ï›çís!¾ ¦Ž0q2cÆ¥—ΘqÇãÆÝqÇС}ú zË-óæÝr úhô×Ó¦Y—r¤£€¸Ä@¨Û!v$'ÇÇ''[» yÇ"Ô±cÇŽéÿºdÉæÍK–À£\ÿ×ÐÐÐÐÐÐÙ³ÓÓgÏ ÃöaÃbc‡ ûé§Õ«ú “µuö÷÷ók¹V;@4ÎÈ™ãbª&333³´tíÚ+î¹góægž™1#%eÆŒAƒšš r~™Ò±¡€åêl'¼±ŒæE=æBÛ_>ÃqSSSSSSÕ _­í[VVV†ô”‰‰Ï?ÿüóxé¨{À NI¹è¢¸¸–âŽþ¸ÖÏÊbNlÙ²?ýiÙ2˜»w?¾{wIIeeIIxxppx¸º¿êQ¥TÁÐ !0øÕYg‰Ô×k¾NÈ0ålRd‘%K‚ƒÞ½û’KRSíöÆÆ  ›-(èæ›ëëÿüç~ý¾ûîþûµœYÈFŒÐÒÐêówÜѳgeeXXmmeejêæÍ"ÙÙŸ}f³¡5gà={ `¬ãW´\¿~ß¾õ닊Ž/*ºà‚øøiÓDD-Ú°á®»ÇE"ö#*+GŒhjij²Ùìv›­¨hß¾¢¢¯¿ö÷ÿúk¤SF{ꇬcÇ‹ïPàõóÅ••_|_vWz`ÀSW_õ6B^x5ŸîÈ‘²²#G‰C]wF->Vv»ˆÝ®?"$Eo¯æ!øå—™™êùNŸ7}:¦#"‚ƒ#"ÞzkæÌ·Þ2.oß¾ÜÜÆÆêê_~ñ÷ojÒ„x›­ªê—_6mJK ¸ðBïÍ–Ã÷ žžxjœù5ÞBߟšÔ½ûòå#GþêW}úœ<¹göøþûaî¾úÔ©¦¦ví:u*+ ¢ü°aAAÆ©b™LŠ'±-) 2–¿ÿéFmmmmíêÕ—\ìêy5ƒlPί ç‹t„¾¾™ÄÄÿûßÿ‰ŒŒŒÔRø‹h›ãÚ×›I]¸À|ÈÙ°á“OÆ‹‰7.=ýÚkÓÓ=!X¸<ÑôÛËËkjÊËŸzêÓOŸzꮻƿë.ßYDÅÓ`BV ¬µªªÚÚª*ýžðïCûèÿZZêï_ZªJW (((((謳† ³&Hÿtn½õ o½õwÖ®}礪€¤…qÒ8 ß–9ׄ扜ääÏ?è¡€€€€^½æÍ›6mÞ¼3Ï 8óÌ×^ÑÖsß°aÆ ÆŒ3fÌO_)â-(`9æB‘BM› aËñLiÇælbbbbb"æcÑŽÏ/¼¼o¾ùæã²±’#0@õÄÜ‹³ ¯T þÑMb¦­-4l˜c¿½VEÅÎ FDàﮘË] Ò¶×ÕÙíuuyyÁÁ'NÜy'2g­Z•œ¬µjEEqq¿~¡¡gœ‘3θúj5Ão›1hj:xðóÏUéJåäÉŠŠ­[[äõûö èÛ÷Œ3Î8cûöÚÚíÛEýüDüüÎ??8øüóÛ i )/×Öcݺõ®».¹äÈ‘#úö0¡uÿVó8Jð&ôÆÕë¸Ö׃¼OH1"!o „Ñ¡ÝPÚ;ïÜsÏ;ï´WN=³À~{øá?|øáO>Ù¸ñ“Obc{÷Žýûß“’þþ÷;Ù¹wŽúV„mÓ¿TTÿþ/¿œ—÷ò˃›š?ÿüþû?ÿÜh”k|íÚªªµkõ=à…tá…ž8Ógž¹í¶gž9òª«FŽDZÿ>}îÓç¾ûÞ|ó¾ûT^5¾ÛcbbbÒÓ/»,$dõjÿ#G^xáÉ'xàüóÃÃÏ?‹Ø¨{£óÎ5&í,'€S=f&±EýîU>p̈¶Ï ³jÎâˆ0gÛò;;xðàAµÍÚJåZÏÁKÜÓF-^š02nƒù¤¤)S’’ðòuì{¥‚ÒÒƒ?ú("¢¨èÝw5éÊß+`äÿ¢mG»aÙ{XÛ¶ef^vYy¹È9çDDŸ}vXX@Àôé½z56ÆÄ„†ÖÔˆ\tÑË/gdÀ/ìtà½2}ú¼yӧÇ hÀlÙY¢„fáÌèn°Ù&OŸ<95uË–ÔTÌ=šY¤\Í; ™³ô]Wç¦ÞÙ†ò¥—v饯¼ò«_½òŠyÙy  à⊨¦ó©SMM§N!•~h¨Ÿ_h(ò‘Á_æàÁúúƒ=q-`‚#¸nçþþ/¼°dÉ / ·™xr[šªùù'Šœ8±n–¤üÀÅ‹EŠ‹ß|S¤¡¡ººe.ž  ¨¨S§ ¸úꈈýû¿ø"0°±±®³Ûm6›­{÷'¶liéMÙ¨)Û!!ÅÅ·}e!ÏAÔÆ™¢ÎX,BD$1Q$&Æ(üO\YYhhYD|„.nÜXS³q£~ø]¶%`=ñÄO”•½ñÆœ9ÇÙ¿ÿêÕO?}ýõ}ûnÙrð`\|_»j HK:B_xHW;w¾öšHPP÷îŽ×ÙÄÛoõêôôÕ«1¤Düþ³fÍþs÷Ý Ü}÷ùç?ùäùç[;HÆ÷î».¼û=Nžlhxë­éÓßzË×|gB›!ycEf£e%º¸‚˜b½dfM7â^B/Œá=¬#5äÊqÏ›ùµ×–-{í5HWê_1é…IJ_wPÛÅ‹7mZ¼øÌ3{ô8óÌÀÀ¾}##ûö}õÕÛn{õU´!Bza—âyÄ'¬‚††ÆFmÚ Ë¶LúLºmÛ_þ²m›wÏQ¡Çê²9hÉ“çÌ™<¹©©©©© ç «Ò•úÔÿùÏS§þùÏŽCð`3|ýuUÕ×_#ùCp°Ÿ_ppCCSSCƒ6jðó7.<|Ü8Oœ)l††ÀÀ††€‘€ÿ_m(/8°¼Y·TßC\_#Ÿ,LdffžsNMÍ“OŽÛm6[@€ÍÇo_Uâ(`9æ!=±¶ yà) F§>«šÌÕµ÷ÌÙººæ.súôéÓáΩº€j [B1ÄR×¶CM*+KKñB÷tÛª³:èÏ>{Ò¤³ÏÆ ÑüzXð ˜0a÷îÕ«kjÃÂŽ?çœ_ÿzÀWjUSc·×Ôhx§ûR…‡ûùµ xÌÌ<|8*ª¸xÇ‘_:4 `Û¶‹.jh°Ù‘Ža¹Ÿ_h¨ãùgt!´üç?—-ûç? êÕkР§Ÿ¾þú§Ÿn¹/ÊÙ¸1=½¡a×®yól¶!CbcUÉ ÒÕÙg}vbâå—'&ªÒ˜U3“ýfñ©S§N©¡WÆ‚‡®²‘¯Œtð˜µÓã¬Ç" Y˜š€»paz:¶À\u×]‘‘wÝ¥úÈà¯j.3«®Å{ï­[÷Þ{®°F* Ö?þÃ>þø¦›F¾é¦–¿Ãð¸´tÃMºXîàèÑU«´+deܽÑÑqq{÷ÖÕmܸví°aãÆ¿cÇçŸ4554üøã€]tÕU?ý´ti÷îðfÂû ẞÍìƒû2úu×…‡_w]Ë¿C¨Ú°áÑGE*+÷ìéÕkÜ8‘={šWü„håŠèŸSHfø|ë­²²·Þ*/olÔ¼¨´«c·74¼òJié+¯¨ïL hqoî ó¿…`‹7))++)iܸ^7®gψˆž=áq3rä™gŽùÒKÉÉ/½A־볶© ˜Ëw¤+u¼­[ŸyfëV£+ˆ–ÁgiéwjW"ˆ~Huž«?DÛ￯©ùþ{l¹è¢‹.rÏpE˜­XÜZohªF­š· ¦ªšV`µ9[VVV&òꫯ¾*òòË/¿lþ—ªm{v·Qî¿?/ïþûËËíöòò‹. ¾è"gÊ8|8?¿G£GøaÃ†ØØ«¯Þ³§±ñçŸ qfNRÍýh³Ž2n\eeSSe%‚ò ª« Ð]}øáÂ…~I2\`àˆ\`³íÜùòË" ÍñóÌ×ÄQ`#¤ùógÎt´}DDLLSStôر55{÷¾ývmí A?>xpPÐàÁUUMMUU ¨zg¨^W˜ÁU6³ÖÊÁ,¤“>}úôéX³¾sçÏ[WVWW_____ÐÔ’Ò»wJŠ:ߨšéaaÁÁaaª9¶#ž;Á¶páÎ+rÁãÆ]pA}}ïÞõõX½NÞ¥ÊUÆ2Ö?Ü{¯È޽͒ʨQO=%rÎ9>hTýì1  iMº“TéJ%2òœsDrÛ òÖ­XQY¹bEŸ>!!ƒ=:vìÓOÃlêÖM¤±qÁ‚¨¨ØØ›n**Z·nР;›WðÄâ Ž¼9Ú¢ÛwßÝy§È©S?þ(Ò½ûyç;6nÜË/CÀ‚hkæZ^Þ¥—ŠTW>¬m))Y¿^$$¤W/‘‰—.u¯n§sÞyAAç‡eÔ æˆÿˆˆsÏ <÷\¼»Z[ Œ!àÿÙ7Ξœ1s¿Æƒ :h¤+lÁ÷Aƒ† 4Ⱥ–± €!]a Þ ðÆBí‰l•cÆüå/cÆìÝ{âÄ޽؂늋ÿú×âboÉXðlRm0×¢ð«ä丸ääåË\¾üª«®º ]¼øóÏ/†Ç4¶h‚W\\RîO-/Ò[oÝuWMMCCMMccccc#&„Œò]¶g+©Ò–U1Õ°'꯸ˆ@,E[áiÎIÇÏ?¯¨øüs¤òÀöǾóÎÈÈ;ïT“¨yž<Ù¡Ò V‚6#]õÉÒû[aÒèæ›##o¾YÅw|–•56–•iKN7/9e ˜Äúå—úú–2¢š=5Ñ\†OHЧ†P¹ð‹.ºøâÚÚ=ÂÂâã÷틌1ª“Ž,A†˜•ª‰9RÌ…Ât¼Xµ³ ÌÌÌÌÌÌLäáŠR@}`ŒÂSL=:¶Ã`Å_õb‚"±'ŽÃW¿D7Ìß¶Ö' >|øð¶Î ~jù͉]ÛÇ  ûŸ2åò˧L©ªªªªª:|øðáÇGŽ>ܬ8‚æ  ¨¨ÚÚáÃ|pß¾úú;Z®KèUºÂ¤-×{蔕ÕÕ••A88y²W¯“'Ñ©kòjb··ž¥þÖ°m[¿~ç7rä¶më×O™R_ÆC‡FEÝx£ã_¡ž0>Ô™43¦$¸!¨Û}_Æúê«_~ùê«ÆÆnÝ!<ÈX·ßþùç·ß¾ti^ÞÒ¥Zµצ¥©æé½÷¾óν÷b6¯gÏððž=µ<îšh˜­_ìØúõ®zõª¯ïÕkذÀ@cWmcëàÁ]»DŠŠÞz«årÓ¦'ŸéÝû²Ëôò LR NÔ°°  °°[n‰‹»åã3€‡Žåï¤yBØŠÿç?Õ½!]áþÉe´D@PHPÐ'ŸÄÆŠLžÜ£Ç°a#GnÜøê«Ú ðÆ‚—ü³pD3⤫_~Y²DÛRQ±gOpp^ÞæÍ_Ü¿ÿ…ÆÅùù8 "ò¿ÿiå×Õ•”ˆÔÔ=ÚZ™Ýºs޵Ò€ŒŽö9|¸±ñðánÝl¶nÝŒVhÅÛ ŸË—WU-_®Ê^ ¶6$ÄfÓD+X]]Æêh}=B]ñOoÙ×{b²êôûM£õlwzÐwÃO“1è¡ÔE$ÒÓ{÷NOwg9mØÚ_}3ƒ²àé·ÃgÜÒ•¶üHyù‘#êv,8së­ÙÙ·Þúè£W_ýè£FâzOø2wëÒ­Û¿þuÇÿú—û©*ÔDìf#8Æß?"Âßÿî»ó›»ï Aö@‘ÔÔ»ïNMݶí›o¶m{öÙë®{öY£§rî+ØðtÖÖ² <騶@ºrgâ íŒdð/ÃÄÞ¤Içž;i’ºÀ žM÷Ï·°°¦¦°P•®|áoeWõÈ›8ñÜs'N<|øäÉÇIOGfRÜ{hywDRHWªÔíþþ"þþÓ¦uë6mš³©Np÷~ñEEÅ_`„â¾µ 9 ^úZÁ ë‰ÃúBJ탖T˼ä’qã.¹$22*ªGøø¿üåÃEúõ«¯GèNmIÇ…–ÀàS×ÌÉÉÉÉÉÑÏLª"fAKJJJJJ¬ª ä°¢¢¢¢¢"u¾Ô(X ÄÀ± sÙ½Ú×<ä^¸páB÷Ï·=C·n­­Ýºß1G‘ž¾m[zº9§kxÛ´é³Ïð×åËwìX¾ü“Oþð‡O>Ñwÿ膇 :m¨…3Øí"0#Ñ£ãÕô\eÇŽ¹s5‰C#Ìö_sMa¡¾…Ñy÷í;p`ß¾ÕÕ"ÕÕê_‘Â3:ºW¯èèýü6n¬¬¬ªª¬Ä}èxL«X½ººzõê“'m¶“'û÷/+ëßûö¶o7&£ =[·öèñÝw}úüò‹ŸŸÍ¦YÐz11©©yy¹¹jðŽ…{côè³Îj].8µlYb¢& µïÉYéJvØOtCÃÅ?þø¤IË—9"rò¤æ}Öœ<þ“ODÞ{¯uï °!uöX_xíµ[·?­Èï³oßG‰øû‹DDˆŒ;gŽo—¸å–ˆˆ[nA»íÛ×аoßðáAAÇ·”Ãô2–êÕµd,ßîëÝ¡õe[<ÃØ±/½¤yJöî=~¼È¨QÏ<ã8ûUºÂvd–oDø€@ÆÂ{ÒXj?ˆV¿¦L¹ôÒ)SÎ8ãŒ3Î8cÀ€ÀÀúõó÷ï×oݺÖ­C¿ðì³Ï>;{v|üìÙíyµTôïÏË/ ½üòC‡B?«®aŠ~Ùü;Ö1_|±yó_è·GF††FF¾öÚí·¿öZUU]]U¦úp]ð©4¬s¼dP^^UU^ÞÎuu;wâ~€ø^Ue·WUýíoK—þíoÈæ©fL+.nh(.Vs„aûO?ÕÕýô„0øÑ`ßò˜þþ"6›Ý®ý§þíÀ?¿sÎÀÂCÖŽ»gOCÞ=Øɬýe¬ä䬬äd´0žgE^×ÀÕÄjãZxÚÒ¥™™8÷ñãccÇß´éÀM›<«loØðç?oØÛ6îdغ¸‡«ª*+«ªüüüýýüæÏß°aþ|œ)±›Iáox]é·ã>t-žõ¸Ôd®Y›x3 ŒV«¾V(oX›8.b)&O ›<þh<’›ûÈ#ð§KH?>!’ñÈ‘ß~{äˆHLŒç—7!¾ ,'€_d,jÖ 5x³¦0=öwO”é§Ï¶LØÓW&BàþüŒyÐQ¡‹ÂK|Ò¤ÄÄI“²³¿ùFs6N ÉþÍë|¼ÊÕ—»úZw,]a^«´@ºÂ>®Î?À€óχٹPÕ í°að׸ôÒ÷ß·ª­Té m¥ÍÛôë÷ãÚzOøt”*^åøñŠŠãDZp²:ËTYY[[Y‰åÌŒËãÇ›šŽ×Ø`2¢kôŒ€éª¦æØ±–Û×®½ûn‘„„åËñoÍU»²R››Z±båÊ+† ‹‰6 3Ø ¿üÒÐðØc×\óØc¸OÐÂj;ÃÔ8x°¡áàAÁXpâݰ‰Ý9G5oŽrÝuçž{Ýu?þxíµ?þˆ!V|üñãññýúEFöëçØ3BÏŽvû»ïBºjhð÷ llôó üå—Þ½Ï;oðàãÇþÙÏoÙ²ÄĘ˜D|ðòËgÌxùå;ït”s @®‚וúÜyJºRÁÝŽL(mäHÿ††ÖÚs‰&'‹ôí{啚ÕlÐ*ÔYßK/q4Ó  oðúâŠ+®5jÔ(ˆ½"<òÈ#]'ÀÐ÷úzgQïÌæe[<ß×£'—\òöÛf&okR•®T lá;ì Ë‘ÙG¿–«ú[+¤Â¹Ïš5yò¬Y^xÍ5^X_o³Õ×O>uªö¼ vé¥Ï<óÓOÏ<Ó£Gll‹-^|ã±±mé;‹*ñ诈:àTߟUUÕÕUU¥¥{÷––FEõîu饽zµ|C¾ÿ~yùûïÃcÚµ~ ­ŠÜfÌ?~ÆŒsÏ=ãŒsÏ…Õý÷Ož|ÿýŽ';‘' b“º½¶¶¡¡¶váÂõë.ÄYë¯ZQQ}}Q‘z?àû¶mµµÛ¶M:cÆÔ©S§ŠLúßÿÖÖþ÷¿"-ýdZû ¢UÿþýûCJ@6ÏîÝýü´…/Þ}·¼üÝw+*šš**ð+UðáÚ¿¿¾~ÿ~LÀf@ù×Ò–²Û›š`uäæ–—çæþö·Ý»ÿö·F2Ö]w]vÙ]wá*Cbƒ‡¬¯[5¹>¾ÿôÓ¡C?ý_$<#Þʽ! GÇjθ— èßÀ€°°Ðа°ýûùeÿþ‰çÌ™819yêÔä䈈Aƒ""PBEÅÞ½‹/_¾xñ7ßüøã7ßôìݳ'þ:yòĉ“''$\yeBÂìÙW]5{öEED8—?·u`Û«¨Ê™gœy¦;åO˜:a&×á?…çÚ| °ñ~À›Á±'Þlúé@ŒÂ®»nܸë®Ã3ŽZ-ZT^¾hÑ9çŸsŽÖã·Çú¼Ä—¡€å"fLɶrF£VŸ«²²´3ZíS5wÏÈ‘ÁÁZ%Í03'12Vky.T߫ӇÐxA«~X½zùû÷êÕ³§¿Ïžß~[]ýí·ØSŸë F€‘Ã<ÜàÕ£ ÈX™ºwˆÐŒ!÷[I/]µL×ݼ"¡ÌeVÀ‚ɈœPêÚs@ïT¬‚™êâb›­¸XßÍc¶¼o_ÿ¾}­ócÂrìuu§Ïš‚cÇV­‚¼²gOdd¯^Ý»‡‡þÁEÎ: '¤OuöŸjÈÆÉ“"'O~úiEŧŸÞsO÷î÷ÜãΕE€ æÁ°wûœ9yysæîÙ£ ðŒûç?o¿ýŸÿ„©Ñ²¼ŠŠâ☘ŸÎÍ=r¤{÷³Îúàƒñãÿô'uÂÂ¥K¿þz„ƒ?û,- Šƒ‚/Öä`#) C_x]$e?]¸hxôhCÃÑ£¸¾ÿ¾ºúûïÝ‘®TÔlk7öïÿý÷W^yòdqq``c£v÷66vëæïº|¬f†Z·.,¬¡aõêI“þò—àà††êêÚÚ€€ÐP,}=q¢™º˜Ï·Õ±@øyUUU•ÈC=ôÈ–-Í>nŸþùç"Ë—/_Þud¬ŽŒ#+Oöõè‰ðt´-]aÈ´aCmí† Fûtëæïß­›º‡º–ë¯ý替þõå—vùå#Bo5SÒСññC‡âÝ>mZDÄ´iú÷Ò¬YΚ5oÞáÃóæÕÔ„…ÕÔŒ[U5vìYg……¹—z6ÆÄ‰/¾8qâ‘#eeGŽTW××WWcrbáÂ{ï]¸ÐhÊjëÖ}û¶nMH˜3'!ÉÂáòì³7Ýô쳘ä€í›Ÿ°çUT¼¢zÁ»–a*=ýÚkÓÓ×­+.^·nóæ_~Ù¼9zF8pôè×__¾üõ×?üð‡>üåßpÃØ±7Ü€þWŸó444444lÜXX¸qã¬YW\1k–ú×ðpÿððµk««×®Õ8kà€C<²cSVfšÖÞ4lí†&TCCeeCCª› +W0(MÓ4MÍ**JJ**°[G¼†/¦¬yÞsÏðð=÷`ŸNËÃ-‚Ã;éJ‹i  Vÿ°ÞˆåºxEÓ ëÞ8Hø·Šà­ 嬋F"Ñh$òÔSo¾ùÔSéÖê±6ëàÁº»ãñ`pÒ¤ &MZºÇШ;$6ezvÂM‰zᎧºÕL3ˆÅ**æÍ‹ÅÞ}÷X°`×®áá Ã0¢QŸï³Ÿ]¶lÉ’yóøîw>8¶ÿSOYG>««W¬€avÆ4LJßq‡¸þ/Þ/È|ÖÖƒ2‡C±n¶o_4ºo_j´AÜ ÄþýÀçØ÷ïÿþÀÿþûbÝçŸoj Ãá¡¡?ðcºž9sÙ²“NŠÇ-ºàØ5ë¸ã, vü»sç]wYÚm‡ýå/–êiú|~¿a¬YÓÝê¸Áq×^ ‡_{M” ·¢ódç0 €‘×Û»pacãã†aü»ïnÛ6: UV>óÌÉ'_~ùÌ™GŽ<ü0ž#´sº_ƒë §Š+³gÏž}¬Ï‡‡‡‡ ãG?úÑ ã¶Ûþö®=’kòm˜¨7—)Þ.wÁ•Þy••ç‡ÂäÄb<óÌÈÈ3ÏÀ¡ ¾æá`ÂÀß~û3ÏÜ~;޼¦D£ñx4jiâ|ùËÝÝ'Κ5q"4hÒºÓ§——OŸ¾re,¶reooiioïwìÝ{Ç_ûZ]Ý×¾¦ÓF?øÁcýà/¾¸gÏ‹/ŠŸÿñ¯½öÇ?~ýë/½ôõ¯×ÔÌ™SS32òÎ;##øü4Œ?þñ¿xöÙ_üêbÚo¼ÿþoXuñ‚Šúžyfyù™g¢¾˜¿°óHtÐdËuà¼x≯|ÅÚ-‚™îK_êìüÒ—î¸cçÎ;îØµkΜ]»P(¨© jjc±ÁAŒÌñx4?ôÐïÿÐC7ܰjÕ 7¤sE•”FIÉ“OŽŽ>ù$"Ûb× î¸’ÛY€´ÔËʦMÃΩ={"‘£ÕšLŠapxaØ’%§¶d þE?SÁê{å•pø•WB!ŸÏŠ §Ã®]ûöíÚõè£[¶<úèºu×^»nP¢¾~Íšúú¾¾'Ÿû,þÕ Ò§€S#©%ª0䯍5 ËANœPÈ4C¡tC0&­'ž¨¯_½zñâpø¹ç C<¨ÇÇû£ª‰¤;Á—øIªë*šFfúûc±þþTe(¼$ø‘m7”Žô[£GGß~¿ cÇŽ;ï4Œ={|Ðr ÕÖfê†q,õ 8­àÀ:–ë/im5ŒÁÁ£× ãí·~xâÄ矿þúK/-->ýÝwc±}ûvîôùž|òÉ''MzòÉ|äÕW|°¬ìðá÷¯>ûì'?iýãlxJªÝÿ¡C?ûÙ‘#«Výt—”F"Ñ×÷ÔS}}?üáCÝvLð¥K?ñ‰övëµ ¿Ÿ¡Bàâ9ô¨êê+Ö¬ ‡ûû‰·ß~ðÁ@ ³Ò.Y²wïË/ÿák×Þr LŠ£ ‹Pèøãq¿à®E$˜G©ÇSï…¸3.ŽÅÂáÉ“ËÊ&O~æ™––gžDîáÃï¼óÄç·ÿw¿û cc×_¿mÛÛo›æ+¯ÜtÓòåK—._>:::::ºuë‹/nÝÚÞþéO··/^|Úi‹£TX™Ÿ4©¶öįºê­·ªªB¡‘‘£÷+Åã@EE$ïÛ·k—Ïwà âàOæýMédPõt.J"~WTcceecc:g"î öÍíÛ‹íÛ'j ä¢´^æéêÕ«WƦM›6F8Fyyy¹a|ë[ßú–Û%$²$Ep˜.7±†1#ÃÆ¨®^±/HxĈ×u8,àB²£ÞGÌí·>|ûíxÕ÷Y Yj•"••¥¥••&”–N˜€ä+»'ôë__½úë_ÿž~ú _8á„Å‹O8á‰'|≳Ϯ©±wä`<ïë‹Åúú®¸âœs®¸BÔâ5'ŸtÒõ×_}õõׯÕWý ÿðwÞùÿpë­ÏúQèŸÂ]%j„Áæ£D<Šcûv\Éx#¸í¶¿ÿûcíüwÞu×áÃwÝ%Žéî…»®+€»ƒþ/.mŠÖÚ»)í(^ÉæŽ]Šâçxe!ÉXº¤Ø Kq–þ¯y_õØ þ þþâýë/~ñ”SfÏ>åû­xÆß².;`ðÅ~‡£%9 #…K+Ýp¼rå”)“'—”¼ûîû¿‰FGFR¥èE „‰€ÊpfaP†®É–ë À(W8ñ9Γc28í´ÒÒÓNKM SoçÎHdçN1-¦–¿e‚¼ôÒüv˜YŸ`oÑ–-ÿò/vX©X­‘ÎuäÈ®]ÇJ÷P_ßí·ãÿϘ‘ü73±˜ß íÛwÞy7îÝ[ZZZŠ—ýû‡‡ï»½B¿©i=ð‡?|è¡þðX«Çp„AEëС—_6 81KK§O7Œ³ÎzàÃ8xð϶^Àðï®]]]~ÿ±ûXii8<4té¥ÃÃ&>ùÉ[nY´hÆŒE‹î¿Ë–ûïÿàkk?øA¨Ma¾€Uƒ¼ðï•Wž~ú•W~ðƒ_üÁú|ÀÑ‹ &Lž7Œññ»ïºûn8%ᮂSfîÜ`pî\,TÃa„ƒix/8ùäPè䓳µWO"œPe·uªJT>¸®DÄã„pT]yå„ W^‰oE§vt‘/„æÏçÏ?Z oДr/^èÀ’¬ÂÛ3•; ’sçÏ=wçéXâ±²þþÍ›qÂÿ?‘‰°&“*É £öàÁxüh™F‹wßݰ!ß»÷‰'RwqŒŽÆb>ß /ìÛ÷î»gœql÷ß33vîŒFw2ͪ*„â JììljêìÔqáa’~ýõ`ðõ×q8ŸC¹à㯬Læ<´„àÆ‚ àüó+*Î?ÿoåüþ³ëÉÏÑÉ>éÜX[¶\uÕç?ð£ 'N4ŒóÏß²åè½~p †aìÛ·eËúõÓ§ ìØ!¦ŒFM3èêŠÇ{z #©8%þ‚ 25RÕk¯íØñÚkëàb&KrôÞ½ŠŠ ŽuìeãÆ|Ä0Þ}×’ÌL–wdÄ0Þxã–[&N¬¬¬­]³¦²rÍš3ÎH$Î8.¡Í›ÇÇ7oNÝ‘'vÚÿXß@ uêYeem-Z`Ó¦ÞÞM›î½wË–{ïÅ $>Oý5˜kø÷öÛ—/,-ýóŸðƒ©S~ûí±±`°¢âá‡W®üÜçN=µ´ôÔSgÎ f΄+6Õ„‚ùµwo4ºwï‰'†B'ž˜»=MÈýòË++/¿<¿O,`¶Â…½ÏXƒ¥‹ˆ$E ^xaòäª*kÆOŽ}ˆÔ—“Ú ˜¸Ï/Ÿ–ê͉'^zéÆÿüÏ7þèG7þèGóçO™2þ5׬YsÍ5?<2òðÃp¸Ë«1&Áø¹aCw÷† ##“'Œüò—££¿üå¿8s濈WbÑ!Ëêºë~ýëë®›0aΜ Z[¿þõÖÖÒÒÊÊÒR10®ÇìfÇ©­+ü+~n釞tÒÚµ}}—_Þ×gþ2eÙ²)SæÏŸ;wþ|XÃÑòC‡ª©™:µ¦»W0çžâí·£Ñ·ß~þù±±çŸÇr >‡5…>°y0 àè_ºòC³Iºk°èrðàððÑö!Ž…ªÝÁü»Š°·îàÁwß=xÇ?ï¼ó³Ÿ½óÎÌi?ùÉI“>ùI´9–Êà Âó…*,§Á¡ËË?¸§;vD";vÀ¥yrÑ$ÞYXò˜ßSK‚_8ÿüÊÊóÏOw®¥ÂqËܵ'ìô@Ô÷‘G|¾G™0Áç›0¡ºÚﯮ޶m||Û¶|p]‰-ƒû‚£¾‡utàISIÇùžü¦è2;؇•Tš&ÅX$‡àeõïþî¸ã2)¹ˆ¬px` ×ñázHÝ—tô&Õdy,éî¿ü¥­md$‘¨¬|≃ ã˜0Á0††b1ÃøÖ·vîL$ž}öµ×n¾ùºëöî}û톆•+Rƒ:c2ž1#1£ªª´´ª*»2¥©\xaEÅ…b} ŸØßå¡:µÏ{Ùe–w2"›a˜f(dµêß–uO‡èÆúþ÷ó›k®™4iûö¶¶‘‘Ph„x¼¤¤¦&ñû'N¬ª:óÌ[o=º!ßä^€W­úÊWV¯Þ²åÇ?ž;÷àÁ×_?x°²rÆŒ'ž8å”uë ä™*. Ö­ëì\·nÙ²3Ï\¶ÌŠ xèÐàà“OþñO>¹}û7¾±}ûߪlä¸U«~úSÃxä‘+ #4Œ@ ¼ÜÚ½µ{÷½÷ZÿwÜúõ%%óæ54œqÆŒk×¾ôR8üÒKx±Qkùc§ž´êûÅ’a§ÛlŸ¾]ÊÊjk;;W¯>ú¥¨¢Â4+*ìDÞÙª¯Ë@òDø… ш¯¸‹Ü¾raÃßÙ^¬J:°vì˜9såJÈÇVTÁŒ¯¿w¯[س€×rë¸Ð¼y—^ŠqOÜa‘ùȶ,ÍÍõõÍÍŸûÜ}÷}îsK–œ}ö’%íííí@"Lœ Nœ84´{÷ÐÐöíccÛ·_zé5×\z)Ò‰†#B¯¾:>þê«ýýñx?ì¢Ô£C:ÀBL[Dë[²äßÿ}É’5k>ò‘5kªª&O®ªÚ¾ýõ×·oß¿ÿ­·öïß¾ý[ßÚ¾.þÆ‹;éðûpf½ðÂøø /ˆŠŸ¨#Ü[óçóç?úèÈÈ£â%5…Ú`f»è;ßihøÎw®¿þ¿~âÄÒÒ‰dæ?ÿóŠ+þó?õÛ'¸ä’åË/¹ÿʦ#n§~ w-þw[ã©Iu¡bîiª+ž#GÇGGÅo'O6ÍÉ“ógöÇø€ò×^í5|.Ö:\W"åå>_y9ž5±…ñöäv9Ń„}}}}GB :°H–Áz ˆ£‡èú¨a<úèŽáðŽ••¦YYyñÅ••_œ›¶%^qˆ°ë ‡ éÀò6Ù– €Îà¼y ˆ¹–zÅ‚¢Ãfñu/ä]]ÃÃ]] ‡ 1^Âubu¥ãë_ÿèG¿þõÎÎ#G:;q0ñù"ˆÀ,7uê¡CS§Î™3>>gN}ý´iõõbœ|]° ¦fÁÜqÈËß½WˆèòÀ"ÜãŽ>þø[o…Ão½%¦‚͉]uúPEŇ>”.†ÚÕWO˜põÕv”¡D åúñ/_þñ‹Ñs!sQ ˆ»­;;‡†:;S÷Rao;"'b7NLŸî÷OŸŽÞ‹û ,üö4á@¨Ûµ|?©;áº:Öò¹û`']j4@¼Ùý-%Ü\#Æ"¤«¡‹d™³Î:ᄳÎÂßµµþpm-öA¢õXbœï?BãÀ¾ÃK–§Ÿ}úiŸ/>tèºëvìØ¾½¼<7Œã_¼Ø0^½¥ÅÚQ‚²ÁÕ2cÆÚµˆÜ‚½?ßùÎÿøï”–¥¥ßûÞ'>ñ½ïÁ”®««§§« ÿ™•®<%%@IIî\Wî±hÑ?ý“aˆŽœ©S?ô!Ëå¡ãÆÂ®ëëMÓ0|¾ï?¿à‚Í›‡†|ßCPö™gÞ|ó™gÖ­ûéO×­›?¿¦æX‡ qÄulÌç›;wΜ¹s8xðÀýû÷íÛ¿ÿW¿:á„_ý NXûåÚU.ÛöýûÈ,Ðcqˆ;¡Ð“ß|³££¶6¹+Lœ82rð a<ûls³aœ{nzm‹c!„ëJÝ™ ^->ö±ŠŠ} qŽ9ìÃÂ!$ôó Ô0¬ ¿?cÆÚµË–•–.[öÌ3##Ï<ÇqǃÇw´¢JvÀ 9:½þúøøë¯‹ßbÙ,»B^½¿ÿõ׉Pèèãá``ààÁo|ã¸ã¾ñ,7¶ÿû¿_ýêÿþï'?ù³Ÿ}ò“;v8°cÇyç-^|ÞyßúÖe—+,§Ÿ^ZzúépUŒÇãÖnb´í²e%%Ë–ÙqÆ©í¼ƒ—»àBÅÉìÙÀìÙk½÷ž(ÈÙ œ!HçðÅ}llœ0¡±Ñíz¨'Û¥x?ˆ›¼c‡a-¯½o¹ˆæ,ƒèÀÂ"VaêJ“tÐErœ2pèÀ‰ƒé»¬«’¬#GÆÇß~;wG±ž°k×ÈÈ‹/~æ3ÿû¿ßþv0[ë¬5[*ÄË?þ}ÿk9VÞîºësŸ»ë®Ô\°U®:ü‹À†ùÑÑpøè­ÎˆLäö½rÄòpc=ýtc£åƲœ_xQYµª½ý­·žzÊAðò»ï~þù£wH¥ãàÁþ~KáBtB57Ÿ¾åx…ñŠž }“_ÿúùçýk¸ÌÊËC¡òòþpݺþÐíÖF¿Y÷Þ;mšaÄãïW";xðùç-‡vrÁ5&ö|ìíÂ]Ù¹Ó0~ã K¥ëØ!ê É%0XáÀ‚ —Ég0¶ ÷õõõe?` æñd^»wG"Û¶AG Áìs]Ñ‘x<©š˜N–\Äb‹Å†‡c±htâÄhûˆñ9T¥vï~ýõÝ» ã¸ãr]s`)eOGO9%:å”_ñEÌÔˆâjí '^ÇëFF‰‘‘ÞÞH¤·WÔÀ*¤À&gŸ]^~öÙ?<<üðÃPå³ö^ƒóæå[M±ëí­·¢Ñ·ÞÜâYs;J2«°ë ;°HqAÉ9#¯¯ÿÞ÷êë!UþŶp Ú8ÞÖvóÍmm&<8aB¶Ê€mÆ8Q¿páÐP0‹-ân¹®¦O?çëµ?;ÀPûÄ'V®üÄ'n¿ýÙg­ˆx ²²¤¤XX Õ…W­úÛ{ÐpeÒu…_ûâƒÁ+x`Û¶vNž\^>yr_ß·¿Ý×—î颋þû¿/ºèw¿{ñÅßýNü|֬ɓgÍÂn»t¥¾É,]zÁˆž™NûÌmàŠ 'M2Œññ÷‡)ÀqZìÕsyòä¥K ãÝw}Ô0¢Ñ¤ûÕçóù cút™Àí„d¸«Äƒ„t`y‰ÜlÁ>Óêê+öï/+«¬Üµëðá]»ð2æL½JK}¾ÒÒÔϱÏŠŠÙÍñ˜7ïhnþÉOš›Ï>{íڳϮ¨¨¨¨¨x饗^zé¥K/1ÃÒ½* àòH-šx(®Ö×F.%ÕÝn뫯ž8ñê«!fǺÛzRÇ{¬ÔŽÜ:XÅKÞmY$…Ÿÿ¼¥ƒÈqPzê©Ñѧž:t¨¼|Ê”)SÞ¹³¤¤¤¤¤$1#Í–àô3ÏŒŽ>ó ¾"~™aˆñˆD**ŽuÐL3„¾Ã‚S¦,X€ã–[¶|ýë[¶äªõ󸱰3:MpN¥ûƒp%Ò&a¢¬û•W®Zuå•P¬Ø¼ùÆ7oμ¶ÿË_~æ3¿üå….]zá…3fLš4c~íþû¿ð…ûï·SwÅn»üs]‰œsΣFYÙŒ†QRRScýÃW\Ñßoí†Ã}Án¬}û{ìh×€ØêÎÙÓ½"D8­ åNÜ"Žo`—(–7æÍkhxùåññ—_Æwñv¦úPYÙ‡>„pØaC7ع‹}˜ãî¹çÓŸ¾çž]»6mÚµëøÍoþð¸®0:SwBHf0ÀýšŸ®«TòÏuppóæd,oR,pq¼ØÃÅpñÅ·ÜrñÅÿçÿ<òÈÿù?gœ±fÍgœrJyyMx} à÷”«³UÛõ±ÖaÉ@&¥¥Vt<ƒHa(4y²a,Yrã¹h˜˜·ÜòÉOÞr‹ãÍŸ·`§ôJàœp às1ΜVÇÞ«•ùhg:p_~øÿñá‡Ýn\‡Ô¥—+ì´øˆêZhÿ >üaÈFß4¦²ráB·ëEŠ˜°8H7÷a'ÉÃáðŒgõÆ‘ȶmˆ¦çäñäuÍ5'^s ¤Žñú—ëC7°²î¹çþáž{œ©)!„¸‡(ÜN%¬â‚,’eÞy'}çüýê«áð«¯bÕúSûöM™²o_sss³¥(„ˆo©¿‰F$ãOÍìÃî­Çyì1¬®\é÷wœalÜxÒIÖ¡ªÕ«o½Õ0âñHäXº?ÄD‡ÜX;vüâ†aš%%†‰>lUUË—Û;fH² Ü^óæ56Æ®]¿ý­aøý%%†TVÆi§}ï{n—3pW5555ñ ¡À klÉæáA¸Ú++kk_½²²²rlìÈ‘±18°œ¯'œVîEé"„Â&5!)èÀ"Y&Æa6ŒŒlØ aÅyoì„zä‘§Ÿ~ä‘o~³³ó›ß\¹òòËO?ý¬³úû7mÚ·oïÞ}û/ž;wñb„£†+ ¡”í—¤§gl¬§ak/º¨¤äÌ3KJ6n¼ðBk_ÏyçõôX/ç$Àîª;î¸Ã0b±±1k—˜4éä“Ý.a1³zõm·Yî*Õá³Còh`ÁiÉg ¬gí–ª­ÍFÀÌéøÍ“OnnÆáAعˆúG!ÄmèÀ*^¨Er\WÓ§Ó§¯[7qâºuˆ„³ß7ß\_óÍÐzî¹-[¬(rmmÿïÿµµ=øào~óàƒˆÍñôÓ##O? v;ùbßXX}­«{ù厎£Å¿ùúoà%$‘È¡Cn—`÷Ÿ’oààLX*bn7 Ã8thòäãß·/Ý·®+B)t¨„UŒÐEr‚F¯XQZºbEºc€ýýGŽô÷‹ŸLšä÷Çã<òâ‹<²lÙØØ²e_…ŽÕïäÈïŸYÜ®.<÷Ü7Þxüqë`”•Ä(x$€[Äïü¦@ ¢Â0æÎ½â ·KHÉOÄcƒtwq%Ü.ˆÜšÜáÀ …ªª6ož6ÍRåsR¸BˆÐUŒÐE² EãßE‹B¡E‹2¯‚ŽŒ nÞ<4d}²bÅ„ G_³fMyùš5gžY^~æ™o¼¿ñÆ}÷ ßw_ªkóæññÍ›±úzÞy{÷îÞüå/ßùbY’á$?Áîž5k6l0Œ¹s/»Ì0&O^ºÔ0V®üÑ £¶–q”!Ç aÈÒå àÀʆÖ®]]]±ØŒkÖ@m®+'…Û !„¸fÿë_RøP‹d™Ù³Ù³ñw}}yy}}æë¿úÕóÎûêWß|ó‰'>ÿyÃ0ŒññOzæÌ@`ÿþÇ,@T\ ,£>óÌèè3ÏÜ~ûá÷ß>uªß?u*⎌Äã##K–ŒŒ„Ãóç¿üòO~bíë¡ø·WÀýúЇG‰"öaµ´´´Xë±*;ƒH.I†II]¬’²áðÀÀ»ïNºdÉØX<îžp;!„g€@[[[÷aÜE\æÓŸž1Ã0nº©¶6‘À'W^9cF"±mÛ>p¬ë—, …–,¹ôÒÊÊK/ ‡‰px÷îHd÷îÇc±Ã‡ýþHdhèôÓ{z¾ÿ}+Å™gvv2¶ !„:‡O±GÛíÖ „â$X¸ÂŒO !$®³téM7}ÄÏ4C!KÆ{ÍšînKÁ 1qå®]]]©®+0yò‘#ï½çv½!„8èLáAÂB%yxpÛ¶ªª©S!Ü•L·ËF!ÄI¸óº¸à,â:3f¬]k÷ƒ +\Tø<3¿ýíäɆ:$~êóMš´x±Ûõ"„â<0d±ë ¬æææf·KE@¶DÜß}wÆp¸²rîÜ={&L˜6mÕ* ·BHq"î³2Œ ôÄ|…;°Hž¥ªyóì¹®ÀêÕ·ßn¡ÐäɆQRRScee3f0æ !„78Hˆ˜DÔÅÈÞ/â¾víI'É? ‡àÀzíµ3–.¥p;!„7¢ktttÔíòÜBñ4sæ\r‰a\qÅÀ€a\|ñoÆ¥—îÝ+šÈ„BŠF$t޾¾#GÞ}שܶoÿîwñ×îÝ&X‡ÝnB!n!J>|ø°Ûå!¹…G=ÉÀÀÀÀÀ@WWWWWW_____ßZüÿýÜ ªhB)fă„^ÕÅðÊ\ê©=ö…/lܸ|ùI'­X1~¦¤wßµîÅÔÔ†%Çž9^0äþ÷/ºÈ0ÂáÁÁDÂçóù**ÆÇ¢p;!„kÆ?tèhaR€$ˆ§hooooo¯ªB¸Ð÷³bÅŠ+Vô÷÷÷÷÷»õû§vÚi§¶`Á‚ ¸ÝZù ^Ü.EþÒÝÝÝÝÝÝÜÜÜÜÜìvYò´ÚÊí²ä/|Ö2Sè½hýúõë‰ä,æ•Q%ÿçú+¯¼òÊ+¯Äõguûíguî¹ßÿþ¹ç¦ÏóàÁžžD¢³sâÄDâW¿2 ëß®®É“‰ññþþDbh¨·7‘Ø»·»ûèz脎Nõ«_F$ÒÙYQáö½ÊD¡?_Ù£tfØ‹ìÀ^”™â°«Ö®-///g(lx„Ð3`u´¥¡Á Ã0zzzzzzp#[[[[[[7oÞ¼yófñšüù}B!ÄYòy×ð±ñâ\á…çwá…ƒƒeeƒƒÕÕÿôOÕÕMM¿üeSSGÇ“Ovtôõ8Ð׋½þú~`‘Èûw„ÆñÛßVWƃÖÕÆÆõõGÿ{øðë¯+gÓ ð$!„ÃÚ5222âvIHn¡Ë3tttttt`Ã?LL¬‘â[øÔáoÆ•0Róç÷ !„gÖ±÷å'^œëC¡P(ºêªÆÆ«®úÚ×þõ_¿öµÒÒ“O.-ݺµ´tëÖï|§¯ï;ßÙºuttûöÔ´ñ¸išæ®]3gžqÆž='œðÉO¾üò™gþ¿ÿ'þ»gÏÔ©Ç:$82â÷‡Bnß1B!ù@r.#… W®<VDñ÷úõëׯ_Ÿz ŒÎ é®ÌÝïïÛ·oß¾}££££££úÓŸþô§?}ðƒüà?˜.ß±±±±±±G}ôÑG}ùå—_~ùåòòòòòrO˜9sæÌ™3ӥݻwïÞ½{~øá‡~øwÞyçwæÎ;wîÜ«®ºêª«®*-----M—vÛ¶mÛ¶mÛ¸qãÆÃáp8^²dÉ’%K.¼ð /¼0s[ýîw¿ûÝï~‡ÒÂp_³fÍš5k–-[¶lÙ²Ì5½ï¾ûî»ï¾·Þzë­·ÞúéOúÓŸþô¢‹.ºè¢‹ìÔôî»ï¾ûî»GFFFFFjkkkkk/½ôÒK/½4sMqžxâ‰'žxŸ¬^½zõêÕguÖYg•¹¦<ðÀ< {_ï½÷Þ{ï½w÷îÝ»wï–½/HûÊ+¯¼òÊ+(ÃÇ?þñüã¹¾/xU›6mÚ´iÓœ¿/ö{ ÚdÓ¦M›6m:|øðáÇëêêêêê.\¸páÂÜݼoßãO™R]½k×+¯Ì›÷ú냃Ç ™f$²|ù¼y/½ôâ‹Ë—_pAºß…N:éê«Móõ×÷ì9p ¿¿ªjÒ¤ŠŠ¡¡`ðüóçÎmjÊT_ôºÎÎÎÎÎÎáááááá|¥ñ|ýú׿þõ¯íü(± Ÿ¨Ò²³'F·FiŒ]öí„ÔûrÙe—]vÙe“'OžúÑ~ô£ý[=ðå—_~yçÎ ,˜?ß Œ›ÆÝ.ùÛTWWWWWãŦ·····7õšõõõõõõXGÅúª“¿?{öìÙ³gÃ\ûÄ'>ñ‰O|béÒ¥K—.Åï§þæöíÛ·oߎNü< ƒAL éÊüôÓO?ýôÓp–‰ŸÃ˜øÀ>ð| 5®î¹çž{î9L±øÜï÷ûýþãŽ;î¸ãŽ›7oÞ¼yóRÓîÚµk×®]o¾ùæ›o¾‹Åb±˜˜öôÓO?ýôÓËÊÊÊÊÊRÓbªÃă–ÄK®?óÌ3Ï<óÌt5…A‰D"‘ˆø9&°O<ñÄOLM544444ôç?ÿùÏþsjiaXd¾/0_Ä´vî Lv¼*ÈÞ—çŸþùçŸß¹sçÎ;1áz¨ªáÅÃþ}AiaRع/²=ðÉ'Ÿ|òÉ'ÇÇÇÇÇdzu_0Uã5 5-êˆúâ`  Ç¢ÁœÊî}a*ö@”ùâ©IM '‘©Ïr„9nÿ¾””””””|øÃþð‡?l羈ÏÚÔ©S§NŠžoÿ¾ =/^¼xñb;÷EL ƒoÕªU«V­J×ÓÝ—ÊÊÊÊÊJŒ*©©Ðžuî ž8ô¢9sæÌ™3'ó}I7bÛ¹/鯱Ì÷%sÌŸÏwÛmwÞyç²3£óxe®_·nݺuëðšqíµŸþôµ×Λ7kÖ¬Y'œpÒI'Ÿœú›=ö =–H $‰DŸßïó-\¸xñÂ…uuÓ§×Õ¥¦}ê©^xꩱ±ƒÇÆÄÏM34Í|äì³?ò‘tõõÖ( ˹‹Ÿg¥³5ˆ£´Îì™»Q:Ýh 3JÛ©)î#ÄÏs=JÃq ö¢B¥ÕgOñ¾ˆ½(ó}IWS”®–t#”ÑóS{v³ÊÞ;Ö¦Î}±gÏž={öˆvµÚûž5,„Ë>/¹{ßéïùå—_~ñÅ={öìùÃüñÇO>ùä“O>Ê_)<Üá"vÁýÊ,J'>¨²B}ÙúýtC!!„â.ù/a‹ræÿ\ÿùÏþóŸÿ¼Û÷“By?q/lx„dlRÅA·ËB!„$I·‹“Èò•¯|å+_ùÊå—_~ùå—»]B!$Iº»¤0 Ë3àQÕ+òó÷E9XB!„ØÇ+s}­€;-E!„âƒQ=C©×à¸x}þü>!„B2ùžB!$t`yœæÅß]]]]]]©×ˆF§x=€©ŠkRcëÿ>!„Btà\O!„’F!ô 0I†Ÿ´·····ã8ÌÐŽŽŽŽŽŽt1ƒ2ÇÒÿ}ñwp=Lçµn·¢› eìÜÀŠw1œßFk ed¤OO³ßJÅÓÇÄšbdC]p÷íï)ì^¤ÖJÅÓ‹òÎõ^‡OP*œësÑJÅÐÓ8×ç®•Š¡ÿ‚Åmy"GOOOOOOº)­¡¡¡¡¡A^SÓÚ‰+¤óû¢œšÃ_º´Å€ý`®¸Òíòfô®tæ‚ýXZ…ÝÓtZ©úZ sí2T °{‘N+C/Ê8×{>Aœëi¥ÂîiœësÝJ…ÝHaC–‡éèíííííuë÷ñm•&f|+®ß®_¿~ýúõn·œ;ˆSÚ¤; ÞJí´^™0¡¢?Ø7׊¡§é´R1ô1˜ûh±.è h±ÌmU ½H§•Š¡y ÎõÞ‚OçzgZ©°{çú\·Ra÷RØÐE²€¸€µŽÔkÄU¦\˜àù8Up5#µMì˜kÅÙÓì·R1ô±Ì†¾E àÅ õšbèE:­T ½ˆ¨Q ÏŽ>|‚2· çúlµRa÷4Îõ¹n¥Âî?¤°¡ˆ;Éâ jqIDœ$DXBìÞF2«0à[jé"¬C/Òo%BR)†g‡äìi„s½3­Dˆ¡‹dL™Å&EÁÔ¸HÅäu}ÔMŠö4ûg#¯¥Óa/²ÓJ 8{IŸYø©Áž&K±õ4ÎõÙj%Plý‡x€Û …üúö£3h¥Ô‰QŸ±Õ9ÝzQ1Þf‡âìcèMMMMMMXuÌ=­8{‘ýV*Î^D2SÌÏŽ,|‚t`O³O±õ4ÎõÙm¥bë?¤0 ‹‡ÀôaÅÔo!µˆ5–––––ND–âìc0ÔP/¬4ÂØ²¦½°ßJÅÙ‹É|‚ˆ3[Oã\oÎõ¤àB’àÝO›Y°‚ ÓOãçö4 ¯‰†z…uÂbëEj­”ŽÂëEÄ>Åöìä>Av`OÓ§zçúܵR: ©ÿƒ,’0Ì ¤^#|ʡיå {š>…ÑÇt µâéEÙ5gE £YŠçÙÉ5|‚2Þ–-¼ÞÓ8×纕2ãõþC :°HÏN§ü'‰ÌR‚Å ¦±õ¼;•æö4 £éjÅЋrgÎF/"jó“køÙ=M¯÷4ÎõδRæ_önÿ!… 5°HÀ@ÙÖÖÖÖÖ†“ÒUþ0°677777§G_S§IœQ‡\"þ.ìVBÁßâšzˆø-ú•xn¿xzšZ+CCÑbÝS7·£Ý°^ü¼z‘N+C/"jó£Ÿ À¹>×­TØ=s}®[©°û)p„d ¦SÄ ÙßßßßßïvIÝ!urM“„Û%Í-öG§îîîîîîÔ_(†ž¦ÖJÅÐÇd×HÓýNa÷"V*†^Dt(ìgG>A@m)†ž¦ÓJ…ÝÓ8×纕 »ÿÂÆ‡ÿ±ßõ ±ƒèû¯p»\îƒ5TQI/n]ÎØÓRa“…½(ö"b>;éà”]ØÓÒÁžfö¢T؈¡‹B!„B!„ä5q'„B!„B!y X„B!„B!$¯¡‹B!„B!„ä5t`B!„B!„¼†,B!„B!„’×ÐE!„B!„Bò:°!„B!„BH^C!„B!„BÉkèÀ"„B!„B!y X„B!„B!$¯¡‹B!„B!„ä5t`B!„B!„¼†,B!„B!„’×ÐE!„B!„Bò:°!„B!„BH^p»$· lÞ¼yóæÍødíÚµk×®µ“ª««««««¯¯¯¯¯o­€Ûu"„BHÎõ„B)|‰D"‘H¸] ’+ažâ“Ìw¼££££££¥¥¥¥¥¦­øíŠ+V¬XÑÝÝÝÝÝ]UUUUUåvý!„b‡s=!„BŠ!,Xºì X}…9‹Ozzzzzz`·¶¶¶¶¶buW¼†B!nÁ¹žB!ÅXVS›šššššÖ¯_¿~ýz¬¦fN…õX¤… +¦jnnnnnƱ\ #ØíºB!ÅçzB!„t` 0gñ7ÌS;©Dí ˜Â©×ˆº6lذaƒÛu%„BŠÎõ„B)6(â^PÀÐÄQ‚ÎÎÎÎÎNûê0jkkkkkkÓ]#®Ó¦[•Åï¤jjB!îR+àvYÔɇ¹¾OÀíö „B’`N´³+™x:° ñ(Aƒ€ì/è?ê_úÒõ×éKÏ>ûÌ3Ï>ëv«B!IpDÎþ~¥|#æúÿú¯ÿú¯ÿú¯ÿùŸÿùŸÿù·[…BI‚}ÄEâvYHö¡«@hkkkkkU-Ü*ÉØØèèèèŒ3fLŸ~ë­¿øÅÏîvÛä#_ûÚ¿þë7þßÿûíoß|³ÛeÉG¶nݲeëÖ­[·lÙ¶íÓŸ¾îºk¯u»DùÈí·ßzë/~±|ù©§.[¶|ù©§._îv‰ò>k™)ž^tÁýèE¹] ]òg®Äß¿ÿý£>ü°Ûm“Ïó¥Gḛ́Ù½(3ÅcWßpÿýÛ7º] ’[èÀò<8£z©ûÅ}8zºµŸˆê:”””–––žsÎG>rÎ9n·P>RUU]]UÅöÉLÿÀ[)7>öØãÜe+¥ƒÏZfØ‹¼B~Îõ€='|¾ìÀQ:3ìEv`/²C1ØÕ“'Û=PO¼ XžG4X;Ò]______Ÿºµ.L^üfª¦†(æÊsÅ„Bˆ3p®'„B¡ËóÀ¸Ì|Ê·¥¥¥¥¥+®¸2Õ`…™+JæÆ'Z1J‘H"áv‹B!…E¾Íõ„B!ÎC–çyšÙÄMØtW„ÅñÁU0saC×~Ì#B!„èÀ¹žB!Ä—H$Ü3Sèà(ÖT3ßq˜­©á±í¨½½½½½=Q»vm}ýÚµ‰„a$¿ûÝ#<ôÛµ'„R씕^B˜'çz8¿àFq»ö„BŠ /<+/6MÃ0MF!,T¸«(°ÿãBooooo¯xˆ VÀíÚB!äýp®'„BHaCI •/!„†s=!„B¼X9«šØ¨Mø©R©„B!„B!$3t`e™tºXáXЪ@ëžžžžž·Ëž=¨ªF!„B!„ìaº]€B®+¸¥ €šn×DRáðÂõn—={ø|n—€B!„B!…XY±ëª³³³³³®«t| ¡Š¿áÆr»„B!„B!ùXYCŒãcG•Q~!„B!„Bì@VÖwT‰êWé^éviB!„B!„:°²†¸ëª¥¥¥¥¥%Ý•P¼jkkkkkÃ>,ÑùUPÄB!„B!ÙƒQ³vQ577777Ã9UWWWWW'^ÓÔÔÔÔÔÔÕÕÕÕÕ7Ô²Ü.{¶ˆ;ÝX„B!„BÉÜ•eZ[[[[[E·TŸ@GGGGG\]¸±Ý.5!„B!„BHþÂX9¡AŸ@ñ G©xE!„B!„b:°²vWá`OOOOO¨le'.a¶÷|¥ÆFÌ\lܼyóæÍ›3çBg!„âœë !„RlЕÜe‡x<¸R¿eãq€1µœ0gëëëëëë3çÕÝÝÝÝÝj"G£ñx$â÷›f€½‹BÉ2ù0×B!„8] YC4ï°kýúõëׯw² 0R¡Ã…¿Q*Q ¦-Ì_¦é~Müty¥~>8VV••{ö ïÙc¿ü&„B••€ÏŒÇãããöÓVT‘H<‰Äb‰D,f'•i†ÏW^TTŒÅb££ös4MŸÏ4MÓçóûá¶³“ Òö€i(g<žHÄãvÒú|†áó…B~II$‡ÃöKk‰D" šf(Ë¥õûUjj¥5Í`0—«)(+óûËÊdï‹Ïçó™&z‘lMƒA«´ñ¸liƒA¿?’¿/†a¡Ê}1MÃÀ}1Íh4Fí§E´jjr5õùTk˜f08>‹É´ß áo<ãvRé=/¨©iÊ×ôèû’HÈÝŸOý¾¨”6‘H$‰d”u‘#þ–íx^b±x<u¦¦…D>Ìõ"»v íÚe¿ü“&•”LœXZê÷—–ÊÖ-;§ ´L0hš*£ÏgÒöÇŸdJŸÏš= ™±Ë C~>ÂH«6vaR6m0èóƒ°pb1»ã^"a–e"›còžÊßÓ„uâó™¦ýÒ¿ßç  ¹û‚šªÝ«…UZ ÷ËÏG¦ ªŽÒ*v‚ßïóY÷EuöTy^`ûÉö"1­žý&WSŒEªo¦YR";×'ßwð¼Ø{Ã~¿aøý¸/‰„Ìóbõ@Ù÷Ì(­ýTÄ[Е5°ÚÙÞÞÞÞÞ“ŸÃ¬Ä·¹.C:Ixä#uƒ@æ_ÍbÙ’806vàÀï~·sçÃÛOuüñUU Êæ…A ÎÙ´%%~I þ•M«ŒµiÓ3\²iÕœ2@g@}ÕÒbºUËȦ…ñ¤ZZŸO¾´VJ•šb’V+-^¨dS%ÛV¾Çbã㲦ðûMS¾´ÉçÅ2ßÃ;1XáxR`¸«å«Ö =ÐK-œ òg®÷ÞÛ×wß}ö¯_¾|êÔÅ‹++C¡Š û©0Áí%[BŒ±j#-úªÚ<¨öd¡œjãrTiuPk9.,YɦU³£tÀ‘uôë£VSܸ®ÔòU³ÁtækÝ(_ZÝ´ª#ƒZ+Yc Š¥ªcëµ­Ê\·i à÷;oû§ +kÀL„>ÿÎŒÚã­õ,!„†s=!„B :°²V>››››››Ý.‹aX­øj8V€¿í”3UC\ÝM·L!„gà\O!„⬬!|n—Å0 £±±±±±1õø”¹2—3Ý˜Åøe–LÕù;rddäõ×ÿô§7ÞHýýšš9sjjjjfÏ®®v»!„¯¾ºmÛöí‡ ¹]çpk®yóÍçŸïíMý¼¬l„²²Ù³O:iÖ,·Û‰BH!°gÏ[o½ýöîÝo½u,åÁÁC‡ÊʦL‘9¢N¼X9D q-~îLPj˜­]]]]]]0Lq S1 ÙžžžžžžÔßÄJ,Vk¡ó•jÔö÷÷÷ E"CCGŽ£«¶EgIDATlÚôÈ#Çú9s–-›7oΜññ¹sÅÏß}·´´¿ö쪪3:|xxØ~},˜>}֬LJ†FFFFÆÆìŠÂš¦Ï·|ymí‰'¾ñÆž=»wÛϱ¢¢´´´´¼¼´´¬ì½÷­5p;ÔÔLš4iÒÐÐèè‘#GŽŒÉˆ”/\8mÚìÙo¿}àÀ{ïÙO…šÎšUS3eÊîÝìÛ'SÓ’’²²ÊJÔôÐ!™šN:iRUÕ‘#ã㣣GŽØ¿/†a'4g΂Û·¿ýöÎöS•——””–VUUVN˜°{÷Áƒ25>}Ò¤êê‘‘ññññ#GÆÇeJ;oÞ”)Ó§ïÞ}ðàþýöSA—`Þ¼šš3dÓ¢¦åå%%%%û÷>l÷¾ø|†1}úĉÕÕ##áðø8œÎöRú|†1gNUÕÔ©»w È”¶¬, …*+ËÊJK÷ì”é½S§VVNž 톃‡‡²ŸvÞ¼êê™3ß}wp°¿ß~*0{vUÕÔ©{ö È”¶¼<*)©¨())-}。¡ÁAûi§L©¬œ4id$;r$¶{_ ÃçÃ}yûíÁÁdk:}úĉ“'¿ý¶Ü}™6­²²ª 4²÷m;0päÈð0ú¡\ÚššÔûòä“=öļý¶ÜØèmÜšëEzz}tË–ÔÏ'L˜>}âÄÑÑ’’£Õ^öí^²dÖ¬N8xðàA™ž3cFuõÔ©ãããã‘ÈȈÜì9oÞôé3gîÞ½oŸÌ¼.œ9sΜ]»öí{÷]û©**JKËÊÊËËÊJK÷ï8xP®¦S¦Àž9rdtÔnM}>Ÿoöì©S§MÛ¹sÿþwÞ‘-muõĉ“&íÞ½¿LM§O¯ªª©Á(½¿Üx;gÎÔ©Ó§ïÚõÞ{29bä[°`êÔY³ví’³j`ÏLœXVVY¹oß¡C2¥…«fxX®Ξ]S3eÊ[o½÷ÞÞ½255 Ø;ײ1dj:cƤI¸/¦)c'†aÌ™S]=eÊÃÇ¡¾2¥­®ž6m×®þ~¹ûRRRV6aBiie¥li-û ³§œýf•V®mÑ-‹¨¿_Æ"ÂDEE(TZºÿð°LMçϯ®ž9spК=íÕB5'4cƂ۷ïÛ'cWO˜PRR^^YYRR^þÞ{CCro&XoöK‹‘vÂÛoݶ¯¼òüó/½ôòËÏ=÷ÒK©i÷ïï½fΜ2… '… XYæ# >Ñ|L¥Y άÔÈA0I±¦*ÆI´cHüMü~«¾©ë·‡F$²e‹aëUjË–mÛ0ŒmÛ^xáèo"yQC 5±`Ð4å,[-ŸKPG5Å´PqwT„ÆÕïŠ*(¥iª”iÔ$ÕÕÄê-q`õÕjªv7}>Ãðûý~Yt¿ßïÇ¿êm$_fu|=…A'Õ ­è]ˆ>(‡Î}jí«Ó:±X,&/2m‰ºfÎyÚ4ÕRywçz°m["ql×Ì»ï<øôÓwÞ¹cÇÑŸG£1ö’¿Ú¤6¶ëçè|¾~¿Êü‰rªÍe:³§úœ¢‡ê=U/³iªÇbSµˆÔK«ƒªE¤*m®cÕƒÁ jD—M…¹‘åK«n]˜¦J !ž¹•ŽöëÈ‘Š gCXç¡+ˈ›ùaê­Ø,€×HåäÁC1¢¨aŠÂB!ù çzB!„t`e ¸¥àºÂ¾ªT·”(†Š…pcauT47s‡x¤QÖ<'àû+º„BqÎõ„B)<èÀÊ¢„ª¸?¸›óahê;°àƒ©*nõQ î ³ó (¡XÚt‡c±D‚[7 !„Üs=!„BˆóЕ5ÔV8sQ’6Ôo3G&B©`¼¦û…tûËÀÌ™S¦L™288<¬  ±˜ŠæΠ˞íŽFãqïh`Yçì}>yýè‹©cÇùu'•°t”QVM}A-­x/dÕЪjJP‘UöL<Ëj@·Èü+r5E©k-%:úYNªY©‘T}óùdU*tî‹^™UF¢dZùû¢“cááî\¯F-oi`©¡6Jµù9:¯C¤VS+•JiufOIÕ{j†¡f§êͽ*¥Õ±ÁtPµˆ¬EÖÆÐiYÌÚjj¤jôº^¾´ñx<î÷«¨Y©•6µÚDzlì§Ç‹af)v<`Ö{¬UÖÕÕÕÕÕ‰†cªc †#Ö?±FÚßßßßߟ­Nü>Ž4ŠŸÛ~˜îÒ ¸Š¬\ùá¯X1>57ßvÛ?ÿ³ý’;/ÕÜÛ;8¸wï·ÉÇ$ÒyvÔj ùý¦ ©Lxï¼344<<2‰D"²iKJÑnÃP•~ŒDb±x<V‘yŽFᜑ»;:ÚÈO-mÒå ߢÑhTE;O$Âáñqùž€#‘H$•M«ƒšÜ)ZJZëÞȧU{^ÔÅõKJü~¿¿¤$o¥ŠŠ`0T{NçÎ8qòdÙT€iúý••¡Py¹lÚÒR¿ã |i¿ð…%K®¿>—N§qw®G°8¿î»oÇŽßüÆ~É“ÒÇ2Ï—i†Ï ùý¡l[ÅãÖkü(mI¢«ŒÒ(³lªd™åmŒááHdxxx8>rD¥¦ªöÉðp$22"›*K$âñh4WÛ¹ŸH¨Ybj9¢UÔÆŒ{€iÊÒ°gÔjª³¤á÷û|:Aäó-+ JJœÌQµq ¼óÎð°\Äê$jÖfyy PZZ^ ––ʦ--U¹/è?ee@Y™J=­ -²éþã?®¹æÛßž:µ´tÚ´îîîîîn•ÜI~ÃXYáºÂª&œSн‚) 'ÂpÌÅæüÔCÎÿ!„BrçzB!„t`e™öööööv…p`Á™%^WW³€Û¥&„B!„BÉ_èÀÊ ­âýbXçÄF}·KA!„B!„ÂAIú¤g³>I·E?õÊ 4Í`P-­óªR³gWVÖÔ8™£NM¡ %«îjjÊËÕN¡CLQÞ)©£*¨è5ÅQB[>Gu+èg©ÕTMÝÉçƒ2”ŠNšd5õQk%ëYQy^tî ôÐdS¡”jùB-NíY‹FUÍŽ ‡ÃaÙT±X<ŽÒÊkЄÃñ¸¼vÉ7Ô”M  ¥ÖsLS]Ç O¦ZMÕt¬@RtY(Ψi-é(âƒ*9úý>ŸNè uu'59jÀ"•|@¿UK«£c¥cW;¯’‰Äbªó‘ó¥UÇÀĉ%%••jiÕÆ±±±XL~¾j÷Qé#ÕYµÔ ÈD îÀÊзZ¹råÊ•+q05pµˆxÀ"în× ;À)-õûËÊ,˜8qþ|¹´ª‚‘¦éó©H5û|¦yÚiÓ¦-[&›6Ç•²êºêt«“#&0Õš:!ÈipGÔ /ç¾:ùÆbè *iÇÇc±ñq'K G‰Zï ‡UÌDy`¼AY­•ÔžqµöAŸDb1y£VG4—䎹s++çÌ‘M%;áf¬ÕFZu9a·˜1£¬lútµ´n‰a«¥òÊh€þ£æÀÒ®[2«¥U»§Î?e:÷EÇ~S{ßA«ªÙ z­¤ãUïðùTÞìÔeã‰wବþ¶sT×à€!dÝÝ®!„B!„BH>BVÖPiÏ|}æýY„B!„B!Е5Ä]Wv”­ uוšB!„B!„BH:èÀÊ⎪¦¦¦¦¦&L½Ÿ·µµµµµ¥“x÷.:j:êΫ©©néã–F€ZZ¯èS¸…޾˜ó:V:ùêÔTçYS+-´üÔrTÓ§ÀÝP»/>µ2«¡ÓÔå´¹@R¬è«9?v¹…·f^µçÚ[£[Š]ÎëXéàVŽÎ Ϋnéµ’z¿ÕQCs¾¦Ä+PÄ=kÀÕÜÜÜÜÜ çT]]]]]œS8T,콂 rïn—=›@0Ò4}¾x\6"¡ó"î##ÑèÈÈààøøà ³­¤.9¯–q@ÔdžMSeúÁô<:‹ŽÊ¦M¾¨¨ îª9œ6ž††ÂááápXMÐZݤP‹j„Vu~—eII ÛTÏ%„UZI- ¡ß †B~($›6·öÍ:{O­Ñ^®}uÆ@’;‚AÓ”é{¸ûª‘[u_üÔÆMÓ4 g…“uÚ'O$b1'Ý%j÷%€ÂÙÈ’÷Ôjê–CÓù ------ÐÞB^møߦ˷£££££×@Š^L»råÊ•+W¦§×ÇywY•®l¡#9¯–V纪ò‚Ïù|½¥1¡ƒšn‘UZuÅo‰…« ::V:½@M_L‡X,ÅԴɼõ¬QÒx}®w>0ˆ[Ú:xk”V½/ê¥uKžÜ[âñÞ ûã|ˆ+­Ó󠚎•ŽÆ«óc6ÒzéY#NÂXYf"ÜRb\B˜›X#ÅÚ¦(åÞÝÝÝÝÝ­_ä.ü¼°² ƒF*Ê#æ‹kð9>ééééééÁ@:ùyHýÅã†aš¡ß_R¢Vué>ü~¿?ÊÊ )ƒ(4.³ bêÉ]ûy'ˆV‹tÆãѨ¬SIœ2e c±D"Å${OÇÇc±ññPHN⬨©¬ƒR²jÒ°ÉWs‰9‰9 É¥F‰X })”3†¢Ñx<IŠzÚëè ããÑèØ˜ìÓ Ã4‰Ç£ÑÒR9·Ýèh,66†ûø|öjŠÒ†Ã±X8¬ÖÂaÜS»9‚H$‘ˆFQ_ágˆL£¶öz žÍXÌ0¢Qûí#‚ÒÊöyô@µ±#ƒÏé\9¼æˆÈ>ù0׋”–úý¥¥öËQÚêurýǺ^îþ‹ ½SoÉ #ÏçT™}>Ë6Ïv”êS­b™Xùb¼•ëMè ê±ÕÐçåK‹*Év–ËÕ0P^™´ñ¸a`„W š!/Œ®îÒL>'2=}À O£VK+G™ƒ~($;&ß`»ùý²ý9ê„Ì’½/jO™8Ò˦e˜—b€¬¬£‹Òìâö~Ä(„Ñ +Ÿp~‰/5ÒIÂC6ùn¯AyÄØˆbyPr¤Â•ø¿œš#†+®Gþ‚a±¤Ä4UmjèÔMÒ`Ðïw~Ǚꣲ2¿¿¬L-­;ë6ª9–•ɽþ8Jª+x†‘HTVjùªF&ŠÅÔ¢&²¯ÖPYç)0Íx\Õ4”u…ƒd$/|ÕÒª¹‘poœLTHäÏ\d_¬h€Å~À©NÞMùÓTß;£×™¶9õX–Nïg×±áU¡õ–&äI>fPËQ¢^[9ü~,¡ËÝS(„êeÕEu="ªõ@Î,…N^;¼Eºú¢ù(âß¹Û¨Ÿ(s¥+?äçSS‰º©f1!„BòÎõ„B)$èÀÊ⦸K4Åkrí´€*ªn¥š­ø<ó*kº:B!Äy8×B!¤xà¬!|0±†‰MøéŒHüÙ”TeH];EIpÄ@üæ¯þ1F yõÕ_|íµÏþòË¿øÅÔkêë?þñµk/¿üSŸºä’ìÖÚ+`s¬ì17QûƒbÆù6-;§9¢Ò‹¬´>ŸÏ'Û‹ÜêΗÖ:È RCµÒëh•ìa†d]óÿ¾$Sf»´wÞùŸÿy×]½½/½´c‡3-¸5׋|úÓ—\òÙϦ~¾dÉòå‹ÿË¿|ã_þ²ÛídzÏ&K›Õ±K7-ÉŒŽb—Ž¡ZZõž c'8ÿ¬Ïó¢Ú¶V¿;VMï¾ûöÛ»ºþð‡ûî{ôÑÔ”¯¼²mÛ_þ²råi§­\évíI® +kÀ E HŸB ŸCEB¼æ&¶÷ç³U\›E„D8ÔpqVYp¢{ñâ¥KO:ég?»ÿþÿùûiÅÉRgºµ}4šHD£Ð»Én;ØEåÅOEÔbœjqʯsu'.y5«¤Œ§³fÒy%“+dÂQZȱ˶z‚¬–ØäÊ Eä(Û¾–!"{o"‘X,e˜í•4SÇ—M A}UÇ¢šæzZUîYµTNT¤±C¡dÛª![bÆöÓYý ZïWùâo¼ñþ!]Ú5kfÍ:ÿ|ù¶ÍwÜšëEn»íþûúÓtߦ> V¨•¾®§ ã¤Ê쉹ÓŽ$õ8eú¨K›{'N™µÛ¼ÍMG~[-¼°ÚGí¾ªäŒ@1:Ï‹Ž«N6G½û¢ëhKm¥«¯þû¿¿òJü›zý5×|ìcÿ÷:9’ü‡¬,³^ ó•ÐÀ²s¥©ë«È«µâ¾0\ WZ:%/5ä#GèFª­ØàÅËS»>ê/ÕÎæhMÏN§ÕAÅ¡c¹Pc±x<S©©ê‹œ:òÎS±Äj¯Uããñøø¸l*ý ·åv+¸»Z[éD22M•h‰É¸™ùÄIòa®WÃùgD­Ÿ{ÑaA±ÎX¤–V'·pgüäˆ]èÐt 0Ìî6~;ˆ»½D.”D\ÅMM+Rp¾ä„B±çzB!„t`¢ «ŸHŒ:„©iE£V¼žB!ùçzB!„Ìõ:èÍ)êý¼æ#/{ñV ëô^’çgO·Ð ö¢ª;éì–~ZBÒAVÒ&úmºÈD0R»»»»»»Äk ¬‘*H/bšIY_5…µ—·÷ ÚûÓL$L3ùR.RèN$É:È¥•Õò@*(.©µp2_{iÑ>pͨM[P†òùäôn’Rßò™I×L²ævSªÊ'ñ¸ßošò"Áj²ñÙ@î)³ZȪŸ¼ƒ;4Í`PM¼Ù2žÔ6•öAjù”ÉtòO(Æ^Ye ´ªZM‘69>È@ê^._8|‘V¶´…‡»s½H(dš¡lùqçUÍÔÜèV  û³˜fO5ý5ÕÒªï³PY`Pî¡UMÇ~S»/cÕFZ+_•šêØá:.$¯ìþj#Ré´’Žu-›J7 ¡NÀÝÈ’j)I!CVÖ€Þ6ð»+zšz¬@ *_B!ù çzB!„qÏp`­@øêtQ~!„B!„BˆèÀÊØuÍ8³ ³ZWWWWW‡¿S·únØ!„B!„BH¡Â#„Y›ù[° 1}:àê‚À*¤RsåÇ-ü~Ãðûc1ÃP•;UCV:Ô*­Ï¨–¶´܉{"›£u_|>Uýµ|­þ*ZP‹PX…¼Ž8«li!/›cI‰ß_RräH4z䈬Ê4G,xôd™¶F¡&#+Ì&‘ˆ¬ÆŠF GZ™ÒF"‰D$Å%ÈxÛÏ1ŽÅÂaÙöAz!«é멲ŌíkU`ô ‡ãñpXM«i¹´Ñh<‹%k*ÓóÅ~«=ÖEbUE¡dœP¹T²VÍI]AFG;I-´ƒŽ]a…gP)©|iu´íÔÒ:¯c¥“/Ff̹êúPz±;m+•õú»zZÄìÔI-ÛJ° T•ã,uYXò"î:Oz”OGý«b€¬²^{²D7öd!ˆµñGV<5_Á4íœKv8N"ïö²ÒyIÄ]?­pœ©å ª‹æb‚—OåÎ= C!•0ê"©j5ÕÜÕñ¿dSÁERV†È|ò5UÍçä¸àê …âqU!í²2¿¿´T6•[bên=§$:ã‰J~òŽ·Æ.·ÐyFÔÚHgÜ+ž'ÚZÒÓqžyçmª=W·žª5M.Ũ¥Um#U÷«³VÍѵu*ñ›èég©×QuVrGCW­Þ?‚É]ÉNÉi!âèÀÊS¦L™2eÊ—¿üå/ùËßûÞ÷¾÷½ïe¾;¶àöZ»víÚµkñ9Žº]›ìáÔ ã¼A`I0º1°ªЪ†»[²ñ^‘ÉãQ:_ZçÑy Tct4‘M¹\祅uä¢ÕÌK8­Ô\W²EtDÜ!~¿év] !„bDm®OM›9Îø„BÉèÀr˜Œ¹ˆ3ØÒÒÒÒÒ‚8†é®„|{{{{{»h’ÚßÖÝÝÝÝÝ-{)žƒT„BˆóèÌõ [3>!„Bˆ“Ð¥Œ?¬|ŠŸÛ? Éöl•&)~Æ+ÖNÓÆ.â$B$>Þ>O·~›y]7)ƒ-ßoš@"¡¢«yu K=Áç“×sñÚÉlUQjЪÎ+aY©¼!¬®'ƒm¥vVH[öyÑ‘1…üþ’’X,Fí—WBkÉɈQÈI‰ý@À4ÍÕî‹N/RK¥£d”­_ð.ÙšëÎŒœ”OVItf1­î¬âÔŒ„¶‰Ç H¢/Tï•åOwT·Š@:Î ÀCÇÊ4 ù™HOÝI=œ‰Z+AéKµ´:§¬t^{ß"¹†,-DÃò±¯ ñ3§…Y™]VggggggêZ+Jˆ•Ø.tF-®w~ÅÕ’æuîµøŽ±;8åªÈfyÊWGBÛI7ÐÑ¥UI«oNMBè~«ß—x\Öa:êÔT ”ÓyñQKà\®•"‘x<‰Å ÃÙVòûUä´õ…ù ƒlÍõb*çg|u9aÕQZM899v©Ä]u#2š{¸—Ùíz;N(uŠ£muPëónG²J¬–«“鲕ž&t`i!ºŸ°ò ƒÒ­H‚™U*ð-gp·¹Õn„BQƒs=!„BŠ“¢^ÃÌ.v6ê» Ž:ÂÑ–y­G#}uuuuuuXËu»„B96öçzÀŸB!^;°Ö6E…;1}RÉõÖ}”³©©©©©)ó±tG p4²±±±±±ÇÒ~ÄfÚÁÁþþC‡ž~úñÇŸ}6õšyó.œ;wÞ¼ æÎÍ]­ !„Û·¿øâk¯  ¹]w°?×ý<õÔã?ýtêç“&Mžj- øX,sVK­Y¢¹ÇÖNÚ¾}Û¶×^{ûí;ßyÇɺäöçz­<õÔÆÇr`Í›·pá¼yÙw`%ÑȤP}F0ZÆbΖ„ä V˜#·Ë‘ëZ:ýœê=p¾´:ogzá0V¿¿¦p]=ùäÆO=•šfp°¿Ÿ¬B‡,EDùvÑ@´#ßî ¢9‹}avÖQÓš¢ÖX›…ó.uåƒÔÂ…uu Þxã7¿ùoÿf?çe1°ƒ¦ ɦU“ƒé^Àr%.í–‹D%WÕ©]]Ýytä-Tz’óÒæÈ1‘P‰Q::‹Ž†\@ÿ))ñûKK¬©óã˜Õ¶j.¡D"…TÆ@µ0h5FÎtu¼ì²O}ê’KÒ¥ýÅ/~øÃ_ýJ6Çü'»s=°?ãƒnøæ7¿ö5ù|ôÜÊòOY2PŒL*Ëmjš*±ÆŠÅuåNl>Ë)évíí¡^Æ{5U%W·Lt¿Ý”Tw5kܶMÇYgs·?ŒS¿}ñÅ^xé¥ìæHò :°IgæƒV.ÌYY8–B!λ¹pÆ'„BH¾A÷‚"wæ,~Y”t•¿!„â ¹v]qÆ'„BH~ÂXŠˆ"îú¿–-wH·¢l0dq¼›ÿÅ+QrÓbÅU,Ô4pˆã˜dºµY¯Ý"„B¼ˆÎ\/þ‚þŒO!„â$t`)"ЏëÿZ¶´D‡Z‡€|‘×·µµµµµ¥^Cöo“T¯‰žÔŸ :yAMCM Ëùšº…·DÜGGX?_5wÝšÊ+\@h\VqÉê–¨ÄYÕ°äê¡ "wOuz‚ZZK¥N]ÄÝï7 §òó¹^ü…lÌø…æúXÌ0ì%=ÎÏõ†á5‰q«¨´’·jªŠóáe¬´Åb“«»BM ‹mKrXŠˆ"în—%‰Q–ÎÎÎÎÎNµX׿•Ý#–HF<‰Äã‘H®k”(ögµAC±š»[îwdV¹Ôi[rêä‹h˜²©täNU DÀè¼zø•g 1òdïN²´±˜Ú½Ñ‰G©Ö>ê¢j(}'¦ê=U¹/ÈË+îéÜ¡3׃ìÎøÎºÂÝ¥ÕeŒ½6׫»Ût„Æm%{D·¤Å!Ç®†å„ÒyÆÕ"Ãýê™EG®^5„€® ï•¶%^,E²¥4‘o¤( „BHáÁŸB!Þ‚"î„B!„B!$¯á¬œ] (dÙz×?@!„B!„R¨Ð•e î.J¢V ¦x}!nÝÇ9içÎ:ëHëæ«z*Ü[BãÅƒŽØ¤ó÷š,jÊGj‚»¨£ób½)—€·î£Ó¥ÕéEjã˜Î}IÊ Ë×T§'¨¥-Il’oÒV®ÎkXÿ©¤Uí j¥ËëûbiôÈcê5Õ9¼£z_’u•­©•W±¿É‡¹Þ-ÔçzÕ±‹ØÁÔ…´ééééééÁ/ m‹@ª\=ÙAÇŠ¥å¤c•S^6;Œò8Ÿ¯~ŽîL=ΗÎF‚ü¶jjË S^(%‰ÒÝrm!dùg­¼Ü4ËËå•° ÈF‰hT§¦¦);"Y½@Þ´µDýUÄõÑdûRE£*iѶjOZÒ0•é–`®Ïgšø[>çB æz'g=—«ºÒœó±´ÜŠ~¨š£5×{ç©Ôé·N.ð"ê¡{ü~u‘ûì”[6…;²èNÚ›z¥uz¦öÖ(DÔ –kÀôÜ, ÿ›07qk§0LE3¦­˜ë±X‰…±+@ÀN1ü&®„œÝ6á Cˆ7Pw¿&4²ÿ"ýá|¾@@6-þEZÓ´~ÍÞ¿É_PÍ%—ý7™Væß¤cQ>-b&ª—m+›Öj%+”ÝÝ~f²‰×çzBÉÞœÿ—â ʤó.â~2oõÇ·XMÍQt¢¥‹¥(êbdwï!„BìÀ¹žB!Å X. nòÇ'04s/ÌPQ¨UüFmæ’ˆë´\•%„Bò Îõ„B)T¨•5`2fU…á(®ˆbý3×,äØÔÔÔÔÔ„µÙT­.\c'n‘^|qëÖ—^jl¼ðÂuëR¿½øâË/¿è¢k®¹îº«¯?×5TCOvÔ Fç[É[b“ŃNÛª‹¸»qOUŸS]isçGÉR=a~t{‚ªüm:¾ÿýÿøÿþï¿üeëÖ¿ü%[¿é-œŸëACÃ…^yeêçË–vÚÒ¥7ÜpóÍÿöoÙÊ«xd}õFõLâ™ëi}¼5Žé•Ö ½’½šÞqÇÏþË_>ðÀ=÷<ø`ê·/¾¸eË‹/žvÚi§eoŽ#ùXYÃN¤ž)@~5w¥‚©Z_____uT¨cäÎe†néÒSO=å”ßþöw¿ûÍorW»£óUõEaÕKítiu¦Qœß>îD s+ZŠZJU'”z=Õ ¬&…dÊŒöIº,drŽDâñHD>ÇD²ïñ¸Î ƒì L3H¶Xîû!Äæ²¿€rÊÊäC‘Jç%Y5Д»Þ¯lõ•¯|ã_þrº´'ž8yòÒ¥jåÌœŸëEî¹ç÷¿ïìt¦¦Î†ÊqÇåà•W\±¼Îçæ¥òbyB>T‹.:Ä_PI§š§^(§K{tÞÙáÚk?ó™O} ÿ¦~{Ùe\pÅÙÊ‹ä't`e 1ì´Ûe1Œ£ÍYìü‚9›Nó¸lÉɧ /Õ©À-QgeÕé’êÅBòš îú+äjm›ÌW6Fœò‘ùtIñ¸J¼E˜Âj±uŒZHŒË¦Ò5U3ýuÒê´RªûÉ¢È}öÚÏÛxw®WýtcóéÔÑk8ÓÙù¹^ÝõàÎ(VòVLoá|MusdO Å MÀDÖœpÀ ¤^#йf÷!„BìùžB!Åw`e ‚ÙZÕ¬-ƒ¬9 õ ³·SS‰Fmª4,!„Br çzB!„'t`e ‘0(õ­¹¹¹¹¹9U~53nEIDyøÔ0Ø0E.\ú––––––*˜¹øe”-æ—ó›œ !„â!æzB!„ç¡+kÀ|„™PüD¼ßBfbꯩ­yŠÇ:Ò]/êÑÀH…†W£€x=ê’®Ìïÿmyåš÷ëòØw„YŠ(²g´“9È‹ë*q8-Á¨ƒuWdïK2½ŽH¹^¹óßjÕQ¶´ºBž*9&SÉÞÉy(YRåvË,J}ëÄ”M56Ž¡Ì²ùª¥ÂõP†ŠFãñhÔ~ZKÇJ%fY<ÇãªaÔïˆßošÎªŒåù4׆³ÒËú£ºJj+WÙÜÝ’œ×›Ô"¨º¡*…uñÜSÂr*/û¢ôG?zfî[ 9`Ó‰ÿ+› ïGêV®º5®nH%•ÔÝ"é +kÀ(Äú'V8±¥?õJì«Â *®ïéééééÑ/ƒ¾„<Ô.z{{{{{ŵ\Ù#"eZÈ<Ë–^ÞdX+2šªñ­j6¹åXÑË7ÿ]AÙª©7J«[Gý—@§ZXMˆ]ÄIÑ\”V­Ìñ¸Ï'?©·VŽ0¥uz ŽC@¼*8©*ßÈŸ¹xe¼Õéç^‘Ðv«´n¶úðÊ“âXúv3w§–±ÕrLæKHqCVÖ€ ˆuQ;Gÿ°¶YWWWWW‡íúù&•Jå B!¤°á\O!„¯À(„YGÕÒ¦‹D!„B!„BèÀÊâ&„Q3_/^#»]?ŸáiB!„B!„d!Ì8õ+È©âP¡(âŽVø\q/$$“¡«bI(ÛÅï·ä–U”\‰xÈöSá;¤eI¦Ñª”O+_^Ý_P“îÖwhº!Zï ü~ÃðûÕ”ã¬{)+ÚÔrR-"4Í`PVU ×#_U-u•§dX»’ó|>KŽÝ~^uÕdò‘g,fòíc•WMsG¥mѦ€ih½äNJ•‹! œªìUu½ÖQ —¡£„¥#eíÖ¦[bùò8Ý:ú÷EuîV¹'~¿a*Ïš| ¦£ÓªµL²†²µÕy PK£Hy&S;û¬yãÉ&ÎB0Ë@¸] G`Õâ5pWA'Ë~”¯áóá•JÍÄ”O…W8µ²ª¥ÕB¨¥E-_çqÏœuº•œ7aä©õÞ¤›X>rg4šHÈŦ‰{jñ­T^Yá´ŠDâñHD6GKÚ\ŰU“Gí‚AŸ/TMkšòiÇÇãññqµšF£øO¸å]fèEú¢þ$»èÌ¿²è¸*tæÕ:ê•VççA'Ãe ?︮Ü\Ìs㾨–6‘PyÖT産k«VSugºú}Q•º×{èdŽ„¤‡¬œÐ*€]Wi§T*!„B!„Bˆ,ÔÀÊ9ØE×!„B!„Bˆt`‘,CwB!„B!„d!$YF&tZا潠øàÝ| uP= µ|uå8åÓ"HB<£´ròÛ:®íDBQ–‘E÷ûMÓïFc1µ&±mee‘#î©ì=‚ºDÊí§µT·Ð.r÷¡3PGYm)Œ·±X"!/ê1ð›6‘0Mäåó9)ãMþòƺù©Ž·ÎÔ0[艿;Ò-TEF¯„n…ýQ+«š-e¥‘ "Ö49ʤRUë²´2嵨tC1¹¡À«“£3y‘â,’’S‚Ì †îp긺“‡NZç'’ü7+EÜp`¹]g¹z>Ÿ| 8¬ª™µ££±ØÈˆl*¸ut¿ÕîNI‰i–”ȦBÿQ‹¯‰$‘ÈØX<>6&›6Ç#5áùp8‡eSÙˆ±"ît]:2Ï:xk¼-Ü“º'¹B%0ˆúœ¢#¦Žô²)¬ø¿n8·½õ¼è-¸Qb’ïÐ$„B!„B!y w`8ˆ~ˆHˆµé®c&fþå+V¬X±õn×’B)vìÏøœë !„âEèÀRD4õ-[1 Qª–––––– 6lذAü¶¹¹¹¹¹¹µµµµµ5ó/Ô×××××gΫ»»»»»;µäÜžO!„ä_®'„Bq:°Ig2ª¡#-‡Z______CCCCCVM;:::::d †/V_S¿M÷¹^;†ÎygÝôùœ[þä-Êè·&´ ÔžG5iLh(@ÊÙš&ƒ-¨´‘ü¨¥SÓ@À4ƒA¨5ÉäèóYòäÙcí‰Äã‘H0hšÁ ýT¸Т’Õx‚rV4šHD£²jV~¿iñx,&¯<+5•1Kä^N=$‹Ç£QÓôûC!Ù lÍøîÌõno«{n¡:×{«¦Þ²ôjªnc¨¡ó¬9ß‹0aœ—¯©Êœ"ÖN¶•0Ûúý*Ú[:V¼;Ï‹[%öÎûq:°±˜ ÃN¬‘ööööööâ¸ØÔX¨Úº+&ÙIHgšÔ1…Õ$“S»UGR,«:mÕÆÏÂ#[3¾Î\Ô¤—UGÕöR}¢­9E5œQµˆÜ.7ñ6xÊLS%ć•^ޤ]­*«ŠQËjiuíb•ΆȽs1¯‰7 K‘õëׯ_¿ÞíRB!„B!„>ŒBHÒu Ÿ@]]]]]]WWWWW—Û¥#„Bˆ.œë !„â¸K‘üqÏéà`Bcccccc{{{{{û±w¢që&!„’ßèÎõ„B!ÎB–"ù)â® ÙžžžžžžÔo¡ü…ÕZ´@ªQ‹óäÛ¶mÝúâ‹ ^xå•©¿ó±]~ùE]sÍu×}ò“©iÕN/;/ «'©"äiµL"‘­Så…ˆ·Äkݪ©ZLö8ç…]ý~YÕ$èD$V=åŸ5UÅ)Y v_ ¦®&WoIÝ«i¢9]ÓÌüð‡7Ýôãÿå/Û¶½új¶~³PÑŸëE/¼pݺÔÏ—.=í´¥Ko¸áæ›ÿõ_³UruI_«¯É>׺–IqhC¹%ÌO ]ûM^,˜úíK/mÙòÒK§vÚiù¤RM² XŠä§ˆ{®A}Qw¬ÐÂ…—º~»lÙ©§.]zソÿ½Ìo9Ôd°%Á¨f„;ÝRzùîL±x¥w2GÇ«Îk¼º,±ªT­ç&êÑÇÆ¢Ñ±1µöQÃ2£UÂ4””øý¥¥:ùʦBÜCË %—n/Ù˜‰@]ÖÚç ý~ùËÊüþŠ D]Lý¶µµµõÛßN—vÚ´²²Y³ds,NìÏõà¾ûþð‡{îq¦l>ŸŠ€1ÆUG-„¥ µ|ݲltòU{®U…¥Iá¡f]ÈÆIJ¿Ë»§eƒŸd£}Ômcu‘{½ UN¶Oæ|?ó™Ï~öºëðoê·—\rþù—]æ|i‰“Ð¥H1o§G n·KA!„\Á¹žB!ùWKˆÐü…]‹m!„RØp®'„BH~ÂX9AÜroGè½»»»»»;[¹C±‹¹Cx^üûÈjkkkkkñISSSSSÖ]ÅÃ}}}}}}¨þnnnnnnæ -!„âj3>çzB!„x:°² ŒÅ¶¶¶¶¶6|R%sP¼>ñÅÜE6ˆ¹‹,˜¿0^ÓýÌÙÖÖÖÖÖÖì–\^~ÑMtDˆõà–ÐÖ´ö’ؤj÷Å-Éyw&¨>áj"î:èô[”ev&_(¾E£ªÂüê¡TÒŠºo²zÑh"‰† õòWÔf|wçzÔž\¯¼ÂÙg$;8kQÏ\Or‡óAEtæ#Ü ã|i½˜/Éhf 8§`bÁ§ÇÛïa D€ê\lËׄîììììì„i‹õ[ñ[»î6ÑlRsÐÈ£*‰®La™ç£ã!©âWŸN$yr— 'ë¬#¦®ßœ~­R•ù-/÷ù £Öçƒp¼ºD«|ZѸ”­±ÚñûaäYå”ÿ´­šé¿dkм¬pvŸ;ŒóÈ×ù@ ù‰ÚŒŸ¹Þ"ysO²—ª/ÿ¨Œ¶¦©ÒÎzó‰zjkRKkÍ„r£ÁÑí#›·ŽE¤òŠ«þò¯ZFÃP›ÅŽÎÕé—yõû¢Ú‹ü~ûMµ}Äöu¢•ôî£ê[žzû¨“´LTÒ:YRâ%èÀÊ¢ ˆuËtWÂ4„{ n¬|Û¢Ÿz¬€¤CÇÉ’¼sB7c0¹…³†»nIUwÕ9™#œ#~¿¼äó:/**iïóÈM'Ž’óÎ µ8Jp”x%ØyþãÕ¹^çî;ÛwtóÒq²8;J†Þ¸ç|¤cçsŒÇuJëÎ>g[)‘P¯©î2¶³iuîf1ÚÕ„ Eܳ†xÝ!Ö««jZ§Go?:m«§Ð¤ÚJÅ1îéô"½ÙAçYsº´ÞêE:#vqôz¢5°²\QP¶?‡ »(ñ÷ŽâúüQ¿ÒÇX y]•DBUÞRõWGVÓ2…žö¼e&êȱ«µm2G€Žñ¤ÚÔ¥vÕû^<ŽÿdÛ'©O!{Oc1ü§ò„ÇbxJE‰~;uL$b1<ݲÆ"´–’:M2iÓÔ‰‘'߬:ªÔ4Ç£Q+“ÜýIÆ…„°º½´«KJL3’­i(dš%%†¡®öEòd“Á|>-¼÷ÿ†žÌ³ye ç㔩äèv+9ÕÓÑFÞÐ0užx<Ç<¢ŠD=>©¥ )oS¹µtäl¾ºÊ§òöª—刓Еeà®Jý¼UÀí2Bˆ;¨™A²Ž1¯X,‘ˆFåKê=£I§mc±D®("‘D"‘Mç`B!…‡î®E¹_(ç)!…×0³Ìfl]I!„B!„RÌЕ5pHpåÊ•+W®´ã–‚ˆ;T±Ü.;!„B!„BHþBVÖ#B¸=óõ¸f````` 5F¡wÑXuCH½¦ÞD$™q«÷:Ÿ£º¸¾ª,ºÎF}]çåNuŸP•¶MÖU%­ª¢jÛZýH¾¦–’)V oÍ€Åv@g„/†V¢¦ܳj¼4ª8óO7ï É (²†è„‚@{æë ;ò š8úû¯—]öùü~µÁC³¬ÎŽÏ5õöQKk•Öé—doáNì'ô"§Ú69¹;“ËL–8¹üI*.É<ÝÈIMê>1ŒHÄï7 ™biQ™ÒZÉcÈ7dïl0hÁ Z+a´‡t®ý~ˆTPìJ¶ñ2²Ot"^®–—;AW¼æ ÑW!r>W'ÑqA%ªéu"ì©×S½®ºÏš³Ö”ꨂRzg&rÞE¨—ݽäØÐ•5°£ qq„0³‹ªv]¥C>¦•ŠÜròÅXg qÞtRu‘èäè53ZõØ~n—ÜnIݼ›NîÃR‹ ”ZZñäÓù|¦)+‹®ãàÓ‰¦*ŽÒjñ›d£Í¿ß4URù|@rÉÁ+Ï*9™h¢ïÇùÝ£:ùz·ž,¯<Ѻ.,çÐÉÍùþ®3_ë£._ ýÖ­òz­ÌÄ<ã3ÎDwUSSSSSަ^‰Ïáꪪªªªª²säB!„B!¤8ᬬWTsssss3œSuuuuuupNáP!t²°÷ n¬ööööööÜ• {ÁW­€´H±y”|­€ÛíM!„Ãà\O!„â€;°²Lkkkkk+ÜRpiÁ(„K ãóÎÎÎÎÎÎõëׯ_¿>[¹Ã„EdCEATD|ÒÑÑÑÑÑaçwp%pØM†òãwð›éö—émWV=>ã5wõm±Åv Ðy¼s4À-9Xç7u«ÖÔçsC4Wm,Ò—,U¯©³âú:­ËÌ,Tòa®×A÷(¼Ó|N—–ä7:÷Ôù`/^×wã -&±pïÔ±¸î ‘‡;°rÂz07s½ž‰¼°‚ÚÐÐÐÐÐg™}si[ZZZZZðIOOOOOH´mHÝA&ž—z,!vI`ä§#¬.5Õª8ÝÔ…<õÊëlŽîN—Næ-¶­L+'•Yœ­¡ž“E/¡Zî–<¹ý´Ñh"‰Äãñx<‰$‘ˆlûøý>ŸiF£rN“@Àç LÓ4eÂJ˜¦Ïçó…B¦YR¢÷Ê!§!‰ u‰DBV…P #`_»5 ýþP(™Ê^+ƒ~?Xù1׋¨ŽV:ûiuçxkæU‹jª“¯ZtQµºê¾ø©-%ê8ßuJª U=O•rËÎ_Ù-³Zz]­:•T°ã­|íå­£ ¬ *ï,E"Ÿ£ºn/ú‘ZZ«½œHô–Ö|>/¹ÝˆsÐå(0:ahæâ÷á ëíííííÅ'8®(»+oµ½p@RüM|bÿ¨‚ÔŒ6݈Tj款CÈ;kqj×~1ï´­ZZÄ›ÓÙ£f¾Ë ¢ƒp8‡GG£Ñ‘ùšª À—”øý¥¥²nx¸½‚AÓ \s ‡ãñññh4— 1>‹É¦Â('á°lZ¿ß4¸&j¡|$ßæzµ"'ABÆé¨~îíir¶¦ÉtNÍHj1m­´:–‰J¾x[Q¿§ÞÙﯛ£NM9Ú“cÁ#„9GÜê¿Ý.Ñß.-þNw¼QÜGV ± !„B‚s=!„B¼Xä(`ÔfÞQ%®Óâ‚Û¥&„Bˆ]8×B!Ä‹ð!9 (ÍVY°™¶¯ïÍ7wì¸é¦nøæ7S¯9ë¬5k>üaüëv !„¿þõm·ýæ7»víØ±{·ÛeÉwôçz‘›nºá†›oNý|þü… çÏ¿öÚÏ|æSŸr»Æ„B 'žØ¸ñ‰'ü±Çžx"õÛÞÞÞÞ¾¾ã?î¸ãw»¤$WÐE² ô)ªªª«'O>ûì|䬳R¯Y°`áÂùó3 û©E“WÇЉs¡£Äáfü8ytN¾›¦(Õ«ZfÙr»¹ò£2¥ÅõjeM$Ôõü~Ã@À9ÉRÃ0ÍX ½W¥Ôñ¸Ï˶R,‹E£²O*ÑQOY!v´L,G£²O+ÄYÅí¤B›@‹*òûC!û­[¶ò ee~YÙø¸aŒËö‡äø)«bµ)Dpí·.Ú­˜f0(~»té©§žr œ&©io¹å{ßK/CNt8ûì5kÎ>;õóÉ“«ª&M:vOƧòº3èq*Ⱥs‚ʬLÙ_ç§ÔyðLëÎõN¹ÌiË3‚Óf,}XUwÝÜe€î¤šç÷û|~?fC•Ê?ßb@ÌeriE[HÞÆp¶÷Z­ãlìõ¤uqtÚùó,X° ݼóøã6˱E :°rV8»»»»»»³µÚ™; 0¯¯ÕUUU]]U¥²ÇJÝ%T,RîÔTÏQúÄ{š˜/Χ…óKíÞ¨[Pq‡) ™Õ`PîuR²0ˆeó--…ˆ»JË„B~I‰lZD”Me¥5ŒD"0Í€´=`ݹVB¯Sk[äûý¦y¬´p`©µC±‘­¹¨ï§–Et¢w¹ƒ»VM¡Šñ^i]¾Ts‘$qÖa¡I%U[DT[TöûqXeDÒï{nõ^wÊyt?\°`áÂyóðoêµÕÕ¹ •FòO^CŒàýˆÜÅÌp± ¤«—x½Û¥&„Bˆ]8×B!ċЕe°žYWWWWW‡Èƒ------]]]]]]â•øvåÊ•+W®t»ÔIĨC©e¢Q+^O!„ü‡s=!„B¼f™ÆÆÆÆÆF¬g¶·····Ã¥•Á§¡¡¡¡¡¡©©©©© ×gk\fø[\YEIÄo<[ŒC„OÚÚÚÚÚÚpe•Ì\üNssssssþï)#„B Îõ„B)6èÀÊX«„£ ŠWX±HqC>ÌÄl­pÂ$MWÂÔ5UѨ…‘Šò7 ˆ¿×ŒÚÔ\’â¡ò ;²â‹":²ÝΫ9%÷è” k6Ë¬Š¼ ¬N=uåNUÂ$VÕÚJµ…Õ{“ZªPÈï/-ÅâñHÄ~ê¤"Fü¯È׿#7¶D£‰D4¨¨cD£ñx$e û©,e1ŸO^˜_Í•õ÷ùLR÷ø ;© 6‚´Ií{Ï^,–HD£¦™H@Ä]^·«pw®‘U€q²·Ùïu}ÇÕÔôð r9êá´L¸7q¾•t­ U’³¶ê|$ ž3Ñ2—)­N•¾‹ÐH"TÄšƒTåêåßY‰XLUãÕPNj8ÿ¼èh“¹õt')jã/»Èn¶MÉì¢ εÞÞÞÞÞ^±^µvK%ª‡7ð¢q©6¬OMÝ,­Z*U#/ê¥Uu]©÷@Ë´µŸ*CôÂx<U-­ÊXZZê÷—•ɦ:±±¬¨~r©"‘x|l Ž3Ù‰F‡‡eSÁµWR¢"W_^TTƒ¦ ɦ-<òk®W­ƒl uוjŽ„dÕP¹^÷YS)m2 ‰œå©sS'зJx €"é +kˆ;ª°+³ñ'‹ù¼9ŸÊ„BHaùžB!ù=ÇYC4þÒЪÀæ8¹߇B!„B!$Ü•5°‹ jpN!¡x $Û! 7Vggggg§ÛeÏ&Þ:ºE!„B!„ü‡¬,ÓÚÚÚÚÚŠU؇%ÆìèèèèèÀ®+Ä(„HªÛ¥Î6–Hªìdý—ä©ggO>»uÖZ6_\CW-/µzºåÎtú®èå§Öã}>ÕçEïYsš¤ð-°WæP() ©rû9¢e "+#Çbáp0hšÁ ßoš~¿|}­þ$£"[GPZê÷—”ŒŽªè¤„B~(‹%UKì•Ô0 Wƒ~0htÇÇÇý~ŸÏï—•º'¹Ce~P1ÕçèË&;;«`ÔSÓÙÇK§Jë–\½wä°QJ§äÛÎ\TjJXj÷Á=T‚ŠXÁA¬rË“H$A&•ÕJri-Ùx•Þë|Ð*=Ôß!’£=µÆÈÑÐøË øŠWplå³â•>ú~T§=õÎ[Òæ:ùê˜j9êˆêà­ÈD:õTïñ¸jZ•4:²è±˜aÈ ±£¤¡ºà·ZÐqG™eSˆÂ·*ùù|¥¥~i©J¾òO·iú|~Y™J+•–šfi)]W^ÇùYìèônäëli½…[÷Ôi’±îœ#¹âT¾Vü8Õ¹LÕbTYø±R©Y¹xïPq{Y j55 /Yª:î'ʱ“tÐtÊ£B!„B!„¨Á-yYúV›7oÞ¼y³ø9>©¯¯¯¯¯Ç†ÑÆÆÆÆÆÆÔ+ !„B!„BˆXY®(¸¥DÝ+=,$Än,ü9^¡ñÞ!,B!„B!„ä7t`e Ñi%ª_ás¸«£°»»»»»rïø¼öaéj[¨¢#j¨š£;®:çóÕS%ðм*J[,çí½î¢Ý²© já|ŒDâñHD=½Š$¿Ïç÷«ÕTG=00My-*5Y}Çãá°ZiI~¡.âîô\ï:5uzÜÓá‹eáSM²[7O烨ßMµ9E§¦:êœ:¯‰„—ìj½§[}S>@ j`etN(¸¨ð·èØÂßMMMMMMn× ûÈ":“»^”<•áÕ4Õ'Zw S½øŽÎÇ=qÞ¨ÕÕ‹Áä´9÷ó5U“J ‡ãq˜zò¥ |¾`P6%dGU]Bêâ¬:·~¿aøýjã` `šÁ |*´­JœEµøŒÁ i†BjM’_xg´L–W%Ø‹Þh ‹J[9„GÏ"r=KÓ;J-­~tHÙ4±X<ŽÈ¿NÅ=´¬>•ÒêXŒ:.fµåš&Ã8Û‹ÔßI¡ÃXYñ·¸Ktl‰×ªÓŠB!„B!$»pVÖSP‚ÖUGGGGGÇúõëׯ_/^/:¶jkkkkkÝ®aXn5;GQߪªªªª*·KM!„»p®'„Bˆ¡+kÀ ÕÞÞÞÞÞiö¶¶¶¶¶6|õ+ñz-„Q˜?,1Zbæ+¡ä'øy±hB!ÞD®'„Bq:°²ÌzÌWBËΕn™yqg™HºÏu€:€ú mµsþ¸^E&*Bj ¨£šRÉ·’zMÕ5¼…¾Z„W¸xÊÔô8œ¯)T¥Ôt’Ú ²©T{‚óãXR×BO«Nõ^diÁȶà©•]œŸëuÐy¾¼UZµ±Ë›èXDN£v_¬Qݪ§s£´ú|í¼í‡€$ç)­Õ2–U-ŸVO÷MM{KeæÕÓiµ~A¥ž:ÖT2wBDèÀrü_Ï„Ù*[ÎäÀ*?è¼–èÉŽª8¡LSO˜Ð‡ZMÕ!¢“±KpÁä÷û|êaT@̨”j@RÝÉá2S“c×í j©Üº/ª5UUôŸ5’ŠÚ\/";‡böôŠJ¬¥|*·" :o6„¥ë nõ;램 Á;ÖF=¬’úòOÁ~+ȷ盺@©šSÀn2ÄXÄ.3·KJ!„8×B!Ä[ðaÖÃQ§ÆÒâÂ@Äõù¦eëéééééIýn8¬Öb¯Y:ú_ܲåÅ/¹äüó/¿<õÛK.¹üòüÓŸþìg?õ)ñsh(¨ëÎ8+Ÿ­+LèYt¹z±pçQëEÉë½§:Ï‹zûX{4œ 7MôCgr´j§¦y£ @¾ºu_œ—ºÏ,éúõ¯íkÿþï[¶lÞ¼u«3-à]²5׃ü¼ó.¹$õóåËW¬X¾ü?þãÿþßo|Cü¼˜¤yÝØ¢›¯j=Õ…¥UTSup«:o©ê ‚@µ}¡—‹9)ânõYgCCèôçEÜÕé¨l±êyì’ßzëÏ~vÛm÷ÞûÛßÞw_jº­[·lÙ¶í´ÓN=õ´ÓÔêKò:°²v`áïÚÚÚÚÚÚÌ×Ã@Äßp~yEÖ%u¾Ä’còX¾üÔS—-{ðÁG¹ÿ~Ù\t„Õê¥ÿ©N¡›ðtGPQuªÖ à†¤§S v~¿aøý‰"9ß–JÚì<ÝÎŽ j55MËWÍÑ+£Yº»ùÍo~ë[ßüfºTee@E…3%ô:væz‘‡~ôч’ÍÅr¼þ<è^ Õ\Ë*ciêÎ ÅѬšÊb w«äålšF'pÎ÷@½ÜTŸ5ùù½ÈïwÖ?Öñ™Ï|ö³Ÿù þMMqá…çwñÅN—“8 XYC< gÜXØW•ªxå]u û;Åœœ tò*³©¸ÐéÞ)­[8ýÔSTÕ¸O^ëó$¿‘›ëe)×UqÁ{Jôa/²‹[{ qÏxåóÑ%º«°b‰=Vâ†|½ç³V*ÐÅ]o^)9!„BìÀ¹žB!ù w`e ¸¢ l%~åQâî-ìÏÂõù ~D·šxXåÇQü?º]„B±çzB!„x:°²L:¡ÓV·Ë˜ ¬»Âx…»-õ˜³ùVu™@B!¤˜ðî\Oòo…¦ñª¢ß¼/„ƒ,r0mŸŠÀ®Ì¼5Uº%ÄH!„tdg®·ð–P4ɵÉò>e„èÀÊ ØxýQKT¼Â^­üÜ–Ÿz¬€B!…çzB!„x :°² 6äC¦k›©×À±…MûÝÝÝÝÝÝ”G%„B!„BI7£f ¸«àºÂ'Ø¢ŸHAzG\B·ËN!„B!„’¿Ð•5°¯ n,¸®R¯ÄáA¸±p½xÌÐë$‰D<îv)!„B!„R8ðaN°£(‘νåuñެp8—ýˆZ¿#“Ê4á>“Óâ÷û|~,–HÄbò¥õù|>Y·UZ«Ž2%†4~<®RZÓôùL3—w2Zñ±‹P®¦âÝ”Ië÷û|@4šHD£²9¢¦²÷Ô4“÷E¶&{‘Li“ùÊ÷@Èìú|Ö=•«©Ï‡çE­¦€lM“÷Åï—½§€Ïç÷'V_²WSÁÔîËÐP$rèl*¼¼ G"CC²iß{otô½÷;xP6í¢E“'/Z46 ŒÈ¦U‹Vfͱ˜ì‹aŒÇãcc±X<.ï¾'¹#ŽÇÇÆœÉKm ±–%T^ÛtF·"úéÍG*iÕÕ@1Ä=D«ª9°”w›lZµÙÓÊ7—ÏN+µ%aµöÁ2•ZJ$ #WËW§¦Ñh<.ï®Mº2å­šPÈ4KKÕžn§3wzÄÆ=U/1ñôMfÚÚÚÚÚÚææææææÆÆÆÆÆFèa‰ªñw‹æg,BB!„B!„|€;°øzfíª6t×455555AËí:B!„B!„ä#t`)«Â;úç]’ZTNªR? ž¼ËW/·¤v–3¥u çûƒ›=ÐYð\'VdR¡}dÓê´­š¦ž¨Ý&{œ!ôûƒAµ´GŽD"GŽLš Mš$[S«må$ÕgäGlK-ή)<ÔU2ñ¿ò½Ng4P{FÜj%½Õm0·ZÉyÔZ תµÚì©“Ö:ꨧ*+Û>ÖñLå#ÕùÈùšZõU³ˆÔÖéô@çGlR Ð¥÷L¥r†¨ *,û j¦ ô|>Ó4MÙA¯š²JÉÚ˜Hd¦LL$É:Ê×TMžPm‚OÖ4)æn?m"¡ZSˆbZêr¥EMeï)´N¬l¹ÒB.×4U—V­&ï©\Mq_¬û)_SQV®´jiax¡çÊ+zÈö¢dMñ¬É´DRÇÇãññqˆËÚO[V”•Åbñ¸uw줚2¥´tÚ´ÊÊ@`âDÙž ð3yrI‰Ìaö¤D´Ï¡}ûi!ÁŽÒB@×~Úááhth¨¤De~!¹ ¤$)ŸlÈ·CÊÝ~*q”6 µQZ®¿ÌG²#¼ÖFvæÕ¥¡©çä(-JJCð^¶´ê£t$)wÙšÂ>Q™=c1X}²÷ªI€iÊ”Vlá@@¾¦x^’ö¹\M“£´LM¡W¨6×CåPE½+‘@ÛÊ>ã¬;jŒya¡fm&k*[ÚX JX²³'FQð^¶…e{‚Ž]|Öì§Rቷ ‹ä 7j,B’”•¹]R¼È¿b$)-õûËËeSM˜ žã´i¥¥3g:Ñ.Ù`âÄ`PUù±¦¦¤dêT·k@’@ØíRBòµÐ-‚AÃ…ÔÒ–”˜&-Õ\!箵Ò0þ`áÃL!„B!„BòîÀ"Ç`````` ««««««¯¯¯¯¯o­€Û¥#„Bˆ.œë !„â-¸‹EGGGGGG]]]]]"$"Š"¢.®\¹råÊ•0yÓýÂèèèèèèÀ@¿ÛµÉ_n½õg?»õV·K‘¿¼õÖŽo½õøã=öøãn—%Aû ­Ü.KþÂg-3ìEʼnþ\èСC‡¹]|‡Ï—8Jg†½ÈìE™¡]M :°È_ÁêkKKKKK >ééééééÌekkkkkëæÍ›7oÞ,^“ÊØØèèèhz×ÜsÏo{ß}n—"Ù±£¯oÇŽ9Ñf탶r»,ù ŸµÌ°ÙšëÝ®M¾ÃçË¥3Ã^dö¢ÌЮ&…Xä¯`=+®0aW¬X±bÅ |ÛÜÜÜÜÜŒc¸F°Û¥&„Bˆ]8×B!Ä»ÐEþ V\ñ÷úõëׯ_Ÿz¨‹±aÆ 6¸]jB!„Ø…s=!„B¼ Xä¯À¨­­­­­­Mw¸NËUYB!Ä[p®'„BˆwaBòWp @4[uØ»÷wöîý»¿[µêŒ3R¿-++++++--+++s»Þî°uë–-[·^xáyç]|±ÛeÉGJj/¼ð [¶¸]¢|¤·÷Í7{{{lÆÇ«ªª®®®v»DùŸµÌR/:|xh(F#·Ë’¿dw®éæú@ 'L˜8q·ëí…ô|åŽÒ™a/²{Qf É®†Ú2HýöÍ7ßxãÍ7?øÁ~põj·KJrX$ËÔ××ן{®5H[ÊÝç«®öùÊÊÊÊÊËý+‰®“Ë[-•iO=õÔS—/÷JiuÓʧª®®®®©©®¶ µü.­[i;î¸ãŽ;®jšL ûYób/n×thhhhh¦mjŠ ,˜??óÎ#bŸsÎ9çœsÎyî¹çžÛ´)Ý\eª‰'Nœ8ñØ¿â…gD'-Gi;p”ÎL!Ò¹Kë½^¤“¶¸íê±±Ñѱ±tóNMMMMMMviH¾Aù+UUUUUU¢:†­n׉B!I²5ׯp»N„B)¨Eþ |թ׈b®ômB!Þ‚s=!„B¼ X䯈Q‡ººººººR¯ZñzB!„ä?œë !„â]|‰D"!žŽ&Å VbëêêêêêðI{{{{{;ŽÀÌíèèèèèhnnnnnæ!AB!Ä[p®'„Bˆw¡‹t1Sƒg744444ˆÆnê/À8†Œ_X+àvýÜ-cGyG6Òµp!Ö@ËÔ ØI[<=Í~+OkŠÝ"¨ î¾ýCO…Ý‹ÔZ©xzQ1ù>wð J…s}.Z©zçúܵR1ôR°$IC·@ooooooæë3»þÐíš¹ZÒÎS‰+Ý.oöééééééIg.`µßÎïvOÓi¥bèch̵Ãëwæ>PؽH§•Š¡ÎõÙ…OçzgZ©°{çú\·Ra÷RØP‹¤E\ȼ „ÕŒ–––––|‚‰ àã¯)fÐ&Ýi(TÑ\¬ö ·`B•`U =M¿•@¡ö1Ü_´ ê³ =-†UÖ¶¶¶¶¶¶Ô_(†^¤ßJ P{á\Ÿ;Šó â\ïL+‰^Oã\ïL+Âë?¤ÀqÛƒF qk©×ˆ«LvÖx q­ƒ«©mbg½±8{šýV*†>–y¥ߢð*žzM1ô"V*†^DÔ(†gG>A™Û„s}¶Z©°{çú\·Ra÷RØpÉâ êt+Hâ$!F8"Ä>ìi$³ ¾…¡†õíÔkŠ¡é·!©óCòö4¹ޙV"Ä‹ÐE²&‰ÌGÄ ¨©’±ÅF}}}}}½O1¡Ò5'€=Í>ÅÙÇ`€Š­©×°Ùi%Pœ½ˆ¤ƒÏŽ,|‚Ô`O“¥Øzçúlµ(¶þC¼NÀíB~}ž‘¶Z)u"AØrÄ„ÂVg5„B…=ÍÅÙÇÐ7šššššš°êM‡tWg/²ßJÅÙ‹HfŠùÙ‘…Oìiö)¶žÆ¹>»­Tlý‡t`☠¬˜ú-¤±9IND–âìc0ÔP/¬4ÂØ²¦½°ßJÅÙ‹É|‚ˆ3[Oã\oÎõ¤àB’àÝO›Y°‚ ÓOãçö4 ¯‰†z…uÂbëEj­”ŽÂëEÄ>Åöìä>Av`OÓ§zçúܵR: ©ÿƒ,’0Ì ¤^#|ʡיå {š>…ÑÇt µâéEÙ5gE £YŠçÙÉ5|‚2Þ–-¼ÞÓ8×纕2ãõþC :°HÏN§ü'‰ÌR‚Å ¦±õ¼;•æö4 £éjÅЋrgÎF/"jó“køÙ=M¯÷4ÎõδRæ_önÿ!… 5°HÀ@ÙÖÖÖÖÖ†“ÒUþ0°677777§G_S§IœQ‡\"þ.ìVBÁßâšzˆø-ú•xn¿xzšZ+CCÑbÝS7·£Ý°^ü¼z‘N+C/"jó£Ÿ À¹>×­TØ=s}®[©°û)p„d ¦SÄ ÙßßßßßïvIÝ!urM“„Û%Í-öG§îîîîîîÔ_(†ž¦ÖJÅÐÇd×HÓýNa÷"V*†^Dt(ìgG>A@m)†ž¦ÓJ…ÝÓ8×纕 »ÿÂÆ‡ÿ±ßõ ±ƒèû¯p»\îƒ5TQI/n]ÎØÓRa“…½(ö"b>;éà”]ØÓÒÁžfö¢T؈¡‹B!„B!„ä5q'„B!„B!y X„B!„B!$¯¡‹B!„B!„ä5t`B!„B!„¼†,B!„B!„’×ÐE)@::::::êëëëëëSÃ;ÿ;^¬{1Ã6$„¯ ?b{qÌ÷b™ó ¶!!^„,BHÒ×××××·aÆ 6 ˆßŠ&‹Îïä'^,s¾Á6$„¯nÄæ\O2Ã6$Ä‹Ü.!„dŸõëׯ_¿~íÚµk×®]±bÅŠ+ÄoE“Eçwò/–™BQ#ݬǹžB :°!Фš† UUUUUUöÓbÕËŽ†T›p}mmmmmm¶ 8”ÇN-tê’¹%ñ ¨W6î•›¹§þ>ÌîÔ6Ç5¸³kÒý2R‰ýAì vÊTÈ×gΑBŠ Îõ:u±ÓžÎÌøœë9×R $!ÄÍÍÍÍÍÍ7Ä¿E`¶·····§ûTƒF&E¿˜ ¿™y4C©RKÛÝÝÝÝÝúy:Ò]/~®Sñ73׫³³³³³SçN¥–ÙÉÜÓý~ºëS¡ÙÓÓÓÓÓ£Óì÷Côa¼ž¥kCB)T¼5×§–#v>Ìõ©¿œÝ9—s}ºþ`çÞq®'Ä»ÐE±…h|`â'{ü]%ÐÛÛÛÛÛ›î`Rô ¤~+¦Åobµ-õ—;RóÊlØÙ¯u:cW¶.©-)–\lI˜t:w*sÝs{êKŽhž"_\ #R¼³™KÒ. ¦ÂߢÁšúŠ•ùÞ¥»4j !Ń·æúÔÓÍÔök­¹>]{fkÎå\Ϲžâ„,Bˆ-RWeS¯Í”ÖÖÖÖÖVñ[˜&0SÒ­UŠ›ºEcÅÎ:[ºÒæÂ¥S—ÔuËÌù¦®If«î¹Î=óú|­@ºkÄÕWYãR4—eó$Ш%„ÞšëSËœ]–N]R9»s.çzÀ¹žbƒQ !Òˆ›®Ó}.ê @¿ú™µ3RåWñ7ŒŒ¶¶¶¶¶¶¦¦¦¦¦&D¯qýºØiÉÔsQ—\çžYcm‚;»! bî©!®ÑëSÀ}!õÞé´ !„6œë³5×gnÏÔ|³[Îõ:-CÉ7(âN‘FV²T4G2 ¦¦ûe¬ŒÁ¨…)#~ ã ëÀ¹ŽÅ£_ûò±¹ ×¹§“V_x`bâΦûÜ_±´------H…vN5 S_$RÍbB!éà\¯S—TÜšñ9×B :°!ÒˆQÒ]#š ¢Á‘y}2ÙóHTCÀ•]]]]]]0n`èÀüÍ]ÝõëBÄžƒö´#Ô*‚;Ž´éî8® kñÞån_!„œëuêB8×BrB¤)™ú¹¸^šjòŠÈÓ™¢!˜ÙhÆ·X‰…±"®õÙGÍôÌn]Š Q®}IÍÄLת™{‚xïÒ]“®‡BHñÀ¹žs½œë !¹€,Bˆ4øFÖEa²¤FxÁ'0_ m³k›ø¦ÄAñ;øß"\ßAð;öµ Ä•:¬Ý¥ÓbH‡Z]ܾoù^HІP² \´'î/¾Óââ[ÑÅßPÊH—/îî®ìÀ½s^o…Bò Îõœëõá\OÉ2n«ÈB¼AjÄ™Ôñ¦[æX6â車oÅX?øµÌF!VeÅ|3Gç©fwêõö£üØ©Kj*;­$G?c¶r·s=¢Y¥SÐX}S‰·ÓµüZûýyé´!„xoÍõ©y¥ŽØnÍõ©ií´•ý‡s=çzBŠþÇ „ŒˆRš7ÄÕ3\“9HjZ1àqºTâê>Yãî¦}µºTІâª8îl:ã5µå3_ŸŠØ£ò¡/Bˆ»p®Ïn]H*œë !:ÐE±EªQëv‰!„’M8×BÉg¨E!„B!„Bòš€Û „xûG!„âE8×BÉgx„B!„B!„ä5 v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. #html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'HTSeqdoc' # Options for LaTeX output # ------------------------ # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, document class [howto/manual]). latex_documents = [ ('index', 'HTSeq.tex', ur'HTSeq Documentation', ur'Simon Anders', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True html_theme_options = { "sidebarbgcolor": "#006666", "sidebarlinkcolor": "#FFFEFF", "sidebartextcolor": "white" } HTSeq-0.5.4p3/doc/count_modes.png0000664000175000017500000006327012110432433017316 0ustar andersanders00000000000000‰PNG  IHDR¦aôåÄsRGB®ÎébKGDÿÿÿ ½§“ pHYsÅÅGlìÿtIMEÚ :&µvÅ” IDATxÚìÝy@ŒùðÏ33M5ÝŠ]ŽØ°Ž5ˆÊÆ"gr_9Ê›\K›ks¹£"W²Ø YŠuŸÅê£R’jÒ535Çï!~JHÚjÞ¯¶yæy¾3ó~¾;oÏÓÓ IPÓ±*Pù€ÊT> ò•¨|@å ò•¨|@å*Pù€Ê¨ V¹ rrrò8‘„ׂ'Y]^ *àûZÀ÷ÅV\|-y{d6ø="zvpO¼@,— ÏùÎ1b„ë„U²Ò¶]8ÞuôèÑ Ä6lÑaà(÷ ÆDT˜Zö8ÃÛÕ&¢äSî¤äQü•½k%ꪔú”Š kW›ˆ’N¬»ùü =½¾ßË|"j:¬ ¯ã(àû²RWù7¯è¡ï’¥‘C½æv²™7ÓÜÍ+);ÂcÌU6‰$2†Åî?{|©G`³4ó8õŠ@)à(•¨|@å*PùðZå2ÈÉÉÉãD¢À^T>|«ÅÃ899ýz%­J Õz&| |ú¼7yÓvW©Œ«e€(° æÁGñÔLNNNDÔÓ7h’±Åx_tó•¦ÉôC;»(îê¿ràè±[1O‰WÛ®·ÛÔÁ6D´ÊeÐõq£q[×9™‘T˜t$àÀ…[±¯sÅÚµÍÚvêí6äuS<~©ƒ€BâÇÃ➦H8š šµ2vlk^qt »÷[àÄ>€’:µxÍ…;ñ…Ò‚ì´°Þ›ïf~´‚´0uÉd ³7Ó²óˆ‘ Òžž ÚìþÛA©ü+QZ¯oo›±ÊÿîãdM#3}•‚‡á+¦Íˆ-‘ƒƒƒ‡EDºMÚÙÛX*Ö÷›ãyæö£‚¢Ƒ¥-u÷>w;=§€Í’f¥>;¼mÊ‚€"}j(Ìê&d¹g²8ûöÔ™Þçî<|S – Sã£VOŒoµgÙ¶Û_J‹ÒŸÞÛ±Ø}ÚªÀ‡)‰´ðÅÃë+gý.’½}€?çÿzãAžXšŸz>hƒç‘xÅò’»oÀ@s"Êyr HND”ó<¨P&g±uÆZëVH>¨|%ÅÖå¯ÞuððžõVê"ŠÜÿè£b}—Ge‰Ø\ã>?¾Þ£‹a2£lº›ñåƒ(­ØÀër¹¼V³¹þÛ6ûîÛß»ž‰®¶äØ¥4"š={¶™*›ˆL{2¶­býËÉó¼6lZ÷Ñ8q»–ßËTì…}ÇŽ_3«/Ã0ÙN¬LÿÔP˜ÕMÈrÏäˆ ;3‹dš¦÷Ùé·ÃÇ¥£‘\.;½áXñVÚÖÎ[ýWÏêND2™P£I¿­~ooæFŸˆ«å±šxïÜê鱬:ºŽ0âQÔþ˜/Di7Õ%¢¬Øõ¿®ÚzâŸ{=~Û¸gϯŸü¾ö¦³æõ°k]ߢîG˃®¦‘yõt‰X?t»qåïÞÞÞýêðòÎêrÏä?e‘š1÷îåð¿Ï]ÎÑÐ#"QVèéÛïÝm3mym½~vSÜì8}°y÷73‹Þå·œ5£™‰G]¿ßl"’ežˆK}þ*¼fƒ yDtùT Î"¢Vn-+*\¾ ¤´õÞ~“7GMDD“÷‘”ˆô?øÂ±,4ée~aNò—¢´MX1H¸.ôêýØëa±×ÖI»i g4ÑV)u}ÓÒ+<^(%¢Zì…úMš!Þ¯šÕåžÉÏÅR"ʈ8s,âýCÈeÒD‘Tñ³:›ED )6!-6óáÍb-4ÞÎûAÃHd©…ÒO½„.c~^u'ýâÙ¢‚¨¼"GÏÍJ•Ÿ'“¿í`©XúµÛZª±ȲîfÒ»ë†â“ò‰HEË Á~VNÓÛÍ£ßTvʃؘè{á'ÃSî_^ù[ãý›ú|Õ8fª¬x¡,óÎû½pýøÏÅ ³ÎNv†Èù»Îdc.ë¹HúÔíkM¿å Ä=Ë#u"’ã³¥r"RœÏ/Uí6xìÉÂìsׯ'‘Þã´Ùv>'öj&]‹ˆ_J%"iaê¡G_}Ê}X»ÚD”tbÝÍçoˆèéõýû^æQÓaMïg-ï:zôè…b¶è0p”ûc"*ÌNUÜËV|ºäó'E†·«MDɧ6ÜIÉ#¢ø+{× JÔUùÚ¡”V¹gòàôˆèÙÁ=ñ±\&<ç;wĈ®Vɾò DoÜ›š#fþµi\.g«9ê©}j÷±TŒ]ëkËå²mþñDÔÚõÇ ŒGù5ÓˆÆ:Ûî ž/üõq󜄘¤‚¢¯¡¹û¯Íþ›ýråôQ\U¶X$!"=kç9íppùy³4ó8õ¹ÇbÊØ}m\›Ó¯—E")[ÅÀµ¾NF£|€šé—ß¼:7·Pa¤OŸ¤šÚ ›ÛÙäkG`«š/Û¹nH×¶†:”Ò*÷LVÑl¾Þ÷÷Þ¶?ꪫHT4-›v˜¾Ôwô×|!Gïß[[ñTØ<]“n.ó=ëQ™»O÷‡±<6‹ˆôšŽÓ`Wäÿoø(€ïBña;.þÁƒk«ùV²¢ôу'¼‘Êzú˜TO»ŸNìT±ë<ÖD ò•¨|T> ò•¨|@å*Pù€ÊT>*Pù€Ê€jIMME 8ÊT> ò•¨|@å*Pù¨|@å*PùPEpÁg™˜˜(ÛKÆ—- ò•Tëýû•çÅÞ9{ æÁ‰}T>TIMù½w˜i"@åÀÇð»üÿÌÍ¡}¶¿ÒÍì{:nR»¾†ÚD’kï.‹IVU3Zþs[¾ŽšDœ³çÖ¥ 4!‹­1Óξ{-58÷rö ò«QôäÐ>W¿Ø;[½¾ÙãjÃæMéÖsQzÆæ¸O/wŽÏ0ªÓìhG~ÐÑ+]캶-¸×ýR"±5wîMÏ|œØÿÏÈä’õI"šmªQ·^«€îÝý»vlÖ4¶Òºp.Ä/O½cëá ŒXlÍ2ÑØ•,#’IóvF TS »ÚñùüÍOrFà¨|å*}q:x1|Ì™3cΜ™qgg´`r7çÙ–ú9yY!q«2 ÉäïövTOÂŒcá‘&‡uvcÒ@•¯Œ¶¼ºñë«qUk­üÙÖTJƒ ÔÖEFŸKIת]ˆ!¢M/ _§™ž†fçIýíä¯î®õ9¨ÕaÙÉ ÝËØäKžÏ›„¿ =8ã䥑ÆÞÝ;ž×w>xF¼2áŠ}€šéÆ2ϧbÝ€›jrˆÈÆÎ¡¨_—¿ ÞýÃnÕ¼Ø\Æ;ä`Wc "rì4˱ïŠyŸÙíLDÒì.GæsYDdoøäŠû©ÕbY÷{enòY·×‡sµÚ»kѰ±V®Ý~?xS F¼ÒàÄ>@Íä{#M¯ñÅ›#Ãq™Ö¸ø^ÿ‹/5MÝ;ÕV•H$‰DFºÓÆZeEoȑȉÈzÖHî»÷Ëž&2In²XRö&e“I2Öþ›iÜyðëôôôôt•ÖCI.Ýp: #aŽ£|øV "iÝúu>\¢ÝÀ€(_ñsœP*JÚhc³ñ£­®åˆ‰HÍDýý".CDRyY›ô¨¥Vö“y}{M–Dš2«gÈû…ýöÑ /$Œ„8*¾‰5“’BÔ¢xINüûˋ꫱R §mYÒú£­Œ´¹Ÿ°›;³)RM¯ËÊßz/Üß¹Ìïä©Ìù½õÕ0FàU·ò•ðûã•íûd¿÷.Æå•`¼­á¬óî¼éÒZ‡KDr™8Àç!‘™â^·6uÜ:Åk0ÌRUñ& óÞ3(Ëú♟°›(Hòcw$æ6š2ÎÞ¾áû…­x¿ûOÚçÿ¸÷¼æH #ð*}”¿Õq ÞR¡|¦žÝ†*AÛEÞVׯÎ:u’û s ÉÕ?}ÃD…Å÷Ú.YfÞsÒ˜!ÓÜFö®ÃÞ:sðT|öˆ ʰ›($‡nÈäãú™ÿß[fëa†Á§7Hæîå0H #ðÊ€Ë÷j&¯É®Ã›»X‰w¯ö\ìí›ßÐeu[Cëí×.«h¶ ücK·’ý[¼—xo¾_`9óÑ™ö†e XŽMöùÇó úu,q²ÔÙ­aQ^ìög9H #ðÊQž¿Ë711ÁQþ·SÑ·ŸppÈSOÏ¿#”ë3ó§žÝ†û• ãzØ FŸ^¶Š›rIîÄ.Ý’ê-:³§7ÂAÂ\IÁÅеSÞÍu'µ§ˆÓH*œ¸àÂR¯ð°ûî£zÚiË3Cý¼£D:+VuF2H+-å—ŽÅ­mïéV¯.'÷õ«¤3³ÛÛŽ‡§3ív®Ö?Ö!¦ðùÉ¿þ Šš²øbhÚ­Œ5xâž[&”\ç :üÏ5wÝ–vô :'9O‚£|¨pîÜüwlb£¦cݪ£ë¬™¶æšˆ #påÃÿ±òœn˜øÇ^Ïh†£Û5ГnÕŸ7[?.hïªG W×fÝ‚Nq‰,U#£ø€#»RµÛìeÿpìÙ’ë\ˆzSr|^£Zâ臙Y”ßÞÙ(ùÀ d®M¿ImúMªœÇâóù¥.ßqñFM$Œ„8*¿êêÐJçìª8"’K²oHQœ9²k_«ÐÈi€ƒœˆX\‘¼gmyQöÅ ©D”u£ÓƒèlÉu¨´Ê¯ïÞ,;t;%û'8xõel“#t¨Î>\êòº<¼É aŽÊ¯Úärb½û+ æÝl†¢¼|â…DÄkÑ +¥—è]UËþPr’ƒ³ÔLljJ븻v'bXŒ_W="EˆØ¡újذ!B@¼ŠÃé•îÚl»Q-"W¿‹©báèœÖ“mØ ±µM=GëˆK92ÿ’u´I_†ù ]¸gØÂ=Cç‡E¬'Z!sÀQþ ÁÛÇxÑX×ý}ò2Ó^$ Õ‹dDôh‰þ‚Q£t•ËÅý}bÒEv%6,¹NÉÁež¸&°øfÒÖóŽCxœ˜ ÎîÀ÷‚+öKgìÒ¿ö¿ç£ï¿aq œýš0qal¦Ó¥BàŠ}åW!‚kÉü93›R”Ã$ûmFß*¿f=‹895¢B†¸ÉãÛù1GþöOB€ʯiŽÎ\‡à?‡+ö”B9/ßCpð-pù@õ¨|¨vpb•¨|@å*Pù€ÊT> òPù€ÊT> ò•¨|@å@ypRSS‘Žò•¨|@å*Pù€ÊT>*Pù€ÊT>TDPãñù|e{É‘‘‘Øï¨|eÔzÿ~åy±wFŽÄ( 'öPùßAS~ïfšÈ•¿Ë‡rº9´ÏöâAº™}OÇMê`××P›HríñÝe1ɪjFËnË×Q“ˆsöܺ”&d±5fÚÙw¯¥&ç^Îì@åC5š:äÐ>W¿Ø;[½¾ÙãjÃæMéÖsQzÆæ¸O/wŽÏ0ªÓìhG~ÐÑ+]캶-¸×ýR"±5wîMÏ*ª ™\²>I@D³M5ò5[XʉˆÍ–È­´¼Ï…¤™ôolmYˈÅfÑ, ¯cÉ2"’æíŒ,@|¨|¨F¥/#"".C».†‡%D¤ohÖX(˜ÜÍ™ŸóäPÒË´œæÍˆˆaH&» üðî ßjË+¡¿¾ WµÖÊŸmM¥4È@m]dô¹”t­Úõˆ"Úô²À£¥›ˆÃÑžÖ\¡à(ªŸÐ‹áVvBû7“QÑ™»áGò‹^ÜOÞäì,(Å%ß,²Yk­;ÿò¹–?Û‡ h™š›y.MdƒÔ*ƒ&­ñø|¾²}úfu•µvä +oÄý·cŽÏf(…XpÓsþ¶Ç¯rmÖí]`¥[¾Aî‡}ıéßËybJ'ö ’ˆ²Î\y#Ö`³.ûG#R%?ø8½püÜ…}Œ4Ê=ÈýSGÿŒ01¥QùðŸI8t‚­fáÕß"+ÆW •!’„/E*Z?õ²k×TKi`JW8ü. æöGzÔÎí·î?cxFz î. ™ÂÞ¨¸·('~ßÎ}—ÿ}”+åXüðÓ°q“Ûšk‘““ƒïO—ƒN\¼ýZÈúßuÎìÑ*¬26ù"ò"¿+i†6^õ d¬ô,h¥_­ã-#(± n¯ïkQñ¹¶™UË~#'v²Öû’‰ˆè•““Sëu^ôÊ<#êÌöý'cŸ¥ÊT´›¶ûeüä¦jìwƒ¬tr"×=ÁýôÕœœšÌܹª³‰b«¼놻_^søø¼¡ý[¯]ct4àRTŠ}ÔWcÓþÅ”®SGù5“DøhÁ´¥·RµGO_0oª‹z¯³/Šï•ŠŸ/š¼àTÄ«Ný\&ºôÓy¹rÖÌÈ7…Š{íœò\mؤÙÓGv}v3dÁê+ŸÝä³r“ö=J]qµÚ;ÖRñ¿TB.5(‰0~ÞdÏó¨ŸÛÔyÓÇ5f?ñY8)äiÎgGÛ²eËÔ&z\­6[¶l™l©]vàÂ×áî^;ŸÈÍràØ2ñÊñyŠAúè«kÛ²eK]Õ²ñÁ–%÷$¦C]'ÖQa¾qÿbJW‹)]ž£|%üþõêß'«„îú¬^¤µvÓb+‡ˆZñÛMt ½½7fÇÊGùÌÜ]>vuÔ‰¨k¯.ËGß²êbàÊnD$˵ݾf’ ‹ˆÚ$Exž÷-”ýWæ&Ÿuo÷UÍŸœë¨‘Ó`˰]â…}­ÔÙÕ:äRƒŠòYû\Ì[á·´™¦ µ·íÈLuhy`ß=ÓÊÍÂÂ"[ÃbkXXXѽMežtô„L½Ñ޵óy,†ˆ~iúfÜŠ“Ib7 ÃæÖV R66«ïv¯aŒbmù¦ý‹)]-¦t9Oìouœ‚·T(Ÿ©g·áŠúJôo†N½YŠ7G""†ÓoLýp¡âÖ‘›¯5ŒFµ×çJ¥R""Ò=Øræÿ@Í”(–™|¸DÓ¼QŠâçx‘Tœê߯ŸÿG[Eæ‘Zµâ% —ˆH&/k‡Ï@Ίڕ-‘e‡/w ¿ðÙáãÔsFµ¹Ô E’Úæu>\gZ›ˆÅ’¯ªü²/Êy¸{ëÞ«w ‰gZÏÒDG\Žç¯¢Íù‡Ô®S•ÿŸQÑ·ŸppÈSOÏ¿#H*\C5ΫçiDÖÅKòžeÿl®ÊJ«=zÉŒfmUûÓŠ—c“b—öD«êØÎ›Þ¹xÉ›Ç7Ÿÿ'{RçªQ'¨žçUâÿ%ŸŸøŠˆ,T¿îý¶ìÀ÷Í]úO^½K}lšZ¨0$x¸ôFDf©ã0 #+|1yÞÓ¬ ß¿˜ÒÕeJãò½ÿŒ¡k§¼›/êNj(à{Ê7Èyæ›[¤¸)—Ùû¤øÞA-ô ÒÏ«[Ô·z«AÄÖž+‚uÙŸ|O(Ç& áã/ò͇´ù€C¿q,†9\¿TqpKýœD¿˜÷É‹‚ýÔõ:íoyËüÌ+aÝžcí›Y¨0DDÃÓ>5Ž™*+ãfÒÛ'#ÍßçŸP±ûSºMiåâŸBÜÚöžnõêrr_¿JÊ13»½íxx:ÃÑnço `Æ IDATájýcb ŸŸü럠¨É!‹/†¦ýØÊXƒ'¾á¹õaRAÉu>ñªíõo¹-íèe¦–œ'AæP±ZNñ¨¹`Ùt¯.=Õ%‘a‡®ˆßO³Ö3gÕu]ì1uÉàþõ9¢{—CþIÌé»xR–c…—ÿøIeò!Žuÿï­‡×ÌÉ@=ô‚Ÿtºªñ›â ÓjÆ\ ×˧zséi¤Vy6èŸLù¨µ®_;NÙÛê¨^ õ=eÚßPEuíï¿£DDt=2²½&‹%Ì ½v›Ý°ßP…5º]W6„JZÈ®…ìÒÓ'AJî_Léj4¥q”_:+Ï醉ïuûýø¢£zMÞ~Œbýy³õžÙ;bQàQûaZè°TŒâO™¼üØÎ4;/ûR×)u|^£Zâ臙Y×òÛ;!p¨plu+ï-^v–â ë×o?$´è· …>Ãâ)îUá5Y·m‰½…äϽÛ6íØ/2äµÃ­A–c…ãÁ‰êzŽm5?>YÚmeQÁãýÉy5,yŽºÕšË:[³þôß¼ÆÇﱤÞÔ;ú[é|í8e>aåŒVÆ9{6­Z¿ã`šj‹ ¾ÛšéžÚ¶S(“ñ]»hˬ]µîN^!µž±²ŸMƒ°€k·7è¿~~ûŠÝ¿˜ÒÕhJ—ç3öù|~¿bßõÔæ³Cf§æKˆH·ÇìÎ’ÇÃÓGŸÜ\ø,¹H&'"–š¦üùÚÆìè³XNÄæ5¿¯ÇÎ[K®óÇÊRN£5Û¼²éíÁÉ?ºôR÷¸MNÊWìWެ;Wîæðºtj­¸)—æ-1:Å|JàšÎ0¥•Nì—N.'Ö»33Ì»Ø EyùÄ ‰ˆ×¢…AVJ/Ñ»ª–+N™”\§”S+j&¶ 5¥uÜ]»1,FƒÇ¯«‘"DìPŠD77o¼rõ±KÿNm4å‚ ‡·ÇjΙ‡kGSZyáÄ~é®ÝɶÕ‚!bqõÛ¹¼ýBªÑ9­'Û°bk›:zŽÖ—rdþ%ëh; ’¾ óºpϰ…{†Î‹XO´BæP± mç.Ÿ2¤ð~øÒù³æymŠg·ôܺÃÞ@ɦ4Žòáÿ$xû/뺿O^fÚ‹d¡z‘Œˆ-ñÑ_0jô®r¹ø±¿OLºÈ®Ä†%×)9øO£Ì×ßLÚzÞ1`S ‘#y¨@-G´pQ9õî£Ý?¶"èXs |C ‚”®ð»üÒ»ô¯ýïùèûoX\§C¿&L\›)Æÿo¿Ë¯‘ž?^ú‘™™¹‹A> { GùU—àZ2Î̦T å0É~›Ñ÷eû’Ot…=…ʯŠDÏ"NN¨¡nòøðf~Ì‘¿ý“0 òkš£3×!øÏáŠ}åÚÔ³Û@5ÂàÚie€û¨|@å*Pù€ÊT> ò•€ÊT> ò•¨|@å@…cRSS‘Žò•¨|@å*Pù€ÊT>*Pù€ÊT> ò•¨|@å*•¨|@å@•ÇQÂ×lbb¢l/955s•¯ŒZï߯u±ëÚ¶àa÷?ÿvö–im5¤JbaW;>Ÿ¿ùI¢(•(㢫s×¶mÚ΋Ë*÷ ÿÚ»ïH"ÂÄ”FåG2¹d}’€ˆf›jÔ­×* {wÿ®Û°%­´.œ ñËSïߨzx#›GD³L46D%ˈdÒ¼Q¤Ê@˜q,\ Òä°ÎnŒ@¥z²çý—bïµÃê–ÿúžïÝwôÂÄ”.åÐû¬K_FDD\†v] JˆHßЬ±P0¹›3?çÉ¡¤—!i9Í›ÃLþîŸ]øw(‡;ƒ8ê 7cß·6CÒÉ€ƒ©ÿ±‚¤®v‡Á]F˜Ò8ʯ¶¼ºñë«qUk­üÙÖTJƒ ÔÖEFŸKIת]ˆ!¢M/ }ßw„MG—â{ ³ïoXèÞÝÁÞÆ¾“Ë”E—Ÿæ)–óùü™^oòtvt°±ë4~Ï«"iÙ›|yÑú°Æs/•d¬Ì¨îñ–”(ãÞšyìlì†Nœ•ñ…N¾’*œãóù3b3>ø«ˆã3Ç ²oocëÐ}êo[…Å ÛSó²ŸÎåóùûÓ KÆJ*Þ*'qŸÏΓðùü1Ñkæ¸u¶·y$”|ëþÅ”®S•_ñB/†_fÕ íßÿD/Û¸»áGò‹ÝOÞäìÜ«G_^rd‘ÎZkݰËçîi5 ༧s‹¨4Bƒ 'É;tú¥dÝ©¿­^µh2/ÎꟉïï%L0þȕԞ#'Ï›Êþìh‡^ÜÒ@UÇþðáà ¬tËsPÔŠé·Š,ÆÍ˜o¬ÂúÆý‹)]-¦4NìW˜¶(~Js×_:»þƒ»®ß»ÜíÞ»ÑÏÿ]õÏéUï–">¨h7–y>ëØØT“CD6vEýºüUðöÞ;«æÅæ2Þ!»k‘ó`§YŽ}WÌûûÌng"’fw90ŸË""{Ã'WÜO­˺ß+s“Ϻ½>œ«ÕÞÅXƒˆ†µúsíöûùÛjTï· Rƒº½lÑ‘æŽÛ~ÒV!¢N¿tcõwô¹eÄßžeÖ°aÃ,‡ÅÖlذ!ÝZRVàO÷ÉÔ› X­Éfˆ¨O«¬>³?Ílذa-†Ã5R R663üèæ ÝZñMûSºZLiåÔL¾7ÒôÏQ¼91—i‹ïõ¿øRÓÔ½SmU‰D"‘Hd¤;m¬UVô†‰œˆ¬gä¾{o°ìi"“ä&‹%eoR6™$cí¿™Æ¿NOOOOWi=”äÒ §“«{È¥uë•n£9о'"b©Ž™Ý¤àuȃÉW ^và?.8|íâM–4ãerìk§/¼ ¢¼¯{²æÈ|ÙÃaJ׌)£|€š)A$­[¿Î‡K´å+~ŽJEIml6~´Õµ1©™¨¿_ÄeˆH*/k“Ÿ;üúöš,‰4+dVÏ÷ ûí£A^Õ:äRƒŠJŒ¸š¦¥%%Ö¼¯xË-;ðÂì˜õ+|¯ÇϲQ#3½òœçêª|áÃaJ׌)ʨ™¬yœ”„¢ÅKrâß_^T_•b8mË’Öme¤ÍýÔ€åØ¤Ø™M‘jz]VþÖ«x‰àþÎe~'OeÎï­_Ó>—¢‘:'%þÅÿ'ŸJDõÕ¾îý¶ìÀ·Ž™v*·±×–ƒ~j¨ÂPFÌŒ WÒK‡aY¡ìý“y”QáûSººLiT>@Í4ÞÖpÖù wÞti­Ã%"¹LàóÈLq¯[›: nâ5f©ªxùï”e}ñÌÆO XŽM$ù±;sMgoÿþ·Ë’V¼ßý'íóÜ{^ó–¼[;CK"ßtå¿M^è·ñÏ ÷×þ–·ìÀ¿,°pÕ­õÛHïÿõâÓÅÆ~uá õ·$"¹$oÛÆ¸ŠÝ¿˜ÒÕhJ—§òkÀ÷Í+Û÷ÉÖ€]öURSSQùmy[];sèÔIîƒÌ5$Wÿô ßk»d™yÏIc†LsÙ»WxëÌÁSñÙ#6,(cÀrl¢ºA"“ëgþo=š­‡jŸÞ ™»—ÃÔ¨äÛÿö{ƒ^ãf qŸ0y)¯ðêqßÐײ©3¾vœ²¼:Ør´‰Š0âÜÑ£Dôϵ«ÖÝ´XLAú‘s—9Ö6êrÙS6šöÛ¦#’6†²ó‡|nëסŒç¸1¥«Ñ”.çQþVÇ)ÊóÖ9õì¶ïZ!&&&J•g%ì/„@D^“]‡7¯õÞº{µ§\ÍȾËj­s¯¿ýL7Í–lÙ¸f×þ-Þ¹b¶ù­çoÞ2°½a–c…}þñ<ƒ~Kœ,uvkxÀûÞög9Óëkרä5šÝî³fçþËrŠT,­òܾ°OÓ¯þø²÷ؽäÍâ->KæsµŒ~²ï¹ï¯AÛ]‡ö^5æ—Žv3û, ^4/ÖãTØ uÛ%~#‹æßäõ—¦a‡î£g9;ï­Àý‹)]¦4SŽ2S¶ŠBåcUG×Ãn4úô²UÜ”Kr'vé–ToÑ™=½`J+§øGz*úöSÎlíÑi‡ü•š¸àÂR¯ÓÖDÄ>~scãœáQ"9«:#À”VZ5ðò=C×Ny7_ÔÔž"Nc#¥U·ËÊ‹,v‡Ì8î˨éX·ê¸áÈL[C’LiT~eUàÖ¶÷t«W—“ûúURŽ™ÙímÇÃÓŽv;WëëSøüä_ÿEMY|14íÇVÆ<ñ Ï­“ J®ó‰Píh¯Ëmi‡@/3Ͱä¯ýdŠšù+•6ý&µé7©r‹Ïç—º|ÇÅm4U°/¦´2V¾•çtÃÄ?özF3Ý®žt›ˆ¨þ¼ÙúqA{W=b¸º6ëtŠKd©ÅÙ•ªÝ~Ô`/û‡cÏ–\çBÔ›’ãó ÔG?ÌÌ¢„üöÎFÉ^àä•àðáÃ¥™ñð—À {JY+¿C+³«âˆH.ɾ} EñK»öµ œ8ȉˆÅÉ{Ö–e_¼JDùQ×8:=ˆÎ–\‡J«œúîͲC·Q²‚ƒW_æÀ¶oÿ¬È 4a‰É’ï—Éš€ü¡ºû’Ot…=¥\•/—ëÝ,2ï~`3åå'($"^‹Y)½lDïªB®¸Æ°ä:%g©™Ø6Ô”ÖqwíNİ ¿®zDŠðŸó.Úõݯا)Ⱦ«Ê¾bÿÚl»Q-"W¿‹©báèœÖ“mØ ±µM=GëˆK92ü’u´I_†ù ]¸gØÂ=Cç‡E¬'Za#øŽò¼}ŒuÝß'/3íE²P½HFD–øè/5ú@W¹\üØß'&]dWbÃ’ë”ü§Qæ‰kÞmÒÖóŽCxœ˜ Î.#eWÙÅcìÒ¿ö¿ç£ï¿aq œýš0qal¦¸ŠgT“>Ч:æ_ÕöŽò¿ˆàZ2Î̦T å0É~›k^ßTqÈ•_IDÏ"NN¨¡nòøðf~Ì‘¿ý“°G‘?T‰Ê¯@Gg®ÃþCþð…Xˆ@”óò=e‹é{_¾‡‰Xö€U>T;8±€ÊT> ò•¨|@å*Pù¨|@å*Pù€ÊT> ò <8©©©HGù€ÊT> ò•¨|@å*•¨|@å*Pù€ÊT> ò•€ÊT> ò•¨|@å*¾ §¼>Ÿÿ½"22²Z?ÿ*õz•_~­÷ïÿ~ƒß9²Z?ÿ*øz òáÄ>*_ù4å÷Þa¦‰¨|¨–85ï%ÝÚgû ñ Ý̾§ã&u°ëk¨M$¹öøî²˜d"RU3Zþs[¾ŽšDœ³çÖ¥ 4!‹­1Óξ{-58÷r§:¾®êû¢•ÿ /‰£c˜Úçªà{g«×7{\Mcؼ)Ýz.JÏøý•ÐÖ¾÷éåÎñFušíÈ:z¥‹]×¶÷º_J$¶æïνéYõ{]7šWרüò“É%ë“D4ÛT#_³U€¥œˆØl‰ÜJ‹^ /œ I72éßØÚ²–‹Í&¢Y&^Ç’eD$ÍÛ%XP _—wµ}Q lÖŽtå¸ÿÖCcÌq} Fà¨üŠ(GqÚu1xðýžç×þQ~É×UŽPù`«Yxõa-øÓW µÑcã_£H£ò+HèÅp+»¡ý›É¨èÌÝð#ùED´è~ò&ggA(.ù~d‘ÍZkÝù—ϵüÙ>l@ËÔÜÌsi"›ãÜ9ò{úÞWµ~É×õâë_(azÔÎí·î?cxFz î. ™ÂÞ¨¸·('~ßÎ}—ÿ}”+åXüðÓ°q“Ûšk‘““ƒïO—ƒN\¼ýZÈúßuÎìÑ*¬26ù"ò"¿+i†6^õ d¬ô,h¥„‘0¯LL øhÕ¯­Ì¯UÕ*ÿ{ûÞ¯*‡DøhΘ…¯tšÙÃHMrçìâ_‹DfŠ÷G©øùB·Ùñ…ú}õ6Vß=•¡µ(`_‡ëää¤ÕH‡§Ñ~¸#Ÿ2îûî Ñl=ËoñÏelò%Ï'÷¹ÿˆi!®~Áýê¨o3äºæƒ[û#a$ŒÀq”ßê®ÏúçEZk7-¶âqˆ¨¿]ÑD—pÑÛ{cv¬|”ÏÌÝåcWGˆºöê²|Ôø-«.®ìFD²\Ûík&©°ˆ¨­AR„çyßBÙÏqenòY÷v_UÑüɹŽ:9 ¶ Ûu ^Ø×J„‘0¯4øM@Íôo†N½qŠ7G""†ÓoLýâ{Ü|­a4²½>W*•J¥R9ilùæžTND Üú©¼{o¨ë`(“æ¥JËÞ¤l2IÖî8Aö½²23333Ušõ&¹ÔïB*FÂGùð­ÅR#sƒ—hš×"JQü/’ŠSýûõóÿh«ÈÜB"R«£V¼„áÉäemâ «Zö“ÉŠÚ•-‘e‡/w ¿ðÙáãÔsF•ߤ¡çÕó4"ëâ%yϲŠ6We¥Õ½dF³¶ª­¥ò©˱I±K{¢UulçMï\¼äÍホƒÏÿ“=©óçÞ[‘°Ò&ŒÀ«DåWÁïw¯îß÷ZÕžÜÅ_—ÑP¾Áòkþ±¹vÍ´TˆH.+<²÷ ‘‰âÞA-ôWß;¯nádÊUüêQvh†ë‰l«Ã‹?5`96Qx‘_ä6m,ß/lª¾õÈ¢ãÁÏ:Oü #a^¥ò·:NQž·Î©g·}ï‡Pª*UÑ·ŸppÈSOÏ¿#uÔø½ÿ.¿&åWxþUmUYw®ÜÍáuéÔZqS.Í[4btŠù”À5FàÊ©^¾gèÚ)ïæ‹º“ÚSÄiì`䯴ŠD77o¼rõ±KÿNm4å‚ ‡·ÇjΙ×É aŽÊ¯$,nm{O·zu9¹¯_%嘙ÝÞv<<áh·ópµþ±1…ÏOþõOPÔäÅCÓ~le¬ÁßðÜú0© ä:ŸxÕŽöú·Ü–vô2Ó KΓ`#%ý·—íÜåSL‚Cמ9Ĩj7lÖÖs«[ku$ƒ„8*¿’XyN7Lüc¯g4ÃÑíèI·‰ˆêÏ›­´wÕ#†«k³nA§¸D–ª‘Q|À‘]©ÚíG ö²8ölÉu.D½)9>¯Ñ@-qôÃÌ,JÈoïl”|àö1òWZ-G´pQ9åääTêòAÇšk¨ a$ŒÀ•±ò;´Ò9»*Žˆä’ìÛR¿±k_«ÐÈi€ƒœˆX\‘¼gmyQöÅ ©D”u£ÓƒèlÉu¨´Ê©ïÞ,;t;%û'8xõel“ øî¶lÙRú‘™:>ü #pe­|¹œXïþzy÷›¡(/Ÿ8A!ñZ´0ÈJée#zWrÅŸ”\§äà,5Û†šÒ:î®Ý‰£Áã×UH~ãsž@vñw}¿L&ÐäÕ……B@•ÿ®ÝɶÕ"xû†«ßÎÅ”ö݈ÎáO¶y´ò2i™:zŽNpÿµä†_²Ž¶Ã éË0¿±'7,[f;Ñ*â·èo|λh×w¿bŸ¦ ¨Q•Ÿàíc¼h¬ëþ>y™i/’…êE2"z´ÄGÁ¨ÑºÊåâÇþ>1é"»–\§äà?2O\X|3iëyÇ€! òPù€ÊT> ò•¨|@å*Pù¨|@å*Pù€Ê€JĤ¦¦"å*Pù€ÊT> ò•¨|T> ò•¨|@å*Pù€ÊT>*j0N%<†‰‰‰²ÅšššŠ¹JWùDÔzÿ~åÉôÎÈ‘˜XPÕàÄ>*¿†jÊï½ÃLûPùPÓpªïS¿9´ÏöâAº™}OÇMê`××P›HríñÝe1ɪjFËnË×Q“ˆsöܺ”&d±5fÚÙw¯¥&ç^Îã`Ç*¿ú’ndÒ¿±µe-#›MD³L4¼Ž%ˈHš·3J°{PùÕ¨ôeDDÄeh×Å𡄈ô Í “»9ósžJz’–3м1 Éäo7cáP>5¡ý¶¼ºñë«qUk­üÙÖTJƒ ÔÖEFŸKIת]ˆ!¢M/ T-å¹|ÏÄÄÁÕl¸ü æ)çémuœ‚ìjª©g·!øNvµ ˆFÿ3½6Ò@¼’áÄ>TaƱpH“Ã:»1i aŽÊ¯ÆTôí§œÙÚ£ >Ú tvqÔnÕ0#rm†D†@0GåWW†®òn¾¨;©=¢€*¢àåm¯i#ìlºX¾ûô}ß6]Šï-̾¿a¡{w{ûN.S]~š§XÎçóg>x¼ÉÓÙÑÁÆ®Óø>¯Š¤eoòEäEëÃ^;Ìiñªíõo¹-íèe¦–œ'AßÀK’3vèô—zm¦þ¶ÚT½èÚñS¤Õ{{¯(aâ€ñÄu†»N6U]8²ožËðu¡Øé©QÌj×§š'Í_.uw­ÏÁqóŸÜнìM>ëÍ“­ $3Ü›¨êhô7àßx†‚G!a$ŒÀQùÏÊsºaâ{=£Žn×@OºMDTÞlý¸ ½«1\]›u :Å%²TŒâŽìJÕn?j°—ýñgK®s!êMÉñyj‰£ffQB~{g£ä/P9ðߺŠ7&ð IDAT±Ìó©X7àÀƦš"²±s(ê×寂·÷ÞY5/6—ñ9ØÕXƒˆœ;Írì»bÞßgv;‘4»ËÑ€ù\Ù>¹â~jµXÖý^™›|Öíõá\­ö.ÆD4l¬ÕŸk·ßÏÞTƒƒ„‘0¯¼£_%yûëÐJçêá8"’K²oHQ,´k_K»³Ó€Mý׌3åŠ zÖ–e_¼JDùQ×8:V¥®SêøõÝ›e‡†Q²B-ç¾ þk¾7ÒôÏQ¼91—i‹ïõ¿øRÓÔ½SmU‰D"‘Hd¤;m¬UVô†‰œˆ¬gä¾{o°ìi"“ä&‹%eoR6™$cí¿™Æ¿NOOOOWi=”äÒ §“‘0Fà8ʯxr9±Þõ0óî6CQ^>q‚B"âµha•ÒËFônWËÿ*¹N)ÿnR3±m¨)­ãîÚˆa1<~]õˆ!ZþC "iÝúu>\¢ÝÀ€(_ñsœP*JÚhc³ñ£­®åˆ‰HÍDýý".CDRyY›ô¨¥Vö“y}{M–Dš2«gÈû…ýöÑ /$Œ„8*¿‚]»“m7ªEðö; W¿‹)í!"ºßlóhåeÒ2uôàþk)§’¾`m‡AÒ—a~cO*n6X¶Ìv¢UÄoÑhøYó8) )D-Š—äÄ¿¿¼¨¾+ÅpÚ–%­?ÚÊH›û©˱I±3›"Õôº¬ü­WñÁýËüNžÊœß[_ #aŽÊ¯Ðzû/뺿O^fÚ‹d¡z‘Œˆ-ñÑ_0jô®r¹ø±¿OLºÈ®Ä†%×)9øO£Ì×ßLÚzÞ1`Sðg‡¾“ñ¶†³Îo¸ó¦Kk.Ée⟇DfŠ{ÝÚÔYpë¯Á0KUÅ›€ÌwxÏ ,ë‹g6~jÀrl¢ ÉÝ‘˜ÛhÊ8{û†ï¶âýî?iŸÿãÞóš#a$ŒÀQùÉhðÏÙG|î¿aq œý“KD²Â×W—­¿úÁj;ú®Pü -xºsàæR×)éŸás>¼Y”~i{ïK¨øoµ]ämumìÌ¡S'¹2×\ýÓ7LTX|¯í’eæ='2Ímdï:\á­3OÅgذ Œ˱‰Brè‰L>®Ÿùÿ½õh¶f¨|zƒdî^ƒ„‘0¯ ÊrùžàZ²Åä™Ã¶Î¸Ùí•ßæØL1*j6¯É®Ã›»X‰w¯ö\ìí›ßÐeu[CKSq¯ŠfËÀ?¶tk Ù¿Å{‰÷æû–ó7ioXÆ€åØDaŸ<Ï _Ç'KÝåÅn–ƒ„‘0¯åüZeþŒý›<>¼™säoÿ¤šô§žÝ†¯Õ©2®‡Ýhôée«¸)—äNìÒ-©Þ¢3{z#$ŒÀ•ôH|­£3×!¨úÄ–z…‡ÝwÕÓN[žêç%ÒY±ª3’AÂ\iá(p”_cEü¹swðß±‰iŒšŽu«Ž®³fÚšk"$ŒÀQù_WùjüçÛñùüR—ï¸x£¦ òA¼ºV>T,“”€þ+O¨!þ/øv ¥Ïáºõ¨³ðq”HW ø]>T€† "$ŒÀQù” o.•ȉ£Ê¼Iù¸¾:‹/ó@åCM4ªÁó¸<91Lg¯ºëBtN4 €ÊÄB ÀVSYjz-ÞìÈ?FÓÿ°8 GùðésܤeL†m¯|6—³þ©¢nûë6¾þÚvøÿڻ󀨪6ŽãÏvbSqOÊLPÌ53SĵrIZ\KMSK wËÜp×Ü÷ÝÔ¬\r…°ÔÞÔ4MTAQ}™åý $3 „ïç/fæœ;sŸ¹Üßœ3wîÍP,4øN ÏÒXšzŒ÷–íÚÁaÇ×¶[«'æo3ú ®Àå/9ëžcÓ²j;3}Hs"þk±_ôŠÉûYU;\þùŽQD<Þs™œ}Ãe‘[Ú™ì4½QDÔVjÃo7kwt¨e~Õ bbcþk”]m;íÑL?µéôFW Ž4Vñ/s9wbß«wùuó-ÚD'éŠEý9b£|”.£Ü¿„¢1S)³Ûk7ÇD¤Bs«Z׳ût§Üæ/žÆh<¹2Á¸ÔãÅ2Ê‘D®4ÿ¾ËÇ]SöèFO°R‰¨-L††˜ŠÈÔCº¡eL1³7›½Íѽ€Ñûcµyˆ¢ø r0$gK"ï€Q>ŠÂwÝ´^›#¢íâµ9áç vÙ²Ý_[s½CXLY½Ñ°kDìš«†1ùzåoó¨åoM¨œò×O§ñ¹žMâÀ‹ïò‹^1ù.ß+ÄÞsÒÊp½ÚÂd•Öí[Ϩµ±¥â§ó|—€Q>J—KÛ³.wé&† ûX[Jòˆ|”:I§S‚¼Rþùr¶sÉ{3þp€‘ü$ˆ|”8}b)C±£|üW. ×Èü»8b€R‰}ˆ|@ä"ù€ÈD> ò‘‘ˆ|@ä"ù€ÈD> ò‘‘J8V«¥ 0ÊD> ò‘ˆ|@ä"ùù€ÈD> ò‘ˆ|ðTiJá:{{{—¶U>qâÛ:ù¥‘×êÕ¥geOöìɆ`b"ÿ‰ÚÞí¸YS‘þ) %xZŽuo?ÿZV`Ù[¾=ׯ‘_G]ø¿Œ?cfî4¡éK޶溬äå?^—¡R[ ñkÒÆÎ<1+åH*ï€È†J©±uŒÞÝ>,±e“€j7½§¨-¶n;úFBÄ‹L/iq1ÁÉÁsËËÞë·må÷ÊKé¿¶9%jëIíä õùσQ7=:QD>rµJ³®·¬’QDÔj±Z™ÉûwÜprîT£V%;'•Z-"C­B¶ÆDDŸºðTâ(Ê òŸ¡Ð7ˆˆˆ©"‹íÛ‘¡{G·‰ý[x'_Z}}G\rwOQ1ïvSq@àßGÚ<}sâ3‚¼=LDLÍì¦4m쪗ÀòæÓNœÞ{£L…Ê"ŠˆÌºž>¼®›ZD£±ùàÅr À(ÿÙ³ûоj~vwò4HÎ÷¿ìÛ”–síl̬€€ÄôÌs1gOäø|Y«ìÈ#ûë6m²·s]mÊ­ýq™>T ð/SJá©X½½½KÛÙ÷8á.€‰}ˆ|@ä"/Orø^)¼Þ|iÃá~Pò<áôæ¾:Ú•TƒöÌ£ÿºc—¯_>ÿCŸ÷Œj0náàç©RqóeÏÀ£w²:Í]÷¶;×ç¤àÆÄ>€¿íyßFÞ5l©Cq“yûû£w²¬Ôª#KOS Näÿ‹Lì› ü~îk 8•JÁÀÀ¡ï¶q¡ÅMäºjóŠ!*Þ>³(Qo  üO8ûÞSãØ§yê±k.ý|åø·TÅA©ïç¯ÞõÛ­ÁĦvÖïõËÕ\-"þþþ^Ó¦»n[¼ïøe‹çjöÞÌþòܹ+O^¸¦¶qnÚ¾wßN/å.Á KX3sîÞŸÎd(Ö5½š¿3 G%K<<±ŸqãÔÂù+:{E±tjôZ×6†#w(Û6ÎÌ}¢ç‡,ü¼…sîÒR¯M{sÀ‘©¶Õ´Ôd%ž[±hMø©‹):µ[µº{öm^ëîÇåGö27ìß°hû¾mb†CE¿×º¾Ó±QÑŽZ YwÉI¾¸jáª#ÿ»¢×T¬Yÿwû¿än•»‚Þ3Õ?²~硟of¨jz¿2ì£ÞåMT…ty,Æœ%Gã}B<Ò ›§,:8ªž} Û¤)8‘ÿx³¦šUvѤ܌NvsûyÞ¶}7MÃá}j½à JöÕ]_XªÿŽ1‡vǽPï9+ˬˆà¹ç£Óó·yƽÜÄþ§ qV†¸YïIÕ‘7(âãÍ}BZTñ ìÕFw;òû]ÛF\ÊZ7÷½ÜGÏͶiñþØ€ '¿ž³8dè~ÓTååŸõªq%lõâS¾ÖÈQD., ¾U¹UŸÚ“¢¶¯Þ=ª›–±xÕÎâÇ¥‡en§’´ISp"ÿqU þÐ1jóŠàÓŠ¦ì++ƒågÙŸ[¿âó ŠiYŸi£šŸ‹R™99]\¶i±ÖÆ·W×&çßÙ“¿ÍÁSwò/ß²z—2Y§Ïߺ-‘i¾N1k®9(ZÑ[v,ª/ør¤¥J‘–µï¼;qWtV»™ZDÌmú íÚBDª›´«ë{WUu7öï¨Q¤vÍI¿ìúËÚ3ÒÈQDL,ÚÌóŽZ/Ç·úÍš´éÊÌ·ªÜ–_B§_Í)óå¬1Õ,5"RÏ»aNßû2ÿâµý/ôË«Y–—Œó´6߯/+ýz­›°²Ãò éu*<Ö¡O`?yÁóEûdcÄõ”"¬páë~fÁ” iÊÇ‹Cý,Dä•×[MèõޜϭœÒZD )çOíg¢‘—ÊGþaQ¶¡é¹B»ü¥_¿ 3±®à`!"þ]+í]¼æbF‡jê³ISð§0ú-%»¿FõlÃ6œ£.éç5±¹wúùÚÙ´ð襁|0Ñ(ŠÆòÁ®@£z0pv°ÈÛ«z Ý•è¼÷DeéÜúŸµ»Hlá¯-*SWÁÝá¡y2× "•¥«úèAR¥À ËïØþóª»ïäÈsU½zÿÈ÷9Ë¢ªpáë~1SŸ¥]Ú±ãÒ?õ:‘’-"ææ÷ïQLED ÆÂº4+kVø‹¹}jq’δoBŸ<É®lØ&m—˜Mš‚ù+üd’_¯:çŸTLíöp•å""§“½ûû\˜rDʸ¾Ü;rÀ§ù;>N›fúë{—¼³+÷f•ñã÷­vü3~$ƒ¢´êãqR+êS»¢‰"‰çÇE¿õws-]dªöv–Æ¢zÞUÍ5ñWãDŒ¶S¯Ü~°oUCöƒÃ˜S/ß}¨²¹&>ê¡^iQñ"RÑLSH/½ÞP»yÀ ÍŒ†ÌÈS+gΟõé2ß僊ªÂ…¯»»™*®Bﱃ=ÿÔ«B“G-ð ºÜwxùi3ÛÆ#>lqÿž;¬½ñ‡IýZüUz=+(ø?WZ&ö#'‡j[öY=¶ËÔÀä˜ cŽAD.Œ ½¢iÐ{Í„^óß¾±4ô̾|œ6õ{¹GÍ9zÿfôܬëw³Ô0»¢ô}|†KÛwšxV4QDDþØ÷ 9¿x«îÞÄWVâÉÕqéÛ5ÏÛ »wùä+KKɹ;9fÈÞ´âÒýGÝÌT ÇîÎ õi«–Fæþݵ®}rÔ’3zen\iQ®Eî÷ êõN×ÎÃ6^Ee^­^óž³SÏa… _÷À:öé7~°¨èQí®*ÇçN ž¸±¬ú‘{Ý'è’K—ñÇškiîÝäѬã»*EÙ¶ñJ‰Ù¤)8£üÇåÔµiÒ¦EËÎÞQ™–÷_÷éÅ3)"bȾ6~zXžf :L¼;žH¿¼°ËìÛäwàÍayoæÜ8<¿Ýa"E«±­ÙÑÝ‹¾qíäh’y*ü»ïNeŠÈ'NTiâóø Ñë~4AÞ|¥ž’zmçêuƲõ?éðÐÑøu¯|bÔøCÞêÑö9 ݉½ëŽf=ø¹Jï†ÎX¶[W§¼!|ÇŠSåì%1VDê þ¸bŸQ¿Ñ£­“yö‰=ëÜ2öú²Oá½Þ÷ušºá³¥&=_t·½ùëÆ=×\[Œ) ¾î^C†ºô3|ÐØ®ZØk2=²ã@Tr‡1ý YàtÉuýÀ½ÁØíՇΔ ±ôô/o±ûàýûÓÔ%bBÁå?®Äð˜Šý‡¼1÷ã.³ƒâ—ÌþíV‘€’íý)ƒë=—¼|ÖçÓ¬3«3cÑÌ—ÜÊ~3oa†áoœ0¤zßÉ-ìo. :cñõó¯N™÷i¹‡@j‹j“ç„øUÊZ¿púôùë2*vUÇ^QÝý.Àkð”Ž>Uö.›ùå¼µYU:Mé{wçhQmê‚ñ-j©¶/=5tɺʃ&.èTͶð^¾Íx¯}ÝŸ¾^6iâ盜oÔ}ÈŒEy½Â×ÝÄòùióÆ6©¨Û¾bÞ¬+.fºö YÔ |! |‚.¹¶mŒ²(÷êKÖžŽnX)'ýÕ1©%c“¦àÿÜ^V§4Ÿc¿Ë¬áyo¦ÙôÝÒè’´‚ƒöÌã²:xL·Oý%Ù²Us¯Ü›F}êè·zǺ\9µë ^Üpö½¿mËiÈ•“ylöÌ£aôèÔ¼µ1ñà†ùç²­‡ðeÝAÁåƒQ>JšS{ÖnÜ}èBÌMÅ̦ªçKAA^Ζ¬;(xɉ| ‡’„8(þüýý ¼âú­/Z™P þoE>ž.ooï*IŠÊ%©ÊŠ¿«W¯x¿£›»¹ŠŸSðÇÂwùð ¨X±"E àD>ž‘Æ*I7ô:£hÌ”;‘™¡}âwþÆÅ¼€ÈGIÔ«ÊÕs©FQ”!.ÓvØî¬’HM࿤¢È¥67·Û5ü¢Û¦Nn®¸¡·‰ÊT=lsDl¥­û”1V"r>Í­Ët§§Ü]qíü¼JDò·)œ¢(VÊícœ 壈´ßæ\÷LBã×ÓÔ¦šé—Ýäi½Ú¥Æ7¿™¡Xh†qž¥±4õ:ï?,ÛµƒÃޝm·VOÌßfôA]Ë_rÖ=Ç(¦eÕvfúæD>ù("#[j¿‘."úlÝìqÙ“EFwФyØo~Ã("jsƒá}}–nôºl‰?˜l^ÞN$1yDä¿[;:wbß«wùu\¾·‰NÒQu òñŸ3åþÅÿ•ˆˆ™J™Ý^»9Î "š[ÕºžµØ?ÏùÙ•‚ÛüÅÓ'W&—z¼XF9’h¤ìðŸá»|Ü5enô+•ˆÚÂdhˆ©ˆL=¤ZÆD3{³ÙÛÝ3 èõ8m¢(~ƒ əǒÈ{`”¢ð]7­×fLjh»xmNøyƒ]¶l÷×Ö\ïSVo4ì»æª!ÿ•Jó·yÔò·&TÎ ùë§Ó‡ø\Ï&ñà¿ÅÙ÷Š^19ûžWˆ½çþ¤•ázµ…É*­Û·žQkcKÅOç9ûFù(].mϸܥ›rL$ìcm)É{ òQê$N òJùçËÙzÌ%ïÍøÃ Fò“< òQâtö‰¥P qÄ>Œòñ_¹$U)à_Åû” Lì@ä"ù€ÈD> ò‘ˆ|ˆ|@ä"ù€ÈD> ò‘AÑjµTFù€ÈD> ò‘ˆ|@ä""ù€ÈD> ò‘ˆ|@ä""”`JðÔ9;;·—¤Õjy_€ÈÇÓçµzuñy1'{öä0±‘b©¶w»nÖÔ@ä€?ã»ü"s¬{ûùײËÞêðí¹~ü:8ÚˆèÂÿøeü™3s§ M_ò¶5×e%/ÿéðú¸ •Újˆ_“6væ‰Y)GRy×Dþ3Tz­côîöa‰-›T»yìµ°8Em9°uÛÑ7"^ldzùH‹‹ Nž[^ö^¿åh+¿W^JÿµÍá(Q[O h'W¨€ÈFŒºéщ"ò‘«Ušu½e•Œ"¢VëŒÕÊL޿㆓s§µ*Ù9©Ôjêl²5Æ "úÔ…§GQ>‘ÿ …¾ADDLY|hߎ ˆØ;ºÕÈHìß:À;ùÒºèë;â’»¸{Šˆ¢ˆÁx·›Š0éQôæÄgy{˜ˆ˜šÙMiÚØU/åͧ8½?öF™ •E™u=}x]7µˆFcóÁ‹å(€Qþ³g÷¡}ÕüíîäiœïÙ·)-çÚÙ˜Y‰é™çbΞÈñù²VÙ‘Gö×mÚdoçºÚ”[ûã2}¨àoR8ëSçìì\Üξǻ `b"ù€ÈÅË“¾W ¯§‹Ãý äyÂéÍ}u µ+©í™G "ÞÞÞ çìžçë˜ÿ¡‘­ü.6™»-¤.U¢Â¼äG>€Ò¬Nó–Ž59%¦àD~iebßäýµÝ.w<‘j d{sô8Š@…)ø3‡Ã÷žÇ>ÍS]séçK)PLÄß6äíÀ&¾>›µôÙܨ ]îýÞÞÞƒ;;sDŸf|Ûví»ùDBjLØ'}»¿ìëÓüµÀ©«ŽÞ_‚!çÆ‚Z7kä׬̀ѳ#Sï.ad+¿Nã~Íý;ýúÏ!ôlæçÓ¬Mç _}{vÑ[>/÷¸ÿDï~}iÉQ£½½½O§êD$3áש#ú¾ÚÌÏǯY÷¾#vŸJ¸ß쑽 Y»MlÛ§¡O›€·¦­>` Â%½ÂœQþ}´1­Ð$8¨²‹&åf|t²›ÛÏó¶í»¡hlïSëQ²¯îúúÀúSýwŒ9´;î…zÏYYfEÏ=ž¿Í#žÀìå&ö?k´2ÄÍzo̽Í(*iq;º úܪf³ As~ß¶~uÐùÌ›†ç>úkðÀ²í‡Ïîáô㚉ÓõØi~Gi= tÐ ì÷åì¡É.;'¶t‘3_ô¿QÝð˜ÎÆÛ×Ì_¹yçLGõýgÑ¥y§û‡×Ë5ôÙ®9áÛ ú=N¤rá¯M—v6¨Kÿ‹Þ:ÆÕ2çÇíKƽß9iÕŽ·j”-¤×Ù¹ïMÚpûý៼X±lìé¦Îcµ9´S%*\R+LÁ‰ü'T-øCǨÍ+‚O+𲝬 –ŸEDë¶D¦ù8Ŭ¹Fä h]^±Þ`Q{˲/¬ÕŠˆ´¯w»ýG.gñ0׈ˆE¹Çµ‘Ú“nhâIix䓞Eê½°è§o›D,g¡»p9ï=‘™z‡¼÷ØT)/’Vøk»˜¡sªò\Þ{¬+9‰Hd†®–å#wJUûÌ_à°v×Gç~¶ùv¶¸=ïûÁ¤ Í]­©pI­0g”ÿ„ÂO&ùõª£ˆ¨Líöp½;s:Ù«¿Zµë«Á½m³ŒL×rïñÄZ}«9(Zsßþà›ÿ©GÍY{4üà†‹F=É6yùêC{ºè›™&VµóÞSËR“ùÐçà䋎ZRÅýà€¤ä wªn¡I¹xíá^Z KIDATÉ¡}T/N_ÿõãf,úþèÁ•s>s¼~<ä½YT¸W˜‚ùO(rr¨Ö±eŸÕc»L LŽÉ0æDäÂØÐ+š½×Lè5ÿíKCÏÜÈÌßñqÚÔïå5çÁ¡Ñs°®ßÍRÃì>ŠÒ¶ë釶öªj¢ˆˆœýúIŽ/9=u¥îÞ§ÜÌ„ðù±iÝÚæmð^cÇ;gœ¼“}wr̵,ôüýG=ÌÕñ/Ý}H—:oæ¹Ü¿ƒ:Þ‰œqâA¯Œ%3·,ß®¶•¦^íš4îµäQTÏû´ÐÊ9;å4.Á¦àO]i™ØwêÚ4iÓ¢egï¨LËû¯ûôâ™1dß ?=,O³&æþ¡O¿¼°ËìÛäwàÍayoæÜ8<¿Ýa"E«U9ó½¿ØX©·³IÆñý[¶O‘áaµZ7{ü…èu»‡J¿¾ªä+ëæ-2”kôå›y¼4zrµðw†tÔo@ »•.lû¢½™Ù÷ÔÔ飽ŸÍÚ¤kàhøa]èÏö’pUD|?›Tåõw‡vð~ÿ@WËì°m‹vß4 Z6¸ð^·pþtÉÀ¦x”»þûOK·]­Ôn:.Á¦àDþJ ñ6¤¶¤ë5JÌ’Ù¿ÝÊ"P² ÿjì1sBÇŽ4-ãT¿IÛU_ÎïÓ}ÃäÏßnùòã/ÄsäâGÏ7*IgæÙ¨ãWŸ )¯yhjPcùüâ ³¿œ<÷«/‚æNMÚ÷ø¢Ìš¼ûedã±KzæŒÜ6+äkkÇFmz­ìz; `…ˆh¬j/Û2?têÂÕ3Ç'ç˜TªU?xþ'ík—+¼W‹ñ«‡Uø|ÝÚY3Ë9WmñþØ¡oûQá\a þÔ=áeuJó9ö»Ìž÷fÚ™Mß-.I+8hÏ<.«ƒÇ”ðãÞˆD«ö¯7νiÔ¥ômÕ:ºòèï—·£8T˜‚7œp÷oÛ2dEre¥²oïÙ½ÚúÙoí^2ùT¦íÄÏ[P*LÁ‹!Fù`”äøö…_müî·¨8ÅܶV½—û ÒØÝš²Pa ^r"Ÿm% q”O2±_ÚöÎÎÎU$’m¥¤º$U)€Ò€+éÀ((H¤±JÒ ½Î(3åNdfhŸø¿( ù(zU¹z.Õ(ŠÒ"ÄeÚÛU© sLì—Xjs“q»]Ã/ºm:àôáæŠz›¨LÕÃÖ9GÄVŠÐºOc%"çÓܺLwÚyÊýØ×ÎÏ«D$›B(Šba¥Ü>Æy€Q>ŠNûmÎuÏ$4~=Mmª™~ÙM¾‘Ö«]jüx³ñ›Š…fø×IáYKS¯“ñþò];8ìøÚvkõÄümF,àâKκçÅ´¬ÚÎLҜȀg€ÂÏ“þÒ3zÄ~DV•Á—¾c÷\&gßpYä–v&;Moµ•ÚðÛÍÚj™_5ˆ˜Ø˜ÿeWÛN{4ÓãOm:½ñç«G«ø—¹œ;±ïÕ»üºù m¢“tÏêû{Iªò_€Q>ža£Ü¿˜Ÿ¢1S)³Ûk7ÇD¤Bs«Z׳ûw§ܦ°ç0O®L0.õx±Œr$ÑHÍ 8ã»ükÊÝè V*µ…ÉÐS™zH7 ´Œ‰"föf³·9ºgÐëqÚ< (~ƒ əǒÈ{`”"ò]7­×fLjh»xmNøyƒ]¶l÷×Ö\ïSVo4ì»æªaL¾^ù۸𭠕sCþúéô!>׳I|(öø.ÿ¯=£ßå{…Ø{îOZ®W[˜¬Òº}ëµ6–_Ï€ïò0ÊÇ3ždÛ³.wé&† ûXKÞ‘’)étJWÊ?_ÎÖc.yoÆN0’_å‘§³O,E€€#ö`”{¸¾*àYÇû” Lì@ä"ù€ÈD> ò‘ˆ|ˆ|@ä"ù€ÈD> ò‘ˆ|ˆ|@ä€gßÿ¼M4 cßIEND®B`‚HTSeq-0.5.4p3/doc/count_modes.odg0000664000175000017500000003023212110432433017273 0ustar andersanders00000000000000PKVˆ<Ÿ.Ä++mimetypeapplication/vnd.oasis.opendocument.graphicsPKVˆ< content.xmlí][oãº~ï¯0\´oºP7Kî&=8èÓ¦=Àîо´DÙìJ¢@Éq|þDûÿúKJRS–e)ßâU$+Î 9ú>Îp(ÊÙO?½ÆÑäÑ “äa T}:A‰Oœ,¦¿}ý›âNzüÃ'†ØGó€øë%¹â“$g¿'Ì:Éæ…ôaº¦ÉœÀ góÆ(›çþœ¤(©¬æ²ö\ŒU´dù6l.”eë½æC¹nÃ.†,”eë€ÂÍPc®Ë@•ÍC2Ôø5‹”0ÔãæxÏ‹×'ߦ«åë â@d†Vˆkå,èìúŸOŸ¿ø+Ã2îWVp’å0Ù!“Å8ÌÓ혴0Áƒ§×m…NˆQTMÜð²ôš"Šy0bÜpPI²[a”‘t.uPôXK« ˜>VKK1•2­n€ëœp|Eä†ìñS‘#ÄÏIñoîÇÃ4HÁ´l!ÃbËšŠl«¤p‰¦Z·é’¶L—¦+ìWÍ)¤|ÁJaÄ™ ¦U¿¥‰’²ÛF4Ç(›pØx”|c I±¢)Äã5#¤Æ^DX¾ü#røw)á‹*+Bñï„ìÀ/tÿ^g9·ûŠ/|t§ã ˆª¡9 Ê’’²Bx¹bAÂ(ðh>ÇÀ2n ,_|Ý,XæÁêAƳ¬™³¸Yd¬ë!cš}ß,2öLƦhS˜± ã·(§0Ä z6ôç_Xbj¬ ª´68à…ˆîÇæ ZÇÑu§Ê]1¤ße޲:¨6T n*ËÙ"tHz„%¢"ÆKHdßÍ(9Iù À°ù0’`Aòœ× ‡d sáÚ¾€—’70ì|`†Á32ÜÁðìzÙÍ0u=¸ÝѽXùp`òêâ«QY앵j(¾úaäs§œ®ÛЕ‘PÈØd‹qRèåämR Æ÷×V)Ëð„¯½ºEÆÉor/þ†Ûª ‡Ë’Ä’Ýn„E#mÂrÀź'k©ñ*Æ’æp!áÓ ÿμvÓ¼v»jUØ &2¾ÁŠÐk!N« ¼Ypög…WåøŸaJ²¿<-ÿÁö“' šÀ¢­VŠsŸMÝH1^6½î­óÃá~Y¼Z•ç{“Ç-a«è:ßdY¯A€ ¶¨‘4Ûo¨Ö=’áâ9§É*£1_º4Õœ9åAEë¾§Á˜µÊ˜6f]äž6cãÈ,9,¬§‰Ÿ'­åGž'=Ì¥¼„¢1Œv”mÊbfA¢ É‹(êJÖ*+I^V æ5¯ÝÔ*¢‹áÔ{·5Ý¿棱ñNÚ¡uIо¶ê[NÈ1vÎTÑ ÷¸U÷yü¡Óç×V­{µÛýÃGqG8+{l0ô™¸ì"ô‚¢ràÅ:ŠP>)„¼¹8-. ‘ÂÏ4¦ÿûï3ú…mœ¿lcæguëŒ?dJ¶še„Öûa‰HËþ“¸¹cî¾áfŒ¾›‘:‘nIØd)ôY§($ñ'B|=-$|¯Á³©Ÿq9Cö ·ˆy2„@ñ ïî²Nˆ{—Ù'CÈP­»DÈ9Bæ]â3;>wš§Ý“!dÝižöNˆÐ}æi Ÿ "ûc%jI\ÌZç G¥`A‚m}Q¾YôøIœìð÷‹Š3ž¢Àæ× >yÝÖÇXâ¥òX4Ë/&•²_P×ß' 1?”lSÔîH¼°TŸK5ŽÊ~­$Üò—/Ù/²Î‹³°’઺ªÓÝêàɬ^9avuÅø–¸,'Vª•.¢dÅßU ”%"1ÊéVè¿`´ù™ð>&úÄŽ^þ¬üݦÌIŠü&ËúT±î*/9>M¸ñçÒ¼ÑÍd÷[ŸükòwÁu ± 'ÑPãti¨®iÝ%”ï›m œ:`ÔG{!ìgç.Ñ»t,»ª9†ò@$êAÒTå ÉSJ¨ô–Fõ‚JC\½âÒÞ §ŸÏŒ t²Àj\0®òýy¨žsdiR{Ÿ(š(š½(Úª>›í©«–!/R ‘W«êþônX±ÞÁ [߀ÓÇ KΠ™¬íã¼Xý¼Pƒ»f墱b«¶0cå̱bbE^ ت» f€Ý“ÅÆhy_´tòÒ-³R6F˵WCu3ÙÍe2{<ÿ¼Èžµ÷ ÍTmÓm23žž5 –ýSià¨æX‘ñ¦²»9ĉÛÉɬ—Wµôkþ Ì$Näç Õ[»äõ7N7ÆÁdÖcQÈs¸¨_dvÍêÙ¦í!§íÈý~¢½^¢=–[EË“:è ¼‘h·‡hóûÐdfâïf,È0IÞbw•áø“ eÁÖoou\æîž³œb?¿ÄHü¯oÅi¾½`œ!áÙªáš6å%ä9D0_Stiï tÏFªª½Kõý2g €ÁG®ßÂõ¶'0^à嚬³‘ì3“íY­Ïd%ÛVg§ìKÒ}ý±†‘^\ð4ï>MÍ›Ä礵Ƨ¨µŽÿIèñÿPKþ–º ŠhPKVˆ< styles.xmlí\ÍŽÛ6¾÷) íÖÏz“µ'H´—¦(š´×‚–(› % µ¶ó=öýú$’ú¡lÉ+'Þìv¡bÎPœù8œÑ|Kï‹W»„Mn‰È)O—Ž?õœ ICÑt½tþxÿºq^½üæc’EÄÃ"!©D¹Ü3’O`rš/Œpé"]pœÓ|‘â„ä .xFÒjÒÂÖ^è¥Ìˆ~ØÐéZÙž-ÉN¬t[sñjøÊZÙž ¼:Yé¦öô˜¼ËŠ9 y’aI¬Ø1š~\:)³…ën·ÛéöjÊÅÚõç󹫥µÁa­—‚i­(t #j±Üõ§¾[é&Dâ¡ö)]Û¤´HVD †K|´«™ 9¨€»*.‡=ÈžÓŠ¯Ûõàèº]÷Àn°gZ¹*WÑðP¹Šì¹ –›žý½qß‚Pÿóö—&®D2t-¥Û‚*4ì¦Ñ¶çsÎkSÕsص¹çÍ\óÙÒÞžTß *‰°ÔÓê!fa8Oº@=ß DnUÈ×~'” öt{‚§t0ôJ× Õ2-Z©Øw^Vyפۗ/Tx‰˜èÿ«–Îk!øÖ™@ð.n)ÙþÈwKÇ›x“À›\yf¢/ña ùjlxŸ·|^.ÿHP„óýÐ?˜8¦)ù+ðþzB9FÑù•l'¿ó§f°åÑGk’p¢Béµ42*CØÛ[,¨*³ÍR9ý ³Lê1†Óu×0DR=ò"•lùùÇ®%áâ´2ô ù€ÿ,&ïpšßid53ßç’$ǶVòÆbKC])ÓË(­¯dŸv»JTúQIRž’.ëTÞad÷YÕs{}ª5ú½ªU:ýª¥žÕ2í[£­cZ§}fMžQÇ<Â"rî8Éåg;²­4ÏáŒF&)–™oK#WTN±†ËÈÿÖÓÊtc’/Ø ¾ž8½ªÓQK‰UïA昶à8Ÿ˜®¤]“cÊXíA=R[:Ÿ‡aëc‘áH½Ã#Hj?¸VkX‚—R•È.#±T’# ë%1¸np¤Ë8"u&­Aå+'íÚN¶…ûNaåÒ§þÂæêWwÉ [A…gF­ ƈœ¡×µE4"¤Þؖοÿüíô¥ÇÃÜ÷¶øÝ>Yq朓:M>›]§OÀ)sÏp&¸Ëë!–KzŽ®jhEàUPÑgj+´$¡)bxsêH}f××ÿBWCÈŸO¡Ùºy’]_ ¡`:{’=»BWOŸç—Ãç‰æé›‹!4{¢yz~A„žfžö½‹AtýÿJÔ–¸ì¦Ü¾¦è$ñkC'²V›V ìÊÁª hšV£=Vwå°¦/6ÄÌ÷=ï»[’ªnâØ¢6Ô+Õô‡yP/âPµ&òB*sê¥,‘6Sn/ÖT2Y¦#?ÜÔ×Ð'³ËrþMÉu˜±ju‘¨…*<ª®Ëæ ´  „a‰ºìÞ–ØWÏ+Ï‘Ðk"h=S ¾ÕãbS 8¶P€š5±½²>¡ð舕-ú¤ÏÉ$É6ØØ·$£$>"fî døê å–JH¯†îäe*z‹ú‡è¨mÿRêfê_ŸËÞÔ´ù ^çùi^Ç““´Îg iŽö}ÂYæŽ[šSŠ÷BÙ|†ç‘Ÿu®í¼8WÇç+·9•_dåŠGû‡´ôô{PYÝžAv;Û«E¡AzÉ߯ç]ßû’ù)£k¨2ÊZïÏwÓ¼å<˜“§YÖ#/ɵ^†žDÝRû'„í…}dxG†wdx B#Ã;2¼#Ã;2¼‹ÐÈðŽ ïãbxÛlÊÀÞ†J‹îz¤]élvVWª\ò§ޫ?ž!]Î$x‚SÏ‘ð˜àÞÊlèvçoGp?ÛÑÅ5zÍå§ÖÄqÎç_uîèØ 0ã­¨±g{æ±g{æ±g~ŒøŒ=óØ3=óØ3?‘žÙœ°Ã{QS¿çfT-èh—λþÔÆæê¬´nŽÔ­¡‡oÔDsôÁøÃ1:¯Ï¬0zÎÿá@jßG«.Á·ôÇ ×q“J8ãá—šœâkW›r:÷þTC_4÷£:çµîM5³¬ý«X¨ EJeY††pÐuÎ݃oW—ÕW}Õ7³CT *0×JÝž²µ¿½õœáÕS †M‘ñ;‹L5ª×+ ZƒÕ%Û`nn±•ö  pA›ß­q!¦6>–ýeGy°ü%Hͯ!±‚l…ÃkÁ Ø~³S+."Uøî¼åöîV)Hp.uD΃OjH½4Ÿí/½§ë¯ÆÉ{‡è˜›my¿j!*8;¡Qžs•;µ–{臥tVaÜÚ¤7滵M>h³ ^ë û¨Ù[·ÁøJ·û·Á¼üPK¡{uMFPKVˆ OpenOffice.org/2.4$Unix OpenOffice.org_project/680m17$Build-9310Simon Anders2010-04-08T12:26:04Simon Anders2010-04-08T12:52:321PT10M38SPKVˆ<Thumbnails/thumbnail.pngí—gTJÇ]Dª@DP¤I—Þ¥(‚ôŽ€€’„ J/!ïQ•@ªô€)†N@Š„&E‚òBï½&@(Ë[÷ìÛûu¿í§ßÌ=sfÎùÏÿ½óÎÈP—–‹–ŒŒŒá‘ÞC“KÖ’‘‘“ýFu9:ä—Ñ‘1:=z¨a柵‰§ñ4;ä¡Þ¢id wácÓ|K“Æ­¡~5‚âyþW£IÚßnW„E(­ü^ç̪ÄÍÛé(æ\ŠqÞ{QÊÌ,‘Î1xUTƒÿ«|–¿Ô¬¶¦ÙëiÆ«œ“âÓLÒ⤞¥³é°í–S?âÅÅ™­¥¥e˜^ÒϹd‰ zÙwFïåÿ+°ŠrriÉ$¾££¶ás -¦/©sˆwöäo¢£äàçM£UíâÔˆ~Pc§¶Ä7téÝð8ã âfš.^¿ÆiMdT”"H… 6êSAOY#'_Üæ¹’xÞ©æ™oÏoŽÔùËÄûmÀºoS§Ü]‘gzÍ©[ËfWÌ-‡?C8|›‰evêt rñJ !«*úuÅZþþÜ­ùäÃiÆý •¼WAÎ&¨å!(a¶ ¾=Zv°é j^œ4È·(÷U“Á€ˆ^W6/"“¬—Û¨WÓN•$ìþž¾Pà´´ÚÚVñÎEÝŒ‚¡…}\ ÔâMm• Éqˆ}oéx:P:¾Óns¼àèM þXˆÊ€·å;dŠ· úd— ÿ N§’¡²ÐÃ;™ÒwLlغ»Àk»?=¯¾g!òù´ç¹ê©‚µx ÃG›«H-,‰ö “œãß 5Pj”šR~C–ÅÿêÍÄösñ\êëQ8€4æÐ”´f‡]ŸŒ *#^V³ Þ?öRT Vš‘Ÿ±t\S¸Å~!Ô€2Ð"#óüp•þÇ™þq[l÷à6øñ‰”Dª‘YÕ<éô’èõb'¼°Ÿa‹kû‘böåH”Ú‹XõçéÄÉJû4¿¶"8~mH[% "ÄHçêWK¢-/sæ€Kõ:Ê}xªŒK‘#¿%ôÄÜﱪSÉ#îÈ]ÿBã}L¶¢Ô¼ò •™‰‰É¦§|r­ô+í"#m\±KãÕÎ}ñÚ5!ņ0Òf£·ûˆ˜{wãvjµÏÌAûàkÖ eY´û{ÚT¡Å~&K=Öýi3“Øü»¯­úÒžÌÚø6íIŽýg%ý…>-¼]¦›vþÈÖ:…Ò·D’¯Ñ´ ¹…¢$“‘£SÒ/jÔ\óÍ¢qvaxY°®«Q­mãÊ$Ë‹ $††RÁŠHñæ&XëΉ•Àĺ) 'ë¶føé‰ù ŸŠ=;?Xþ¦½¸M0dþþª&^§jyFüWì$òÓSž?Æ®XÊù?i6¼.Qùeäñ [\)–þˆÂÀGMþÑïf3ä×ÑRÚØãVéÒŽ§7þíÙ•êE³)ª>ÿÛÇÛ´ cIMŸ‘ãKoÚîu䎑oÈçnh‰Z}kd.¯È+#.ƒ?}$ßT ØÙj65utègˆ)):ûœãð:º×|åŠ%²üì$É@'¾:NÊ9NÌ«…çj:â¢!|ü"g}Ø’@°äxkcb̪*a%"6Ö߸(B†3JsʱâáäB¿tÒç/E ™½±¤6ÂÆJ*«Ú›ÿr2Ÿ––Û ¯Cw¨%ÏF=þ2”4àÒlþãg¹gÔ¸~PÖx­ì’¨¨ô:²GS”uͱéJÄt©S\ø¤ (ÁÇú.æá§K;dÔ2˜óìUbHËâßc¾œ„Ë`Úoè|†×z,ùÚLåö²N´Ï%*H³CÁ:·aél Á—…F4½š:µ¥kŠ5jb5;,ˆí©à7¾‹X•ùNúW¹úƒÇ=Ó ÑùYƒ®iè&Ö±|mlÇ@cŽªÏ7ðM¹lïzúâìK‰ŽØ"•“Hæè’s7ûÄ‘Ô]nû‚˜i÷;3uî Á´<¤¸ö•|ž˜ËM#GC^ßI¡cÎV¦´÷ÕåïÝ¥ñ<µÈÓþþ’vÊç1ÕÆN꿟¯ˆ¨%Ɇ¯¯‹­ò×,_Ñ*i\Èzå®”­?†‹h÷ufÈDÀÎ2ê„§P«ïs¶úHÈE닉ºX ö¸Q1¨ þëÈn)p«_Š|vY£+ÎŒ÷24V…ŒÎÔþ^m_¢óÁ¹ÔÈK‘½Ô1ÃÈöú²†½?üƒëe>Í&y 0nÿù_Z_ªsH¨ñ¾r܇Qªõ;Gø°e”Aͺ°†5ƒí9ní½¨;M€Úbß ¡éc÷ž- ›7†¬°­¯‡Cí}øÄã ¥0V¡ÝqŸ=Ú“Z:öÑ˲Hª?H ìWÚvĶËo¬±Ä(yÅ$NîÓÖëi.±»öl±¸|ž.ÇÕåy¥7éTc a[ÕV™Šµ¼…”q³Z].—ÇËÓcÆÃjýòò²jÞn–Æ„‚BÒ\Œp{Ï6­Ïè‡EQÖ«·÷3Æ^…ÖÖŠÁOjµFuýÿfµˆ0)Ê¥×V|ÅJæùÁVˆâ¨(Œ^»¥ujø-w×½öÆ·—¶¯RE×*XB¤ý}”>Ö|-O©Þ|ư|= ^Ö¾÷|ÃB+Óဦ,ö6/å*V/1•^»rÚ8?¿ªî}|s™‰~Þ8+þ;ä" þ´qZ/ 8\dŠÒ¨}úT¿¡¸‚i/ìrÁ2Û[f:<|UDbX‚1…äê(xm}0êv–øÂq0©=vàgŒ@ÔkKž@ø>gt×įàsD„%ú@L(ЧL³^ö ú…p‡xˆ©pG¢1…\Š˜é~öø²ÏÕCç,c¦îeÆ$·ˆD‡,Ñê½Ó[ŠÌX뚣p¢nÉwý ¸!8ÂI3²2fª²£é²ÂRý¬V³ÕfŸË…‹R ÑJ%¾]|$à¼ÑUBð•×®þ¹hÙÉ2VR¢ÿŠ4Cæ?Að¾(Õ÷¡F¬#UøŸ¹pàˆõaû"–?ì î0ßèXýU¥áÝD¹`\]Ë{3¢"ü ÀaŽÂ ˜b º8L㤓ÐxÍåÃÁþÓ^äM€ss|- AohlÝS8PgBpb ü-³}ܰ ïÊ,ÚÁ©\øîÉ4!Ýòøl GLî¹ø¸úð°$³6¶¬6ÿIáŽÁ²#¹°/Ä{ q¹Ò×k¶…Å?àù²—Cï«Ò8Wpë‚hƒœ/u)h]¡ÿ%p$wÈq ”™â.›¥DøÊñý_Ðã»=ÂÔšæ†êz0·a,“DºƒºýOÆ¢{šQ}‘9ãáöÜ!ïu:ÊÈ^ @ŸZ­$Üd:qLVø5’èð•EK¥èTŸ…LJaÎdåç_%À¯)AU¤IüX°™«*d8RÅ$ï±HIõ`pª(ZWšêÝZ3ߎô‰…5g`É s”©h'2»ž¨Ÿœ6bþ ¯Ïø ÐW÷•Ÿè UE›dt©­€Úú>Ñü9¨_º–å âíÍðRÔÝjBLõ|Ëá†oî/çÞOR(À Ìúˆ‡v–¿EÒ·¿W Ûlù8íåóqB}™¸j» hºŒ=p3"Þ&è"ÿÉEºÍñæ°»4‰Ê…n½¥e™QàÖDQÍád–n84úÈÕŒÛ0L1·všb'ò목u8±¥e(x0JvÓ!´º$to•–Q§öÃDÕñÌ€«ü¡ÌÑr*4VeDÈQ¼˜$Qä*¸š“ô[‚–»f/32°À*sêOÀUN¢Õþœhsš[VT¡ËH¢Õ,E™q«‹)Æd²[)~tö>AÏðmý¡þ=í&\ÜÕ‰¸i† ô›½¼%ðc¨ü¤2`4…(&oäªü(ŸÛpV÷¾8QÍûšLûoPK.G“h#PKVˆ<META-INF/manifest.xmlµ•ÍjÃ0 €ï}Šà{âm§š6Øt :Jjð–\Ú·_RÖŸm=¬!¾É Ÿ°-y¹>XSì1’ö®ÏÕ“(Ð)ßj×7âsóQ¾Šõj±´àt‡Äõ9(†}Ž.ËF¤èj¤©v`‘jVµèZ¯’EÇõÏüz4­ÅÜiƒåÅU†­†’!­€‡:åÞµÕÉUÝ*ª>BØiEâJè’1eÞ5B ùñÀr¨ú>MyÇ£sL˜“K|4H³c-2L€Þ‡mvÉnhC’Ïa\?7|Þ»wîS<½z‘ –>J•bœv‰»²Bô}D¢-dtÆc®ê}HaèÜ”?’³ {o²Áµ…I¾i¶2õÁ·# ›8My”¿‡<%76g•t¥nÿ+cÞÁŒÌçxÍKùçO\}PK2ÿ¯BNPKVˆ<Ÿ.Ä++mimetypePKVˆ<þ–º Šh Qcontent.xmlPKVˆ<¡{uMF Œ styles.xmlPKVˆ>fvvfòÝ„‡™w>ß>¿ßïxPV²áXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx€gXx¥Ë–-SVV–z÷îòÞ¶mÛtÙe—©wïÞ*))Ñ´iÓ´{÷n×û,^¼XC† QAA ¤|Pmmmñn>ò,a|ôÑGºãŽ;Ô¿ù|¾ ÷Þzë-]rÉ%jkkÓêÕ«µ|ùr½ýöÛºøâ‹µÿþ skkkUUU¥éÓ§kãÆš5k–æÏŸ¯Ù³g'òã)Éç÷ûýÉn„]}õÕÊÉÉQqq±ž{î9>|¸ã½ë®»N¿ÿýïµk×.p ’¤={öhðàÁúÞ÷¾§ H’êêêtúé§ë†nÐc=ÖqýüÇhîܹڱc‡†šØ¤*,.V®\©?üázôÑGåÌsmmmZ·n¦M›ÖV$éŒ3ÎЄ ôüóÏwÛ°aƒš››UQQtŠŠ ùý~­]»6¾Hq‡O>ùDUUUZ°`ú÷ïòþ®]»ÔÔÔ¤‘#G†¼7bĽûî»jii‘$íØ±£ã¸Ý)§œ¢¾}ûjçÎqø@úÈIv¼föìÙ6l˜n½õV×÷ëêê$I¥¥¥!ï•––Êï÷ëàÁƒ:ùä“UWW§üü|†œ[RRÒq/§ýû÷ëÅ_ÔÀ]¯€÷566ê½÷ÞÓå—_®¾}û&»9)‹ÀbóÜsÏiݺuzýõדڎ_|Qßüæ7“ÚÄÆÊ•+õo|#ÙÍHY–vGŽÑw¾ó}÷»ßÕÉ'Ÿ¬C‡IRG÷®úúzåä䨬¬L’tàÀ{8p@>ŸO%%%’¤²²2577«©©I!çŽ3Ƶ-gžy¦$ë7ƒò½«ªªJ‹-Jv3?ïãgä}üŒ¼Ÿ‘·½ùæ›úæ7¿Ùñl‡î!°´Û¿¿>ýôS-\¸P . y¿¤¤DS§NÕêÕ«UXX¨7Þx#äœíÛ·kðàÁÊËË“¤Žq.o¼ñ†ÆŽÛqÞÞ½{UWW§áÇ»¶Å„›¡C‡jÔ¨Q=þlˆââb~>ÆÏÇûøy?#ïãg”œ¸F×XÚzê©Ú´iSК+~¿_ ,Ðïÿ{mذA}ûöUvv¶®¾új­Y³F?þñƒ¦5Þ´i“n¿ýöŽë'Ož¬‚‚­X±"(°¬X±B>ŸOS§NMÜR¥]~~¾ÆrüÉ'ŸTvv¶Æ×q¬ººZcƌє)St÷Ýw«±±Q÷ß¿úõëXJJJ4wî\Ýwß}*--ÕĉµuëVUWWkæÌ™2dHB>ª˜Ö8ŸÏ²Òý9眣͛7+77WÓ§OWEE…Î>ûlmÙ²¥cŒ‹qÏ=÷hÑ¢Ezî¹çtùå—ëÑGÕœ9sôè£&òc)‰ KO>ù¤ž|òÉã£FÒK/½Õ=*++UYYë¦!Éf̘‘ì& ü|¼Ÿ‘÷ñ3ò>~FÈ>¿s)w$ݶmÛT^^®×^{t)ŠgºØ KÏ"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, Ï"°ð, %­^-UUIÛ·'»%€xÊIvèª×_—®»ÎÚäéøñä¶?TX)ç¼óû~òÚˆ? Ï"°ð, Ï"°ð, ¥ù|Én ž,€”–ìâ‰ÀHiTX ½X)-‡% ­XÚýýïפI“4`Àååå©W¯^=z´–.]tÞ 7Ü ¬¬¬ÿ† rÏÖÖVUWWkàÀ*((ÐСCµdÉ’D}$ÈHoüo¾]}}½† ¦›nºI PCCƒV­Z¥[n¹EŸ~ú©î½÷ÞŽs µiÓ¦ ë Cî9kÖ,­\¹R5553fŒ6lØ Ûn»M‡Öœ9sâþ™ ;–ìâ‰ÀÒnüøñ?~|б‰'j×®]züñǃKvv¶ÆŽÛéývîÜ©åË—kþüùºýöÛ%IãÆS]]jjjtë­·ª¤¤$ö2ÌÑ£Én žè[¨ðûýA[7k×®•ßïWEEEÐñŠŠ 566jÆ ±m(dˆãÇCZ }Xü~¿ÚÚÚtèÐ!=ñÄZ¿~½î¸ãŽ suòÉ'+''G Pee¥<tÎŽ;Ô¯_?õë×/èøˆ#$Y@×¹uknN|;‰A—0‡oûÛzüñÇ%Y]¿æÏŸ¯ÊÊÊŽ÷ËËË5vìX9R>ŸO›7oÖ‚ ôòË/këÖ­êÕ«—$©®®N¥¥¥!÷ïÕ«—òòòTWW—˜iÆ-°´µ%¾€Ä °8Ü{コùæ›U__¯_ÿúך3gŽôÀHRPx‘¤‹.ºH矾¦L™¢eË–é¶Ûn‹Y[ªªªT\\tlÆŒš1cF̾¤·ÀÒÚšøv€ÝªU«´jÕª c‡JRkÒ ÅaÀ€0`€$i„ ÊÊÊRMMn¾ùfõïßßõš+¯¼R%%%zå•W:Ž•••éõ×_9·¡¡A---*++‹Ø–E‹iÔ¨QÝü$ž,¼ÈíÊÛ¶mSyyy’Z”>ÃAyy¹Ž?®>ø ÓóœðGŒ¡}ûöé“O> :¾}ûvIÒðáÃcÛPÈt €ÌB`‰`Ë–-ÊÎÎÖYgöœ^xA‡Ò…^ØqlêÔ©òù|zê©§‚Î]±b…ŠŠŠ4yò丵ÒÈ,t k7{ölë‚ .Pii©êêê´fÍ=ýôÓºóÎ;UVV¦÷ß_3gÎÔW¾ò xý׿&®=€ø#°RF¸._\Ø÷ûÓ@bX)£©Éý¸}¦0 ¤ e„«°Ø×b!°@z!°RF4åèÑÄ´@Ê×%ÌXÜæR2ÂUX²l¿Í HL[‰A`¤Œh†lm;‰C`¤ŒO>‰|Ò 2®¾:ò9H/@Z8ÿ|kÛÒ’Üvb‹ÀH ¿ûµ¥Âé…ÀH ÅÅÖH/@ÚÈÍ%°@º!°ÒFv¶ôÙgÉn –,€”qÙe¿¿w¯ô£%¦-€Ä °RFSS²[H4 eX óX)ƒÀ™‡ÀHÈ<@Ê °@æ!°RF´Åïo;‰C`xÞþ ]p´¿tóÍÒûïw~þ±c‰i þr’Ý"©¨ví²ö¤3ÎèüücǤ~Ã@Z ÂÒîïÿ»&Mš¤(//O½zõÒèÑ£µtéÒs·mÛ¦Ë.»L½{÷VII‰¦M›¦Ý»w»ÞwñâÅ2dˆ 4hÐ =øàƒjkk‹÷Ç€´’ØÏÍ|>H–võõõ6l˜.\¨Í›7kíÚµ9r¤n¹åÕÖÖvœ÷Ö[oé’K.Q[[›V¯^­åË—ëí·ßÖÅ_¬ýû÷ݳ¶¶VUUUš>}º6nܨY³fiþüùš={v¢?¤´®–ãÇã×@bQ0o7~üx?>èØÄ‰µk×.=þøãº÷Þ{%I÷ß¿ µnÝ:p ’¤òòr _ǘ—²²2577«©©I!çŽ3&b[-Z¤Q£Fõô#@Êëj—0 €Dsû£ò¶mÛT^^ž¤¥ưDP^^®ãÇkÏž=úüç?¯ÂÂB½ñÆ!çmß¾]ƒV^^ž$uŒsqž»wï^ÕÕÕiøðáño<¤ {`iÿ›’+ư@ú!°D°eËegg묳ÎRNNŽ®¾új­Y³FGŽé8gÏž=Ú´i“®½öÚŽc“'OVAAV¬Xt¿+VÈçóiêÔ©‰úòìeÞ¼ÈçQa€ôA—°v³gÏVqq±.¸à•––ª®®NkÖ¬ÑÓO?­;ï¼³£;XuuµÆŒ£)S¦èî»ïVcc£î¿ÿ~õë×O·ß~{ÇýJJJ4wî\Ýwß}*--ÕĉµuëVUWWkæÌ™2dH²>*¤„'Ÿ”ö챊 "§ž*µ²]Ñ% Ò¥]yy¹žxâ =öØcúì³ÏÔ§OwÞyZ¹r¥¾þõ¯wœwÎ9çhóæÍºë®»4}útåääèÒK/ÕÂ… ;BqÏ=÷¨wïÞzôÑGµpáBz꩚3gNÇ"”w»wK7ÞhíÛKg‹FJt €tD`iwã7êFóÛ1‚Q£F饗^ŠêÜÊÊÊŽi‘Ñ4(øµ *>_ç×Ñ% ÒcXžWTdm#UNèé‡Àð´;îV¯¶ö ,y,O{øáÀ~´…1,>,€”)ˆ0†Ò2ÚÚ:Ÿ.a~,€”A—0È<@Ê8çœÎß§K¤ ÀSöí ÿÞ‹/v~-] ýXžbŸÌ©oßί%°@ú!°<%ÒÀúÎ0†Òà)ÍÍÝ¿–1,~,O)(èþµ¦Â2~|lÚH> ÀS†w?MÉâ·¤þ×ð”–÷㑦4–‚K}}lÚH. ÀS–¼¼Èך1,’ôÀ1i É,O 7è>šÀB…Òà)=©°ØË±i ¹,O Xrs#_kïæóŦ=€ä"°<%\`±‡‘pì–Ë.‹M{ÉE`xJ¸1,ÑTLì紵Ŧ=€ä"°<%\…%š5V쥵56í$à)áK4¿?ò}©…À𔞠ûÀ|*,,OéI…¥Oéµ×¤þý ,.,OéÉ {I5J**"°@º °<¥'#/1,.,O‰E`ÉÍ¥Âé‚Àð ÀŽÀ𔞎a‘,N,Oa ÀŽÀð· qÑEÒ­·F*,>,Oq ,K–H'œý=,>,Oq ,99]»Òà)nƒîss»vÜ\ư@º °<Å-ht5°äåQa€tA`€ ÷ä“ÒÞ½ÉnE@, ] }X ƒùýÒ7J_ûZ²[@`ØX ƒ;fm÷ï·¶­­VˆI&·1,ÝtÏHÈ`mmÖÖ„„¼<é®»’מãÇ­6 |œ1,¹,ÁœE’~ö³ä´E „Œ;ï”¶l §Kd. dµk¥ÿþïÀkóPoï>eº‰%ƒiGAôùÏŽX su±W0 •=ú¨µbü•WZ¯M…Ålû‰fK^žÕ=Ì` d.*,Ašš‚+fßç „dVXìciúö ÷ùºvư@ú °@il ~7Õ”¬¬@PñJ…¥  û÷¡K¤ dg…Å„“ƒ­`?– &°äç÷ì>HÈ Î ‹Ù·ó {žº‹1,>,Aì–ƒ¥eËBÏéiXè û–ž` ¤f € b¯°|÷»ÒÊ•¡çô铨6Ù9+, Jï¿ßõûäæZ“?nϤ. d{…åða÷sz÷N\{œœcXn¿½{÷1ë¶´¶ö|< ¹ø»S»—^zI3fÌРAƒ”——§’’]qÅúãÿtÞ 7Ü ¬¬¬ÿ† rÏÖÖVUWWkàÀ*((ÐСCµdÉ’D}$â÷–p‹1vuÍ“XŠåûý©‹ K»¥K—jß¾}úÁ~ sÏ=Wõõõzøá‡5a½øâ‹š0aBǹ………Ú´iSÐõ………!÷œ5k–V®\©šš3F6lÐm·Ý¦Ã‡kΜ9qÿL`×Òb…3 X¸À’Ì.T±,Œc€ÔG`i·dÉõë×/èØ¤I“tÖYgiþüùA%;;[cÇŽíô~;wîÔòåË5þ|ÝÞÞ§aܸqª««SMMn½õV•””Äþƒ@MMÖÖ<櫤dg'¦=nb9è^"°@: KX;gX‘¤üü|sÎ9úðÃŽûýþ ­›µk×Êï÷«¢¢"èxEE…µaÆ´¢×Øhm#–d>ä{©ÂRW'ýéO=k ç,¨¯¯×«¯¾ªsÏ=7èxcc£N>ùdåäähÀ€ª¬¬ÔÁƒƒÎÙ±c‡úõë„FŒ!ɪÀ@"9+,á*)Ž¿Ñ$T,޴ߝ;®¿^ºè¢ä®K KX§fÏž­ÆÆFÝ{ï½ÇÊËË5vìX9R>ŸO›7oÖ‚ ôòË/këÖ­êÕ«—$©®®N¥¥¥!÷ìÕ«—òòòTWW—°ÏRh…%\`9rDÚ¿_êÛ71í²3#ÜøšhÅ¢ÂòÙgÖöƒ¤{Ö@÷X¸ï¾ûôóŸÿ\K–,ÑùçŸßq¼²²2輋.ºH矾¦L™¢eË–é¶Ûn‹YªªªT\\tlÆŒš1cF̾€Ìᬰø|áÏ=|89¥¹Ù µ-±Ãb¦w7ý3Ø­ZµJ«V­ :vèС$µ&½X\TWW«¶¶VóçÏ׬Y³"žå•Wª¤¤D¯¼òJDZ²²2½þúë!ç644¨¥¥Eeeeï»hÑ"5ªk€0œ–Îfëi`è®––ž_‘bSa1ÝÒŽíy{¤?·?*oÛ¶MåååIjQú` ‹CuuuÇwß}wÔ×9à1BûöíÓ'Ÿ|t|ûöí’¤áÇ÷¼±ÐÎ ‹K¯ÕÉZ¿¤¥%6 =Æb ‹iGCCÏÛè>‹ÍøCUWWkîܹºï¾û¢¾î…^СC‡tá…v›:uª|>Ÿžzê© sW¬X¡¢¢"Mž<9fí€h˜ ‹ßo $ïl0y2‹W*,Ö– $]ÂÚ=üðÚ7ož&Ož¬«®ºJùË_‚Þ¿à‚ ôþûïkæÌ™úÊW¾¢ÁƒËï÷kË–-z衇4|øp}ë[ßê8ذaºé¦›4oÞmذ!dŸÏ§cÇŽ©OŸ>***Rmm­>þøcù|> 8P•••ºçž{BV»ÿÉO~¢ÓN;M‹/ÖÞ½{uæ™gê‘GÑìÙ³ùÑ@Rp`ik ­°ääHÛ¶I#G&/°47Ƕ‹.aH.K»M›6E<§¤¤Dk×®úž999š7ožæÍ›×“¦@L˜.a’{…%++ðnVœO4¯t Û»WzäkŸ1,\Œa€ ©K˜Ï é2è¾»åW¿ ìSa€ä"°@†èJ…%Óǰاu&°@rX CDª°de%¿Ââ•1,ð dg…åØ1éßþMºâ ë˜=°dú; $2„½ÂòôÓV…%;[Z¹Ò:æ… K¬Æ°dg[ÛXt cÐ=$2„½ÂRSc–œ©¨È:æ•À‹ ‹ÏgUYbXž|Rz啞· Ð=ÈO>üÚ–œö î}¾Àƒ~ªÉ +¯½Ö½kÿùÏà×_Üóöº‡ÀàÃCÇ¥˜ÀbºOeµÿFÈËKΖ>’Œ]`‘BCZ´z(øµYõx, àøñÐcÇŽYaÅt2%??9–ÓO·¶_øBâ¿v$~²[™‹ d·Š‰©°&¸äåIwß-ýøÇ‰i›S,ÝÇZ,ft2€}†0ÃXJK­­é’õØcño—›Xv ‹º„@òX ˜ÀRU8f,ÿõ_Ò† Ö~N; ûýÒÃKõõcñ,~¿´h‘5FÆØ¾]úå/£»þšk:ÿ”^z©ûí„G`€ `º„ÝxcàØÇÜýëÒgXûf¼Æ{ïI{÷Æ·]»wKwÜ!M™8«Àbº–ùýÒHßûžôýïÞ9Rš>=ò}¾ô¥ÈcXþíߤI“ºßV@xȦÂÒ§OàXk«{5Å>@ðàø¶Ë¬HÿÿoàX¬Æ°,_nm ŒAqËi‚®ûw IDAT®¬çrìXôíD‡ÀÀ{ˆ&°9ßvµµ…‹U…¥¸ØÚ:Y.¿õ"¤®–o;úö¢C`€4ó½ïY3~ 8f‹}ðxccäÀâö:–Ü‚@¬ˉ'ZÛC‡_Çt늮–¥K»~@ç,FÌàrIzë­ÀqÓÊXŽu,Îñ¯¿Û6ÚųÂb>kss °¹UX"éJ`ÄÒÈûï»7ìö0ÐØè^qpVT.»,6msÏÀbÂX[›´~½µo,_übô÷qk' 1,Þ{¯ó÷›š¬ ``÷û£«°¸­á+n•‹X º7úÛÚ¤ûî³öíŸÿì³­íÈ‘Á×}ôQ`ÿ®»¬PÇ`zH ¤¸M›¤3Ï”¶l ?ýns³ûâ‡Ñ–£G{ÞÆpUa1ì%BÇü~éôÓ¯,°îC`€ä!°@Š3ÝÀ¶o}Ï„¦&÷ÊE4ƒî%©ººûíëL¢‹©°>,ýüçÖ¾½‚ä6Åqv6] ™,&|¾Ð°q옵øã½÷º?ŒÛ×e1ÜËCŦNñœ%¬³Àb_ñÞ^aq«&EêÆ€|ˆ/—¿­RÅñãÒÃ[û99Òo~üþW¿*mí×ׇ^_Zê~O'Ÿ¯gí Ç­r«1,&°Ø'"0ŸÃ9ù€ÑÐà~ŸÎËÇw¿€È,Â~û[iÇk?'Gºí¶à÷׬‘þö·ð×»–pã`â!–›o3ÁÃÊì]ÂÂUX:ëÖµ]Ñ£K¤°hÆVìÞüúª«û%%¡çÛæ¿ð…è¿Nw$b ‹égÿŒÇŽ‚Sw*,Œo€ø"°@ ³ÿuåÊè®±Ÿ×Y—0ûŒYñšÚ8žÅLklg‹3€˜Ïg¯°¬^mm#a!°@|X …ÙÊ7mêú5n–û½zöãÑU,]Âì~ö3éškBÇé˜q,ö ‹iƒî ¹,Âì•OŒî{`±ãå—¥ ¬}{x°Ï¬+‰tï´vmøÀb¯°˜ÏÞÐ ýãá+)kÖ¿¦â±E`€f,……Áï]{­û5öÀâú÷—.¿ÜÚ·w9;|¸{mìL<»„9ÃOœØ7“ .°¶æûèVaYºÔÚnÙâþuî½7øuss×Û À)ÌXŽ ~¯¸ØýûÅ‘ªö*…Û:.=Ï.aYYuW¤à ”©°|õ«Ö¶³ ‹m×/û4É€ž#°@ ë,°˜*IgÂu›2ìUŠx–xVX¤àÏg¿¯©°˜.qa1¢íê¯ SX ……{8þÇ?¤ë® >æ6^%’x·ªE¬Æ°HÁmî,°¸ÍfÎ7íil ^ˆÓéG? ¾ 6,ÂÂ=÷ízìwº~ÿxw ‹w…ŸñF÷ÕíÍ´În]ÂLPéÝÛÚ67KÏ>+½öšô»ß…~xO ™ŠÀ),ÜñÛ$§žÚõûÛË¢E¡³kõÔ²e¡ÇÜÚÞS^|_Óõ˻κ„™ÁööÀv饡_à ÄRX¸‡ãHcS¢eïö‹_Hë×Çæ¾’T_/íÜz<+¿™ŠŠ‚+,&˜”•YÛκ„ jMT°woç_ÃTk,[HaMMÒàÁ¡ÇãX¤à DOÕ×Çî^‘Oûl>‡³KX¸A÷yyÒ=÷ßÓï^P²kK`€Ø"°@ kjr¤î Ýå >­øÞU‰,ßý®µ-*’N;-pÜ“N°¾UXœûÆ—¿øþÜ¿õ5$¦5€X#°@ kksó¯ K,Wq?t(ôØÿ»ûKîe……ÁŸ¥¡Á *ÙÙRAAt§uë‚ß/(°ö©°@lX …µµYáä[ß >n_²'œ%–·ÀröÙ±»¿h¿Ï¶SºÏf*&Rä™Ërs ,/Ha&°ŒŸûdzÂâÖ%,V]Ù Sa9~<¸íõõÁÅ„Œ†ë{y×]Á¡/ÒÌeyyPC`€Ø"°@ 3%Öú†³k™ÛBÝåVa‰UW6Ã,ž9t¨4iRà¸=°Ø»„=*]|±´`Að}¢©°ø|Ö½šš¬ùû÷Çæ3@¦#°@ ‹XFŽ´¶gžú^IIäûü:–ÊXF¶ÂÃI'Y¡å¿°Ž;+,ö1,æ¸]¤ÀbÞ7Õš… ­¯iïbè ¤°Hå•W¤ý+t½“#G¤?Œ|ÿ‰¥}û¯cùžˆ.aN¦B´zup…¥©ÉZgåÃ¥þ3ôºh*,ö{ýö·Ökº‡@ÏX …µ¶º#¹)(°V¸·¯A"YëöAå1«ÁK± ,GZUž7Þ‹u…ÅéÓO­m[[h…Å´ãÅC¯‹¶Âbº—™ñ2--=o3d: ¤0Sa9p 1_/–¥¹ÙZôrĈÀ±x¬rogï†ætoBŸÛº6‘Ý;+,f6µææžµ@`€”f‹ß8vñÅñûz±,&¬_/ »{‡óÍoöƒîM[~øÃÐëœ]êœì3è^’öìéY{Hi&°˜±Ï>+mÙ¿¯ËÀÒÔX»dòdiûöØÝ;œ³Ï–ÆŒ±ö]ÂL7®K/ ½.ÒìhÎ ‹y=n\ÏÛ ™ŽÀ)Ì3V"R×¥ž²¯ßSö K"™¯éto‚Š Qv‘ÆÖ8+,n÷t¥ÝK/½¤3fhРAÊËËSII‰®¸â ýñ 9wÛ¶mºì²ËÔ»wo•””hÚ´iÚ½{·ë}/^¬!C†¨  @ƒ Òƒ>¨¶X®¼ £9+,‘‡÷Ôáñ»W²‹ù¹Mk,¹‡H³—™ hÆÃ8'9t¥ÝÒ¥Kµwï^ýà?Ðoû[=ýôÓjllÔ„ ´iÓ¦ŽóÞzë-]rÉ%jkkÓêÕ«µ|ùr½ýöÛºøâ‹µß±JXmm­ªªª4}útmܸQ³fÍÒüùó5{öìD<iÊYa‰w`9xPª­M¥¥¹99•g…%//¸ËWO‹©°˜Ø.º¨gmHqž@2u,Y²Dýúõ :6iÒ$uÖYš?¾&L˜ IºÿþûUXX¨uëÖé„N$•——kðàÁZ¸p¡´/\WW§ššÝ|óͪ©©‘$7N­­­š;w®ªªª4tèÐ~BéÈ–ï|GÚ±#~ÈÿçÿHóçKÛ¶YÿµµIóæuÿ~uuÒŸÿ<>Qœ%''0~Åþ¾]¤ÙËì]  Þ½{ÖV–ΰ"Iùùù:çœsôaûêjmmmZ·n¦M›ÖV$éŒ3ÎЄ ôüóÏwÛ°aƒš››UQQtÏŠŠ ùý~­]»6NŸ@¦ðû­ÿœé”S¤µkã×é»ß•fÍ ¼îét½“&YU¡dt 3·jŠó˜³’e¯°ìݨx™éÝG`éD}}½^}õU{î¹’¤]»v©©©I#GŽ 9wĈz÷ÝwÕÒþ[jÇŽÇíN9åõíÛW;#Í‘ <ý´´{·ZÁ.ŽïÙ½þñk›Œ.a&œØK¤Í4Åû÷[ûæµ ˆfPþï/½ùf`J ô¥³gÏVcc£î½÷^IV7/I*-- 9·´´T~¿_ì87??_….î,))é¸t—™¾Ø¾b<Ù« = ,&¨Ä{V37ÎÀ’›yºfPLh3¯O;ÍÚ[Û]»¬í;ïX[ ôcX¸ï¾ûôóŸÿ\K–,Ñù矟”6TUU©Øül7cÆ Í˜1#)íàM‰zèw«°üò—Ö óo|£{÷JƤ‰ï¿omíÕ‘H“˜Ïë¬ýøÇV3ÁʼnÀdŽU«ViÕªUAÇ%ê/JiŽÀ⢺ºZµµµš?¾fÙ:m—••I’8rÍäóùTRRÒqnss³šššTàø wàÀ1+—ubÑ¢E5jTO> € iXq ,Ó§[Û®ó¿ÅH]±âáÍ7­íÇ[ÛœœÈÁÂT—Ì÷ÚTXNŸOS§NÛçY’Qa1ìÝeÂO2*,XÛþý­m4ß¿©S­i£ ç˜ÃXtAt]ÂÚ=üðÚ7ož&Ož¬«®ºJùË_‚Þ¿à‚ $Y˜1cÆhÊ”)ºûî»ÕØØ¨ûï¿_ýúõÓí·ßÞq~IIIGð)--ÕĉµuëVUWWkæÌ™2dHB?€ô•Œ KO‹Ï¼M$ó5ÍÚ*öïßïßµ{E ,’ôÁÒç>×µû,íÖ­['ŸÏ§ 6hÆ Aïù|>kïˆ|Î9çhóæÍºë®»4}útåääèÒK/ÕÂ… ;Ƹ÷Üsz÷î­G}T .Ô©§žª9sætÌ:]µgtíµÒï~8–Šs½mI«„)-µ¾†ýûgV¨$\…夓B+*Éìöé€ÀÒnÓ¦MQŸ;jÔ(½ôÒKQ[YY©ÊÊÊî6 ‚<ñ„ôÚk’½œŠåsŸ“¶o—jjzvŸîxáióæÀkû,k]]ÈÒYQùéO%çøÚdt{€tÂH!æá×Þ=Ëmeöxˆe—°ÖViÚ4©wïžÝ§;N?]úæ7¯íϹ‚}$΀ӯ_è9‘Öx1vìHÜ" J,BL÷¢d–XVXZZ’³h¤{`éj…Åy¾[µ+Ò/ƈÒ—¾Ôµ¯™€À)ÄTXrs¡!Q×c]aéj5#^zRaqv s aÑVX$éí·»öõ X …˜Àâó%~•øL¨°DX ÝÏwûLÑVXî,BL`9v,ñ³O9+,öÐbÄT¯°”–Z[guËXæÌ±¶neófiùòÀkÆ®@xÌ)¤}†õ¤g…Å´E’&LèZÕÅKû hÛ´q£ôüó¡Çíágà@iÐ ÷À2a‚µ½ñFkûÐCÑ}]ÈDH!Ç[[/–ž|ýwß•®¸¢çmŠ…?ÿ9°m…eØ0ë?'gµ¦¨(º.a]완.aBÜKOÇ“DËÙ%¬»åW¿’š›­i|½àœsû=qÍÞE,7WêÕ+ºÀrÚi=ûºÎ,Bì]Â̪ì&æk;+,Ý]ñÍ7­í¿þÕó6ÅÂĉñ¹o^^äÀò«_YÛ’k;jT|Ú©ŒÀ)ÄTXþó?¥3ΰö¿ÿýÄ|mûøŽžTX²Úó¸­Y’ ñêŽM…eéRkk¢€`H!&°üæ7V`92q GfÙ~cô$°˜nS^ ,ñš­,š ËáÃÖ–Àáyä× &°HRSSòfÚòùҧ¯ï¡[…Åï—¶n ¼nn¶¶fMûÏ`¡Â×Ö<ØÞ8t(y%7·ûcX¼Vaq®¥+¦Ârð`àØcI_übèצÂáXÀãrs¥+¯´öí?x0y‹/?ž>]Ââ%7WÚ´Izçéíc³gŸc¾¦Âb¶€ ¤€_´¶ö)ŒH^…Å>­òÕW[Ûh§W6çrJìÛå%¹¹ÒÎÖþgŸ¹ŸãóYáï–[¬×Ý­Z@:#°@ ±WX’Xšš³“{nàX4LUè±Çbß./ÉÉ‘ž}6ðÚm|JVV`‹”øÅ@ ¤yAÒ‹}ŒC2ËË/KŸ~jí÷écm›š¤ÂÂÈ×¶¶J'œ¸.]egKXûÇŽ¹Ï朼€ „¢Â)ÄþWúÇ“XìÙ½{[Ûúz©®.òµ--É{“7Ýdm³²SN·µ¦0v²‡”Ï>#´€Rˆ³[Q²üíÅTJ&O–úö|­WËÄþžfbcÇÜ‹s=›¶6é½÷bßHet sNsëœE*Y–#Gû¦ÂòÏFw­Ë‘#±û^š™¿üþÈ–ææÐŠŠý{  ÂžæÈî”èÀò曡Ǻ:Å‹¥W¯Ø·Éï\aij ý™=Ûv@ª#°€G¬]ÚÈXœOt`2$ô˜3°Dš-¬¥%y•¡D°/D©ÂÒÔø™^~¹µ%°@0 xÄ5×HãÇ‹TañB¥Ât 3öíëüüÖVo´;^ì]Â:«°Ìku 3߯Ûn³¶F`9x0øuccðëdw sã ,fU÷p¼Ø%,–¦L±¶§\aq.YP`ÒK.±^Ÿx¢µ%°@0 x€YýÝù ïµ.anzõ ~ið}º–«¯¶~ž}ûv^aÉÏþùš®uF`0«;ˆ½ÂröÙÒ®]Ò7¾!Ý}·ûùÉPPüÚmD»t,vÎ1,öñ>Á«Üçç[ oX <À<¤:ˆý/ðï¼cmÏ>[úÜç¬ýLNŸŸü:Ò‡™Xœ–ÓO¼—ŸXòò¤¢" 8XÀÌCj¤.a’júõ³ö“±f‡YÉÝðù‚«,ö‡p7é>èÞÎYaéÝ[zé%é‡? ­LåæXÀ <àÓO­mg]ÂŒ¼¼@`9t(¾íróÕ¯†³?|GSañBW¶D°WXvï¶Ëe—Y3„9 pç΀òrkm…夓¬ýHãEâÁ­:Ò• KK‹T\Û6y•©°Ô×K›6¿çìJ—›kM`@`€`TXÀCÞyÇêbµgõ:\`éÛ×Ú?å”ĵÍ0ÚãǦa., ¼Ï–Saq –Î K¯^TXÀ <Ätûë_ƒ_ÛåæJeeÒo+ÕÖ&®m† ,½z*%]­°dJ`1·Ÿ£3°ääXå©§¤ßý.þm€TA`2«¥ÿêW¡ï™ñ—^\ÙHX졃 ‹»¬,ëgiKMMà={—0ó3-*²¶—^z¯þ“  31†<(«ýÏIëׇ¾wüxbÛâd†}à¼=€0KX°ìì@`ùÒ—Çí–;î°¶&°89" bí›EF SPa2]‰Ü´µ%®±‡{{™%,XNN °Ø¿göÀb*TáËÕWǧm ,àA¦K˜›dóP=bDàX–í· cX‚Ù‹=¨Ù»„¹–yóÿ^y%¾m/£K$™[é,°$[ÿþÒßÿXºZaɤÀbïÖ•ÀòÓŸöËʤ?´öë¼é† $™Û RÉòÀÿ¹¿ð…àvX‹¦K˜Ù·û÷×~®ÛT×Î<ðk2›Ûºáú¯ºJºîºø¶§;쥳.a R]]f–h*,f½·ÀÒÖÖµ@é†.adn¥¹ÙšÊiݺø·§;¢} ž=;ôüt®Âb,æ{f,¦[àÑ£ÁÿF,2 H²p¥wokʔͧ;¢tÿÞ{Ö6ÙS3'R¸ Kv¶ôä“Ö¾Çä6KØÌ™Ò^Xd $ÙO~bmÿò—À1ûC*ŒYøÍoû¯½&mÞxýÌ3Òi§Y뇘Êʱc m^R…«°HR¿~ÖöÄ­­}NSayöÙàk,2 ’äÀéúëÅ>°ÚXöíKl»bág? ì?ð€ô¯IŸ|8–I%\…E’®¸BZ³FúÚ׬×öáXd $ÉÊ•ÁöçžXoÃþPzÒI‰mWwüû¿¿6•¿_zë-kïÞÀû™X:«°ø|Ò5׺ÔÙǵ„C`i,$¿ÎɑƎµöíÝÀJJÛ®îøò—ƒ_›õâ‹cMM±^^g&Ö²³?Og…ʼnÀ¡,$9aæiÌÏž!Ìm ¶×8ˆ©Ø'hl”Î<ÓÚ?>1íò{…%ÜÏ܈fºg €LC`€$ ×-*?_:|8ð:‹ (µµÖìff Žý½±Q2D:áéK_J|“ÅTXrs#W–ì–ÖV÷s,2 ’Ätrr–Tèf‹XÄû òÆFiÙ2÷õeÒ™ mÑTOìáÔ>æÇŽÀ ÓXlŽ9¢;ï¼S“&MÒI'¤¬¬,UWW‡œwà 7(+++ä¿aÆ…œÛÚÚªêêj 8P:t¨–,Y’ˆÀã: ,ö‡ú™3Óžž˜8QúÏÿ´†ÌË õK~~à¡úÖ[­ðC‡¤»îÊÌÀRVfm£ý9‡+(°*5>@æ¡KX7”——kìØ±9r¤|>Ÿ6oÞ¬ èå—_ÖÖ­[Õ«W/IV·²ÒÒÒë{õꥼ¼<ÕÕÕ%ºéâlÍšÀêå‘„ ,ö™µN=55K¸q™X̤h+,3gJßþvð±‚ëß•= @¦ °tCeeeÐë‹.ºH矾¦L™¢eË–é¶Ûn‹ÉשªªR±ãOm3fÌÐŒ3br±7mšµÐ«TRp`Ùº5°o,yy©·*<%˜ *ÑÏìl©°0xÂ3§‹}6Þ²jÕ*­Zµ*èØ¡C‡’ÔšôB`‰‘+¯¼R%%%zå•W:Ž•••éõ×_9·¡¡A---*3ýÂX´h‘Fó¶ðXþçÿ”F·/¶˜jî¥Îª31°˜ â66%{X‘!¶©IúøãØ´ @l¹ýQyÛ¶m*//OR‹ÒcXbÈ9ĈÚ·oŸ>±O÷#i{ûhÚáÇ'¬m¼§µUêÛWZ»6øx–íÿÌ©ÖLr¯°˜ÊÓÑ£™X\þ~µW_µ¶--ÒÂ…=o¤KŒ¼ð :tè.¼ðÂŽcS§N•ÏçÓSO=tîŠ+TTT¤É“''º™â¨«âf]'{`IÅ ‹}­•þý¥ü ø3ej`é z•Èdt sX¿~½t¸}Õ¶;wê¹çž“$]uÕUúôÓO5sæL}å+_ÑàÁƒå÷ûµeË=ôÐC>|¸¾õ­ouÜkذaºé¦›4oÞ­^½Z«W¯–ÏçÓîݻէO©¶¶Vü±|>Ÿ¨ÊÊJÝsÏ=!«Ýÿä'?Ñi§¦Å‹kïÞ½:óÌ3õÈ#höìÙÉøx<¤±10˜ÚÎ,4(¥f`é×OúôSkÿèQ+”ÙÚÃÍŽ–®rbð›Ö„¼Ï^Úµ«ç÷€TB`qؽ{wÄsÖ:;œw"''GóæÍÓ¼yózÒ,i(\`qÃrýõÒUW%¦]=U\luaòûÝKªÍzÖSÑÌÉí·[Ûo|CzòÉžßR cX Îü~+œ˜q’5cT}}ôå©§¤ë®‹o;c%?ߪ¢=j½.* ^—æ¼ó’Ó®d‰EEéì³­­}|d  ÄÀ;ï„ï‰'¬‡öÂBiï^ëØM7I¿ü¥{`±ËJÁÿK›nlõõÖ¶¨Hºì2kìX«[S&éi`6,°O`‰è1`Æl¸™93°ÿÞ{Ò)§H+VX¯Ýˉ'Ʋe‰gÆ[˜™­ÌÄ}”úŸ­;Žëú5ûöYaµ¹YêÝ;p=¿— ƒ™$ U@â¹u {ûíÀ¦A…%óÌ™#mÚ$ Øó{õ¤ÂÒÒ"]{­ô ҭ·ö¼-(iø«Ï–n°¶GZª--Áç94ÓqÕw{…ÅçsŸ -“äæJ—\›{õ$°¼ù¦ôüóÒ—¿,ýô§ÖÔÉ ,MMÖT´<`½~ýu©¡!ðþ~d­§‘ žKaaz~Æd±ÏÖU¹¹Á¯?ø çí€D`ZcˆÆFëáÜLáûï¿ßÒb½Ÿ žÒ}¦Ïk=©°8ÿ­1@ª Â1à ,NÍÍÖæs¬‹sÁÉt`*,–ØëÉ ûÖÖàש‚ Ä€ ,áÐM`©©‘Ž /.NLûÉ^aÉôñ+±fºu9ÃG4,RˆÆFëá<+Ë}½ X$é?þÃÚ^z©tß}‰kc¢Ø+,–Ø2ŬíÒ‘&€¯"°@ 45ª+ÙÙ¡ïÛ‹1kVzv™b Kü˜0Ü @ª"°@ ˜.a’û@ú3BÞ_}5þíJSe:~œ K¬™ÀòÉ']¿–À UX ìŹdÿþÒøñ¡ï±XHЫL•… Kl™.aßýn׫,©ŠA÷RY™µï ,Ç[[g`™2%þíJ–ü|kñL*,±eÕÖº¶J8gž)|rð1 €TA`€0ƒî¥Ð.afêâ> >íÃf*2KlÙÿmÙg›‹ä½÷¬ÿì,R] Ý/~!<ؽkíƒîÃUXœcVÜfKf¦0º„Ås¦°gžqÿ÷{ô¨ûõáËáÃÒÊ•=kÄd=¼Í˜!­YÓ½ë;Ãb‹S:*,ñg¯°47K_ûštÓM¡çíÛç~}¸Àr÷ÝÒÿú_¡AH Èú«²$9Ò½ë£ ,}úOçÀb*,–ø±WXLxq›=¬®ÎýúpåÀkûÙgÝoÄ*= ,æáÜX¾øEk»jUðñt,ÌnÅm\‹sv0£±±óãÝYëâÀ TX¬íEYœÃýuÚÉ>†Å>0úüó¥çž =.¹/0™.¨°ÄŸ=°|ï{Öö•WBÏ –øjnŽ|޳Rræ™ÒÿûÒÖ­îçSaà5Pè {#šÀb˜‡óG ,iV¹7ÌØŽ®Ü7™ÏG…%¾öî~íÁ#+KÚ±Ãý¼çŸ·¶&QaàPø.a‘W¯ì›À’›ký["°XâkûöÈçØKq±Õ5ÑÍ|>€WX@ỄýéOÒ›o†¿îºëûöîOæA=\` ·6Fº0….a±·ti`ßmݧh»vÕ×[[óo³»]Âü~ég?‹®m  (¸Âb¯~üýïÖÔÄFS“ôÁî÷°W̾³’bKº3“ Pa‰½ë¯ìGS©s n•ÃC‡‚Ïïn…å׿¶Úø_ÿÕ½ëÀ‰À ®°tö VQ!q†û{ö©ŠÍÔÆö Œ”9Ŭ=C`‰=û sÑ{5ϕٳCÏ3ÅœßÝÀrð µmlìÞõàD`WXÜþ"=nœ4|¸ô—¿X¯£ù«uK‹4o^ð±Lé&C—°ø±¯óã6KØÂ…Á¯Ýþ­>òH`ÿôÓ­mccpÆîv 3×E3å2DƒÀ TXš›­n_Nøƒ´sg Šâö×cçb¹¹¡!Æ|tgþ:ïœÖ=gÿ7e¦ ¶ûÁ³Ô}ø¡ôýï‡^k¿GII`߀º[a!°ˆ5 Ȫ°˜j€|ÜÓmÆÞ=gàÀÈ×]}µtã)dÓ•yØ¥Â_öÀÒ·o`ÿ’K¤¥'žˆ|/}ÉÚÞxc`aS‰ ï °€¬ÊÇ)§Xû¦~iièy¦Ë̾}Òë¯ÎÙ¹3ºÅ sr¬‡È©S{Þf/3]¨°Ä×¾}ýêêÀ~Cƒtù塳ԹýÍɑƎµºšUUŽSaàUa9õTkß >>á„ÐóL—™+®Î;Ïz0üñƒgC`¬%¾^z)°ï6¡ƒ3°¸Éʲ&Gpv…$°ð  (¸Âbº„¹–?´¶ï¿om¥Û“› /´¶–øðû¥Áƒƒe¹üFf±óÏ·~NÎÀÒÓ.aé¾8*€Ä!°€¬ ‹³K˜[`qÃÔ½¡æÍ“öìÉœiœ“Áݺ{u6ÉC]ôÆÒ 7Xÿ†MeÑèi…%Sfį­Íšõëä“­×u sC…%Tv¶4`@²[‘Þœ·Àrà@øsJK¥#¬cùù¡çšÀò Ò3ÏDצ¶6©¦ÆÚ_·.ºk  €ŒgÖ`1–;î°¶TXàeÎ †[`ùóŸ£»WAA ²(YÆTJ¾üeék_‹î>ýk`Å i×.«Š³sgt×€›œÈ§@zs#ÚÊ $ƒsŒÈúõ¡ç¼û®µ½ê*é7¿ ?“3°œxb÷º„9×":ûì@;£™ÜPañL?ç4ÆÑŽ¿ Â‚dp–I“ÜÏ»á†Èݳòóƒ×êÝ»{ƒîí OJ ¼ÏTXz÷>îÔnÆ+ ’ÁY¹ñF颋BÏëÕ+°?r¤û½ ­[­°î¼¸@d×Ù ãk_“Î:+òy`Xd<óå³â "ýû»_O`A2ìÙzlýziòäàc&°üíoÒsϹßËÆËʬ®]ÎÀb_óÅÍgŸY]ÏÂY»ÖÚ>óŒ5¶¢Å/\…ÅDN<Ñýz ’ÁtÙzõU飬ýÞ½¥ý+ø<XÎ;/ü½ìÿ† ­E[[CCË¢EÒ!R¿~Ò¨QÁïý÷wÞÞk®a €î¡ÂbsäÈÝyçš4i’N:é$eee©ººÚõÜmÛ¶é²Ë.SïÞ½URR¢iÓ¦i÷îÝ®ç.^¼XC† QAA ¤|PmÝà@Ì…«°8Ó»_ïh $Ry¹5“—a¦ç6ì]±–¢¢@…å³Ï‚ÏûÞ÷¤+®°¾¦SWÈs¡J‡Àb³ÿ~-]ºT­­­ºæšk$I>—)UÞzë-]rÉ%jkkÓêÕ«µ|ùr½ýöÛºøâ‹µÿþ skkkUUU¥éÓ§kãÆš5k–æÏŸ¯Ù³g'ä3ˆìÈkM g@)*²¶ÿû[Ûë¯w¿>ÜÌK@<]½{ˆv–&°Ø»„™ K[[èb’vmmÁƒêM¥R’¦L ÝI'YÛü#r»àÿ·wæáQTY;@BLX’° "‚ à†  ² ¢"Šʸ2 ŠŠ2£ˆˆŠø!:âÆ8ꨨˆKDFqC\PTÁY¶„$€©ïãIݪ®êî$ÝéJxÏ“§ª«ª««»R÷Þ÷ž  K˜ƒÖ­[cûïyóòò0sæLÏãn½õV¤§§cÁ‚Èü}J¶k×®h×®î¹çÜu×]eç˜:u*F©¿WÒêÕ«öíÛ‡›o¾ãÆCÇŽ«à›B"±{·XWÜÂCK½z2{¼c‡6»©_?ñ×Hˆ›§ŸöÞÞµ+°x±ýº<–ÚµE¬Ô®-Â'’`©S8é$àý÷åµ9_W«–ÿû¶n•¥)p!$´°ø`ùض÷ïß àœsÎ)+ЪU+ôíÛóçÏ/ÛöÆo ¤¤#GŽtœcäÈ‘°, ÿÖDBHR)(_ìº,:àóÊÖ¹s¸ !ÉäÎ;½ÊcaQ‘®.a^®_&|`¯›.^îšF^F?†B –róÝwß¡¸¸Gzä†ìÒ¥ Ö­[‡½{÷V¯^]¶Ý¤Y³fhÔ¨Ö°ô/!`÷n[°¬Z\|1ðâ‹ÀŸþÌž œ{®ìó,íÚUÝu uê/¿lÿO—Ç¢n‘t¯´oý¿w}€{ï~< !$V(XÊI^^ Û]aî÷m–e9ÜÊÒÒÒîQ;++«ì\„äRP`Üwî Ìš &q-^(K@–'Š»ÍUW×\̘‘¬«&ÄŸÌL`ÈY/`1-,¿weäÿ=*XfÍ’Ït'±€={ìu BH¬0†%ÀŒ7 ]•#FŒÀˆ#’tE„ÔLL K4¦M“eïÞ‰»BâºhÅc¥ÖCÓ²y³½_…Œ;vˆ8ùé'ਣÄB wÝ\}µóØk¯µ×)XHM#77¹¹¹Žm;"‚‘˜¡`)'999€üüü°}ùùù…BÈÊÊ*;¶¤¤ÅÅŨë*ÔŸŸnݺEü¬xǺÝBâNAAl³Ð„T'tœÔ¤Iôc½,,¦`ñr‡T²²Äóâ‹ÀqÇÙÛ¯º*\°˜Ùÿ)XHMÃkRyåÊ•è-ŒD….aå¤mÛ¶HOOÇ_|¶oÕªUh×®RSS ,ÎÅ}쯿þм¼,„jƒÖzÈÌ”å† Àe—9]Äî»X° ösÒÂBH8*Tb,ƒ¯½Œo 7î }Þ¢¹„ÑeŒ°p$!¤¡³­û÷3gÊ éßÿ–JÚšuèºëd«+‰ˆ(X±Qá)[˜ §ùóyüí·Ø-,7Fÿ|BH͇‚…RmPÁ2k–ü¹ÉË+ÿ9éFH8*Xâ•àâÆW_•õÒÒØË?Äçó !Õº„Bª ~þì:èiÚ´üç¤K!á¨`)-Ïùzô¶n•õSOÝ%LÝ@cqM#„Ô\ha!„TJJ¼·«`©Èl0] 'Þ@2üýö›œ[ŸÙh–]»dé®åB9° ……Rmð³°ø ™h¬[œsެÓ%Œ›† eoˆ ¡´4YF,ja‰§p"„T?ha!„T¢¹„)±ŠÇ·×Õ§žÜz+ð‡?Ø…$ãM($Ï\4—0µ°ìߟ˜ë „Tha!„Š’à½÷¼÷Å*X>8¶Ï23 Å’ ‰…ôt`ôèÄ>uë†?»EEÀ‡Ú¯ÕÂbYþ™ÿ–. s„`@ÁB “'KUìŸ~ ßç'Xt–ö„"ç†"…äá%XÆŽN:ÉN†¡‚ðv +(N<¸úêÄ]'!$ùP°Bů¿Ê²[·ð}Ñ‚îU¨P°|ÒÓÃ]¾ýV–ƒÉR]ÂoÁR¯ž,Y¯…š  !$Ph¯ “H.a? ¬\ù87,„$/ ‹¢n¡;wÚÂ&Nô?“fR³¡`!„T" –›n’õZµ€}ûb;ŸŸOënüÄLQ‘-Rš4‘ãÔ>Ñj@BGzºý †ï×$99ÑÏEÁBH͆‚…(š6õßÉÂrIJަ,Û·,~;Q$ßxBHb0]¼‹¢E,#ï—„`AÁBI ÿûŸ½‡BN׬-dé5«ê%Xê×—"wï¾+¢¥U+{_¤A ‚åÄ;î(ÿõB*‡ééYMKóÞþÃöz¬n „ê  !$)˜ÅáÚ´¶o—u ˜ß½;ü=¦KØþ bÇ´¢|ù¥ï*jAQ~úIÞsÞypÿüóÀÚµÌFH2ˆäÖ¯Ÿ½žšêýþO?µ×#žBª?,„¤`B6n-’u³–Š{ÖÔ¬ÙpÌ1v ½‰™ùË=zê)YΙc[UòòÊí„ÊÉ%lÿ~{ÝO°˜1h•±°ìØÜs³íؼx衊Ÿ“_(X!IÁ¾T-#fJb·•¥ @2%©N½²o¯»AZdn¹¥ü×L‰‘\–,±×µ‹S°TÆÂ2y²´k×ÚÛÆŒ®¾:z!¤j `!„$…©S¯5ŽÅœ)u ¤öc:ݺ…ŸWƒîq33P [ ¾ênô³!UK,YÂnºIÜ?õ¹7EŠ&ê*gaQÁ¢q3ÇsçÊ:cÜ µ“}„ƒûïw¾îÔ Ø²غU^kF¯Ù³m×-·`),Œ\ îÎ;½·¿ü²¤<öÊ<öùçѯJKåù/*ò,íÛËRãϼËi§yOFÄŠÛ¢b …… @ !$ᘮJ:À°aÀƒÊkuùl÷0¯ ûH–£öÞ®Eå à Ì|°ÿù!‰CŸù^ð,ZƒÅO°  µ›*ã¦Ö¯vŠB‚ !$á˜3–76ˆûE­Z’‰. ´üü³½nYÞ‚Åt33 PšÔþÝ–\X4iR±ï@‰/j-Ý´ X¶Ìû˜H‚%?_ÜÅÒÒâã¶a°ns_M´°ìßž¥‘ CÁBI8f½”/¿Z·V¯¶…„²i“óõõ×Ûë{÷JGë,¯¼L›&ëfí â§`!$8¨`™4 øè#{{‡özݺ²ô³°ÄS°\vЮs_M´°ÜvЪUå¬R„T5,„*Ŭuà,^1&Šfòr kÝZ–YYÞïÕLDNÁéó!‰åðÃ÷kÖC‡ÊëH–;ä™OMO–0/ªÚÂ2w.pÒI‰ý ‡5ÑzDj.,„„cZ>ÌÌ> :3#‡wœýZ‹WÐýyçï½ôê%¯W¯¶×; ßma)oÆ1BHü˜4Éù:5Užï”[ ¨`IM•?³(,”g¸2–ÒR`ùrÿý/¾X±óV”Ï?>ý4±Ÿ¡V«-[û9„Ä BH¹xå`åJYŸ7øê+ïãöí“Ì`û÷;cKLÁ’“ã|Yc¡G (óæÉÒKd„BÀÉ'Û¯;u=Ôù™ûö«Vù[a!U‹ù|ήêŠÕ¢…½­^=§`Ù³Gê¥TF°­0äŽbö‹Ç‹šÔ$RíB‚ÓBb¦¤8ë, ;[çœ#Û-+üØë®“ `;&¦`Ñ(#GO=å,™™ÎÁÉßþfoÓ“—üûß²¾palï'„$–×”©¤àÿþOÚ•V­ìm¦`±,I‡|ÐAòº¢.a~X±÷% MÏ\XÔ¯Ÿ˜ÏXºT–^YÑ *´°BbF-+f½«WÛéŠ .af½µ°Œ/KS Ô«ç=û«`Ñã22ÄW[g,¯¸"¶÷BK$ÁrôÑÀ‚ÎcLÁ²w¯ÐA2!RPà=qâÆ-lÎ:+ú{b9o¼0K"()±ë[Q°ê !$fÔM#RñFÀrD¬˜ƒ/ ‹Z`t0’š |ò‰¤5v§-¯…¥iS,#FÈë뮓eÿþ±‡’Ü‚%Ú3Y¯žm…-*’ezº=!òÄ‘ߟ—'îc¹¹ò:V!’H÷,7*XLks<1'(XHu‚‚…3*6RR"wöäH•‘#e½Ig‡© ¬ÕNú¿ÿ>ûLÖ¿ýÖyîhbIQa“ž.%%Ej¼òJlç!„$S°üóŸvœš¦…EÛ˜ƒ²'H¢½ÿ×_e¹h‘,<òñãÆÉÒ/]º2}:pÚi‘‰•D –/¿tÊ¥`!Õ BH̨`Ù¿ßiEqã×Ù¶jå ÒWÁ¢–©Se™•eg Ú·Ï)ŽÔg=úþôôð}-[Æ~BHb0K‡ÞϪ‰×fZX´}ˆx¯–’Zµdyùå‘ÏΖ¥ ?n¸xýuûºn¸!rû‰Êº„Ý{/л·÷¾§žr¾Ž&Ä ,„˜QëHa¡ÓŠK–[·ÊºŸ`ÑA†¢BE—:àHKfÍ’õôt»ó?þx»d4.¸@$fÌŠŠBHò1K,–S? ‹¼Ë+XÔ²ëçfªíÒàÁþç4'S>ø@¬-Ó§W<re,,_-Åvß{ÏÛÍí‚ç¶°,_lØàÜöŸÿ°À$ ,„˜Q ‹[°}úC†Øû½hÞÜ{»;½ijª]Tîûïí щc¿ÖŒ à_ÿ²‹JÑgT !U‡9€Žf]ü‹¼£ ¬Ý‚E…Ê­·zo&ðãµ×ìõ³ÏfÌõ}û€_~ñw-.O*²oŸÝvVÄÂÒ¡ƒ½îžPìú+æç™¼³öÕÚµÀ™gÿ{ù¯…xCÁB‰?ÁÒ³§,ׯ—¥ßìàa‡yo×™N%5ÕÀ\q…>¹"…ÍZ/uÓ „ÄS°¸Ó^˜‚Åt ëÖMÖ›6ü~4*XÔ-T…ÃðáÎãcioL·ªmÛìs}÷Ôyî9ï÷õï^‡jçN{½²1,^‚Ç-žLÁ¢Ö©mÛìmú[«åœdBÁB‰,EEÎÄ ¯"ë³}øag•y@(iiÎŒÖJ¨ˆ`iØÐ^w»¤B’G¼,,gœ!“!f@¹î›>Ý~­ÚÞ¨{iq±œWÅE($®Yfúv¿AûÙg{o߸Q–ÿûŸ÷~¯ú/fÊ÷ʦ5öz¿ÛeÎ,¦XRÔÂänŸ I,„˜Ù¾¨SGÖ½fuŸWgY¿~ìUæSSís™TD°´n-ˆZX fpÞyÑãd6ȹ‡ÆŽí=@b,,¦Ë\ZZtÁ¢.tîØB’ÿ IµäÕWÅäNªƒyÇô IDATŽÒR™T·‹?Æ´°têäÜ7l˜u©©ÞÁõ,€]ŽB‚I¬.aûö‰h0-,€Ä¬é ý?ÿ‘?墋€‡rZ…óòì8¹É“ííG!®\€s@?m0g°bElßGc[^~Y®kþ|™8‰”™KEC(T~Á⎷‰$X^}U–<`‹’H‚…(XHµdÈàØc“}o¼!ËŸ~ò?fÛ6q((pfýY¾\DÈé§ÛÛŽ8Âÿ<~dEKÓ¦âç^ž }BHâùè#àä“cψðXºTfþ5a‡)X¼,©W_m[Z™¼()‘‚²¦Û¨‰).T옖ФvÚ›çøñGY¶lY~—0·àð,Ý»KÖ³’™ô{þùð÷«øÑïJ µ“}„TÍEª†XÜ©~þY„d›6Îì\ë2õ"ÒÀ¥¢‚¥vmM„`q ’†7T°<ôdlKlF†dåbk« å¸H–N°×U°äåÙÛ´eyصËé[XhÇÊ|÷ˆ•&MÂ-,¥¥ò]ýÒº›Áòz^7{÷†gdüæûº”;Ä®¿c¬©ä I$ÔÍ`ñâÅHIIñü[î-Z´=zô@FF7nŒ‘#Gb+SnjˆÎ²µoýØï¿÷Gù½¦Û†wgK9pPÁrÛmáûL ‹Ÿëgmcж°P,‘ËqÇIf­ÌL[lÙbï?ä˜/½Œï¿w¶c¦°(,”ÏÊÌ :;úŸ×-X¼Ò{ *¦…EÏ¥‚å®»ü?—ª‚–Jpçw¢oß¾Žm Çý%K–`РAB\"~ÍÈ>ÿ¸øbÿIÓj¡wJu/,ËŽgñ‹-yë- sgg¦²:uÂk|û­óµ9AST$q€ÎÏùé§ð÷¹1-?@ì,#GÚÛ¶m“ßpĈȟIHUBÁR Úµk‡îÝ»ûî?~<:t耗^z )¿OOÿáÀ‰'žˆ'Ÿ|W˜%¸ ){öHè­·JÇ4c†¬WÔ×øÞ{eyÐAÎTµt ‘뮓÷7olÚdoÏÌ”Âczõ¼±Xn!.Ñ ÌžíÌ;ïØë§&®W±û›ƒÿo×3Óêð À)§Èzƒ¶µ¢iSiÿ57ÙåËm$|ú©ü_\,‚%3Ó)@4~5*ü+êæeÑÖsU$F‡DA—°J`Y,Ÿ2¶?ÿü3V¬X /¼°L¬@=о}{ÌŸ?¿ª.“TSÞx#|vNyê)àŽ;$ÛË]wS¦Ÿ|RùÏôrµPÔÅÀ~ô®»€Ë.æÎunÏÈŽ¸_¿Ê_!„DŠa‹%hßdÏà‡b,nþñà‘Gì×çžk¯›µßr‹§£q6ÊÂ…ÀW_ɺZXÜ.afÌËèÑÞ1:K—ÊräHù\¿:,n‹’™êXÙ¶-¼È¤; YudÉ’È.Ç$ØP°T‚1cÆ N:hРN=õT|hT‚Z½z5àÈ# {_—.]ÊöWgL_ÞªÄG#Ö(6n Þ~Û{¿jàÂB{ÆÌÌá_ü:¦¢"éÓÒìÙD@üÂèÚÕy|EäM ’Ú—^ œxbåÏG©¾D²°øµ7–xtÃeÄâæÅ?xo7‹fýÊΖÏIK ,Ï=ggLôs so ”7yüqY>ù¤ÄÖháJ/ ‹;»XÆ"XÜÛ+[&ÙüöЧð—¿$ûJHE¡`©YYY˜0afÏž¥K—â‘GÁ–-[ЧO¼õÖ[€¼ßí¹Ùfá‰ßÉÎÎ.Û_]yã 1wñEÕö`¦V7*¿ü f~üúõe=^YÓüV÷ì‘Î4n¾9|¿{¦rÙ²Ê_ËÂ…@n.0s&ðÁ•?!¤úRÛåÄþç?ÛëÚš´k'K¿jó@ìw€½_ÛÜ¡Cø6ùkÐ Ü%̤¨H®Çmaq÷yÑÚúG ¼7‹þ–:iиûnq_Û¶Íž¼ñFYzÕi©N¨àŠ D‚ cX*ÀQG…£Ž:ªìu÷îÝ1dÈtéÒ&LÀ€¢ž#Côð¸qãÐЕ ~Ĉ!îÌ3¥`Öe—Ù3.‰@Ý÷Þ‹<{•üܤjúûºsö+¢³‚‹O?-ëñ*ŠXXèí^QTdiÓÁ_¼ ?‹!„¸ÉʲÛ>ÀÛòþù粌Û‹`Ù½[&‡´ýlÁòÑGÎc§OÞß9™×«—,4·°(–%ml³fá·`‰Õ­içNç5›‚eûv‰ãyÿ}Y/(¡Ô¨‘ˆ˜Ë.“ãTôíÜY±¬hAAE^¢=4rss‘››ëضƒa\ `‰2df̘’’äü^p"ßcÄ™ŸŸ_¶?<ðŽ-guD­î;sfbK£F²LF†æI°xeÓ2sÿ›v¼,,~ËÔÂHjâ… ®an}4>×C!n5rZ\¼b1Üñv€ Ê?üÐ9ÇX\¼ÜÍ4€¿M›ðÏ|÷]qÛêÙÓ¹¯~}™áOK^~Y’¥¨ÛïŽΠ{S°¸û¼XÛúÝ»e‚K1Kf¦÷òÍ7bµWÁ²u«ÀNC?|¸\k‹±}vÐP Q¢cq¼&•W®\‰®nŸiRnè–B¡:wî øÂÃgjÕªUeû«+ê’äeH4fã]SÝÃtÎýûFjlM“ýœ9±‰É € œÛü‹ia$¾Äí¢aÒ¸qôÏ'„ŠP«–óõyç7Ý$©…»°¤›®]£ú@¹‚î]U H|Š›œ G±¾˜“íZ ²´8ýtgŒâÆÎ û¢"ég,Ö­sžß-XÌ,b&n7.w ‹V¹W×±ÌL‰aÙ±CjÐâú Hb€¿þÕûsªÏ<#Ë>|ÀBÁ' 0þ|sÌ1HMME‹-н{w<ûì³(5F™Ë–-Ã7ß|ƒ¡C‡&ñj+ / @¢1]ŸjjÆ? ‹Ÿ˜ìN¬°P:ïÑ££Ή'ƒÇö¦…%*ÌJ!ј1Ãù:=]2'*çŸïý¾ÛowŠò–'žßiÒæ„¤-Vt¢O'ÝL°e‹â.¹{öHû¬q$Š»ß4ÈùZëiE,šNY'·23%À÷nàÐCm‘ø»³Uî¾Û^OƸ…T – pÉ%—àöÛoÇÂ… ñÁ`öìÙèÙ³'6mÚ„éÓ§—÷÷¿ÿk׮ŰaðhÑ"<ÿüó>|8ºté‚‘f•¦jˆ6¸É°°˜ŸYÓ‹û÷”©E;'Í^ÍmÖ²€Ÿ¶_kG«…Å‹?ýÉ^¯HºPB‰DË–@—.€_¨¨âû¥9Öx¥<+øƒw ”Xq»–]|±½^Tä´°þm±ŸK˜Zô£ mϽËž=²ßü½Ò)WGjÊ÷8Р`©‡~8æÍ›‡sÏ=}úôÁøñãѾ}{,]ºüãËŽëÝ»7.\ˆM›6áÌ3ÏÄ5×\ƒ~ýúáwÞA:uâ~]U™îW;…dÌT˜ Ö´á^·N²W©OnuÇÏÂI içôý÷²4gÆÜŒˆzÎ9²¬Œ…åÅíuZX!ñfãF;˜Þ‹oK†W^#WNåX©Llž[°˜mä…J»¯iÿöÞo»&CÑ¥9t÷Ý2Ae mÏ5#˜)XT<™¿£×@ÿ_ÿ’cB!ïtËA@-[Š;{©0è¾Lœ8'NŒéØþýû£ÿþ ¾"!^Y¢¢a}WuªÃ… Å÷WQÁ¢~©‹‡:VG6m’  ˽÷J.½Z„,’¸xðÁðmÿü§ø[Ÿy&ðå—"J—.µÏ‹…ÅìÜÜùþ !¤²DK°©ƒg7ëÖÙÉbLÊ+XbHðé‹»žŠéN¦}Yjª-lÜÕëÝÇúßtyÛ¿_>GÝÙÌÏÔöüöÛeéea11Ç}L˜àü=¦MfÍò¾¶dRRâ|ɵšZX̼yå;>^Y¢¢ñê«özU¼äçkýÎÚ@ׄj¼ûö‰‰¾M›pÁ¢3k¦ïs¯^’ÉEUAÉ%ÌKo›™ûï>ûL 6ªåΫ‹De:vB‰'mÛz[«Ò¬BäÖ[íkzì1ç1ûöÙÇmÞì}? ‹WaMœk{l&ªqOjefŠu¦¨HúÖH‚eüxÉ$öÞ{ö63ke4¾üR®iÉ’ØßSQÜ–! –ê K€1c¡ª¬æÌy^^Õfêrg†Ñ†[gªKÖ0Ë’ 1^n|ÚIuê$.a¦S ËøñÎ÷h±/À*åu×3[uË͵…Pyƒî !$¨¼,+k÷È#å;^…ȉ'Ê2 ‰)-µ]Â܂眜|²srÒìC¼‹Æ§èqfâþîja€µkËü-KRC{á'²Üh¦¶>}b;>öîõ@*´ÔUŽ‚¥zBÁRƒ0±H™K*‹ûÜUÇâž Óffit·¯j²ÙµËÛêóÊ+4êN) Øñ+:É{ÍÙ4]ÏÌ´g¶Ú´q ®~÷¥¸Øä…iÑccq #„ê€NÐTÆÂbÍÇ‚ŠHÉSJKý-,/½$ÿfŸ`Z=¼ˆ ÎãÌØÅPÈ9 U·®óºOCn‹‹¥¯uÕEt`ºlG"E('MäNé¯BKã(Xª',5¨Nž,–†DXtW7÷ó³Mfç’‘!‚à—_ì$A²°”–Š Â´iáû4ÎÄë©`9âYšÂcçNép23e¦Í²¤@£F²oß>ûÿÀ/ƒ[ÇŽá1,Z ìõ×eiþŽ* ia!„ÔT°T&ÿMy­3*D¢ ? VsrÒ|«ÁD³FjànÃMËz(ä,*rÌ8Ƭ¬È™Ò>ýÔŸ2oðã²^ÎÚØùö[YºÇ*X´^7Kõ„‚%à”Çb ˜V¶¥ÈÓÝwK#õðñŽf¡jØP–‰,6ȵ™E³ô÷8öXiœwï¶øæþ  ýÂ…Îí[·J3À{voÓ&%š#_;šnÝÄM°~ýðø &ÍËsZXÜ.gEEv¦|û-ðõײ®“yOõ|´°Bj ê)P™ä åÓkÙR–‘¬:99rMµkÛ–Ï>³½êÕó,O?ž… °-,zœ» w4ê>§D˲ÍòôÎ;öúÊ•ò;¾òJä÷Ä‚~·Wƒ -òIÁR=¡` 8ᅩ½¦`›‰µ2íCEÏ„ ²t¦ŠDïÞ²\¹R–‰,Zø¿ÿµ·mÝ œqðæ›öL“éÞä¶Xüö0v¬³ÞHE˜5Ë™l 4˜Ò-¢>ûÌ^÷Êì¶i“ÜC!*0l˜sûØë£FÉ>3Ó,MšØí~ýú2é4y²´õ*;ÌyÎu뤽v·ÅnÁ¢}¦–3­4jAzñEࢋbþš˜=;ò~/Áàå‰P^T°¸=T°tü&±¦5^¶Ì.ÂI’KÀéÛWòœÏœýØÂBi„Õò :C´{7ðŸÿÄöžŸ®»Nº))ñ,{÷Ï>k[´QÓÁtq±”aÃd€¾c‡4þ¦˜sgY·NÒõydå®mäH`ÈÑêÝìÙ#"éo“×nÁbÎþx5œ›6‰•,+K^çç;;øàð÷˜‚eÇñsÂãX¼\мòòoÝj§‡^»V:‚X-,ݺÉÿ!„,U™Í0Î:+¼ÖÉ'ËrÀÛE+#Þ82‹7ªäöÛ¥oÓXFw¡Ì¶må³Ô¢~ÒI²>ÜyœöO}û:ÏØýAÆv®xà%XâQE'9Ý"C'ëÖ•ß)V Kå›Ì%‰…‚¥š© ²g<ŒåqÛÑF ú±Ÿüå‰y¨UKL¬¦`ÙµËY§¥þX^»Å‡…lÒD–›7‹{šÙø¸- šÉ$??>…5¯¾ÚvŸòcÊéH”o¾qæ7f? Kóæ2Ó•’"×nþÆ^~Ên KëÖòZË·ßÊ÷wž[ÈéŒÚÖ­¶`Òó0†…RS¸ñF Y3ïö4'†§Ø¯ :idÆ“˜SŒ˜×kö nÁ‡ê´°\t‘¿;šºK™‚ÅKxýN:16`pÅÎ}‘²–jŸÝ¶mø¶ÊàWÖ`Õ*YjQÎò~VEÊ%Tf,D¼¡`©&Ä"X Ë/XÜæðh¿öí“«ZqÌìT€ €5†¦¼Üu—,µ¡Óý¶mÀË/ýúÉk,ŠŸ`Y°@êˆ(ñJûÍ=Ͻ÷nàškì׿oì5«´y³t¤))"¶owþÆ\þž† ¥³ûé'±TiG’Ÿ/3líÛ‹‹š)X23Ã+F« Ù±Ãé­qBŒa!„Ôzõ’v­".aÓ¦O=¿kQafàÌÌ”¶?-Í)dLAaö%~‚å§ŸÄB­Ž–&^1N°×½Æ #FȲ´TR<_y¥½Oà½Ø»W–“&ÙÛâW¢îa‹ÛÞåµ°(å‰ñUºv­øXˆxCÁRMp›•PÈ.BUÁâ¶H¸ÓºÑ8m¼LÁò׿Æ'vA-+z-[¶8ã>¼KÆÀÙg;¿ÏàÁÎãbÍh¿‘× ÖcÙ‚lûvi85ò,;vØÖ ·`ùê+oÁ I°¦&Z0-, yÅÀµ×Úïñ²8™³cÔ,l,„_T$˜‚Eˆ[ˆ˜–S°x¹‚·n-._uêHÌéêÕþ×à•|à¸ãìu·`™<Ùv—R „ymݺÙ^nJK¡CÅÕZÙ²%zºýH¸û38\¿ÞÞVQÁòå—å;¾V-g² (Xª Æ…TÏ?_–wß-K,^3-·ßÜ{¯sÛ?„ÒAý-·8ÝšµR¸˾}ÎÀÁß~“×7ßì|ÿ¶mâKiЯáê¿»e‹³anÜX–÷Ý'Ëo”Ù¨’`Ñ"ÿt¾ú™“&•¯à—;îÃ+Õ¤‰_ªËY³d¹}»ˆ®mÛÂ@Zí|Ö­“û« y¤Üõ¦EDcH¶ow^ÿØë±–wß•õ5kÂ÷B©<GÒ¬™½MÛóX‹W¿£WJ´¾+îɪC±EŽ^«[Ô,Zä}®Ý»íæHÙ¸±â×çž|ý׿ÂIK“k&X¾ûÎ.î ”ßmÐt!‹‡+:(XŒ;¸ú¹çœ¯Ÿ^–%%ò§‚Åœáÿé'yp'O®¿Þùþ;îÿÌ¿ýM,S§JบUŸ{N­jÍÑXË/¿8Ïóâ‹2ÛïþŒW^‘4¾s»ùPkf ­Š Øß¯C{[F†>xÑ"àßÿÿnºÚ4§éÚä£ÂÓ›EºÌëòCÍÝn̺*f|ˆie±,§`Q¶n•)’…Ã4åkgð¯ù7Î^ ©ÙéÕ©žÎ’B‰/mÚHf+3XÜÏÂâçæ•<À-Xž~:ü˜>ò&Íš‰kÔQGÉëæÍ¥/ž9ÓN dök@ø„¨²{·ý=²³íñ€¦6¾óNIìSÌTÏ€Lºº …ÂëØxqÿýNë_Ÿ L¡?(XLŸ>±ûÜs’°ÅD($AìcÆx¿Ç+»×§Ÿ3fدW¬Ù‚ .:w–,^@¸…Å=»¡.DntFæûï>®f܇—`ñ*´e6Žvƒ]·®¸‡):Órç¶Èó£gO©ÔkföR«RVЮðÖ[‘ãaÌÆð¢‹$ °ï‹[°h]]ß»7|¦jãF!‘2Ú˜&}}ÿŠÞ æ°aÞ¢.%ÅN‹½kW¸E…B‰/¡$t1ňº‡E²°DsOv[]´ŒÉ 'Øñ¡Ñ3ÆŽ{Ô¾àÒKm¯w˜·Þò>)X»œ2E–7Ý$‘ lºÑ>ù…œÛÝs DCuÇò–ÇUMË=(UYX»¦CÁ`b ´Wj×–Áî‡Ê ó†dÖÆÝ íÛg?@*L34 æP¥¸Ø¿Ú.` }ÀuöÅÄl´t¦âï—@pÅ̦¡ƒä7lK ¢IѬ&€4ê¦ÿ¯2v,pùåöku£IJág®}ôQ{]Â7ß”ÀÄÅ‹‚ÈÍζ ™6MÞ7p Ýøª`9ôPymúºj.}·…eÍÛjâ‡i©1ÿw¼bwžyÆî$Ü,^,Ë]»¤#4Ⱦߴ°BHâÉÍ•¥»2ú±Äeš"ÂË]Ü‹nݤÏòâôÓeÙ±cø¾XÏ_Pà¼.¿~å/‰=C—Nº­Jf†N@úÖh xÜ}my‹»Ø‹ ¤osOtáÅ+»t ?Ʋdlb /S Ìk'’‰†Šwf.÷Ø( ‹»ÿ-`q§2¦…%~P°} Ï:KÖf ÷äŽÉPÁâgRmÛVÎ×­›½m˱ZhÜ ƒk¯‡[MÍZÿCÝ…7d¦ë—Ÿ`Ñ™¢#Žï¦>­fžv·¹Ù-X¼Ü½Ô £BÃÍk¯yo7,3Ñ€éÖågÙµ+Ü:V¯žÜ‹M›¤ÎL~¾ÐÃó,úþ7ßôþ /žxÂ^¯UËèÿä“ðc#¹–Õ¯/V-y2-l,„’xtâÏCYÞB—fLk¤‰ªxй³3+—רaÏ%nÁrõÕÒï¹ë¯Í~ŽyóÂ…‰ÙOßy§¬‡ –ÚµÅccùr‰Õ=ë,çþ‘#%Vçàƒ¥hòÕWû[¼ØºÕ.+P°Ä –£.>={Ú®P£GK|…>nME3a¸}1Íë ƒœfÝÆÅMÈ-0¼j³h£i –´42îdŸ~j¯ûÍTüú«Ìµn-Ǩè™>Ý>Æ-j×¶›ôtù>¡Lž,Ë /ôþÜeËœ¯Õ¬fä/¿Æ—õúõ>ÁcÆx›«wí Ï*¢ÍÒ¥Ÿë'Xô>EÊ æÆ_Ò¬™Ü“НjÕÊî0Íÿ BIï®»œn]êõáî#6±òØcòZÇ&^}ŽNœ™“©sæÈ²V-{ü3sf¸ÈÐIIÓ#C'Cwîtº€ö¸áçŸÃ3ˆºÙ¸Q„a»vvQL –øá¦L‚Bݺ»8È©§Úë*ãð,&¦;˜â¶ ,Z9å¡iaQ7*Û;V„Çøñò ·j.Xöí“ô¹ZÝý°Ã¤A[¶Lj•sŒ}¬WñLMå«BÂdæ,àÌ«n²l™ÈÒ˜ À,Úhfe‰p7žC‡ÚÝ®]bþåo KAÌ45n,b ï»q£ˆ1µÖ<ý´mÝ0ïã AÞ×o2v¬-ºRSåÚvï–Ø Q£äuyS4NŸ.÷°];ÿ¦„Bâ‹Wj^¸ê*qUdò+’åûðÃírUÅàÁÒ·¿ý¶¼.,”¢•;ÚÂ=FQ0q¢ý:/ÏÛ¤ß7?_¼*ܵÒôÜ*IDx[lvï–>Û´éxæúëí1P´X–þýeÙ´)0a‚¸t3è>~pøQMð PKMõÏÑn6šÕÃW–3`Þ¯4]³ê×·}BÝ–úõåzöXÛ·Kcæél˯¿ÊC®‘Ï>Á’“cÏ¢xÕNQÁ¢±*f€¢WUßNßÖ£‡¤QôBOmL#¥š>î8û»¹‹V×ýé'gjÉÓßsýz»14E¨yb)^õØõz¼ÒϘQ¾¢™€4Ø–%fqB!Á!¨Vo3ô7$ÿŸÿôw sº_u•,½†Žtl ¥T ¸Ç.={Ú5nÜ^)€Ýÿ{ 3›¦™AÕ‹M›d©}¯fQ%ñ‚¥šàe1IM•Yÿ’[|¨K”yü!ÒH¸ðÍàzÅ Ó´»€Ì®»÷ëçéÛma©_ßyÙÙ’Ã}Äॗd›^“ZXÌÆIãQ6ëÅ¥—†_¯~K^V#“÷ß÷‘ÄÊ¢ŸÝ ”Å“ÿIDATÝ j£Ú³§,ûõ³%7f¬‡—`Ù³G¬)nÁˆ…J6S°˜Å c±š™x B!5‡ Z½ÝÆz÷–õh‚eòdà¼ó¼ãDU¨×„ækßêî+͉Ø=ÂÏ7s¦ŒeÔCżÓÍü¾û p›èxFEdÆ’@¨kWÿ÷Ø è¿:qãeíÐ95Uª²jA'ÀùÀfeÉëŒ )j4{¶óý&þ³dÈxé%q#R²³%ݤ„ µ°Ô«çmÊζƒêu¶EcXÌ٢㎳×ýR ê ‹ –W^‘Ì_^ì€Xƒ¼LÌ'ž(Öœ$sHQ‘ü>%%Ò>ø }¬;°ß /ÁˆùÞ,šédð`ù}p7?óÚ˃)vb±ÎB©˜uÈ‚ˆ—`1q÷鿤ÚÔ©"Äš7÷®JoއžzÊ>Fݺ݂Eøáv)œc‘Ï>Î9GÖï½×û=d¯›LIü `©&de÷ßïÜfºf5lèŒÁ0ğã˜cÄÂq×]R”ÉM($æÕsÎqºWee‰§I“ð÷è[Ò^½äü:y[²³ííâ*µi“œÛl$Ôª ·`iØPfIÌtȱ°s§œkÐ ¹>M!½c‡Ä ™–w`ÿÞ½‘‹{ÎÖ,æìØèѲôKÁ\^ÌXZX!¤æðÑG¶ûo‰&XÜ“°fu晲¬_ß[°˜}ð_þ"‰ÛåÛ=îð*~ ؉l¼&oMsÔQÑÓIkLÑa‡ÙâÆËT –jB($æT¿: €ÓËÝpÔ®-aÑ&Óu*RPŸÛÂR·®œ¿vmoËHN޽½ ÀN=üõ×N«€¦&ŒÄEI#Õ·oôcMî¸ÃÎÕˆefÏ™ÑQÑ´v­]äÑÍ5×\ ë;w†'pßSˆùýî……òýã•:ØtŒÅ*D!¤zо½xD•hV}·+›y¼Ž)êÕ Ïòµm°fs|ðí·ò[è9Ýõf}Ôùúºëdéåf®¸“ÓL™bŸÛÝ¿õ•½~ß}¶7=â K5ÆkV@IK³ã.*jž92¶Ïr[XL¼ U¹-,jQ8ã {½iÓØ‚ [¶”™¦ò6 7Ý$©~•_~‘eçÎöçwœXX¼fŠf̰Ÿ]»ìÔÍZ7Æt§œâOï‹¢–@fuÜ39\P1 ‰9C¤© !„DÉ…yÅŠðm))¶—ˆNêåäHÿªÞ¿ý&q´| c…sÏ•í¿þê˜}è5×8ûX¸ç^רýúÀÎíG!)¢÷îµ ]›û³¯õse'ƒ‚¥š¡$gö /´òkEg×/½Tbci(ü0ݱÜxm3Ëîݶ›YŸ>"~,«bÅ+‚eIjb¥];gí?ÁØ"bçN[°üùÏrNwñL½¯¾ž©ìÑG½³—)Ï<ã]18š añâò¿—B‰;/¿,ë7ßì„®BãL5™ÐÚµ²<é$Ûs`Ég=¿˜ž3b¿Î”àÉ'¥ïÕ+|¿ºš›1²îÉ\3õØccÿl –jÆÒ¥ï±q#ðâ‹‘Õve\Œt¶ ’`ÑÆÅË Ð¼¹3{ tzº4òW·nùƒÊã…™õ+5ÕiÙÙ¿ßßB¥ßw×.±þâ°{wI æë¯ÅUO:Ô¿–)?,YÍð˼åÅK/IV°hÁb‘ÐY‹Hñ2wbÆŸ˜˜uWæÌ±ESÜ»71öXqƒ2-,€¿…EÝÐ>ùÄÞf&;p)‰€WŠéxKâB!$Þ˜ ft"Ð+#—2k–XN´­WO&ý<.ÌxЊ -âl^£æØàµ×$–Æ,ämŠ•HÛHÅ `©Á4kæÌ+^rr€¿ýÍÎ€á…Æ©Djˆ^{Mܦ†··efŠà›o’+Xrs¥º®ºØ¹­h­ [~Xfm4å4!„RSèÚUŠAj%{/²²€³ÎrnËζ³º1½2**XÌ÷•§¦Í%—Èò½÷déìW"Mö’òAÁB" ùçWÎ<?Þ» “â%œêÕ{LÖ»t©ø5V–cÞ|Ó~í,~w=—³Ï®ø5tìÈŠ¸„Bj&uê8cNb%++< §bz¸Ëðá±¥nÛVŽ+.n¿½ü×·q£¼Ô(ïýtÉŽ,¤Ò´o_±Y³˜S¼RùÆ·Ë]¬37óæÅÿZ!„ÓÂR·®Ôx7.<黟ž3'¶ó7hà¬9 Ër ¥M›d äçzߪð駬v(XH ˆ”6¹ªÉÌtÖ_‰V p¦-&„BHåÉÎ K~¾ô³99ûê.™Ìêò‡’¼Ï>`–0öìIö8iØPb€€p×//b9†B!±£.aÏ<#neýû‹G†;ÉOU –wßu¾¦`©(XHÒxûm;cXÐ ÒÌ™‘™?xÿýª¹B!ä@B]¾þZÒëD¢wvÏDÒ·/ðå—ök –ª.a$iôï/¡7–K˜Ò±£]¸ÊwFB!„ć¬,`ýz °0rÚáÊ”o¨;J!ïÕ«%N…$ZXHRÑ:/×]—Üë „BH°P‘2{¶wÖ¯fÍ€ÓO¯ÚkR4KÕ@ I*))b]©êÙB!„Óªâ%X6mJ^­“Ÿ–e§NÉùü ZXHÒ¡X!„Bˆ36¥ysïc’=†hÑ"¹Ÿ @ !„B ¦` ZpûçŸÛna$ñP°B!„Àaˆ š`9òÈd_Á]Â!„BHàHOÆŽ•u·ØP°B!„@Ò½»,8"¹×A’  !„B $çŸlÞ ´l™ì+!É„‚…B!„’PhÒ$ÙWA’  !„B!$°P°B!„B  !„B!$°P°B!„B K‚)((À¸qãТE ¤§§ã˜cŽÁœ9s’}Y$äææ&ûHx‚ïQðá= >¼Gä@€‚%Á :³gÏÆm·Ý†7ÞxݺuÈ#ØÀÔxƒ ïOðá= >¼GÁ‡÷ˆÔNöÔd.\ˆE‹!77çž{. wïÞØ°aÆsÏ=))ÔŒ„B!„øÁÑr™?>êÕ«‡aÆ9¶9¿üò >þøã$]!„B!Õ –²zõjtìØ1ÌŠÒ¥KÀš5k’qY„B!„Tè–@òòòpØa‡…mÏÎÎ.ÛïEqq1૯¾JÜÅ‘J³cǬ\¹2Ù—A|àý >¼GÁ‡÷(øðË%ùJª7,dýúõ€ .¸ ÉWB¢Ñµk×d_‰ïOðá= >¼GÁ‡÷(øüðÃ8ñÄ“}Õ –’““ãiEÉÏÏ/ÛïÅÀñì³Ï¢uëÖHOOOè5B!„ÄP\\Œõë×càÀɾ”j K9òÈ#‘››‹ÒÒRG˪U«;wö|_£FpþùçWÉ5B!„ÄѳgÏd_Bµ‡A÷ äì³ÏFAA^zé%ÇöY³f¡E‹8þøã“te„B!„ThaI §žz*N9åŒ3»víBÛ¶m‘››‹·Þz Ï=÷B¡P²/‘B!„@C Kùì³Ï°ÿ~ìÝ»£FÂÿøG<ûì³5jFŒvüÊ•+ѿԫWYYY8çœsÊðÝ<øàƒèСêÖ­‹6mÚàöÛoÇþýûÃŽÛ²e .¹ä4nÜèÙ³'Þ}÷ݸ×êÊÛo¿#F M›6HMMEVV „?üÐóxÞ£ª§  7Üp €Æ#%%S¦Lñ=ž÷(Ø`ܸqhÑ¢ÒÓÓqÌ1Ç`Μ9ɾ¬Cyž>+É¡<ýïQrøì³Ï0`ÀrÈ!HMMEFFŽ;î8<þøãaÇòUI‹/¶®½öZë…^°>üðCë­·Þ²FŽi…B!kêÔ©Žc¿úê+«^½zVïÞ½­×_Ýš7ožÕ¹sg«E‹ÖÖ­[ÇN:ÕJII±&Mšd-Y²Äš>}º•––f=Úq\qq±Õ¹sg«U«VÖóÏ?o-Z´È:묳¬:uêXK–,Iø÷¯ 6ÌêÓ§õðÃ[K–,±^}õU«wïÞV:u¬wß}×q,ïQrX¿~½Õ°aC«OŸ>Ö¨Q£¬P(dM™2ÅóXÞ£àsÊ)§XYYYÖc=f-^¼¸ìž>ÿüóɾ´A¬Ï Ÿ•äk¿Ã{”Þ_«Z²yóæ°mÅÅÅVË–-­þýû;¶ó%ŸmÛ¶E,¼GÁæµ×^³B¡õ /8¶0ÀjÑ¢…õÛo¿%éÊj&‘ž>+É#Ö~‡÷(x¸Ço¼GUK2dˆã~ß¾}Vzzº5f̘°chµoß¾ìõ³Ï>k…B!ëã?v·iÓ&+ YÓ¦M+ÛÖ¿«cÇŽaç¼óÎ;­P(dýòË/ñø:5’~ýúY:t({Í{ ¶nÝê;ã= >—]v™U¿~ý0a’››k…B!kéÒ¥Iº²š‰ßóÂg%˜˜ýïQ01Ço¼GU cXªË²°ÿ~ìØ±O<ñ^ýu\ýõeû¿ûî;ãÈ# {o—.]°nÝ:ìÝ»°zõê²í&Íš5C£F°fÍš²m«W¯ö='DZÄfçÎX±b:uêT¶÷(øðŸÕ«W£cÇŽŽ4ï˪†ÏJðp÷;¼GÁ Òø÷¨j¡`©ÆŒƒÔÔTdggãŠ+®ÀÔ©S1vìØ²ýZ\2;;;ì½ÙÙÙ°, Û·o/;6--ͳ dVV–£Pe~~¾ï9ÍÏ%N®ºê*aÒ¤IeÛx‚ïQðÉËËãoø¬w¿Ã{ "ßxª –Y¼x1RRRbúûâ‹/ï4iV¬XwÞyW_}5&NœˆÛn»-9_¤S™{¤ÜrË-xþùçqÿý÷ã˜cŽ©âoPó‰Ç="„šûàÂñ[p`–éСfΜÓ±‡rHØkÝÖ·o_¤¤¤`êÔ©=z4>ø`äääUí&??¡PYYY€œœ””” ¸¸uëÖ ;¶[·ne¯srr|Ï©ûk•¹G0eÊÜqǘ6m®¼òJÇ>Þ£øPÙ{ Þ£à“““ã9;Èß²já³üúÞ£`à7~»üòËyª –iÖ¬þò—¿Äå\]»vEii)~üñG|ðÁhÛ¶-ÒÓÓ=g”W­Z…víÚ!55Êü¿øâ tïÞ½ì¸_ýyyyèܹsÙ¶.]ºøž€ãØš@eîÑ”)SÊþn¼ñưý¼Gñ!žÏ‘Þ£àsä‘G"77¥¥¥Ž8þ–U Ÿ•`©ßá= &:~Û¸q#ºvíÊ{T•$/ÞÿÀåòË/·j×®mmÛ¶­lÛ¹çžk5mÚÔ35Þĉ˶åçç{f¥¸óÎ;­””뫯¾*ÛöÈ#„e¥Ø·oŸÕ©S'«G‰øjÕ’Ûo¿Ý …BÖ-·Üñ8Þ£ä)K˜eñ×_Ý …BÖœ9sÛhµlÙÒ*--MÒ•ÕL"=/|V’K,ýïQðpßxª –rå•WZ7Ýt“õꫯZ|ðõÊ+¯X_|± …ù¹-˲֮]ëY|¨eË–acY–uÇw”Z¼x±5}út«nݺÖå—_î8®¤¤ÄQ|èí·ß¶Î>ûl+55Õzï½÷þý«÷Üs …¬AƒYË–-³>úè#ÇŸ ïQòX¸p¡5wî\ëÉ'Ÿ´B¡5|øpkîܹÖܹs­={ö”Ç{| `egg[?þ¸õî»ï²pdˆåyá³’, --type= The file type of the `read_file`. Supported values for `` are: * ``sam``: a SAM file (Note that the SAMtools_ contain Perl scripts to convert most alignment formats to SAM) * ``solexa-export``: an ``_export.txt`` file as produced by the SolexaPipeline software after aligning with Eland (``htseq-qa`` expects the new Solexa quality encoding as produced by version 1.3 or newer of the SolexaPipeline) * ``fastq``: a FASTQ file with standard (Sanger or Phred) quality encoding * ``solexa-fastq``: a FASTQ file with Solexa quality encoding, as produced by the SolexaPipeline after base-calling with Bustard (``htseq-qa`` expects the new Solexa quality encoding as produced by version 1.3 or newer of the SolexaPipeline) .. _SAMtools: http://samtools.sourceforge.net/ .. cmdoption:: -o , --outfile= output filename (default is ````.pdf``) .. cmdoption:: -r , --readlength= the maximum read length (when not specified, the script guesses from the file .. cmdoption:: -g , --gamma= the gamma factor for the contrast adjustment of the quality score plot .. cmdoption:: -n, --nosplit do not split reads in unaligned and aligned ones, i.e., produce a one-column plot .. cmdoption:: -m, --maxqual the maximum quality score that appears in the data (default: 40) .. cmdoption:: -h, --help Show a usage summary and exit HTSeq-0.5.4p3/doc/make_it0000664000175000017500000000012112110432433015607 0ustar andersanders00000000000000#!/bin/bash cat tutorial.rst | sed -e s/#doctest.*$// | rst2html >tutorial.html HTSeq-0.5.4p3/doc/add_counter.py0000664000175000017500000000201412110432433017117 0ustar andersanders00000000000000import glob counter_code = ''' ''' def process_file( fn ): lines = open( fn ).readlines() for i in xrange(len(lines)): if lines[i].count( 'statcounter' ) > 0: return for i in xrange(len(lines)): if lines[i].count( '<\body>' ) > 0: break lines.insert( i, counter_code ) f = open( fn, 'w' ) for l in lines: f.write( l ) f.close() for fn in glob.glob( "_build/html/*html" ): process_file( fn ) HTSeq-0.5.4p3/doc/index.rst0000664000175000017500000000063512110432433016126 0ustar andersanders00000000000000.. _tableofcontents: ************************************************************ HTSeq: Analysing high-throughput sequencing data with Python ************************************************************ .. toctree:: :maxdepth: 2 Overview install tour tss sequences genomic alignments features misc qa count history contrib * :ref:`genindex` HTSeq-0.5.4p3/doc/genomic.rst0000664000175000017500000003572712110432433016452 0ustar andersanders00000000000000.. _genomic: ************************************ Genomic intervals and genomic arrays ************************************ .. currentmodule:: HTSeq .. doctest:: :hide: >>> import HTSeq ``GenomicInterval`` =================== A genomic interval is a consecutive stretch on a genomic sequence such as a chromosome. It is represented by a ``GenomicInterval`` object. Instantiation .. class:: GenomicInterval( chrom, start, end, strand ) ``chrom`` (string) The name of a sequence (i.e., chromosome, contig, or the like). ``start`` (int) The start of the interval. Even on the reverse strand, this is always the smaller of the two values 'start' and 'end'. Note that all positions should be given and interpreted as 0-based value! ``end`` (int) The end of the interval. Following Python convention for ranges, this in one more than the coordinate of the last base that is considered part of the sequence. ``strand`` (string) The strand, as a single character, ``'+'``, ``'-'``, or ``'.'``. ``'.'`` indicates that the strand is irrelevant. Representation and string conversion The class's ``__str__`` method gives a spcae-saving description of the interval, the ``__repr__`` method is a bit more verbose:: >>> iv = HTSeq.GenomicInterval( "chr3", 123203, 127245, "+" ) >>> print iv chr3:[123203,127245)/+ >>> iv Attributes .. attribute:: GenomicInterval.chrom GenomicInterval.start GenomicInterval.end GenomicInterval.strand as above .. attribute:: GenomicInterval.start_d The "directional start" position. This is the position of the first base of the interval, taking the strand into account. Hence, this is the same as ``start`` except when ``strand == '-'``, in which case it is ``end-1``. Note that if you set ``start_d``, both ``start`` and ``end`` are changed, such that the interval gets the requested new directional start and its length stays unchanged. .. attribute:: GenomicInterval.end_d The "directional end": The same as ``end``, unless ``strand=='-'``, in which case it is ``start-1``. This convention allows to go from ``start_d`` to ``end_d`` (not including, as usual in Python, the last value) and get all bases in "reading" direction. ``end_d`` is not writable. .. attribute:: GenomicInterval.length The length is calculated as end - start. If you set the length, ``start_d`` will be preserved, i.e., ``end`` is changed, unless the strand is ``-``, in which case ``start`` is changed. .. attribute:: GenomicInterval.start_as_pos GenomicInterval.end_as_pos GenomicInterval.start_d_as_pos GenomicInterval.end_d_as_pos These attributes return :class:`GenomicPosition` objects referring to the respective positions. Directional instantiation .. function:: GenomicInterval_from_directional( chrom, start_d, length, strand="." ) This function allows to create a new ``GenomicInterval`` object specifying directional start and length instead of start and end. Methods .. method:: GenomicInterval.is_contained_in( iv ) GenomicInterval.contains( iv ) GenomicInterval.overlaps( iv ) These methods test whether the object is contained in, contains, or overlaps the second ``GenomicInterval`` object ``iv``. For any of of these conditions to be true, the ``start`` and ``end`` values have to be appropriate, and furthermore, the ``chrom`` values have to be equal and the ``strand`` values consistent. The latter means that the strands have to be the same if both intervals have strand information. However, if at least one of the objects has ``strand == '.'``, the strand information of the other object is disregarded. Note that all three methods return ``True`` for identical intervals. .. method:: GenomicInterval.xrange( step = 1 ) GenomicInterval.xrange_d( step = 1 ) These methods yield iterators of :class:GenomicPosition objects from ``start`` to ``end`` (or, for ``xrange_d`` from ``start_d`` to ``end_d``). .. method:: GenomicInterval.extend_to_include( iv ) Change the object's ``start`` end ``end`` values such that ``iv`` becomes contained. Special methods ``GenomicInterval`` implements the methods necessary for - obtaining a copy of the object (the ``copy`` method) - pickling the object - representing the object and converting it to a string (see above) - comparing two GenomicIntervals for equality and inequality - hashing the object ``GenomicPosition`` =================== A ``GenomicPosition`` represents the position of a single base or base pair, i.e., it is an interval of length 1, and hence, the class is a subclass of :class:GenomicInterval. .. class:: GenomicPosition( chrom, pos, strand='.' ) The initialisation is as for a :class:GenomicInterval object, but no ``length`` argument is passed. Attributes .. attribute:: pos **pos** is an alias for :attr:`GenomicInterval.start_d`. All other attributes of :class:`GenomicInterval` are still exposed. Refrain from using them, unless you want to use the object as an interval, not as a position. Some of them are now read-only to prevent the length to be changed. ``GenomicArray`` ================ A ``GenomicArray`` is a collection of :class:`ChromVector` objects, either one or two for each chromosome of a genome. It allows to access the data in these transparently via :class:`GenomicInterval` objects. **Note: ``GenomicArray``'s interface changed significantly in version 0.5.0. Please see the Version History page.** Instantiation .. class:: GenomicArray( chroms, stranded=True, typecode='d', storage='step', memmap_dir='' ) Creates a ``GenomicArray``. If ``chroms`` is a list of chromosome names, two (or one, see below) ``ChromVector`` objects for each chromosome are created, with start index 0 and indefinite length. If ``chroms`` is a ``dict``, the keys are used for the chromosome names and the values should be the lengths of the chromosome, i.e., the ChromVectors index ranges are then from 0 to these lengths. (Note that the term chromosome is used only for convenience. Of course, you can as well specify contig IDs or the like.) Finally, if ``chroms`` is the string ``"auto"``, the GenomicArray is created without any chromosomes but whenever the user attempts to assign a value to a yet unknown chromosome, a new one is automatically created with :method:`GenomicArray.add_chrom`. If ``stranded`` is ``True``, two ``StepVector`` objects are created for each chromosome, one for the '+' and one for the '-' strand. For ``stranded == False``, only one ``StepVector`` per chromosome is used. In that case, the strand argument of all ``GenomicInterval`` objects that are used later to specify regions in the ``GenomicArray`` are ignored. The ``typecode`` determines the data type and is as in ``numpy``, i.e.: - ``'d'`` for float values (C type 'double'), - ``'i'`` for int values, - ``'b'`` for Boolean values, - ``'O'`` for arbitrary Python objects as value. The storage mode determines how the ChromVectors store the data internally: - mode ``'step'``: A step vector is used. This is the default and useful for large amounts of data which may stay constant along a range of indices. Each such step is stored internally as a node in a red-black tree. - mode ``'ndarray'``: A 1D numpy array is used internally. This is useful if the data changes a lot, and steps are hence inefficient. Using this mode requires that chromosome lengths are specified. - mode ``memmap``: This is useful for large amounts of data with very short steps, where ``step`` is inefficient, but a numpy vectors would not fit into memory. A numpy memmap is used that stores the whole vector in a file on disk and transparently maps into memory windows of the data. This mode requires chromosome lengths, and specification of a directory, via the ``memmap_dir`` argument, to store the temporary files in. It is not suitable for type code ``O``. Attributes .. attribute:: GenomicArray.stranded GenomicArray.typecode see above .. attribute:: GenomicArray.chrom_vectors a dict of dicts of ``ChromVector`` objects, using the chromosome names, and the strand as keys:: .. doctest:: >>> ga = HTSeq.GenomicArray( [ "chr1", "chr2" ], stranded=False ) >>> ga.chrom_vectors #doctest:+NORMALIZE_WHITESPACE {'chr2': {'.': }, 'chr1': {'.': }} >>> ga = HTSeq.GenomicArray( [ "chr1", "chr2" ], stranded=True ) >>> ga.chrom_vectors #doctest:+NORMALIZE_WHITESPACE {'chr2': {'+': , '-': }, 'chr1': {'+': , '-': }} .. attribute:: GenomicArray.auto_add_chroms A boolean. This attribute is set to True if the GenomicArray was created with the ``"auto"`` arguments for the ``chroms`` parameter. If it is true, an new chromosome will be added whenever needed. Data access To access the data, use :class:GenomicInterval objects. To set an single position or an interval, use:: >>> ga[ HTSeq.GenomicPosition( "chr1", 100, "+" ) ] = 7 >>> ga[ HTSeq.GenomicInterval( "chr1", 250, 400, "+" ) ] = 20 To read a single position:: >>> ga[ HTSeq.GenomicPosition( "chr1", 300, "+" ) ] 20.0 .. method:: ChromVector.steps( self ) To read an interval, use a ``GenomicInterval`` object as index, and obtain a ``ChromVector`` with a sub-view:: >>> iv = HTSeq.GenomicInterval( "chr1", 250, 450, "+" ) >>> v = ga[ iv ] >>> v >>> list( v.steps() ) #doctest:+NORMALIZE_WHITESPACE [(, 20.0), (, 0.0)] Note that you get ( interval, value ) pairs , i.e., you can conveniently cycle through them with:: >>> for iv, value in ga[ iv ].steps(): ... print iv, value chr1:[250,400)/+ 20.0 chr1:[400,450)/+ 0.0 .. method:: GenomicArray.steps( self ) You can get all steps from all chromosomes by calling the arrays own ``steps`` method. Modifying values ChromVector implements the ``__iadd__`` method. Hence you can use ``+=``: >>> ga[ HTSeq.GenomicInterval( "chr1", 290, 310, "+" ) ] += 1000 >>> list( ga[ HTSeq.GenomicInterval( "chr1", 250, 450, "+" ) ].steps() ) #doctest:+NORMALIZE_WHITESPACE [(, 20.0), (, 1020.0), (, 20.0), (, 0.0)] To do manipulations other than additions, use Chromvector's ``apply`` method: .. method:: ChromVector.apply( func ) >>> ga[ HTSeq.GenomicInterval( "chr1", 290, 300, "+" ) ].apply( lambda x: x * 2 ) >>> list( ga[ HTSeq.GenomicInterval( "chr1", 250, 450, "+" ) ].steps() ) #doctest:+NORMALIZE_WHITESPACE [(, 20.0), (, 2040.0), (, 1020.0), (, 20.0), (, 0.0)] Writing to a file .. method:: GenomicArray.write_bedgraph_file( file_or_filename, strand=".", track_options="" ) Write out the data in the GenomicArray as a BedGraph_ track. This is a subtype of the Wiggle_ format (i.e., the file extension is usually ".wig") and such files can be conveniently viewed in a genome browser, e.g., with IGB_. This works only for numerical data, i.e., ``datatype`` ``'i'`` or ``'d'``. As a bedgraph track cannot store strand information, you have to specify either ``'+'`` or ``'-'`` as the strand argument if your ``GenomicArray`` is stranded (``stranded==True``). Typically, you will write two wiggle files, one for each strand, and display them together. Adding a chromosome .. method:: GenomicArray.add_chrom( chrom, length=sys.maxint, start_index=0 ) Adds step vector(s) for a further chromosome. This is useful if you do not have a full list of chromosome names yet when instantiating the ``GenomicArray``. .. _BedGraph: http://genome.ucsc.edu/goldenPath/help/bedgraph.html .. _Wiggle: http://genome.ucsc.edu/goldenPath/help/wiggle.html .. _IGB: http://igb.bioviz.org/ ``GenomicArrayOfSets`` ====================== A ``GenomicArrayOfSets`` is a sub-class of :class:`GenomicArray` that deal with the common special case of overlapping features. This is best explained by an example: Let's say, we have two features, ``"geneA"`` and ``"geneB"``, that are at overlapping positions:: >>> ivA = HTSeq.GenomicInterval( "chr1", 100, 300, "." ) >>> ivB = HTSeq.GenomicInterval( "chr1", 200, 400, "." ) In a ``GenomicArrayOfSets``, the value of each step is a ``set`` and so can hold more than one object. The __iadd__ method is overloaded to add elements to the sets: >>> gas = HTSeq.GenomicArrayOfSets( ["chr1", "chr2"], stranded=False ) >>> gas[ivA] += "gene A" >>> gas[ivB] += "gene B" >>> list( gas[ HTSeq.GenomicInterval( "chr1", 0, 500, "." ) ].steps() ) #doctest:+NORMALIZE_WHITESPACE [(, set([])), (, set(['gene A'])), (, set(['gene A', 'gene B'])), (, set(['gene B'])), (, set([]))] .. class:: GenomicArrayOfSets( chroms, stranded = True ) Instantiation is as in :class:`GenomicArray`, only that ``datatype`` is always ``'O'``. HTSeq-0.5.4p3/doc/count.rst0000664000175000017500000001375212110432433016153 0ustar andersanders00000000000000.. _count: .. program:: htseq-count *********************************************** Counting reads in features with ``htseq-count`` *********************************************** Given a file with aligned sequencing reads and a list of genomic features, a common task is to count how many reads map to each feature. A feature is here an interval (i.e., a range of positions) on a chromosome or a union of such intervals. In the case of RNA-Seq, the features are typically genes, where each gene is considered here as the union of all its exons. One may also consider each exon as a feature, e.g., in order to check for alternative splicing. For comparative ChIP-Seq, the features might be binding region from a pre-determined list. Special care must be taken to decide how to deal with reads that overlap more than one feature. The ``htseq-count`` script allows to choose between three modes. Of course, if none of these fits your needs, you can write your own script with HTSeq. See the chapter :ref:`tour` for a step-by-step guide on how to do so. The three overlap resolution modes of ``htseq-count`` work as follows. For each position `i` in the read, a set `S(i)` is defined as the set of all features overlapping position `i`. Then, consider the set `S`, which is (with `i` running through all position within the read) * the union of all the sets `S(i)` for mode ``union``. * the intersection of all the sets `S(i)` for mode ``intersection-strict``. * the intersection of all non-empty sets `S(i)` for mode ``intersection-nonempty``. If `S` contains precisely one feature, the read is counted for this feature. If it contains more than one feature, the read is counted as ``ambiguous`` (and not counted for any features), and if ``S`` is empty, the read is counted as ``no_feature``. The following figure illustrates the effect of these three modes: .. image:: count_modes.png Usage ----- After you have installed HTSeq (see :ref:`install`), you can run ``htseq-count`` from the command line:: htseq-count [options] If the file ``htseq-qa`` is not in your path, you can, alternatively, call the script with :: python -m HTSeq.scripts.count [options] The contains the aligned reads in the SAM format. (Note that the SAMtools_ contain Perl scripts to convert most alignment formats to SAM.) Make sure to use a splicing-aware aligner such as TopHat. HTSeq-count makes full use of the information in the CIGAR field. To read from standard input, use ``-`` as ````. If you have paired-end data, you have to sort the SAM file by read name first. (If your sorting tool cannot handle big files, try e.g. Ruan Jue's *msort*, available from the SOAP_ web site.) .. _SAMtools: http://samtools.sourceforge.net/ .. _SOAP: http://soap.genomics.org.cn The contains the features in the `GFF format`_. .. _`GFF format`: http://www.sanger.ac.uk/resources/software/gff/spec.html The script outputs a table with counts for each feature, followed by the special counters, which count reads that were not counted for any feature for various reasons, namely: * ``no_feature``: reads which could not be assigned to any feature (set `S` as described above was empty). * ``ambiguous``: reads which could have been assigned to more than one feature and hence were not counted for any of these (set `S` had mroe than one element). * ``too_low_aQual``: reads which were not counted due to the ``-a`` option, see below * ``not_aligned``: reads in the SAM file without alignment * ``alignment_not_unique``: reads with more than one reported alignment. These reads are recognized from the ``NH`` optional SAM field tag. (If the aligner does not set this field, multiply aligned reads will be counted multiple times.) *Important:* The default for strandedness is *yes*. If your RNA-Seq data has not been made with a strand-specific protocol, this causes half of the reads to be lost. Hence, make sure to set the option ``--stranded=no`` unless you have strand-specific data! Options ....... .. cmdoption:: -m , --mode= Mode to handle reads overlapping more than one feature. Possible values for `` are ``union``, ``intersection-strict`` and ``intersection-nonempty`` (default: ``union``) .. cmdoption:: -s , --stranded= whether the data is from a strand-specific assay (default: ``yes``) For stranded=no, a read is considered overlapping with a feature regardless of whether it is mapped to the same or the opposite strand as the feature. For stranded=yes and single-end reads, the read has to be mapped to the same strand as the feature. For paired-end reads, the first read has to be on the same strand and the second read on the opposite strand. For stranded=reverse, these rules are reversed. .. cmdoption:: -a , --a= skip all reads with alignment quality lower than the given minimum value (default: 0) .. cmdoption:: -t , --type= feature type (3rd column in GFF file) to be used, all features of other type are ignored (default, suitable for RNA-Seq and `Ensembl GTF`_ files: ``exon``) .. _`Ensembl GTF`: http://mblab.wustl.edu/GTF22.html .. cmdoption:: -i , --idattr= GFF attribute to be used as feature ID. Several GFF lines with the same feature ID will be considered as parts of the same feature. The feature ID is used to identity the counts in the output table. The default, suitable for RNA-SEq and Ensembl GTF files, is ``gene_id``. .. cmdoption:: -o , --samout= write out all SAM alignment records into an output SAM file called , annotating each line with its assignment to a feature or a special counter (as an optional field with tag 'XF') .. cmdoption:: -q, --quiet suppress progress report and warnings .. cmdoption:: -h, --help Show a usage summary and exit HTSeq-0.5.4p3/doc/tss.rst0000664000175000017500000003714712134000065015636 0ustar andersanders00000000000000.. _tss: ****************************** A detailed use case: TSS plots ****************************** .. currentmodule:: HTSeq A common task in ChIP-Seq analysis is to get profiles of marks with respect to nearby features. For example, when analysing histone marks, one is often interested in the position and extend of such marks in the vicinity of transcription start sites (TSSs). To this end, one commonly calculates the coverage of reads or fragments across the whole genome, then marks out fixed-size windows centered around the TSSs of all genes, takes the coverages in these windows and adds them up to a "profile" that has the size of the window. This is a simple operation, which, however, can become challenging, when working with large genomes and very many reads. Here, we demonstrate various ways of how data flow can be organized in HTSeq by means of different solutions to this task. As example data, we use a short excerpt from the data set by Barski et al. (Cell, 2007, 129:823). We downloaded the FASTQ file for one of the H3K4me3 samples (Short Read Archive accession number SRR001432), aligned it against the Homo sapiens genome build GRCh37 with BWA, and provide the start of this file (actually only containing reads aligned to chromosome 1) as file ``SRR001432_head.bam`` with the HTSeq example files. As annotation, we use the file ``Homo_sapiens.GRCh37.56_chrom1.gtf``, which is the part of the Ensembl GTF file for Homo sapiens for chromosome 1. Using the full coverage ----------------------- We start with the straight-forward way of calculating the full coverage first and then summing up the profile. This can be done as described in the :ref:`Tour `:: >>> import HTSeq >>> bamfile = HTSeq.BAM_Reader( "SRR001432_head.bam" ) >>> gtffile = HTSeq.GFF_Reader( "Homo_sapiens.GRCh37.56_chrom1.gtf" ) >>> coverage = HTSeq.GenomicArray( "auto", stranded=False, typecode="i" ) >>> for almnt in bamfile: ... if almnt.aligned: ... coverage[ almnt.iv ] += 1 To find the location of all transcription start sites, we can look in the GTF file for exons with exon number 1 (as indicated by the ``exon_number`` attribute in Ensembl GTF files) and ask for their directional start (``start_d``). The following loop extracts and prints this information (using ``itertools.islice`` to go through only the first 100 features in the GTF file):: >>> import itertools >>> for feature in itertools.islice( gtffile, 100): ... if feature.type == "exon" and feature.attr["exon_number"] == "1": ... print feature.attr["gene_id"], feature.attr["transcript_id"], feature.iv.start_d_as_pos ENSG00000223972 ENST00000456328 1:11873/+ ENSG00000223972 ENST00000450305 1:12009/+ ENSG00000227232 ENST00000423562 1:29368/- ENSG00000227232 ENST00000438504 1:29368/- ENSG00000227232 ENST00000488147 1:29568/- ENSG00000227232 ENST00000430492 1:29341/- ENSG00000243485 ENST00000473358 1:29553/+ ENSG00000243485 ENST00000469289 1:30266/+ ENSG00000221311 ENST00000408384 1:30365/+ ENSG00000237613 ENST00000417324 1:36079/- ENSG00000237613 ENST00000461467 1:36071/- ENSG00000233004 ENST00000421949 1:53048/+ ENSG00000240361 ENST00000492842 1:62947/+ ENSG00000177693 ENST00000326183 1:69054/+ As the GTF file contains several transcripts for each gene, one TSS may appear multiple times, giving undue weight to it. Hence, we collect them in a ``set`` as this data type enforces uniqueness. >>> tsspos = set() >>> for feature in gtffile: ... if feature.type == "exon" and feature.attr["exon_number"] == "1": ... tsspos.add( feature.iv.start_d_as_pos ) Let's take one of these starting positions. To get a nice one, we manually chose this one here, just for demonstration purposes:: >>> p = HTSeq.GenomicPosition( "1", 145439814, "+" ) This is really one of the TSSs in the set: >>> p in tsspos True We can get a window centered on this TSS by just subtracting and adding a fixed value (half of the desired window size, let's use 3 kb):: >>> halfwinwidth = 3000 >>> window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) >>> window We can check the coverage in this window by subsetting and transforming to a list: .. doctest:: >>> list( coverage[window] ) #doctest: +ELLIPSIS [0, 0, 0, ..., 0, 0] As we will work with numpy_ from now on, it may be better to get this as numpy array: .. _numpy: http://numpy.scipy.org/ .. doctest:: >>> import numpy >>> wincvg = numpy.fromiter( coverage[window], dtype='i', count=2*halfwinwidth ) >>> wincvg array([0, 0, 0, ..., 0, 0, 0], dtype=int32) With matplotlib, we can see that this vector is, in effect, not all zero: .. doctest:: >>> from matplotlib import pyplot >>> pyplot.plot( wincvg ) #doctest: +SKIP >>> pyplot.show() #doctest: +SKIP .. image:: tss_fig1.png To sum up the profile, we initialize a numpy vector of the size of our window with zeroes:: >>> profile = numpy.zeros( 2*halfwinwidth, dtype='i' ) Now, we can go through the TSS positions and add the coverage in their windows to get the profile:: >>> for p in tsspos: ... window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) ... wincvg = numpy.fromiter( coverage[window], dtype='i', count=2*halfwinwidth ) ... if p.strand == "+": ... profile += wincvg ... else: ... profile += wincvg[::-1] Note that we add the window coverage reversed ("``[::-1]``") if the gene was on the minus strand. Using matplotlib, we can plot this: .. doctest:: >>> pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profile ) #doctest: +SKIP >>> pyplot.show() #doctest: +SKIP .. image:: tss_fig2.png We can see clearly that the reads concentrate around the TSS, with a prominent peak a bit downstream (if you use matplotlib's interactive zoom, you can easily see that the peak is at 153 bp) and a dip upstream, at -79 bp. Going back to the beginning, there is one possible improvement: When calculating the coverage, we just added one to all the base pairs that the read covered. However, the fragment extends beyond the read, to a length of about 200 bp (the fragment size for which Barski et al. selected). Maybe we get a better picture by calculating the coverage not from the reads but from the *fragments*, i.e., the reads extended to fragment size. For this, we just one line, to extend the read to 200 bp. Using this, we now put the whole script together: .. literalinclude:: tss1.py The script produces a ``profile`` variable whhich we can plot by adding these lines to it: .. doctest:: pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profile ) #doctest: +SKIP pyplot.show() #doctest: +SKIP .. image:: tss_fig3.png The plot looks much smoother with the extended fragments. The coverage vector can be held in memory, even for a very large genome, because large parts of it are zero and even where there are reads, the values tend to stay constant for stretches of several bases. Hence, GenomicArray's step storage mode is useful. If, however, extremely large amounts of reads are processed, the coverage vector can become "rough" and change value at every position. Then, the step storage mode becomes inefficient and we might be better off with an ordinary dense vector such as provided by numpy. As this numpy vector becomes very large, it may not fit in memory, and the 'memmap' storage (using numpy's memmap facility) then uses temporary files on disk. We mention these possibilities as they may be useful when working with the full coverage vector is required. Here, however, we can do otherwise. Using indexed BAM files ----------------------- We do not need the coverage everythere. We only need it close to the TSSs. We can sort our BAM file by position (``samtools sort``) and index it (``samtools index``) and then use random access, as HTSeq exposes this functionality of SAMtools. Let's say we use the same window as above as example:: >>> p = HTSeq.GenomicPosition( "1", 145439814, "+" ) >>> window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) >>> window Then, we can simply get a list of all reads within this interval as follows: .. doctest:: >>> sortedbamfile = HTSeq.BAM_Reader( "SRR001432_head_sorted.bam" ) >>> for almnt in sortedbamfile[ window ]: ... print almnt #doctest:+ELLIPSIS +NORMALIZE_WHITESPACE ... Let's have a closer look at the last alignment. As before, we first extent the read to fragment size:: >>> fragmentsize = 200 >>> almnt.iv.length = fragmentsize >>> almnt The read has been aligned to the "-" strand, and hence, we should look at its distance to the *end* of the window (i.e., ``p.pos``, the position of the TSS, plus half the window width) to see where it should be added to the ``profile`` vector:: >>> start_in_window = p.pos + halfwinwidth - almnt.iv.end >>> end_in_window = p.pos + halfwinwidth - almnt.iv.start >>> print start_in_window, end_in_window 1814 2014 To account for this read, we should add ones in the profile vector along the indicated interval. Using this, we can go through the set of all TSS positions (in the ``tsspos`` set variable that we created above) and for each TSS position, loop through all aligned reads close to it. Here is this double loop:: >>> profileB = numpy.zeros( 2*halfwinwidth, dtype='i' ) ... for p in tsspos: ... window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) ... for almnt in sortedbamfile[ window ]: ... almnt.iv.length = fragmentsize ... if p.strand == "+": ... start_in_window = almnt.iv.start - p.pos + halfwinwidth ... end_in_window = almnt.iv.end - p.pos + halfwinwidth ... else: ... start_in_window = p.pos + halfwinwidth - almnt.iv.end ... end_in_window = p.pos + halfwinwidth - almnt.iv.start ... profileB[ start_in_window : end_in_window ] += 1 This loop now runs a good deal faster than our first attempt, and has a much smaller memory footprint. We can plot the profiles obtained from our two methods on top of each other: .. doctest:: >>> pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profile, ls="-", color="blue" ) #doctest: +SKIP >>> pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profileB, ls="--", color="red" ) #doctest: +SKIP >>> pyplot.show() #doctest: +SKIP .. image:: tss_fig4.png We notice that they are equal, except for the boundaries. This artifact arose because we extend reads to fragment length: A read which is just outside the ``window`` will not be found by our new loop even though if may reach into our profile window after extension to fragment length. Therefore, we should make the window used to subset the BAM file a bit wider than before to get even reads that are once the fragment length away. However, with this, we may also get reads that get extended into the wrong direction, such that ``start_in_windows`` and ``end_in_windows`` extend beyond the size of the fragment vector. Four extra lines need to be added to deal with these cases, and then, our new script gives the same result as the previous one. Here is the complete code: .. literalinclude:: tss2.py As before, to get a plot, add: .. doctest:: pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profile ) #doctest: +SKIP pyplot.show() #doctest: +SKIP You will now get the same plot as we got with the first method. Streaming through all reads --------------------------- The previous solution requires sorting and indexing the BAM file. For large amounts of data, this may be a burden, and hence, we show a third solution that does not require random access to reads. The idea is to go through all reads in arbitrary order, check for each read whether it falls into one or more windows around TSSs, and, if so, adds ones to the profile vector at the appriate places. In essence, it is the same tactic as before, but nesting the two *for* loops the other way round. In order to be able to check quickly whether a read overlaps with a window, we can use a :class:`GenomicArrayOfSets`, in which we mark off all windows. For easy access, we denote each winow with an :class:`GenomicPosition` object giving its midpoint, i.e., the actual TSS position, as follows:: >>> tssarray = HTSeq.GenomicArrayOfSets( "auto", stranded=False ) >>> for feature in gtffile: ... if feature.type == "exon" and feature.attr["exon_number"] == "1": ... p = feature.iv.start_d_as_pos ... window = HTSeq.GenomicInterval( p.chrom, p.pos - halfwinwidth, p.pos + halfwinwidth, "." ) ... tssarray[ window ] += p >>> len( list( tssarray.chrom_vectors["1"]["."].steps() ) ) 30089 As before, ``p`` is the position of the TSS, and ``window`` is the interval around it. To demonstrate how this data structure can be used, we take a specific read that we selected as a good example:: >>> for almnt in bamfile: ... if almnt.read.name.startswith( "SRR001432.700 " ): ... break >>> almnt Again, we extent the read to fragment size:: >>> almnt.iv.length = fragmentsize >>> almnt To see which windows the read covers, we subset the ``tssarray`` and ask for steps that the fragment in ``almnt`` covers: >>> for step_iv, step_set in tssarray[ almnt.iv ].steps(): ... print "Step", step_iv, ", contained by these windows:" ... for p in step_set: ... print " Window around TSS at", p Step 1:[169677680,169677837)/. , contained by these windows: Window around TSS at 1:169679671/- Window around TSS at 1:169677779/- Step 1:[169677837,169677880)/. , contained by these windows: Window around TSS at 1:169680837/- Window around TSS at 1:169679671/- Window around TSS at 1:169677779/- As is typical for GenomicArrayOfSets, some TSSs appear in more than one step. To make sure that we don't count them twice, we take the union of all the step sets (with the operator ``|=``, which means in-place union when used for Python sets): .. doctest:: >>> s = set() >>> for step_iv, step_set in tssarray[ almnt.iv ].steps(): ... s |= step_set >>> s ##doctest:+NORMALIZE_WHITESPACE set([, , ]) For each of the values for ``p`` in ``s``, we calculate values for ``start_in_window`` and ``stop_in_window``, as before, and then add ones in the ``profile`` vector at the appropriate places. Putting all this together leads to this script: .. literalinclude:: tss3.py Again, to get a plot (which will look the same as before), add: .. doctest:: pyplot.plot( numpy.arange( -halfwinwidth, halfwinwidth ), profile ) #doctest: +SKIP pyplot.show() #doctest: +SKIP HTSeq-0.5.4p3/doc/Makefile0000664000175000017500000000515412110432433015726 0ustar andersanders00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html web pickle htmlhelp latex changes linkcheck help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview over all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run doctest" clean: -rm -rf _build/* html: mkdir -p _build/html _build/doctrees _static $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html @echo @echo "Build finished. The HTML pages are in _build/html." python add_counter.py pickle: mkdir -p _build/pickle _build/doctrees $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle @echo @echo "Build finished; now you can process the pickle files." web: pickle json: mkdir -p _build/json _build/doctrees $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: mkdir -p _build/htmlhelp _build/doctrees $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in _build/htmlhelp." latex: mkdir -p _build/latex _build/doctrees $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex @echo @echo "Build finished; the LaTeX files are in _build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: mkdir -p _build/changes _build/doctrees $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes @echo @echo "The overview file is in _build/changes." linkcheck: mkdir -p _build/linkcheck _build/doctrees $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in _build/linkcheck/output.txt." doctest: mkdir -p _build/doctest _build/doctrees $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest @echo @echo "Doctest; look for any errors in the above output " \ "or in _build/doctest/output.txt." HTSeq-0.5.4p3/doc/contrib.rst0000664000175000017500000001743012110432433016460 0ustar andersanders00000000000000.. _contrib: ********************** Notes for Contributers ********************** If you intend to contribute to the development of HTSeq, these notes will help you to get started. Source code ----------- The source code is on an Subversion repository, hosted on SourceForge. To check out the repository, use :: svn co https://htseq.svn.sourceforge.net/svnroot/htseq/trunk htseq To browse the repository, see here_. .. _here: http://htseq.svn.sourceforge.net/viewvc/htseq/ Languages --------- A good part of HTSeq is actually not written in Python but in Cython_. In case you don't know it yet: Cython, a fork from Pyrex, is a kind of Python compiler. You annotate Python code with additional type informations (the lines starting with ``cdef`` in the source code). Cython will then transform the Cython source file (with extension ``pyx``) into a C file, which calls the appropriate funnctions of Python's C API. Without type annotation, this looks and feels the same as normal Python and is not really faster, either. With type annotation, significant performance gains are possible, especially in inner loops. A small part, namely the StepVector class, is written in C++ and exported with SWIG. (SWIG_, the "Simple Wrapper and Interface Generator" is a very useful tool to generate C/C++ code to wrap an existing C/C++ library such that it becomes accessible as a native library within a number of scripting languages.) I am not so happy with this any more (the abstraction panelty of the object-oriented SWIG wrapping turned out to be a bit high) and ultimatively want to rewrite this part. .. _Cython: http://www.cython.org/ .. _SWIG: http://www.swig.org/ Build process ------------- I do not want to burden the user with having to install SWIG or Cython. Both these tools work by generating C/C++ code which then can be compiled without the need of any files from SWIG or Cython. Hence, I've divided the build process into two steps: * Step 1: Generate the C/C++ files from the SWIG and Cython source files. This is done by the calling ``make`` in the ``src`` directory. Note that the ``Makefile`` there contains only calls to ``cython`` and ``swig`` but not to the C compiler. (Note: I am using Cython 0.11. Compiling with Cython 0.12 does not work at the moment, but I will update at some point.) * Step 2: The C files are compiled and copied together with the Python source files into a ``build`` directory. This is done by calling ``python setup.py build`` in the root directory. It creates (as usual for a setup.py script) a new directory ``build`` and in it a subdirectory for the machine architecture, which then contains the package directory. To test during development, set the ``PYTHONPATH`` to point to the maschine-specific directory in the ``build`` directory, so that Python can find the ``HTSeq`` directory that ``setup.py build`` puts there. Whenever you make a change, call the shell script ``build_it``, which contains just two lines: the first calls ``make`` in ``src``, the second calls ``setup.py build``. Distributing ------------ To wrap up a package, call ``build_it`` (or at least ``make`` in ``src``) and then ``setup.py sdist``. This makes a directory ``dists`` and in there, a tarball with all the source files (Python and C/C++) and all kinds of other stuff (unfortunately including the ``example_files`` directory, that I hence always delete manually before running ``setup.py sdist`` to keep the package lean). The tarball contains, when unpacked the ``setup.py`` script, which allows installing with ``setup.py install``. I am using setuptools_ (and not distutils_) so that I can make Python eggs with ``setup.py bdist_egg``. For Windows binaries, I use ``setup.py bdist_wininst --compiler=mingw32`` on my virtual Windows box. .. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools .. _distutils: http://docs.python.org/library/distutils.html Files ----- The package contains the following source files: ``HTSeq/__init__.py``: The outer face of HTSeq. This file defines the name space of HTSeq and contains the definition of all classes without performance-critical methods. The file imports ``_HTSeq`` in its own namespace, so that, for the user, it does not matter whether an object is defined here or in ``_HTSeq.pyx``. ``src/HTSeq/_HTSeq.pyx``: The core of HTSeq. All classes with perfomance-critical methods are defined here. For most of it, this file looks as a normal Python file. Only where performance is critical, type annotation has been added. See the Cython manual for details. ``src/HTSeq/_HTSeq.pxd``: The "header file" for ``_HTSeq.pyx``. It contains the type annotation for all the fields of the classes defined in ``_HTSeq.pyx``. If a user would want to write her own Cython code, she could use Cython's ``cimport`` directive to import this header file and so make Cython aware of the typed definitions of fields and methods in ``_HTSeq.pyx``, which may improve performance because it allows Cython to kick out all unnecessary type checking. ``HTSeq/_HTSeq_internal.py``: There are a few limitation to the standard Python code allowed in Cython files; most importantly, the ``yield`` statement is not yet supported. Hence, ``_HTSeq.pyx`` imports this file, and whenever a method in ``_HTSeq.pyx`` needs a ``yield``, it calls a function which is put in here. ``src/step_vector.h``: The C++ ``step_vector`` class template. As this is a pure template, there is no ``step_vector.cc`` file with definitions. If you want to use a ``step_vector`` in a C++ project, this is all you need. ``src/StepVector.i``: An input file to SWIG, which produces the Python wrapper around ``step_vector.h``, i.e., the ``StepVector`` module containing the ``StepVector`` class. Note that this file contains not only SWIG directives but also Python and come C++ code. ``src/AutoPyObjPtr.i``: A very small SWIG library that allows SWIG-wrapped C++ container classes to store Python objects in a way that Python's garbage collector is happy with. ``HTSeq/scripts/count.py`` and ``HTSeq/scripts/qa.py``: The source code for the stand-alone scripts ``htseq-count`` and ``htseq-qa``. They reside in the sub-package ``HTSeq.scripts``, allowing to call the scripts with, e.g., ``python -m HTSeq.scripts.qa``. ``scripts/htseq-count`` and ``scripts/htseq-qa``: Short stubs to call the scripts from the command line simply as, e.g., ``htseq-qa``. Furthermore, there are these files to support development: ``src/Makefile``: Generates C/C++ files from SWIG and Cython source files but does no C/C++ compiling. ``setup.py``: A typical setuptools setup.py file. ``build_it``: A three-line shell script that * generates a file ``HTSeq/_version.py`` from the file ``VERSION``. * calls ``make`` in ``src`` to process ``src/Makefile`` * runs ``setup.py build`` (see above) ``clean``: Another two-line shell script to first call ``make clean`` in ``src`` and then delete whatever ``setup.py`` may have written. ``test.py`` Performs all the deoctests in the documentation, using the example data in the ``example_data`` directory. Finally, there are these files ``VERSION``: a one-line text-fil with the version number. It is read by ``setup.py``, used by ``build_it`` to generate the one-line Python file ``HTSeq/_version.py`` and also used when building the documentation. ``MANIFEST.in``: Brings some files to the attention of ``setup.py sdist`` which would otherwise not be included ``LICENCE``: The GPL, v3 ``README``: Points the user to the web site. and these directories ``doc/``: this documentation, in Sphinx reStructuredText format, and a Makefile to drive Sphinx. ``example_files/``: a few example files to be use by the doctests in the documentation. HTSeq-0.5.4p3/doc/tss_fig1.png0000664000175000017500000004334712110432433016521 0ustar andersanders00000000000000‰PNG  IHDRΗ£…ÖŽsBIT|dˆ pHYsaa¨?§i IDATxœíÝTÕ÷ñO00NˆÂ%†$°2 š,H•AWùat7AK ‰ûˆšhИP[+ưQ£Xj…uÖF „€£F6ÆH" hü<®&ÁlXŒbD1‚üæ<tzìé鷻Ͻ÷Üs߯ª)˜žžÛçœîžû™ïœsnÆc ¬†¸$Á€à @p 8œ€Î@g ‚3Á€à @p 8œ€Î@g ‚3Á€à @p 8œ€Î@g ‚3Á€à @p 8œ€Î@g ‚3@ê‚óŠ+4mÚ4{ì±jllT¿~ýtÆgèÙgŸ ôýÛ¶mÓôéÓ5`À577küøñzâ‰'Bn5â–ºà|Ï=÷è/ù‹®ºê*­\¹R‹-Òž={tê©§êÉ'Ÿ,û½ûöíÓi§¦'Ÿ|RwÜq‡yä 4HS¦LÑÓO?Q‡Œ1ÆÄ݈(mÛ¶MìrÛ¾}û4lØ0 >\+V¬(ù½wÝu—¾ñoèùçŸ×رc%IÔèÑ£õ‘|DkÖ¬ µíˆOê*Î…¡Y’z÷î­OúÓzýõ×Ë~ï²eË4|øðÎÐ,I=zôÐ\ µk×êÍ7ß´Þ^¸!uÁ¹˜wß}W/¾ø¢Ž;÷[¿~½FÕíöÖÖVIÒ† Biâ×3î¸àŠ+®Ðž={4{öì²÷kooWÿþý»Ýž»mÇŽE¿oûöíúÕ¯~¥¡C‡ª©©©þ„`Ïž=úßÿý_Mžq¢ÔÞ.]|qöµŠð¤ég¹ 6nܨ .¸ 3» «Ôç¹sçv~|ûÛßô=­­­zå•WºÝ¾nÝ:IÒÈ‘#‹~_Ÿ>}$I#FŒÐ 'œPc‹Q­Ã;,5ãý±I½zIG%õè!ÅÕízÆ<·¿Ï1ÇH Ò!ñõö–©¹9x›šjëWS“4`€´}»Ô¿öÕŒ÷úõÙsçÂÑ£³íBurcÞóogÏ#Žðçuêª4ý,wI.» «T.¼á†4wî\ýÛ¿ý›æÌ™øû¦NªW_}Uk×®í¼íÀZ¼x±Æ§#Ž8"ŒæH8c¤L&Þcä~1©·ÈÊgº6tºà|ûí·ë»ßý®¦L™¢3Ï^p@0g™­j/c7œô"8ðiá—/ý(Äâ@œô"8@Șãì‚3^gÀ„"w¹œaÁH/‚3àOä¾ôCbq o||¿†à x§ù«¾ô#ÇÖübæ8»‡à ¤ Áð€'oúPS5üAÅH/‚3§ø]˜ãLð¶‡à ¤Áð€@)äK?$;ÏO½Çðù3Q#8éEp€ÙW6ŽAÅÙ‚3^gÀ¾-üò¥9,ô ÁH/‚3DÀ…9ΰƒà ¤Áð•Dw¹°8Pâ5b ÁH/‚3àNä>/^seq @±Ã‡÷€Úœ8ÅÇy¸6ú66IDpÒ‹à x€…_n³¹80î6€à ¤Á"÷g.€bÁH/‚3àB‘Û\Y;Î@zœÏør"÷¥‹}CpÒ‹à x§ù«¾ô#ÇÆÂ¾zÁg{Î@zœøpòö¡¥ØšfAèuÁH/‚3§øãžãÌi{ra¹¡à ¤ Áð€9´®ñ¥sœ}CpÒ‹à À9¾UFmîªáÛØ$ÁH/‚3àB•Ûl.¬çûyØEpÒ‡à !saq sœí¡â ¤Áð¡È}q/„=g ½΀g’z"/lwRûQ ‹ýBpÒ‹à x—ù«¾ô#ŸùÅõƒ9Îöœô"8àäí6[»jÀ g ½Î2[áŠÅn 8éEp<àc(ò-0ÇÙùÛ 2Ž@ºœ8ÇÇ_¸Š?¨8éEp<@¨r›ÍÅq¶YùÁ¹£#Þ¶ˆÁ€l\]ÏU.,ôq:O\¨8éEp<@(r› ‹aÁH/‚3à!Næ>ô!‹ýApÒ‹à À9¾UVmýE Þ  À‚3^gÀ,ür›«þIõ?¿¼Fì 8éEp€ÙØ#î6àCg ½΀|œ¿êCròûRO¿êã\îsGpÒ‹à À ùÓ|¬ŒÚ¨8×;6>ŽkÎ@zœ0ÇÙm.Ìqæ5bÁH‚3„ÌÖgB¯¨8éEpô!Ǖž- ÁH/‚3çøXuaq ì 8éEp<ÀÂ/·±8Ð/g ½RœwíÚ¥Y³fiÒ¤I0`€4wîÜ@ß»páB544ýضm[È-üåó82ÇÙ‚3^=ãn@¶oß®{î¹GǼ¦Nª{ï½W™*Ï( .ÔðáûÜÖ¿›Í#¹Í…Ű‡à ¤W*ƒóСCõÎ;ïH’vìØ¡{ï½·êcŒ9R'œp‚í¦V$ýdžÉ$¿ùl.¬ulXhOþ_G ]R9U#Ÿ©ñ§ž1¦æïlcþªû˜ãì*Î@z¥>8×êÌ3ÏTÏž=ÕÒÒ¢sÎ9G6lˆ»IåÂgØCpÒ+•S5ê1xð`]ýõ7nœúöí«uëÖiÞ¼y7nœž{î9µ¶¶ÆÝDŽq!83ÞžÜóÑ£ÁH‚s•&Nœ¨‰'v~>vìXuÖY>|¸®½öZ-[¶¬ä÷Μ9S‡vX—Û¦M›¦iÓ¦…Ö^¤ƒóW}èCNþóSëüärŸWÛ†Z,*ÎðE[[›ÚÚںܶsçΘZ“ g Ž8âzê©Z³fMÙûÍŸ?Ÿ…@ >_äÃV¸òql’ˆà _+Þ½ôÒK:ñÄcj‘û˜ãlQµ[Ú¶°ðË},ôÁH/‚³[·nÕªU«tÒI'ÅÝb޳_Î@z¥vªÆòå˵{÷n½÷Þ{’¤ 6衇’”Ý1£©©I—\r‰-Z¤M›6iÈ!’¤³Î:K&LÐèÑ£uÈ!‡hýúõš7ožtà 7ÄÖ¤¡Èm.gØCpÒ+µÁùòË/×–-[$e§X,]ºTK—.U&“ÑæÍ›uôÑG«££C]ök6l˜,X -[¶hÿþý4hN;í4Í™3GÆ ‹«;@I?™ûva ›‹¹JüÎ@z¥68oÞ¼¹â},X  t¹mþüùa5 ¨óWÝf«bÌg7œôbŽ3§ø옪á'‚3>gNð=€Äœ™og ½΀|œ¿êCrlÍq®÷¾½FâBpÒ‹à À9¾UFmMÕü›$"8éEp<ÀÂ/·±8Ð/g ½Î2ðì!8éEp<ÀÂ/÷Åœm|?²Î@zœ%ùdž›Nä>²¹8  Äà ¤Á€| 6Æy dåÿ"øéBp<ÀÂ/·¹2Ղ׈Tœô"8@È\YHh¶ƒà ¤Áð¡È}qgØCpÒ‹à x(é's߿޲8Ð/g ½΀˜ãì¶zŸ[‹yØApÒ‹à À)>;[áÊDZI"‚3^gÀ>Ìqö9€°8Ð/g ½΀‡’~2÷m޳ÄgŸœô"8@È\¨8Â3^=ãn€ú±ðËm®\9׈g ½¨8@È\XÈgûÎ@úœŠÜÆT ¿PqÒ‹à x(‰'s à\Æâ@ä玎xÛ ZgÀÌ_u›­  Ø˜ªÁk¤~Tœô"8@È\X{Î@zœpòv‹ýBpÒ‹à x§ù«¾ÍqέÌqN>‚3^gˆ»jøƒà ¤Áð ¿ÜÆâ@¿ä?g ]ΜàsUÕ…ÅÌq¶‡Š3^gÀ„"·¹°8öœô"8JúÉÜ·?³8Ð/g ½΀˜¿ê>æ8ûƒà ¤ÁBfkŽ3¡× g ½Î2ú%÷|ôèo;Dà xÀ§ù«õÌãuU½sœsêã\îs—_qÎÿ€ÿΜàsø¨·o¶¦jPq¶ƒà ¤Áð ¿ÜÇâ@œô"8@ÈXè‚3^gÀ,ür‹ýDpÒ‡à x(é'rßJn,ôeiܨ8éEp<À‰Û]¶ªÅcWœô"8žðeá—}(†Åþ 8éEpà_Ç­Ðkã„f;Î@zœøŠ|ê‹Íà\ïq`GásJpÒƒà xȇ¹}솬zŽÁâ@{Î@zœ0Õ]6ªÅÌqvKáXœô 8@âžã {Î@zœpâv‹ýÃT ½΀'|™¿ZÏE>\d#dN÷`Žs¼¨8éEpà_ÇÍiTŒÝ@pÒ‹à x€…_îbq Î@zœ ÌqöÁH/‚3àßB‘O}±½8Ч±I*‚3^gÀC>œÈ}èƒdq`=Ç`q g ½΀˜¿ê.›Õbæ8»à ¤Á€S| v6B@q ÁH/‚3àNÜ>ô¡ú…à ¤Áð„OóW¹Jécp”øQqÒ‹à !²¹«Ü@pÒ‹à x€…_îbq Î@zœ D®,d޳=g ½΀| E¾VE¹Š?Î@zœùp"÷¡’ýÅõƒÅvœô"8ðáÄíCŠqeq ¯ã‚3^gÀüßM®,´Õœ4#8àÄí.ú‡à ¤Áð„O¡È§¾ä°8Ð6æœH&‚3à!Nä>ôAbq ¨8镺à¼k×.Íš5K“&MÒ€ÔÐР¹sçþþmÛ¶iúôé0`€š››5~üx=ñÄ!¶¨Ì§‹[øÐ‡|6ªÅ¶¦{øò‰ÁH¯ÔçíÛ·ëž{îÑ| ©S§J’2Ï$ûöíÓi§¦'Ÿ|RwÜq‡yä 4HS¦LÑÓO?f³$”ùÉ9„^7œôêw¢6tèP½óÎ;’¤;vèÞ{ï ü½÷ÝwŸ6lØ çŸ^cÇŽ•$rÊ)=z´fÍš¥5kÖ„Òf ~凤÷%ŸíÅõT­}×8玎xÛ :©«8ç3UžÑ–-[¦áÇw†fIêÑ£‡.¸à­]»Vo¾ù¦í&5ñ¡æCò1ÇÙTœôJup®Öúõë5jÔ¨n··¶¶J’6lØu“Iœ¸]fó(TŒÝ@pÒ+uS5êÑÞÞ®þýûw»=wÛŽ;¢nR¢<(ýèGÒ{ïI‡"]|±ÔØ};~þsé¤/}IÚ°Aúío³_;ûlièP;³jÕ‡Ç:UúøÇí·~¹©Ø4‹]»¤ÿXÚ·O:üpéÿüŸ`Ǩ·q¼Fvî”~ò郤#̾çŠyûméþû³?'>þñì{&߯ÒòåÙÿ'_ü8û÷gμÿ¾Ô·oöçLÕ·ûõ×¥¥K³ã6b„tÆ~-7– ~^É–-ÒÃgï;j”túéÕ· @üΚ9s¦;ì°.·M›6MÓ¦M‹©EÑZ¿^ºôR©OiïÞìÉ£ÔÉ/L_þrö$¾o_öã‡?”þügéÀiëVé¶Ûì<Îe—I¯½–=îoH·ßnç¸H–bÕâ+¤o|ãÃ÷¤IÒGT>V/€òóŸKßüæ‡}=óÌl -ÔÖ&Íœ)õî Ï|Ðõë7ß,-Y’ «'ž(•ZR²v­4cƇ7nœô·? Våž{¤ë¯ÏþrØaÒ[o}øµZ*ÎwÞ™ýг§4x°´ysõmlkkkS[[[—ÛvîÜSk’à\…––µ··w»=w[KKKÙïŸ?¾N8á„PÚ–fÿ]¸0[uÊ}G;n½Uºá†ìÿ®¾ZZ¶Ìn›”fÍ’~ö³ðûêÓÂ/ß*çÅBU.þøÇÒùçW~}$ù(…ïûR éÈêÛoÏþÒYìë&HŸü¤ôÒK¥/7¶õþœ9xP:æ˜l¿õÖî_¯688­\ŸsN¶m€ Šï^zé%xâ‰1µÈ}Ìq®Bkk«^yå•n·¯[·N’4räȨ›”(…'—¸ææ?®1Ùys 'J>̹ô¡ùò_cÕ.öóiq`©Ç­æýRî빯U3¢’b?»ª Îaýœ-‚s¦NªW_}Uk×®í¼íÀZ¼x±Æ§#‚ü­ÎUÌ|¨Öúpq _ÃD±jq®êÚð'°­†®¿Fʵ-èû´Ú±­E-ÁÙ˜pÛ ©œª±|ùríÞ½[ï½÷ž¤ìn=ô$éÌ3ÏTSS“.¹ä-Z´H›6mÒ!C$I_|±~ðƒèÜsÏÕ¼yó4`ÀÝu×]úÃþ •+WÆÖŸ¤°Q5³ÕŽÜI/WýËÿ<¬ÇA: ½ÕVE}xýTzß ö•ÞO¶Î{¼Zƒ3?€äKep¾üò˵eËIÙ«.]ºTK—.U&“ÑæÍ›uôÑG«££C]öznllÔªU«4kÖ,]yå•zÿý÷5fÌ-_¾\'Ÿ|r\ÝI×*^¾Tœ}’ôç#_à”Ï@ òËCö×:¶Õ¨wª€äJepÞ`9ó‚ ´`Á‚n·8P YÙQN…'½††pÚåŸÆ]˜¿j“}ŠW+몑Ä9ÎAÞA+ÎåØžªQìñê­8H.f\!2.MÕÈÿ~ Hêâ@_B¦ÏlLÕHbè ú¾¯샾Om-,÷þ­wŽ3ïW ¹Έœ 'ÿÂ…ZaU‚¢®8»0¶õò¡ùX˜Uéq+µ/hûmVœK=^=S5|{}iCpFd\ݎ·Š3ÜåÊâ@Wæ8ÙŽ®Üý‚~͵íèÂú9 ZgDÎ…“w>WE=|éCNÒû’¯Xp®µ*ê{Å’í踎·1"ãÒgß·£ó¡¢åC¤âÕÊjß >- º]©ûÝŽÎVŹÔvt¹¯}Œü©¾¼¶4"8#r®UÌ|¨Å=¥•šã\ÍsåÃçJ*U”}¨8»:ö‚Kx\@’PqFšV{ó·@dWà÷s¥â\ëT ~ÉFpFä\;ùûpaNÄî*5ǹ–Šs½ípýuîRŹR8¯uW ÉFpFä\8yžô|ÙŽ.'ÉAÚ·*}±Jj­¯¹zÆÆ•9Î¥ØÚŽ®°â\›Ûѹ>U@0gDÆ¥©ùÿ÷a;:_B¦Š=7]ƒÏS5r‚NÕ(õyЯVœ]ÚŽŽ  ÉGpFä\8ùûZqvalkåk˜(¶8°Úל‹£®8Ûê'gùΈL5¥¨Ú‘«8‡Q вâ ÷[˜ÿy9¶‚³ ʵ#èT’(;F½sœ]y.TàŒÈ¹VqI¢©J|èC>Ÿúb{q`=cãò¸¦a;º¤o{ €àŒ¹4Ç9‘UX&ˆs;:*Z>ôA*½8°šíèrêyïĵ8ÐÖvtAßOQlG—»½Ö©¾¼¶4"8#r®U½|¨Öút"NúsQ¨ÔâÀZ*ξM!ýc;:a"8#r.œT´|èƒlq`Њs©Ïƒ¶#Î9ÎAúZ.Œ}?Õj˱UqÎÎ}ymiDpFä\ªº.$J*NÄî*5U£Ú×\Ò_£•تÈFq¡‘ZŠ\ðÁ‘sáäQX¹òe;:ƶV¾†ÿb¯±Z¶£«÷¹{q`”ÛÑU3¶•ØÚŽ.îñ`Á‘qiªFN[W{¬°ûêkèôA±ç¦–  Ø Îq+·8°Ò˜yŸÖºÕ_96§jØj€xœ9NÞ¹“^~pö¡âì Ÿú’SnŽs%ù¡2©c¤ÝåÞ/AòRq&‚3"ccSXmHzŹÜc'•}‚Íqöyq`жWj_þדXqÎo—/¯m ΈœK—\Å9é&ð©šåCò›ãœÛǹIŸã\‰­0éòvtIÿ9€àŒ¹4ǹÔâ@_¶£ƒ;ÊUœ«ÙŽÎÕÀTTÛѹz~~ 8#r.¶£sG~’þ|ä+öÜT„mÌqŽ3|y\[í‹¢²[ïT ÉEpFä\8yøº]ŽoAÚ…çz¶£KÒ眨¶£+¬8×Ëæâ@›‹ăàŒÈ¸4U#‡íè¶0&YØ‹ +Îa,”jŸªa«MâApFä\¨¸øº c‹®Ê-¬æùJêâÀ ÛÈåîSé~.Uœ«Ù—Ùv»ÄƒàŒÈ¸¼]& â ©xp¬vÚ„ù¿®,0ô¡â\Ïâ@[m‚3"çÂÉ;Ç—Å’}ü«Ê•ZXÍ6‹]gs;:[‹ ÙŽ@!ÞÆˆŒKsœ}ßŽÎ‡Š–}Ègs;º$/¬Tqöu;ºüvùöÚÒ„àŒÈ¹T1ó¥â×üU›| åæ8W{ŒzÛ×k$èc&u;ºÜÏ‘ ß ÙΈŒ‹çžTœáŽr»jTó^HzèJrŹڶ“¿?€ä"8#r.Ÿ*Î>Iúó‘¯ÔâÀ¨ç8»^ñ´µ@2ŽŠs5S5$Á‘sáäQX¹ ëÂQoG÷ UÕnMæzè-'èvtA§’¸´]-»j$õyEpFd\šªQøymŠs;º$W }ݲ«ØTœ4, ò¸®nGWxœzwÕðíµ ¤ Á‘s¡âRjŽsXªYn*·8°šŠ³vÄù Rqr¿¨*ÄRŽ¥ IDATÎ寫–_¸ãvœª¢…éË%·á®Rsœ«­þú¸*-,u¿¤WœóÿÊÀÏ ¹ΈœKÀ§Å>ô!'é}ÉWjW4-´µ]ãD±¯Þ©’‹·1"ãÒçR‹}ÙŽÎ‡Š–}‚-LÃgÛÑ厤âl{;:sœÙžH>‚3"çR5ѧŠ3Üf«âì+[ÛѹZqf;:ÀgDÎ…“Gaå‡ÅK±×Xµ Å’¼80êíè +Îõ²¹]XÛ^ˆÁ‘qiªFáçI_èSÅÙ·_J-¬v[’ç8¶£[‹mMI)uœz¦jÔÛ&ñ"8#r.œ¼}ÝŽî)µ8°ÚŠsҟߨ*Î6·£+õxõLÕHúó¤Á‘a;ºð¸0¶¶ùЩôâÀj*Î>,¬ô¸•^ÃIßŽŽŠ3à‚3"çRÅ%œ}Ø&*éÕ,ßÃDþóSíB1ç¸æ8KÁ³R]Z(UÿKÛÑ~àmŒÈ¸4ǹÔâ@_¶£ƒ;ÊÍq®f;º¤ Ò× U\—¶£ Òžœü©><Ÿ@Zœ9—ª¢>mG—ô>äó©/åæ8Wם$©â\Kpv}üCpFd¨8GÇ‡Š–}‚-ôyŽsÐ÷}Ðû%µâœß._^Û@œ9—ª.>Uœ}‘ôç¢PÅAŽáÛ¸r±â\ê8õLÕlgDÎ…“‡¯Ûѹ0¶(®°Âõvtq.”‚=®íè +ε ²]îëÕLÕà= $Á‘qiªFáç¹êŸ/ÛÑ%Oá¢ÔTj·£ËIúç°·£+¬ì†¹TýT ›m=‚3"çÂÉÛ׊s’ù&JíªQík#ÉÏo¾V“ cf«âœCÅ@>‚3"S©¢g¨‚GYq.÷ØIåC${ç¤.,ÖŽR‚¶/‰çüvùòÚÒˆàŒÈ¹Tqñiq Õ,7›f‘¦   ‰¶æO‰K½S5$ocDÆ¥9Î¥¦jø²ÜSX­ö(Iÿ¥(ÊíèªÙꯒRÛÑmO©vH&‚3"çÒ‰Ã§Š³/| åöq®ö…Ç©¶.+ÛÑH‚3"çÂÉ£°ls1Q±Ç‰‚ óWmò¡Rù9ε.LâgÛÑE¹80ŒíèÂú9 :gDÆ¥©…Ÿ'}q /!ÓGA*Îi˜ª‘SnªF¹1 ú~ruq`Ü¿¸°ƒàŒÈ¹|ÝŽÎ…±­•¯A¢Ø4‹jç»&yq ¼Rœ»o©¯'y;ºÂˬH&‚3"CÅ9<¾…NÃ…­íè’>ǹ֊scHnWœ«yθ‰àŒÈ¹pòöµâ ÷«¤ÖRqNªJ•ä|åÆ$égvÕü@pFdÊÍYŒ« …»j„Õ¦¨ûšä ç_$ÂPnq`á}ÊIúâÀJ[Íχ$VœÃj€h¥28ïÚµK3gÎÔàÁƒÕÔÔ¤1cÆèÁ¬ø} .TCCCÑmÛ¶EÐr?¸TqÉç¤_˜€“°»lmGçÒû& ¶¶£³y¡‘J;|äþ­eq €dêwâpöÙgëÅ_Ô-·Ü¢O}êSZ²d‰¦M›¦ŽŽM›6­â÷/\¸PÇïr[ÿþýÃj®7\šã\¸]áça=N˜ø3°›Š-,ÜŽ.Š]5âž*P©¯…í+Vò~*\„Wë{¯ÜÏ+ÛÑñË.L© Î=ö˜V®\©¶¶6þù’¤ &hË–-ºêª«tþùç«¡B¹bäÈ‘:á„¢h®—\ w\ÅMI>Š)6Ç9(Ÿ–c£}6+Îå£Þ©’)á ®Þ²eËÔ·o_{î¹]n¿è¢‹´uëV½ð aŒ‘ñ-©DÈ…“G©ŠsXƵ¾¾¥J-¬f[ÒÇ&êíèl¾ïX _ê‚óúõë5bĈnUåÖÖVIÒ† *ãÌ3ÏTÏž=ÕÒÒ¢sÎ9'Ð÷À­©9a-Œz!¤ /mó¡R°9Î,´»]Û¾±)…S5vìØ¡aÆu»=7GyÇŽ%¿wðàÁºþúë5nÜ8õíÛWëÖ­Ó¼yó4nÜ8=÷Üsáå¹Pq)ÜŽ.Wý³}2‹ºâìÂØ¢«bÕ¨ö’ÛIžãÇvtQVœ¨8i’ºà\‰'jâĉŸ;Vgu–†®k¯½VË–-+ûý3gÎÔa‡Öå¶iÓ¦Z誢¥Úà[Å9É| Åž›z.¹ô±©§âä}j³â\ª=lG_´µµ©­­­Ëm;w5ɺàÜÒÒR´ªÜÞÞÞùõjqÄ:õÔSµfÍšŠ÷?>‹ å։ߗŒ}ð™­Åµr}q`_‚'ì~Ú˜ª¸ Xñ^Ò‰'žS‹Ü—º·ñ¨Q£´qãFuäÓ߬[·NRvÇŒZd\>#9Â¥9Î>nGWìñ“̇>H¥ç8W»]¹Ïƒ¶#Ί'ÛÑÙi€x¥.8O:U»víÒC=Ôåö… jðàÁ;vlUÇÛºu«V­Z¥“N:Éf3½æÒï¾Tœ9 »+ÈâÀ ’þ ‚íè¸.uS5¦L™¢‰'jÆŒúë_ÿªO|âjkkÓã?®%K–tVŽ/¹ä-Z´H›6mÒ!C$Igu–&L˜ Ñ£GëCÑúõë5oÞ<544è†nˆ³[‰âÂÉÃ×íè\ÛZùþ]YX؆(E¹]aŹ^6·£«æ9à¦ÔgIzøá‡5{öl]{íµjoo׈#ôÀè¼óÎë¼OGG‡:::ºì×õ!8#2.,`KËâÀ$ó-X”ZXÍ6vÕÈ {q`µ /˱½o¿ÜiDpFä¨8‡Ã…qEq…ó“+UWmsaq`Ç Ò¾$VœÃÞö@tΈŒ‹çœ\õг| åæôI›rçJŸÝŽ.ŒÊ®Š3@’àŒÈ¹Pu)lƒ/g¸§ÜâÀZç8×Ò)Þ×H½sœƒÇÖ%·ËYá0µìª ™ΈŒËgßæ8'±šåCŠ)zk­8¹±ï¯ö1m ò¸¶æ8»Xqæ(€?΀¨!<•¦=FR_£6bÐíè¾Ј©’‰·1"SøçÊ8+Î¥¦jØ®NEÙW_þ ìK?ò›ŸœßÏj^µŒ S*õµpªF¹p‚Tœmü©ÔqêÙUÃö_·D‹à (ù• NÂî*U-NËP‚ªÔÇ cÀP„)áqIäBE‘ňJ¹9ÎQ-tAš·£s¡âÀ‚3"ãÂâ/&‡}‚Uœ}_X¬-•n¯uq Í  ”jÛÑéEpFä\¨ºøZqŽ{\Ñ]áÖeùÿc;º¸ç8—bk;:[çJÛÑQqÒ‰àŒÈ¸P z‚³ý8QWœ“¨TÀôA½çJÇr]”ÛÑEQq–ØŽH+‚3R/‰A¤_úá› û8×zŒj¾¿ÚÇ´ÅÖ/AÇ WqÛÑéÅÛ‘)¬(º²]îd–ôíèŠ=~ù¶]W¹9ÎAûêÃç Ûѹ_¥÷S®âÌvtÂ@pFêùP©å$ì.*ÎI`k;:+ÎlGøƒàŒHåŸlânGa[Xè_ú!Ù_XËØ¸°8-ÊÅ6ûisq ÍmòăàŒÈ¸º80Š…D,L7›‹káÒP‚öµžÅaŒ­­©¶Û ZgDŠŠsxâSÇP²lTŠƒŒ™­±²¹]þT¤?@Úœ*ÎáqalëåCŠ)·80ÿ>Õ#I‹ƒ¶=ÈvtA¸\qæ(@òœ)+Îù»j„ù8a£šå¦R󓣬8'aŽsî>¥îtîr½óÁ‹µ©Üc44p MΈŒ Å´Tœ“Ì·pQ깩µâœô±©´]¥ûUúºÍ  ”:Ž]5|zÏiBpFê%=ˆÀ}õnGW/—–âóvt\ðocD¦Ú“MXmÈ=~±ÅI¾ŠoÕ,ú q”œJ}-œŠQî(從_q¶ñÞ+öx…[ r =ÎH=—«pAqv@ Î׊3@üApF¤\™§éëvtqk=J]($éJÍO®æbi¹J¥ûiaŹV6·£saüØApFd\]öÖU6ôñàŽJSÊÝ'ÿëa…À°…µ]¹ã°€°œ)*Îá‰{LQZ©©iz΂n#Wïvt¶*Î9Tœä#8#2®Vœ}ÜŽ.ÉÕ,ßO•[˜ŸjŽ‘ÄÅÕ>n­ÛÑÙ¬8³€Bg¤ž/ ªYn*w”ZŽQ—_#6·£ »lG¤ocD†íèÂã[õÊÕpW ÛÛÑÕ³80N6¶£ ²[~Å9ÌíèêªáÂs zg¤žO! î ²80È1’º80¨ ç Ç¢é'ÛÑéDpF¤\\˜_ óqÂ÷˜ÖËç \¥Šsík=‹sÕÆ{ºR¯uªFšžsÀGgDÆ…l,Lú »ŠÏ‹mmGWìþ¥n ó=]øÕNÕ°Ý.Ñ"8#R.Vœ}ÚŽ.îqµÁ—~䔚ŸÌPº²±]ᔈzûZìñj Îùíòéµ ¤Á‘q¡*êkÅî £âœdåúj«âæPê©8s ùΈçðÄ=¦(®T@ªµâ\Oâ|©8—»_çbǨwªïS ÙΈŒ UØb™ôKn—«¼%™}È©·â\(IsœKµ¥Øí•ÚWéë®Vœ¹ à‚3R ÂdªF­Çð‰íè¢ØöÍÖT ÉÄÛ‘á(áJúŸóÇ(Éý(dq`T@qaq`¥¾–º_ ¤ÔzÞ{…¹\Å9؃+è8pÁ©—ôÆ Øm.Tœãœã´í6ªêQôÓÖT ÉDpF¤Xž¸ÇÔ_ú‘ãÂâ@D¹­‹ÙÚŽ.¿žôçH;‚3"ãêâÀ¤oGÇâ@÷±8°òã&í(9Õîªa»]¢EpF¤\¬8ûtÉí¸ÇÕ_ú!q”œ ëRŹØ1ØŽH7‚3"CÅ9T®ÜÆPºŠb;º(*ÎlG¤Á©çK ñ¥¾)z«Ùš,É‹ƒ²¹]˜Û¾±n¼¶£ ‡/sœ]ø‹DJõ£š­Éªÿ[ª qV<+õµÒvsÕlGgã=]ÍvtµLÕðåõ ¤ Á©çr~¨·âœdQN3qõ(lGø#%?ºá ú´]Üãjƒ/ýÈ)µ°¯š~¦aq íèŠ]¥lG Á‘qáOñÅ3¿òÇâ@ØæÂâ@—æ8‡¹80ÌEx¶¦jØn€hœ)*Îá‰{LQ\¹ÅµTœ“ÊÆvt•Žc»â\îµNÕHúó¤Á‘qµâìãvt>T³|èƒT~q`¥ûä=é‹+=n¥>×+Îaüu @´ΈçðøTÍò¥9Å^cµÎwMëç lj¢âÌP€t#8#2TœÃáKåÊ—~raŽsœ‚¾lTœmVÖKµÛÖ®¾¾Þßœ‘zI $H†rsœë=F5ß/¹[m¶…  [*߯»víÒÌ™35xð`555i̘1zðÁ}ï¶mÛ4}út 0@ÍÍÍ?~¼žxâ‰[ì‡Â-µÂ®¸´µµmCîñsmÉÿ³®íŠsîq¢¨.¹PÍ*6æÕÊõ׊\¹Šsо–ª¶oæ8Wêk œTúºÍ  ”z¼Ÿþ´­êÇà(õ±ñs°%•Áùì³ÏÖ¢E‹tÝu×é—¿ü¥>ûÙÏjÚ´ißœûöíÓi§¦'Ÿ|RwÜq‡yä 4HS¦LÑÓO?QëTжI¯8»tæ×]©çÇFÅÙ§ñRU¯ôõ(*ÎË–Uœ¹J}|z#ùzÆÝ€¨=öØcZ¹r¥ÚÚÚtþùçK’&L˜ -[¶èª«®Òù矯†?uï»ï>mذAÏ?ÿ¼ÆŽ+I:å”S4zôhÍš5KkÖ¬‰¬IÅâÀðø´ðÈ—~ä{Õú|¥qq`~0 ²8Ðæ{ÚÆvt\ðGê*ÎË–-Sß¾}uî¹çv¹ý¢‹.ÒÖ­[õ /”ýÞáÇw†fIêÑ£‡.¸à­]»Vo¾ùfhíö‹ÃáRÅÝ™ãÕâ@B[Ð×kþý‚N5)Vqë=]ëT Ûí­Ôçõë×kĈݪʭ­­’¤ 6”ýÞQ£Fu»=È÷"‹ŠsxâSdŽs­Ç¨¦ q‹r;º0+ÎlG¤[ê¦jìØ±CÆ ëv{ÿþý;¿^J{{{çýªùÞ½{÷J’n¿}£ ªºÉÞX»V:p@zé%iß>éñǥݻÃ{¼õëwê_þå¥.·½ñFöß ¤ööìÿß?Û¦·Þ’Þ|Sú—©ÿ±ßy'ûïÿüOö¸ù‹ãóÁÙ7o–³ÿÿ÷—–. çñÊ)6æAmÛ–ý÷ÕW¥;³ý kÌ¢´fÔ£Gö5öÇ?~xûï~'½ûnöÿmmÒºu¥ñúëÒöíÙc¼ñ†ôÞ{Ù± :Þo½•ý÷ÕW¥¿ý8ÒO~"ý¿ÿWc§ª{ßÿæ7ÙÏ.”ž¾ûýÞ}7ûþ[¿>ûùÝwK=–ý®’üÚkRssöÿ³gK}út=FîGðÿüOökH?ÿyöýW­çŸÏÞ³Ÿß~»4hôûßï”ô’þô§ìó±c‡ôç?—­æúôòËÒïŸýÿÍ7K--Õ·+êù¹‚êõè‘}ÑïÙ³'æ–8ʤÌ'?ùIsÆgt»}ëÖ­&“ɘyóæ•üÞÆÆF3cÆŒn·?÷Üs&“ɘx è÷-^¼ØHâƒ>øàƒ>øHÄÇâÅ‹k[K]Ź¥¥¥he¸ýoåÇ–2%€–––ÎûUó½“'OÖâÅ‹5tèP555ÕÒl€ÐíÝ»W›7oÖäÉ“ãnŠ“RœG¥¶¶6uttt™ç¼îo'9rdÉïmmmÕ+¯¼ÒíöJß{øá‡ë+_ùJ=ÍˆÄøñããn‚³R·8pêÔ©Úµk—zè¡.·/\¸Pƒî²cF±ï}õÕWµvíÚÎÛ8 Å‹kܸq:âˆ#Bk7â•1Æ…õÖÑš¡¶¶6Ý{ï½Z²d‰¦M›&Iºä’K´hÑ"mÚ´IC† ‘$íß¿_'žx¢þú׿jÞ¼y0`€îºë.ýâ¿ÐÊ•+uòÉ'ÇÙ-„(uS5$éá‡ÖìÙ³uíµ×ª½½]#FŒÐ< óÎ;¯ó>êèèPþïZµj•fÍš¥+¯¼Rï¿ÿ¾ÆŒ£åË—š<—º©’ÔÜܬùóçkëÖ­Ú»w¯^~ùå.¡Y’,X ƒêè£îrûÀµpáBmß¾]ï¿ÿ¾ž}öYýÃ?üC·Çصk—fΜ©Áƒ«©©Icƌу>j¿’l×®]š5k–&M𤍡¡AsçÎ-zß—^zI§Ÿ~ºúöí«~ýúéœsÎÑæÍ›‹Þ÷?þã?4|øpõéÓGÇ{¬®¿þz8p Ûý¶mÛ¦éÓ§kÀ€jnnÖøñãõÄOXí£kV¬X¡iÓ¦éØcUcc£úõë§3Î8CÏ>ûl·û2ævüæ7¿Ñ¤I“4dÈ566ª¹¹YŸùÌgtÏ=÷t»/cŽ{ï½W êÛ·o·¯1æv¬^½Z E?ò§:JÒÊ•+uÒI'©¹¹Y ÐE]¤·ß~»Û1?øàÍ;WC‡UŸ>}4bÄÝyçEÓ¦M:ûì³Õ¯_?õíÛW“&MÒË/¿J_]òÌ3ÏèóŸÿ¼ú÷ï¯ÆÆF 6¬Ûy”ñ¶ æ]=¼5qâDÓ¯_?óÃþЬ^½Ú|ík_3™LÆÜÿýq7ÍI›7o6‡v˜9å”S:ÇjîܹÝî·qãFÓ·o_3a³|ùróðÛ‘#GšÁƒ›·ß~»Ë}o¼ñFÓÐÐ`fÏžmžzê)së­·šÞ½{›K/½´ËýöîÝkFŽiŽ>úhsÿý÷›•+Wš/~ñ‹¦W¯^æ©§ž µßq:÷ÜsÍ)§œbîºë.óÔSO™GyÄL˜0ÁôêÕË<ñÄ÷cÌíY½zµùÖ·¾exàóì³ÏšÇÜ\tÑE&“ɘo¼±ó~Œy8^ýus衇šÁƒ›¾}ûvùcnÏ“O>Ù¹½ë /¼Ðåc×®]÷[½zµéÙ³§™:uªY¹r¥Y²d‰9ꨣLkk«Ù·o_—c~õ«_5}úô1·Ýv›yê©§Ì5×\cÌM7ÝÔå~Û¶m3Gy¤imm5Ë–-3=ö˜9ùä“ÍG?úQóûßÿ>’þÇaÉ’%¦GæË_þ²yôÑGÍ3Ï}ú˜¯ýë]¾ÿ¦›n2 æw¿û]çm?øÁL&“1kÖ¬é¼íÀæ¸ãŽ3cÇŽµÙ5§¼õÖ[ÝnÛ»w¯9ꨣÌé§ŸÞyc¾Ï}îsæè£îüœ1ÇYge¾øÅ/šéÓ§›|ä#]¾Æ˜Û“ Î?ýéOËÞﳟý¬9rd—sbîºwß}wçmëׯ7 Ý®³p饗šC9Ä´··wÞvÕUW™Þ½{›×^{­ó¶¿þõ¯fÀ€æüóϯ·kNzýõ×Mss³¹âŠ+ÊÞñ¶ƒà‚¯~õ«æ£ýh·€ÜÖÖf2™Œyî¹çbjY2¼ýöÛEƒó|`šššŠ^„fòäÉæSŸúTçç‹/6™LƼð ]î÷æ›ošL&Óå·æÓO?ÝŒ1¢Û1o¾ùf“ÉdÌÖ­[ëíR¢œvÚiføðáÆÆ<*_øÂ:ƒ3cŽŸüä'æÐC5o¼ñ†¹ð »gÆÜ®\p~衇LGGGÑû¼þúë&“ɘ[n¹¥Û×>ýéO›I“&u~~ã7šL&Óí—ý矾Û_r‡ Vô"g—]v™9äC¼,\]wÝu&“Ét ¯…o{R9Ç9lëׯ׈#ºì-e÷–¤ 6ÄѬÄûÓŸþ¤½{÷jÔ¨QݾÖÚÚª?þñÚ¿¿¤ìs»=ßG¡Ã?¼Ës°~ýú’Ç”Òõ|½ûî»zñÅuÜqÇIbÌÃbŒÑ´sçNÝwß}Z¾|¹þõ_ÿUc†·ÞzK3gÎÔ¼yótä‘Gvû:cŽ3f¨W¯^:ôÐC5eÊ”.ë'rãXj|r_ÏÝwàÀ8p`·ûIŽãž={´iÓ¦’ÇÌ}Ý7O?ý´ZZZô»ßýNǼzõê¥AƒiÆŒzï½÷$1Þ6œC°cÇõïß¿Ûí¹ÛŠ]¹•åÆ­ÔØcôÎ;ïtÞ·wïÞE¯Ôد_¿.ÏA{{;Ï×ß\qÅÚ³gfÏž-‰1ËŒ3ÔØØ¨þýûëë_ÿºn¼ñF]yå•’ó0\qÅú»¿û;}ýë_/úuÆÜ®~ýúéꫯ֢E‹ôÜsÏéî»ïÖ¶mÛtÊ)§èñÇ—TyÌóǦÔ9µ¹¹Y÷}çwdŒIݘ¿ñÆÚ½{·¾ô¥/éâ‹/Ö¯ýk]{íµZ¼x±>ÿùÏKb¼mJåvtº›3gŽî¿ÿ~Ýyç3fLÜÍñÚìÙ³u饗êÝwßÕ#<¢k®¹F»wïÖu×]w™“(^qIDATÓ¼óÐCéÑGÕoûÛ¸›’£GÖèÑ£;?ÿû¿ÿ{}á _Pkk«®¾újMš4)ÆÖù§££C{÷îÕÍ7߬o~ó›’¤qãÆ©gÏžš1c†÷»¸DŠsZZZŠþ–ÕÞÞÞùuT/7n¹qÌ×ÞÞ®L&£~ýúuÞwß¾}Ú»woÑûæ?---%™ÿ¸>›;w®¾÷½ï馛nÒå—_Þy;cŽ!C†è„NЩ§žªïÿûúÖ·¾¥o¼Qo¾ù&cnÑ®]»ôo|Cßüæ75hÐ íܹS;wîìœvñî»ïj÷îÝŒyš››õ…/|A¿ýíoµoß¾Šc~øá‡w~^Ꜻ{÷níß¿¿óXýúõS&“Iݘçú4yòä.·O™2E’ôòË/wŽ'ã]?‚sF¥7ª£££ËíëÖ­“$92Žf%Þ'>ñ 555é•W^éöµuëÖ铟ü¤%}8«ð¾ùË_´cÇŽ.ÏAkkkÉcJþ?_sçÎíüøö·¿ÝåkŒy4N<ñDuttèµ×^cÌ-Ú¾}»¶mÛ¦Ûn»Mýû÷ïüxà´{÷nõë×OÿüÏÿ¬aÆ1æÊd2}/5>…ãøöÛoë­·Þêv?éÃqljjÒ°aÃJóCѱÇk­®8þøã%©ËÛò?g¼-‹mY¢Ç–/_n2™ŒyðÁ»Ü>yòdsÔQG•\eŒ¬R»jcÌùçŸo Tt˨k®¹¦ó¶ööö¢«äo¾ùfÓÐÐ`6nÜØyÛÝwßÝm•ü|`Ž;î8sÒI'Ùìšs®¿þz“ÉdÌœ9sJÞ‡1ße—]fzöìi¶oßnŒaÌmÙ»w¯Y½zµyê©§:?V¯^m¦L™bšššÌSO=e6lØ`ŒaÌÃöÞ{ï™cŽ9Æœp ·;Ö´¶¶vÙy!·sÃþçvÞ¶aÃÓÐÐÐmGˆË.»Ì477›wÞy§ó¶«¯¾ÚôîÝÛüùÏî¼-·=Ú´iÓÂèZìV¬Xa2™Œ¹ýöۻܞÛñ™gž1Æ0Þ¶œC2iÒ$Ó¿sÏ=÷˜'žx‚  ðØc™¥K—šýèG&“ɘóÎ;Ï,]ºÔ,]ºÔ¼ÿþûÆc^}õÕ¢)8ꨣ:CGÎ÷¾÷½Î‹¬^½ÚÜzë­¦OŸ>æ²Ë.ër¿}ûöu¹HÁŠ+ÌÔ©SMcc£yúé§#ëÔn»í6“ÉdÌgœaÖ¬Ycžþù.9Œ¹=—_~¹ùÎw¾cyäóÌ3ϘŸýìgæÂ /4™L¦Ë^ÁŒy¸ ·£3†1·é /4sçÎ5¿øÅ/̯ýkóãÿØ´¶¶šÆÆF³jÕªÎû­^½ÚôêÕËœ}öÙfÅŠfÉ’%fÈ!fÔ¨Qfÿþý]Žùµ¯}­ó‚«W¯6ßùÎwLCCC— |“-¼yä‘fÔ¨Qæ¿þë¿Ìc=f>÷¹Ï™C=ÔÛ rcÌ?þã?š¦¦&sÛm·™§Ÿ~Ú|ÿûß7ÍÍÍæŸþéŸ:ïÃxÛApÉ®]»Ì·¾õ-ó±}ÌôîÝÛüñÝ*ÐèjèС&“ɘL&cºüË–-÷ûïÿþosúé§›ææfs衇š³Ï>ÛlÚ´©è1ï¸ãóéOÚôîÝÛ :ÔÌ;×8p ÛýÞzë-sá…š––ÓÔÔdÆßå¼N9å”.ãœÿÑÐÐÐ後¹÷ÝwŸ?~¼éׯŸéÑ£‡éׯŸ9õÔSÍ’%KºÝ—1ÏôéÓ»]9ÐÆÜ–›nºÉŒ=Ú|ä#1=zô04çœsŽyñÅ»ÝwÅŠ椓N2MMM¦¥¥ÅLŸ>½Û•ÉV꯻î:sÌ1ǘ޽{›áÇ›;ï¼³èãÿéO2S§N5‡z¨inn6'N4/¿ü²õ~ºdÏž=æÛßþ¶9úè£M¯^½ÌСCÍìÙ³»bÆ»~c &Åè†Å@g ‚3Á€à @p 8œ€Î@g ‚3Á€à @p 8œ€Î@g ‚3Á€à @pøÿ· ¹rK8IEND®B`‚HTSeq-0.5.4p3/doc/tss_fig3.png0000664000175000017500000006522212110432433016517 0ustar andersanders00000000000000‰PNG  IHDR,dóò¥(sBIT|dˆ pHYsaa¨?§i IDATxœìÝy|Tõ½ÿñ÷$1 $ {Ã&k‚1l¢XTô J{¹µB]ÚÂJo]p¥±€´Å^.¢í-h©åQêÅnY”¥h-D!DPYdc'!0¿?¾N ËÌ|Ïœy=ß“3gÎù ñ!yç»y¼^¯Wà@¶ €Ë!°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p, Ç"°p,×–wÞyGcÆŒQûöí­„„ 6Lÿüç?+]7vìXEDDTùÓ­[·*÷<þ¼233•’’¢ØØXuíÚUsæÌ©öù{÷îÕ¨Q£” øøxÝyçúøãòY·‰²]@ Í;WÇŽÓO<¡îÝ»ëøñãzùå—5hÐ ­^½Zƒ *»6..Nëׯ¯ôþ¸¸¸*÷?~¼,X ©S§ªwïÞZµj•{ì1.\XªsüøqmÙ²EÝ»w¯tþìÙ³jÑ¢…¢¢¢Ô¦MMœ8Q………•®Ù±c‡š7o^%¥¦¦J2=0¾{íÝ»WiiiUžŸššZö:€Ësý–êL˜0AgÏžÕ³Ï>[v.##C}úôQZZš<6lØ 3fhíÚµÚ¼y³6l(IÊÏÏWbbb•{6lØPÑÑÑÊÏÏ—$ÊëõV{­ï\~~¾:vìXåõ¼¼<­^½Z)))ÕΡ€ó={Vû÷ï×]wÝ¥¦M›Ú.'d…]`yþùçõç?ÿYsæÌQzzzÙù‰'Vºî–[nQzzºFŒ¡yóæé±Ç Z«W¯Öƒ>´ç p,X ï~÷»¶ËYaX2335mÚ4MŸ>]ãÇ¿êõwß}·ôᇖKJJÒ¶mÛª\{úôi•””())I’” Ç£‚‚‚*×úÎù®½T»ví$™ÿ¸»vízõ+&Mš¤Y³fÙ.—Á÷Çùø9ß#çã{älŸ}ö™|ðÁ²ŸíP7aX233ËþLž<¹Æï»t~jjªÞzë-9rD-Z´(;Ÿ-IêÑ£‡$³rÇŽµ}ûö*÷ÌÎÎVƒ Ô¾}ûjŸ+IêÚµ«nºé¦׊àjÒ¤ ßãûã||œï‘óñ= ¾ŸíP7a1éþ¿ø…233õÜsÏéù矯ñû–/_®¢¢"Ý|óÍeçî»ï>y<ýñ¬tíüùóÕ A :´ìÜÈ‘#µnݺJ«‘þøãúÓŸþ¤áÇëÅ_Ttt´f̘¡’’ýüç?Ö_²\XV¬X!Ç£U«VUÚ#E’<.\¸ Æ«Aƒš6mš>,Ç£””Mœ8QÏ<óL••º^{í5%''ë•W^Qnn®Úµk§Ù³gk„ •®kÚ´©Þ{ï==þøãúþ÷¿¯ÒÒRõïß_6l`—{ \XÖ¯_Õk´téÒß3**JS¦LÑ”)S®zmûöíµxñâß¡c̘1¶KÀðýq>¾GÎÇ÷Èùø!x¼WÚÖVlݺUú裘H¢ø™Î?˜õ À±,Ç;sFÚ¾]Ê͵] Ø\?‡úÒÓ¥]»¤ë®“¾þÚv5€`¢‡àh{ö˜°"I¶µ„  ÀÑ:u*?f³h?@H6L:wN:|Øv%€`"°B /˜víZ»u‚‹Àp¬´4Ó.Y"õë'õì)½óŽÝšÁE`8Vv¶i‡ 3mïÞRN޽zÁG`8Ò¹s¦mÝZЉ1ÇÉÉÒ¡CöjàH¾`2~ù¹ädéÈ©´ÔJI ,Gò–ääòsÉÉÒÅ‹ìxá„Àp¤ƒM{i`‘¤7ß”¼Þà×> À‘”6”7.?ç ,Ï>+­Ze§.@pXŽtð  (Où¹¤¤òã3g‚_ ø,G:xЬVQÅð’ŸÜzvXŽtèPåù+>¿ùi n=;,G:vLjÞ¼êùŸþTêÖÀá‚Àp¤üüÊsV*jÞ\:z4¸õì °Çë• .Xš5£‡Âà8'NH.H‰‰Õ¿N`€ðA`8Žo°+õ°0$ Âà8W ,-Z˜ÀrñbðjØA`8NAi/XZµ2CÆòò‚WÀ Àq|=,—›ÃÒª•iN={,ÇÉÏ—bb¤ ª½eKÓXÀý,ÇñíÁâñTÿº/°äæ¯&€€ã\~8˜dz_éa€p@`8Εv¹÷iÕŠÀá€Àp À‡Àpœ« “,.,Ç¡‡àC`8Nm‹×œšvXŽRZ*?^³!agÏJ'N§.€€£š¶&=,ÃÂÀí,GÉÏ7- XSP`Z @"°Æ×Ãrµ9,I J¹¹¯ `à(5 ,K@8 °¥ @Š—¢£¯~-ÜÀp”üüšõ®H€£ÔdÓH ¸à(@9 ÀQj;$¬¨Èìxp' ÀQj;$Lbicp3 ÀQêXîE`8JAA톄Ip3 À1ΓΜ©yKb¢Ù¯…ÀîE`8†o—ûšGjÙ’ÀnF`8FAikX$X˜tîE`8†¯‡¥¦sX$öb·#°£¶CÂ$ ¸àf^J“&5ÜÀpŒü|)!AŠ¨Å¿N­ZIGJ¥¥« `àµÙ4Ò§MÉë•öî LM»,Ç((¨}`¹õV³ËÊ•© `àùùµ[!L’5’22¤-[SÀ. À1ê2$L2!çÄ ÿ×°ÀpŒº “¤Æ¥“'ý_À> À1ê2$L’âãéa·"°Áë­û°Æ ,àV€#œ:eöR©K`‰gH¸àùù¦­K`ñmyö¬kØG`8‚/°ÔeË7J/JÙÙþ­ `àõéaéÑCŠŒ”>ùÄ¿5ì#°¡ À´u ,qqÒ 7HÛ·û·&€}€#äçK×\#5lX·÷wê$íÝëßšöXŽà[ÒØã©ÛûÛ·'°€XŽPPP· ÷>íÛKûö™É÷÷ °!/OjÖ¬îïïÐA*)‘ð_Mû,GÈË“š6­ûû;v4íž=þ©à €#Ô7°´kg–6Þ½Û5ì#°¡¾åšk¤” ¸ àõ ,’YÚ˜ÀîB`Xwö¬tú´Ë–-ÒÑ£þ© ``]~¾iëX:v”’Z´¼Þú×°À°./Ï´õ ,:”oÙR¿{œÀ°Î_¥{÷òã7߽߬Î@`Xç ,IIõ»OJŠÙ<ò{ß“¶n­wY °¬;vLЉ‘5ªÿ½®¹FJN6sY¡À°Î·¤±ÇãŸûµnm ï ôXÖùc–Š’“ÍаÂBÿÝ``ݱcþ ,íÚ™öóÏýwO€€uþ,Ý»›¹,}ä¿{ìpu`yçw4f̵oß^ÑÑÑJHHаaÃôÏþ³Êµ[·nÕ!C¯„„ÝÿýÚ·o_µ÷}å•WÔ¥KÅÆÆª}ûözñÅUZZZ庣GjìØ±jÖ¬™6l¨þýûkݺu~ÿœêŽ“š7÷ßý¢£¥ÔTV 7pu`™;w®rssõÄOèÝwßÕ›o¾©³gÏjРAZ¿~}Ùu;wîÔÀUZZªE‹é7ÞЮ]»4`ÀåùÖÚüÆ´iÓ4iÒ$=ðÀZ³fƯéÓ§k„ •®+..ÖàÁƒµ~ýzÍž=[Ë–-S‹-4tèPmܸ1(ŸB…¿‹$edXÀ ¢lHsæÌQóKþ¼óÎ;Õ±cGMŸ>]ƒ ’$½ðÂ Š‹‹ÓŠ+Ôè›55322Ô©S'Íœ9S3fÌ$åççkêÔ©zôÑG5uêTIÒm·Ý¦óçÏë¹çžÓ¤I“ÔµkWIÒ믿®œœýë_ÿRß¾}%ITÏž=õä“OjÓ¦MAù;§»xÑLºoÖÌ¿÷mß^úë_ý{O@𹺇åÒ°"I111êܹ³8 I*--ÕŠ+tÿý÷—…IjÛ¶­ ¤%K–”[µj•Š‹‹5nܸJ÷7nœ¼^¯–.]ZvnÉ’%êÒ¥KYX‘¤ÈÈH=øàƒÊÊÊÒáÇýö9 ”˜Ðâï–æÍͽϟ÷ï}ÁåêÀRãÇkË–-êÞ½»$é‹/¾Ð¹sç”––VåÚÔÔTíÙ³G%%%’¤;v”¯¨eË–jÚ´©rrrÊÎíØ±ã²÷”TéZgÇŽ™Öß=,¾û]2²bÂ.°L˜0AgÏžÕ³Ï>+É ó’¤ÄÄÄ*×&&&Êëõªð›…üóó󣸸¸*×&$$”ÝK’ .{ÏŠÏ€p¨Àâë±Ù¿ß¿÷—«ç°\êùçŸ×ŸÿügÍ™3Gééé¶Ë¹ªI“&©I“&•Î3FcÆŒ±TøŸosÇj~ÇS/¾ÀÒ¿?;Þ¼… jáÂ…•ÎYªÆ]Â&°dffjÚ´iš>}ºÆ_v>))I’é¹TAA<Ê®-..Ö¹sç[åÚÞ½{WºïåîYñ¹W2kÖ,ÝtÓM5øtº|ÿž_òû™z«ØcSTäÿû@EÕýRyëÖ­ÊÈȰT‘{„ŰÌÌ̲?“'O®ôZ‡§íÛ·Wy_vv¶:uê¤èèhI*›“réµ¹¹¹ÊÏÏW=ÊÎ¥¦¦^öž’*] ᬰPjØÐlôèO –ïÙãß{‚Çõå¿ø…233õÜsÏéù矯òzTT”î¹ç-^¼X§N*;ÿÕW_iýúõ5jTÙ¹¡C‡*66VóçϯtùóçËãñè¾ûî+;7räHíܹSYYYeçJKKµ`Áõë×O-[¶ô㧀ШÞGjÐÀõ•ÿïW {ùå—5eÊ :Tǯ²÷I¿~ý$™˜Þ½{kĈš^oàŸð  LQQp /(üüIš7O0ÀûÂKI‰ôÐCÒ§Ÿþù€º#°´b…Yú7!Aš=;xÏõ ´´4éW¿2LJ›vÞ<é7Ì€sXúïÿ.?ž??xÏÍÏN‹$µjeÚC‡L»|¹i}+•œ‰Àan÷niãÆò¯?û,xÏ.,,߉>ÐZ¶4­¯‡e÷nÓîÜœçê†Àanùr)2R:sFJO—Z´Þ³7›:CLŒéÍùê+3eß>éúëM`a">8Â\v¶Ô½»'=û¬ùþàÁà<ûĉÀïÁRQß¾Òï~'µm+]¼(azyòò‚W v,ævìRSÍñ-·˜öºë¤Í›ûÜ‹¥“'ƒ×Ã"IwÜa†„9b¾¾çÓ2, œ‹ÀaìÂ)'GêÑÃ|í›ç!IO=ØgŸ:eÚ`ö° RùëÛn3›V¾ûnùd|€³X ŒíÛ'=[ÞÃR‘¯"PŽ7m0K÷î•¿Ž‹3“þ_|Q;6xujŽÀaløpÓúzX$©iSÓ8`†mʉ¦ f`ñx¤ ¤¿ü¥|žNƒ¦Ý¸Ñ„7€³X LJ»v™ãŠCÁÖ­“î½× ßëà ,ÁœÃ"Ißý®ôïH­[›¯W®4›GKï¿ÜZWG`€0µe‹iLσOjªôæ›æÜ¦M{¾–êtïn†ƒµli沜…Àaê“O¤Fª_Ò÷Úk¥nÝXlÌa¹ÇLÈ_½ZÊ͵]  " „©¯¿6'F\æ_‚~ý‚ÓøgÔÆwHÛ¶I­ZIçÏÛ®àC`€0uà€Ùoårúõ3›Jú–ö·'LX¹\` ¶ÁƒË¿üÒ^€ÊòÏ Ø”’“/ÿz¿~f•0ß\;~ÜÃÁ|*þ]ìÙc¯@eS\9°tíjz@5,ìÄ gÉô&EDH»wÛ®àC`€0TZj&—_iHXd¤Ô§4wn`ætœ8ü%¯¦aCé†èa'!°@ÊÍ5ý®ÔÃ"™ %÷xÂÿ58±‡E’:u¢‡œ„ÀaÈ7©¼M›+_×µ«i—-ó N›ÃâÓ±#=,à$C99fÈ× 7\ùº‡6óXš4ñ NîaÙ·Ï ›ØG`€0´nÔ¡ƒ{åë"#¥éÓ¥;¤’ÿÖàÄ9,’éa)-eicp  „™_”ÞzKÚµ«f×§§›I÷Ÿ}æß:œ:$¬S'Ó2œÀafÊÓ¶n]³ëÛ·7íW_ù·§ kÓFŠŽf 8ÂHaaùñ§ŸÖì=Í››½Iò_.˜=Oœ8$,2Ò„4zXÀ,FrrÊk"#¥–-ýXN2­{X$–6'!°@ñ–åËk÷¾ädéàAÿÕqü¸iXXÚœƒÀa$'Ç,e}êwŸp ,_}e·wp¹¬,Óöî]¿û$'KùùRqqýk …I÷ññféezXÀ. ¸\V–týõuÛ¥¢Ö­Më9¡ÐÃ"IíÚI»wÛ®Â\lÝ:iæÌú“Ìï’´kWýîS\lö„ …ÀÒ«WyÀ ¸ØÃ›¶®û¯TÔ±£Ô¬™ôþûõ»Ïñ㦽öÚú×h}ûJ99Ò©S¶+€ðE`ó…‚Ÿü¤þ÷òxÌŽ÷_|Q¿û„R`éÕKºxQÚ¾Ýv%¾,àR7JŸ|"½õ–Ô¡ƒîÙ¨‘tútýîJ¥cGÓÖ7¤êŽÀ.äõJO=%edH<à¿û6o.íØQ¿ÝßOœ0mãÆþ©)52Ãéöì±] „/ ¸Ðßþ&mÚ$͘!Eøñÿô?ù‰´w¯´|yÝïJ=,’éea¥0°‡À.SZ*ýîwÒÍ7KC†ø÷Þ={J õ[),ÔKr²”›k» _p™Þ½¥Õ«¥#sÿ¶më·ûûñãR\œtÍ5þ«)®½¶§MÓÖuXX¨ÍaéÓÇ´YYvë€pE`—X»V*)‘FìsÚ¶5m]K¨õ°$'›áuÚ®Â\âóÏ¥ÄDéºëûœÖ­%§îóXB-°DDHM›JÇŽÙ®ÂS”íõsâDyèÛ7ðÏ»æZÂ¥‡E’š7'°€-ô°@ˆ[½ºü¸}ûà<³>+……b`iÖŒÀ¶X ÄíÚU~ìñç™uÝ‹¥´T:}:4ËÑ£¶«€ðD`€—-uíjŽ}+ZZÛ¶Ò—_Öþ}'N˜6 =,`sX ÄíØ! $­Zø ÷>))fHØ… µÛ Ò·c<PSô°@+)1«ƒõèaz="‚ôõvíÌfе]ê7TKr² ,§OÛ®ÂBØçŸ›y!=z÷¹íÚ™vß¾Ú½/TKF†tñ¢4y²äõÚ® BXv¶iƒXRRL.Å7GhÎé¿°[ „ „°]»¤-¤„„à>7.ÎÌë8p vï ÕÀS~ü›ßØ«ÂBØÁƒÁ›h©ÄD©°°vï9~\ŠŽ–bcSS ýð‡¦µõ÷ áŠÀ!ìàA3!܆„„º–Pë]ñùÝï¤ßÿ^úì3éÔ)ÛÕ@ø °@³X¥‚‚Ú½'”‹$õïo&ßoÞl»aô°W×®¦þ>°] „ „¨sç¤ü|zX‚)"BêÓ‡& „¨C‡LKKp]}íWGÔB”o—y›=,áXZµ’rsmWágÌ>± IDATƒÀ!Ê =,gÎHÅÅ5[Ë‘#fò= ð\XN:¥'Ÿ|RwÞy§š5k¦ˆˆeffV¹nìØ±Šˆˆ¨ò§[·nU®=þ¼233•’’¢ØØXuíÚUsæÌ©öù{÷îÕ¨Q£” øøxÝyçúøãýþ9„Ÿƒ¥† ¥Æí<ß·YemzYÜXJK¥¼<Û•@xˆ²]@ åååiîܹºñÆ5räHÍ›7O§Úkãââ´~ýú*ç.5~üx-X°@S§NUïÞ½µjÕ*=öØc:yò¤ž~úé²ëŽ;¦())IøÃ£—^zIÔæÍ›uà 7ø÷Ã+¾Â.ó¿´€KL4mAÔ²eÍÞã–À"I‡Kۭ͛ÂëKJJŠ ¿ùõ_~~¾æÍ›wÙk###Õ§OŸ+Þ/''Go¼ñ†¦OŸ®Ÿýìg’¤Ûn»Mùùùš:uª~ô£)á›_;þú׿V~~¾6mÚ¤6mÚH’n½õVuèÐA/¼ð‚þò—¿øã#S6—4–ÊCÊ¡CR5ÑU\¸`6\tS`éÙÓn-\?$¬"¯×[£×¯tÝÒ¥Kåõz5nܸJçǧ³gÏjÕªUeç–,Y¢Ûo¿½,¬HR||¼F¥åË—ë" ÔÃ×_K×]gïùmÛJ‘‘ÒÞ½5»þÄ Ó†z`iÝZŠ‹“rrlWá!¬ËÕœ={V-Z´PTT”Ú´i£‰'–õÎøìØ±CÍ›7WóKƤ¦¦J2=0¾{íÝ»WiiiUž“ššZö:ÔÕ—_š%vm¹æZ¾ø¢f×?nÚP,QQRF†ôÿWóϨ;× «©ŒŒ õéÓGiiiòx<Ú°aƒf̘¡µk×jóæÍjذ¡$3¬,Ñ7p»‚† *::Zùùù’¤ÂÂBy½Þj¯õËÏÏWÇŽø©¸ÕüùfHXJŠÝ:RRLpª ·IêÛWzùe©cGé*÷€z"°|câĉ•¾¾å–[”žž®#FhÞ¼yzì±Ç‚^Ó¤I“Ô¤I“JçÆŒ£1cƽÎâ•j³‡E2ó9jº‰¢›ˈ&°€ÏÂ… µpáÂJ犊Š,Uã.–+¸û ?ü°ì\RR’¶mÛVåÚÓ§O«¤¤DIII’¤„„y<T¹ÖwÎwíåÌš5K7ÝtS}>ª0UÎzK«VÒæÍ5»ÖMå[ß*?¾pÁÌåÞªû¥òÖ­[•‘‘a©"÷`ËU\:?55UÇŽÓ‘#G*ÏÎΖ$õèÑC’Y¹cÇŽÚ¾}{•{fgg«Aƒjß¾}€ªàfÆ™ößÿÝ I²©U+³ZVM¸)°x<Ò’%æø›‘À€!°\ÁòåËUTT¤›o¾¹ìÜ}÷Ý'Ç£?þñ•®?¾4h ¡C‡–9r¤Ö­[§ÆKœuêê×?nj |]Áà[Ö97×nàva1$låÊ•:}ú´Nž<)ɬäõöÛoK’†®£Gê‘GÑèÑ£Õ©S'y½^mܸQ¿þõ¯Õ£G=üðÃe÷êÖ­›zè!M™2E‘‘‘êÕ«—Ö¬Y£¹sçjÚ´i•æœ<þøãúÓŸþ¤áÇëÅ_Ttt´f̘¡’’ýüç?êßwøë_¥óçͰ°;î°]Må=I:uºòµ¾M#mmtéo-Z˜ö’w€Ÿ…E`?~¼¾üfÇ£E‹iÑ¢Eòx<Ú·oŸ7n¬ hÚ´i:|ø°<RRR4qâD=óÌ3Uv»íµ×”œœ¬W^yE¹¹¹j×®fÏž­ &Tº®iÓ¦zï½÷ôøãëûßÿ¾JKKÕ¿mذ]îÔÉúõRÒ]wٮĨK`q _`ÙºU2Ä=A œ&,˾}û®zÍÒ¥Kk|¿¨¨(M™2ES¦L¹êµíÛ·×âÅ‹k|o¸¯WÊÊ’ÒÓmWR®b`¹·– ¤^½¤É“¥ÄDé‘GlWîÄ$ ¿ú•ùm~÷î¶+)׸±Ùõ=‹$}ø¡të­Òš5¶+÷"°@ˆ˜<Ù´¶÷^©Èã©ùJan ,R¿~Ò{Eÿ#°@(.6Cn¼Qúö·mWSY8É ;rDêÝÛv%àNYYÒ™3Ò믛ßê;IëÖÒ¡CW¿ÎÍE’¶m“Ξµ[ ¸‘ÃþÙT';ÛìaòÍÞ´Žî=,:”?ö˜½:À­,àp^¯4a‚™#m»šªjX¼^©¨ÈE*-«WÛ­܈À÷ñǶ+¸²V­¤ÂBéܹË_³oŸtê”äÖ-¨/–n¾YÊÏ·] ¸nÉÓN›f·ŽËñíÅ’›{ùk6m2í-·¾ÒÒ¤ÿX:}šy,àop0¯WZ´H;VzæÛÕT¯&›G]»šÃbc¥† ͹)SL;mš´u«ô«_Ù«B èÈéúë¥ÿù³‹Ó5o.Ýv›ôöÛU_óõ°8y/ùÃL;bDù¹¿ÿ½ü³GEIë×KÒSOI¹¹æ¼×kÞ{âDpë€P@`:r$ôæ|Üs´n]ÕyÇŽIMš„F𪯱c¥œ饗ÊÏÝv›”•eއ ‘ºt)Í7<샤ü@ºöZ©¸8hå@Hˆ²] ª={¤-lWQ;ÉÉÒùóÒÉ“RãÆåç ½ðUݺU=×® 1÷Ü#ýë_Ò?ÿ)­X!}ú©y}áÂòk÷ï—:wJ©,à0Ÿ|"ýã¡÷Ckb¢i *–cÇÂkþÊåLžlÚîÝ¥‡–îºËLÌïÐAzõÕòë,PCÂÀa¶m3íÁƒv먭¤$ÓT>»Ü×ÅSO™UÄzÈ|Ý©“Y¾àÀ °€Ãœÿ\Ú²ÅnMà$p™3¥^½¤¡CmWR{ée©ØÃòÿaÚ®]íÔj–Z¶”úô‘¾úÊv5à pˆÓ§Í¦‚ßûžùá?%%UÃ"•ÕEFJ·ÜbŽò»µ€SXÀ!6lJJB³wÅçÒ–äd³jî¿0­oñwpˆU«ÌjZ:Ù®¤î*¯WÊË3¡5×µ«4k–´q£ÙÃÂbõjÓ»ªÃÁ$³aä²eRq±é!(.¯]îýåÎ;¥ÒRiçNÛ•€}p€¢"i÷né¶ÛlWR?6˜váB³a¤D`©‹-LûÁvë' °€ìÞmÚn°[G}uìhÚÈÈòáLìr_{‰‰Ò¤IÒ /”?Wp_`ñýÀª/6íÑ£ÒáÃæ˜–ºùñÍ" 99¶+»¢löì1=×^k»’úIJ2ÃÚÞßL¸oÕŠ–ºJI1ó™þþw©iS)5ÕvE`=,à»w‡öê`Ýq‡´n™Ïrë­¡½ˆ€MÑÑR›6f3ÑG±] ØC`ؽ;ô‡ƒù "8!mÚd ê®IÓ~ü±Yq Â,+,”¶n•zõ²]‰TºD`©Ÿ={L[R"}ò‰ÝZÀ X¶l™tþ¼tÿý¶+ñ† ËÓÒìÕáo¼az¬¢£¥¬,ÛÕ€°lÑ"é–[¤Ö­mWâQ,íR/ßùŽôÎ;Rzºôᇶ«;,`QQ‘´f4z´íJüëO’Ö®µ]…{ôíK`¾,`Ñöíf8ØwخĿ|PºývÛU¸Gß¾f>K~¾íJ ø,`Qn®iÝ8 þÓ§i™Ç XÀ¢#G¤˜˜Ðß0Õ¡ƒÙ”“À XÀ¢Ü\©E 6WÄ•y<¦—…y,Â,:rÄàj|ï½^Û•@pXÀ¢#G¤–-mWPУ‡TP`þ@8!°€E¾!aÀÕøf8tÈnl°ˆ!a¨©V­L{ø°Ý: Ø,`‰×K`AÍX„+ XRT$•”0‡5#%&2$ @ø!°€%_~iZßoΫi×Núì3ÛU@pXÀ’õëÍoÍ32lW‚P1x°´ftñ¢íJ x,`É»ïJ·Þ*ÅÅÙ®¡bØ03ïiÛ6Û•@ðXÀ‚‹¥üC2Äv%%ýûKI+WÚ®‚‡ÀäåI§OK;Û®¡$:Ú [µÊv%<°à;ß1­o3@ ¦† “Þ{O?Þv%°`ÃÓ² jkèPÓþö·vë€`!°@?oÚ^½¤”«¥ ]}ù7§O[-‚‚ÀAvô¨i33íÖÐõÖ[¦Ý¹Ón ²cÇLÛ¬™Ý:ººv5-›H²C‡LÛ²¥Ý:ºâã¥ë®“>ýÔv%x²Ï?—4’“mW‚PÖ­=,‚lçN³ÿJÿF=tê$íÙc» <þ¹€ 8PúýïÙ0õ×¼¹”›+y½¶+€À"°@ýã¦íÒÅn}R^žôŶ+€À"°@dgKOù×mÚØ«îpë­fX¡oRp+ ÁäÉ•¿îÕËNpk¯•ÒÓ¥÷Þ³] V”íÀ튋¥>(ÿzÏ©C{õÀ=zö”¶o·]=,`+VHEEfÏ ¯—°ÿéÒŬ:ÇÄ{nF`€ûÓŸÌ0ßî䀿tí*:%8`» ×+­['i»¸Q¦Íζ[è믥“'¥´4Û•À®¿^JH>þØv%8 œÓú~ø“Ç#Ýx#€»X €vì5’Ú¶µ] ÜŠÀÀí,@Ÿ}f&FGð[Hzº´w¯tü¸íJ 0ø'hß>©}{ÛUÀÍÒÓMûÉ'vë€@!°@íß/µkg» ¸Y—.Rl,øä̳JXJŠíJàfQQRj*€{X @Þ~[ºpA2Äv%p»ôt ÷"°@€Ì+ ,uè`»¸]zºYàáÜ9Û•€ÿX >ûLzÿ}é‘GlW‚ppãRiiù¾?à&ð³{î‘úô‘š6•î»Ïv5iifél†…p£(Û€›lÞ,­XaŽŸyFЉ±[ÂCƒRçÎîäú–S§NéÉ'ŸÔwÞ©fÍš)""B™™™Õ^»uëV 2DñññJHHÐý÷߯}ûöU{í+¯¼¢.]º(66Ví۷׋/¾¨ÒÒÒ*×=zTcÇŽU³fÍÔ°aCõïß_ëÖ­óëgàÆ™völéé§íÖ‚ðÂÄ{nåúÀ’——§¹sçêüùó9r¤$ÉãñT¹nçÎ8p JKKµhÑ"½ñÆÚµk—  ¼¼¼J×N›6M“&MÒ< 5kÖhüøñš>}º&L˜Péºââb ª©S§J’n»í6?^Ï=÷œ&Mš¤®]»J’^ýuåääè_ÿú—úöí+I8p zöì©'Ÿ|R›6m èg\Ë—K‡I¿ü%+ƒ!øÒÓÍÞ?»w›Í$À-\ßÃR‘×ë­ö|ii©V¬X¡ûï¿¿,¬HRÛ¶m5hÐ -Y²¤ìܪU«T\\¬qãÆUºÇ¸qãäõzµtéÒ²sK–,Q—.]ÊŠ$EFFêÁTVV–>ì¯À²ü|iäHé–[¤‡²] ÂQzºiÀmÂ*°\Î_|¡sçÎ)--­Êk©©©Ú³gJJJ$I;vì(;_QË–-Õ´iSåTXSrÇŽ—½§¤J×m_|a†âüêWRR’íjŽ¥¶m ,܇À"3ÌK’«¼–˜˜(¯×[iXYLLŒâââª\›Pv/I*((¸ì=+>@èÛ¿ß´íÚY-aîÆ¥O>±]ø—ëç°„²I“&©‰oï7ÆŒ£1cÆXªÀåìÛ']{mù¤{À†ôtéÕW%¯Wªf}´páB-\¸°Ò¹¢¢"KÕ¸ ERÒ7ã7 ª¼VPP Ç£„„„²k‹‹‹uîÜ9ÅÆÆV¹¶wïÞ•î{¹{V|îåÌš5K7ÝtSí> +öí£wö¥§KyyÒÁƒÒu×Ù®/ÕýRyëÖ­ÊÈȰT‘{0$LR‡§íÛ·Wy-;;[:uRtt´$•ÍI¹ôÚÜÜ\åçç«GeçRSS/{OI•®Úöï—RRlWpÇÄ{nD`‘¥{î¹G‹/Ö©S§ÊÎõÕWZ¿~½FUvnèСŠÕüùó+Ýcþüùòx<ºï¾ûÊÎ9R;wîTVVVÙ¹ÒÒR-X°@ýúõSË–-÷¡=,p‚6mÌä{ 7 ‹!a+W®ÔéÓ§uòäIIfu®·ß~[’4|øpÅÅÅ)33S½{÷Öˆ#4yòd={V/¼ð‚š7o®Ÿýìge÷JHHÐsÏ=§çŸ^‰‰‰ºãŽ;´yófeffê‘GQ— ‹ßÿà?Ы¯¾ªÑ£GkÆŒjÖ¬™^{í5íÞ½[ï¾ûnpÿÌÅ‹ô°À<v¼à>aXƯ/¿üR’Ùå~Ñ¢EZ´h‘<öíÛ§¶mÛªsçÎÚ°aƒžzê)=ðÀŠŠŠÒàÁƒ5sæÌ*sMžyæÅÇÇëÕW_ÕÌ™3ÕªU+=ýôÓzöÙg+]­µk×êÉ'ŸÔĉuæÌ¥§§kåÊ•0`@Ð>?€ÀÚ¶M*)a³H8Czº´h‘í*À<ÞËí¦k|´>úè#&Ý!à[ß’Ž5Áå›én€5þ³ôÝïšÍL«YY@ñ30‡êáÓO¥¥©S +p†o4-û±p  ÔÃ[oIK#FØ®0:w–ââ˜ÇÀ=,P[¶H·Ý&ÅÄØ®0"#¥ÔT©šUõ $X  ™'çIK#°p ÔÑÅ‹fKÇŽ¶+*KK3ÿm––Ú®êÀu´s§tü¸Ô¿¿íJ€ÊRSÍRÛ»vÙ®êÀuôÁRD„Ô§íJ€ÊRSM˰0n@`€:zÿ}óƒa|¼íJ€Ê’’¤äd);Ûv%P¨ƒ ¤¿ÿ]:Ôv%@õX) €[X >üP:vLº÷^Û•ÕKK“Þ{OúòKÛ•@ýX –/—š6•úöµ] P½Þ½Í¢))¶+€ú!°@,[fv·Œ´] P½»î²]øjé‹/Ì ƒ“ÅÇ›‰÷’”Ÿo·¨ ÔÒòåRLŒtǶ+®ìÃMûÎ;vë€ú °@--[&Ý~»Ô¨‘íJ€+KN6“ïW¬°] Ôj¡°PÚ¸‘á`ßý®ôÖ[uß“åÓOY€]¨…•+Í,#FØ®¨™Ç“Zµ’fÍ’úô‘>ÿ¼æï=uÊì5ôãK«WK£FIyy«ªC`€ZX¾\ÊÈ®»Îv%@ÍÄÄHƒKo¼!mÞl‚Ë•”–š¯WÊÌ”¾þZÊÉ‘&O––,‘† 1¯@°X †JJLË=÷Ø®¨›o.?Þ¿ßìÏR¯Wzè!éßÿ]zýué¿þK0À\ÿÉ'fxÙ¶m&À@°X †Þ{ÏüàÆü„šþýËW­2½$Õ™=[zóMsüôÓÒ 7˜ û½{›sãÇK×\#­_Øz " Ôвef(Ø7Ú®¨nݤÿüO©kWóõ–-Òž=U¯[²¤ü8)Iš7OjÜXÚ´ÉLÚïßßôÖXjÀë5óWî½WòxlWÔND„ôòËÒ»ïJo¿-5k&ýæ7•¯),”>øÀ¿õ–´sgyÏLD„Ô£‡94HúÇ?¤‹ƒW?€ðF`€ÈÉ‘öícþ B[ëÖÒý÷Kcǚޯ׬æõJK—š ÷Jßþöåï1hTPÀRÇ‚‡À5°l™Ù(rÐ Û•õ׿¿”›kBJË–ÒܹÒ_þ"Ýv› 5WÒ¯Ÿkæ»|ýupêÞ,PË–IwÝe–ˆBoýèÑÒéÓÒO~"­YcV»š˜)=]úä›n’Î l­@`€«ÈÍ•²²X lh×Nºï>©¸Øœ¿ÿþš½ß·ðD^žôÈ#©|,pK–˜‰öwßm»ÀÖ¬1“ìG.?׬YÍÞûË_J#F˜ã¬,ÿ×Xà ¼^iÎÓ»Ò´©íjÿéÚÕ”1cL/âÙ³5o|¼´h‘¸@"°À½û®ôé§ÒcÙ® GjÑÂL¤¯ØXé;ß1«çy½© $ \Ñï~'¥¥Ißú–íJçi×N:qÂìáB`€+ÈΖ† a³H :mÛš–å.Ãë•Ú´±] àL ¦-*²[w#°Àeš‰È×]g»À™’“Íü¥K¥mWÀ­,PÓ§¥ÿØÓÃT¯aC³éä¬Yfž×Áƒ¶+àF¨Æÿþ¯ù#ÑÃ\ÉOZ~œ“c¯îE`€jüàåÇ-[Ú«pº¤$³¹ªD`¸DIIùq^ži¯ ÜwŸÔ¯ŸôÛßJ·ß.íßo»"nB`€KìÛgÚ»î2¿=pu/½$íÞ-­_/­[g»nB`€K¬\)EGKo½e» t (Í™cŽYæ€?X ‚sç¤E‹Lïʵ×Ú®-&H:I‡Ù®€›XàEER\œôÁÒØ®M»wK/¿,]¸`»nA`€oüÏÿ”ß{¯½:7øì3Ûp  È ›5«üë&MìÕ„²•+M›•e·îA`™!,GJÏ>+mÙb» t *uïN`à?Q¶ Û¾üRš2EzúiiêTÛÕ¡¯O ÿ¡‡@Ø{ÿ}3Aø?ÿÓv%€; (}ü±Ô®ôùç¶«ê,Â^V–YŠ51Ñv%€;ŒcÚýû¥ßÿÞj)\€À ìee™!,üãšk¤wß5Çùùvkú,ÂZI‰ºB`ükð`顇¤íÛmW ÔX„µìl©¸˜ÀBÏžRNŽtþ¼íJ„2 €°–•%EEI7Þh»À}ÒÒL/&ïÔ@XËÊ2¿޵] à>ii¦eX€ú °kL¸'!AjÓFÚ¶Ív%B@Ø:qBúì3 H={Òà~,ÂÖGI^/¤ž=¥U«èePwa++KŠ—:w¶] à^;šö–[ìÖ tX„¥¼<é…¤^½¤ÈHÛÕî5x°iÛ··[€ÐE`–† 3Ë­Ò»V›6Ò÷¿oö WX½ºüxà@3Á·bhÉΖV­’þ뿤ƃ^€ <鯕âã¥O>‘JKÍ&®Ó§Û® €X¸BVVå¯_]ŠˆÚµ3sVŽ5ç32‚_€ª""Ìêa}$ýñ¦}öYf˜× " €çõJ7JÿïÿIo¾iÎeg›vÿ~iÜ8iáBÓ³Ò²¥µ2\bà@éí·ÍDü¶mËÏïÙc­$D`ò¶m3sXî¾[úÞ÷̱Ïo+íØ!½ñ†Ù¼®A{u¨lÊiÆ sü½ï•ŸÿÛߨ§@9 €·p¡””$ b¾n×Îü°sþ¼™hß·¯9?j”½T%Mš$ýä'f™ã’©_?é‰'¤±cmWÀ)¢luåõJwÝ%½óŽ4a‚tÍ5å¯EUø¿Ûʕ暊CN8CLŒôßÿ]þõ¢EÒãKÿú—½š8 =,BÖöí&ˆüò—ÒË/_þº„éÛß^]êîºëÌðÎ}û¤Ý»Í±+í¯Àýèa²Þ~Û„‘Ÿþ´rï €Ð–žnÚn0í‘#fIrá‰!Éë5CGþíß+€ÛôèQ>¬óþû¥ßÿ^*.¶[{,BÎ… fƒ¹Ï?—xÀv5ÿ¿½{Ó©Üÿ?þ¾‡Æyfbè‹Ê!†&‡~´sÈy·åЖ|+‡Ú1”ô­$©r(j+vìɖɦ¤B69„É!J%Š0N•2sýþøì™q›aÌÌZ3óz>÷Ã}¯uÝëþ¬¹Ü÷ZŸµ®€ìH7J=zØèa¿ý&>ìuT¼B“0yÆ™3Ö ,1Qzüq[–:2€ü%&Fš=[úä{½s§T©’·1ð €}¤”éµ×¼Ž€HXøZb¢ôöÛöüÔ)©cG©P!oc»Ê•³6þñ!@ÁBÂÀ·¢£ƒ—µléM,¼gï—/÷:¹„€ïìßoWQW¯–NŸ–†•5’–,‘J”ð::^¸á©vmiʯ#ÛHXøÊêÕRÅŠÒ5×H HU«Úœ+6HmÚx¯Ò€ÖDôË/¥§Ÿ¶‹ò?¾òþûRT”´c‡ôÏJíÚy¿èÝÛ†8®UËî¼6h`ñäo$,|eéRKR:w¶“’gžñ:"~Q¢DðHaûöI›7{€ÜAÂò+V¬PHHH¦ 6•]¶l™š4i¢âÅ‹«\¹rêÓ§3lóôéÓ1b„ªV­ª¢E‹ªvíÚúûßÿž[»ä9‡K7ZÓ¯×^“>ÿ\*]Úë¨øI£FÁ¯ ²&£ò/–sŒ;VëÖ­ zÔ©S'mýÊ•+Õ¡CU¬XQï¼óŽ^xá-[¶L­ZµÒ©S§‚¶5`À=ýôÓ8p –,Y¢.]ºhРA;vlnï',]jíÛ´‘ŠMŸÑR.lÿÒý÷KÛ¶IÏ?ïmLrVa¯𛫮ºJ7>ïúÁƒ«V­Zš7ožBB,ß«V­š®¿þzMŸ>]qqq’¤mÛ¶iúôé3fŒzè!IR³fÍtøða5JqqqŠˆˆÈùòE‹¤zõ2e gÛ³ÇæcªTI •Þ|Óëˆä$î°œÃ9'wžY©öîÝ«O?ýTwÞygZ²"IMš4Q54þü´eo¿ý¶œsêÓ§OÐ6úôé£'NhñâÅ9³@•’"-^,uèàu$ü®JKV$éꫥݻ¥'¼ @Î!a9GÿþýªÒ¥K«}ûöZ³fMÚº­[·J’êÕ«—á}111iëSË–/_^åË—ÏPN²;0Ò­\)|X’™áý‘‘‘iëSËfV®xñâ * tK–H7ÞhÏ›6õ6yKÍšöïŽÞÆ çЇå?êׯ¯úõë§½nܸ±:uꤘ˜ 2DmÛ¶Íõ˜xà•)S&hY=Ô£G\È)ÎI=–þ:4Ô»Xä=QQR¹rÒöí^G‚‚.>>^ñññAËŽ;æQ4ù Ë/^\:uÒ /¼ “'O***J’täÈ‘ e9¢²e˦½ŽŠŠÒ矞¡Ü¯¿þªS§N¥mëBžþy]{íµ—°€¿>-}ô‘” ué" æuDò¢Zµ¤/¿ô: t™]TÞ¸q£4hàQDùM²(¨nݺ’¤Í™ÌRµeË–´õ’õUILLÔ2”“T(ˆÞ|Ó†-nÝÚ^Ϙa³VÀÅjÒDzûmiÝ:¯#HX.àøñãš?¾bcc¦èèh5nÜX³fÍRJJJZ¹uëÖ髯¾R×®]Ó–uîÜY@@¯=%¯¤3f¨X±bjß¾}®íàGo¼‘þü¥—¤R¥¼‹@Þ6|¸+õìiÍLä/4 ûÞ½{«zõêjذ¡J•*¥o¿ýVÏ>û¬~üñGMŸ>=­Ü3Ï<£6mÚ¨[·nêß¿¿<¨G}T111AC_}õÕºûî»õä“OªP¡Bjذ¡–,Y¢©S§jôèÑú¦Å®]6$éO?Ùëq㤾}½ @Þ.=ù¤Ô®ôÙg­©ü…„å?jÖ¬©9sæhüøñ:qâ„¢¢¢tà 7èÕW_ j{ؼys-\¸Pýë_uóÍ7«X±bêØ±£Æ¯Ðsz OžÝ~K÷ì‘N’–,±déØ1{Ïš5va¨gÏÜýû~@ ËÖ¯OÞ¤‰ôòËö¼NæXà_?œþ<õ¤¿Ok‚µb…&mØ`ëÿýo»{òÊ+v§¸T)[H/½$Í›¾­éÓƒŸ÷ìin\<Øžÿûß–ÐÜ¿´k—ôÁÖ$í믥jÕ,‰¹æ©Q#ÛN™2–< `wY¶l±˜wí²;0eËJücNþµÿ!ae+VØÁôÐ!‰òšV­,ùHH°&aaa¶üê«mtÃ!Cl}çÎ6b×Ù"",±yóMKv>ÿ\š4I;6¸éÙèÑ–Œ„…YS® ¤'žn»-=1zî9éÁ3ÆW¨Ô¢…Ýa?^ª[W7Îú°´j% &uèÀE",$,²låJ;ø’¬È«*U²;åËÛȆ©J”°>,'JwÞ™1YIÕ¨QúÝI8PºòÊŒåþò—ôçÅ‹Ûg¦öY©Q#½yXff̰fa—]–¾,$DzòI‹ù½÷¤Žÿë®ùîdÉ©SÖi”ŽŸòºwßµNôç7Núí7éµ×²¾­«®ÊÚÝŽ^½l´°={¤;¤¢EÏ_6228YIÕ¼¹Ô¸qzs\   a% 6· €¼.8’’CgFmÚXÿ—*U~s®@À:ôðg±†„H­[go¬€ß°È’U«¬YCl¬×‘@ÁÕ­›”œlüáÖ™ÿÃ-™ÙµËë耜A K>úÈæ(LÏ7ðLÅŠÒÔ©6ó°aÒÈ‘éëªW—Úµ“¾ûγð€AÂà‚/–vï¶Yëo¸ÁëhwßmïÛµ³a—Ÿzʖר!mÛfóÃÌœiýe€ü€„ÀymÝjÃg6j$ýôýWÀÜ رCš<Ùæ~éÕËæwIH°2¿þ*íÜ)=*½õVðû“’l8篿Îýج aæÄ û7%Åž§Î˜hó 4nì]l€ó ·~,;Úhl£MšdëÇŒ‘bblý-·H JÎÙºûî³ÒzÈ»ø ¡5:IÒgŸI×]gwTªU“^|Ñ:vΛ'<(,}¥JöoãÆÁ}»vµ>Œ‹KÇK½{[BóÚk¹:„„(`n»-ýyT”ͯR¥Jp’ÈyDjØPjÕ*kåëË(Y“±Ñ£m’ʳû³lÚdô_{M Íþ˜sÑ$ Ègvï¶>)o¿mCUJ6$ñ±c¶î‹/¬I˜sÒ¡C“@þQ§Ž4pàï{o§N6òòåÁË'O–âãíXäî°ùÈÉ“Öòða{ݳ§=ºw—š4±Qa ’Z·ö6N€ÿÕ®-]y¥´`4¶d‰cÞ}×Ö?÷œÔ£wå‘óHX€|dÕ*KVlâ°GµŽôÉÉöï† 63r™2^G ð»@ÀF‹œ>]zã éçŸmyõêÒ¬YÒwH+VH-[z& š„yXjrô¨½~çëL+õí+•(a³¿ô’­?xPzåïâä-ƒÛq檫lø{IZ´Húßÿµ‘ǦNõ6> Üaò°‡’V¯¶ƒÉµ×Úä_C‡ÚU±’%mØâS§¤.]¬|·nRÅŠÞÆ È;.»Ìî®HÖ÷ñᇥðp{ݰ¡ÝÙÿùg©T)ïbDþGÂäQŸ~jÉJ÷îÒ‘#6Ž~§NÒã§—éÖ-ýùŽÒÿüOîÇ ÈôdE’î»Oš?_úóŸ­ SHX€<æë¯m(É ¤˜_?,ì¿¿¯fÍœ Pp4h`ó»ôé#8 U¨àuDȯè k×J§O{ÎgÂkG±uÎY“¢3¤Â…¥øx©jU›£ã‰'¤mæÚèhiùréöÛíýìåA²ŽŒ}ûÚA O¯£ £²emøã"E¤jÕ¤ž=ÿû{6l¸ðEV  K·h‘Ý)‘‚'\¼ØîtíjIÊÀv'åèQÞö‹/¤gŸ•^Ýî¶Œ-]q…½·|yiÒ$©V-K\V­ÊõÝ*ð~úÉ’”k®±1ðµ»c€×‘¹ÈHiÝ:;ÿ˜5ˆ:NI±uý«´m[zÙ={¬uǵ×J›6eÜÖ÷ßKÉɹ7ü„ÅÇRû™œOb¢ôÇ?J7ÝdW)þïÿ¤Þ½m~ŽiÓ¬Ì?ØUù_”ââlÜ+®jÔ°ò© ž+$DZ°@Šˆ°qÖs‚s6©anpÎúäo¾i èçŸÛëâÅ™ðàÕ«KÇKÍšÙÜ`Å‹[‹§ž’ê֕Μ±>³©ó‚<)ÅÆÚqïÌiÜ8iÄkþL«¤b[¼ØIÚ»×®R$'K·Ý&-*U©bë¶l±r±±Ò?þa·c4°õãÆIÆIß~k_ü‹¹B_£†%+wßmWB*V”BC/mŸfΔví’Z¶´;;?ýdÍÖJ–´«C‡¤~ý.í3ÎåœmsÞ<é…¤öí­ïŽŸ½û®õ#úä“ô„³0ßV@H/½$=óŒ»Îî{ÓM6ò“OÚ @l¯ûöµ‹­|ÞÿeÖ,ièPé꫽ÙøGÀ9ºEùÍÆÕ AI 8ðZM˜~²zå•–¸”+'­_oW/®½Ön»þë_R¥JÙË×_Û¼’Í÷Q·®õ“ùí7©sgKž²Ê9K¢öîµ×ÕªÙ]¢²e-Ùš?ß–''K… eß>¼úªÍYÒ¸±Ý‰ •† ±„©T©¬mcÉ›¬ñú÷ϾØ2“”$EEYߢ‡¶¿MÁyÕ?رÆ »°:l˜ÝqI=¶:d!ïßoý`*W¶óŒ´;06HeÊxº ¿[ê9]BB‚®½öZ¯ÃɳhæcƒKÿ»Ô¼yú²%ìäyåJ;¡;Ö®\¬^ýÉŠ”Þ¯E’Æ·>›7ÛG\œtð ôó϶~Ó&iÅŠó7óÚ²Å~°þùOiãFëKóÁÒŸþd‰KÆV®S'û¡:×Ñ£6ÉO?e=þ#GìïxçÖ®ö›oìVô¨QRéÒÖçl¿þ*?žþzûvûQ½å›¤qÀ€ôævç~Î’%¶Ý;í.ÒÝw[_ s/ œ:eåxÀ>ï\ÿþ·íÇŽ–¨’¬ò²Ê•­¿Êĉҗ_Ú1ðìc[Ù²ÒÛoÛyF÷î6'\›6¶,1Ñ:ÔŽ«ûöy·ðƒï$$$8I.!!Á½úªs€sÍ›;÷å—Î%'ç~<«V9·sgð²ÄDçÊ”q®zuçBC­L©RÎIÎÝ|³s))·3r¤sÅ‹;—”tþÏzÿ}çŠuîOrîé§;q"}ÝС¶ýøøôedþY©ââ,®ýûÓ—íßï\¹rÎ5lè\Hˆs·Ýfû3eŠÅW»¶sÇ;7ožsÎ…‡;W¾¼s‡9×£‡sUª87uªsC†8÷Æ¥%{D„saaÎEFÚ²Nœ;|Ø>û³Ïœ«[׹…m»7Ü1þ¸8çªU»ð~P¬\é\l¬s¥KÛ±»P!çÊ–unÐ çNò:ºÿîìs:ü~$,>tîîÕ«ûþ{ƒÊĤIvB^ª”œ‡†:÷ ¶löìà²;v8W²¤sýûÿ÷í¾ü²Ì‡†:ת•sûöYBT³¦m»X1û±ºí6{½paæÛùôSKöž>óõÉɶ®tiçz÷¶}èÐÁ¹"E,“œk×ι£GÓ“‡åËmyHˆs•*¥'*©ÄDçºtqnøpKz,°¦T)ç|й¨(çê×wnÓ&çÞ{/8þ3gœ›;׹лÿþ¬ÕÅÁƒÎMžìÜCÙñóí·sî³{̹œÛ¾ýÒ¶CÂ’=èÃâCy¥½£s6GH|¼µ3½ë.k.Õ½»Íå²}»õ¹ürkzmͲ²ÚuéR©m[k•œl#ŠÌœiM¦öNµr5kJ>*-\(M™bý?RR¤¦M­iÕÆî°þÜsÖWD²˜×®µæ]ƒYÇ÷síÜiûR¬˜µË]³Æöéšk¤ 2–ß¿_úÛ߬Ýn¹rÖ‘>2Òþ~mÛÚd[·Üb·½çÏ·–/Ïü³€51;xК—Õ¯o}l³Ë¦MÖ·¶X1;hß^züqkªv±òÊ9ß‘°øP^ûÏýË/Ö®ôé§m8ÃlDêÕmˆeÉ~LV­²ÑÀ²Ê9M¤\9ëïQ³¦ýx¤ZµÊú³<ö˜õ‘ìÄÿÞ{¥·Þ²þ?+WÚЊ’”d#¢U®lÉJNùåK¤J—N_vø°ýí,°×'Úœ9àüöì± “{÷Ú`:ãÇK÷ßéý>wìn¸Áæ@[³ÆúÑüíovžñüóŒÎkçt~EÂâCùá?÷œ9–d\y¥tìXÆÁ²ÓGIíÚÙœ2 ZS¬˜4r¤ôÐCYÛÆÎ6 Zê¸ð¹­^=û1üùç‹Kê(¨Nœ°cþ¸qÒ„ 6ŠçäÉ¿o[))ÒÖ­6PÏ·ßZ‹¨([wæŒM0w® ÞS¶lÖ·›Îéü€™#ºw·GnhÖÌîT+fwKöì‘Ê—¿¸!S‡nöÊX34’²&<Üû›µ’xøa›?.uÞ–_~±æå]ºœÿÎKr²5Íž1#=Ù™;7=Y‘lzaÃl>·5l‰Ö­st×pä ©MÅŠµ“¼¦bE²\¼ûî³&[>h­;š7·©V­’n¿Ýú¨6kfwbR9'õî-½þº½7ΦXhÑ"ãö«U³!™{÷¶æêññR×®Áe’“­¯Ë¢EÖßåÐ!ëgƒKG€<-,Ìî‚ÄÅY«…_LŸ„ú­·,xþy©gO›ŒrÂkñá‡vg¥I<çB*T°>§={JݺYÿ–­[mîµ^½ì3çΕzô°;6ááv!—Ž„yÞ]wY’Úbáða› ¹P!kâU·®õsÙ·Ïú¬DG[ÒÑ©SÖ?#,ÌîÈlÞ,Ý|³T¤ˆm'uäÒ3ìóŸzÊ’•]»õ3;° Ï µ»11RHˆÊyöÈœãÆY3®˜»Srùå¿ïs ²~3ë×[gü ìŽÍÚµÒwX™ÔA|öî½´}‚!a@¾›ùò›o¶æ`©MÅ.EûööHõàƒö@Îñ: 7dG²‚ÜGÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-–vüøq=ðÀŠŽŽVxx¸bcc5gίÃB6ˆ÷:\õãÔ‘ÿQGþG¡ aÉa]»vÕÌ™35|øp-^¼X5R=øÉ¨C£~ü:ò?êÈÿ¨#…½ ?[¸p¡–-[¦øøxuïÞ]’Ô¼ysíÞ½[ƒV÷îÝBΜgË9hþüù*Y²¤ºuë´¼OŸ>Ú·oŸÖ¯_ïQd@Þ@Â’ƒ¶nݪڵkg¸‹#IÚ¶m›ayMÂrÐáÇuå•WfX™¶>3III’¤íÛ·ç\p¸dÇŽÓÆ½çAýøuäÔ‘ÿQGþ–z.wâÄ #ÉÛHX|h×®]’¤B Í‹ IDAT;î¸ÃãHðß4hÐÀëpÔÿQGþGùuäß}÷®¿þz¯ÃȳHXrPTTT¦wQŽ9’¶>3íÚµÓ¬Y³TµjU…‡‡çhŒÈIIIÚµk—Úµkçu(y KªW¯žâãã•’’ÔeË–-’¤ºuëfú¾²eËêöÛoÏ•sš6mêuyîsP—.]tüøqÍ›7/hùŒ3­ë®»Î£È€¼;,9¨}ûöjÓ¦ú÷ﯟþYW\q…âããµdɽþúë ^‡øwXrЦM›”œœ¬S§Néž{îÑ7Þ¨Y³féž{îQ=2”߸q£Z·n­’%K*""B·ÜrKZüsMš4IµjÕRÑ¢EU½zu9RÉÉÉÊýôS}øá‡ºï¾û4tèP >Ü›ÉÇ.¥ŽR=ñÄš={¶&L˜ ØØØ\Þƒü/;êòŽ;þÅù›0KÕªUK¯¼òJ–ÊV©R%ÃëÔe-[¶THHˆF¥¾}ûªR¥JŠŠŠ’dYõ¹Ž9¢@  ˆˆIRTT”Nž<©¤¤$-Z4CÙF¥½ŽŠŠ:ï6S×ç'—RG’4bÄ=Zcƌр‚ÖQGÙãRëèB¨#ÿ‹ŠŠÊôê ËÜÅwÅ?ÎwÜ¡Žüá|çoýúõ£Žr K]vÙeºë®»²e[ 4PJJоÿþ{UªTIW\q…ÂÃÃ3½¢¼eË]uÕU “¤´v›7oVãÆÓÊíß¿_‡VݺuÓ–ÅÄÄœw›’‚Êæ—RG#FŒH{<úè£ÖSGÙ#;¿G碎ü¯^½zŠWJJJP?þ–¹‹ïŠ?\è¸CùSêùÛž={Ô Aê(7y×ß¿àêׯŸ+\¸°;tèPÚ²îÝ»» *d:4ÞСCÓ–9r$ÓQ)ÆŽëBBBÜöíÛÓ–M™2%è§OŸvuêÔqMš4ɉ]Ë“FŽé€{â‰'.XŽ:òÞ…F sŽ:ò»E‹¹@ àæÌ™´¼]»v®råÊ.%%Å£Èò§ }_ø®x++ÇêÈÎ=£Žr K0`€{ì±ÇÜ;ï¼ãV¯^í,Xàzõêå@ÐøÜÎ9·cÇŽL'ª\¹rPbãœs£GN›|hÅŠnüøñ®hÑ¢®_¿~AåNž<4ùÐÒ¥K]—.]\XX˜ûè£r|ÿó‚gŸ}ÖסC·nÝ:÷ñÇ=ÎFygáÂ…nîܹnúôé.¸[o½ÕÍ;×Í;×ýöÛoiå¨#ÿkÛ¶­‹ŒŒtS§NuË—/gâÈ•ï ßïdõ¸Cy'«çoÔQî!aÉAÓ¦MsM›6u®P¡B.""µlÙÒ½þúë™–OHHp­[·vÅ‹w¥K—v]»vuß~ûm¦e'NœèjÖ¬éŠ)âªV­êFŒá’““3”;pà€ëÕ«—‹ŠŠrááá®iÓ¦îÃ?ÌÖýÌËZ´háBBB\ Èð ÉPž:òFÕªUƒêåìç»wï*KùÛñãÇÝ Aƒ\ÅŠ]‘"EÜ5×\“Ꭰ.MV¿/|W¼q1ÇêÈsþF厀sÎyÝ, 2ðÆ|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð-¾EÂÀ·HXø ß"aà[$,|‹„€o‘°ð­ÿËœ.ä6šžIEND®B`‚HTSeq-0.5.4p3/README0000664000175000017500000000011012110432433014364 0ustar andersanders00000000000000For instructions, see: http://www-huber.embl.de/users/anders/HTSeq/ HTSeq-0.5.4p3/VERSION0000664000175000017500000000001012137503637014571 0ustar andersanders000000000000000.5.4p3 HTSeq-0.5.4p3/LICENSE0000664000175000017500000010451312110432433014525 0ustar andersanders00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . HTSeq-0.5.4p3/HTSeq.egg-info/0000775000175000017500000000000012137504327016205 5ustar andersanders00000000000000HTSeq-0.5.4p3/HTSeq.egg-info/PKG-INFO0000664000175000017500000000130612137504327017302 0ustar andersanders00000000000000Metadata-Version: 1.1 Name: HTSeq Version: 0.5.4p3 Summary: A framework to process and analyze data from high-throughput sequencing (HTS) assays Home-page: http://www-huber.embl.de/users/anders/HTSeq/ Author: Simon Anders Author-email: sanders@fs.tum.de License: UNKNOWN Description: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Topic :: Scientific/Engineering :: Bio-Informatics Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU General Public License (GPL) Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Requires: numpy Requires: python (>=2.5, <3.0) HTSeq-0.5.4p3/HTSeq.egg-info/top_level.txt0000664000175000017500000000000612137504327020733 0ustar andersanders00000000000000HTSeq HTSeq-0.5.4p3/HTSeq.egg-info/dependency_links.txt0000664000175000017500000000000112137504327022253 0ustar andersanders00000000000000 HTSeq-0.5.4p3/HTSeq.egg-info/SOURCES.txt0000664000175000017500000000172112137504327020072 0ustar andersanders00000000000000LICENSE MANIFEST.in README VERSION build_it clean setup.py HTSeq/StepVector.py HTSeq/_HTSeq_internal.py HTSeq/__init__.py HTSeq/_version.py HTSeq.egg-info/PKG-INFO HTSeq.egg-info/SOURCES.txt HTSeq.egg-info/dependency_links.txt HTSeq.egg-info/top_level.txt HTSeq/scripts/__init__.py HTSeq/scripts/count.py HTSeq/scripts/qa.py doc/Makefile doc/add_counter.py doc/alignments.rst doc/conf.py doc/contrib.rst doc/count.rst doc/count_modes.odg doc/count_modes.png doc/features.rst doc/genomic.rst doc/history.rst doc/index.rst doc/install.rst doc/make_it doc/misc.rst doc/overview.rst doc/qa.rst doc/qa_example.png doc/qualplot.png doc/sequences.rst doc/tour.rst doc/tss.rst doc/tss1.py doc/tss2.py doc/tss3.py doc/tss_fig1.png doc/tss_fig2.png doc/tss_fig3.png doc/tss_fig4.png scripts/htseq-count scripts/htseq-qa src/AutoPyObjPtr.i src/Makefile src/StepVector.i src/StepVector_wrap.cxx src/_HTSeq.c src/step_vector.h src/HTSeq/_HTSeq.pxd src/HTSeq/_HTSeq.pyx src/HTSeq/__init__.pyHTSeq-0.5.4p3/build_it0000775000175000017500000000015312110432433015234 0ustar andersanders00000000000000#!/bin/bash (cd src; make) echo __version__ = \"`cat VERSION`\" > HTSeq/_version.py python setup.py build HTSeq-0.5.4p3/setup.cfg0000664000175000017500000000007312137504327015350 0ustar andersanders00000000000000[egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 HTSeq-0.5.4p3/src/0000775000175000017500000000000012137504327014316 5ustar andersanders00000000000000HTSeq-0.5.4p3/src/HTSeq/0000775000175000017500000000000012137504327015302 5ustar andersanders00000000000000HTSeq-0.5.4p3/src/HTSeq/__init__.py0000664000175000017500000000027112110432433017400 0ustar andersanders00000000000000# This is not a real Python file # It is here only to fool Cython into believing # that the pyx file is part of a package (which # it is), as otherwise, the module name # will be wrong HTSeq-0.5.4p3/src/HTSeq/_HTSeq.pyx0000664000175000017500000014561112135476247017206 0ustar andersanders00000000000000import sys import os import math import re import csv import gzip import itertools import collections import cStringIO import warnings import numpy cimport numpy import StepVector import _HTSeq_internal ########################### ## GenomicInterval ########################### cdef str strand_plus = intern( "+" ) cdef str strand_minus = intern( "-" ) cdef str strand_nostrand = intern( "." ) cdef class GenomicInterval: """A GenomicInterval specifies an interval (i.e., a range of consecutive positions) on a reference genome. A GenomicInterval object has the following slots, some of which are calculated from the other: chrom: The name of a sequence (i.e., chromosome, contig, or the like). start: The start of the interval. Even on the reverse strand, this is always the smaller of the two values 'start' and 'end'. Note that all positions should be given as 0-based value! end: The end of the interval. Following Python convention for ranges, this in one more than the coordinate of the last base that is considered part of the sequence. strand: The strand, as a single character, '+' or '-'. '.' indicates that the strand is irrelavant. (Alternatively, pass a Strand object.) length: The length of the interval, i.e., end - start start_d: The "directional start" position. This is the position of the first base of the interval, taking the strand into account. Hence, this is the same as 'start' except when strand == '-', in which case it is end-1. end_d: The "directional end": Usually, the same as 'end', but for strand=='-1', it is start-1. """ def __init__( GenomicInterval self, str chrom, long start, long end, str strand = strand_nostrand ): """See the class docstring for the meaning of the slots. Note that there is also a factory function, 'from_directional', to be used if you wish to specify start_d and length. """ self.chrom = intern( chrom ) self.start = start self.end = end self.strand = strand if self.start > self.end: raise ValueError, "start is larger than end" property strand: def __set__( self, strand ): strand = intern( strand ) if not( strand is strand_plus or strand is strand_minus or strand is strand_nostrand ): raise ValueError, "Strand must be'+', '-', or '.'." self._strand = strand def __get__( self ): return self._strand def __reduce__( GenomicInterval self ): return GenomicInterval, ( self.chrom, self.start, self.end, self.strand ) def __copy__( self ): constr, args = self.__reduce__() return constr( *args ) def __repr__( GenomicInterval self ): return "<%s object '%s', [%d,%s), strand '%s'>" % \ ( self.__class__.__name__, self.chrom, self.start, str(self.end) if self.end != sys.maxint else "Inf", self.strand ) def __str__( GenomicInterval self ): return "%s:[%d,%s)/%s" % \ ( self.chrom, self.start, str(self.end) if self.end != sys.maxint else "Inf", self.strand ) property length: """The length is calculated as end - start. If you set the length, 'start_d' will be preserved, i.e., 'end' is changed, unless the strand is '-', in which case 'start' is changed.""" def __get__( GenomicInterval self ): return self.end - self.start def __set__( GenomicInterval self, long newLength ): if self._strand is not strand_minus: self.end = self.start + newLength else: self.start = self.end - newLength property start_d: """See the class docstring for the meaning of the 'directional start'. Note that if you set 'start_d', both the start and the end are changed, such the interval gets the requested new directional start and its length stays unchanged.""" def __get__( GenomicInterval self ): if self._strand is not strand_minus: return self.start else: return self.end - 1 def __set__( GenomicInterval self, long newStartd ): if self._strand is not strand_minus: self.end = newStartd + self.length self.start = newStartd else: self.start = newStartd + 1 - self.length self.end = newStartd + 1 property end_d: def __get__( GenomicInterval self ): if self._strand is not strand_minus: return self.end else: return self.start - 1 property start_as_pos: def __get__( GenomicInterval self ): return GenomicPosition( self.chrom, self.start, self. strand ) property end_as_pos: def __get__( GenomicInterval self ): return GenomicPosition( self.chrom, self.end, self. strand ) property start_d_as_pos: def __get__( GenomicInterval self ): return GenomicPosition( self.chrom, self.start_d, self. strand ) property end_d_as_pos: def __get__( GenomicInterval self ): return GenomicPosition( self.chrom, self.end_d, self. strand ) def __richcmp__( GenomicInterval self, GenomicInterval other, int op ): if op == 2: # == if other == None: return False return self._strand is other._strand and \ self.start == other.start and self.end == other.end elif op == 3: # != return not ( self == other ) else: raise NotImplementedError def __hash__( GenomicInterval self ): return hash( ( self.chrom, self.start, self.end, self.strand ) ) cpdef is_contained_in( GenomicInterval self, GenomicInterval iv ): """Returns a boolean value indicating whether the 'self' interval is fully within the 'iv' interval. This is deemed the case if - both are on the same chromosome, and - both are on the same strand, or at least one of them is not stranded (i.e., has strand == '.'), and - self.start >= iv.start, and - self.end <= iv.end """ if iv == None: return False if self.chrom != iv.chrom: return False if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ self.strand is not iv._strand: return False if self.start < iv.start or self.end > iv.end: return False return True cpdef contains( GenomicInterval self, GenomicInterval iv ): """Returns a boolean value indicating whether the 'self' interval fully contains the 'iv' interval. See 'is_contained_in' for the exact criteria. """ if iv == None: return False return iv.is_contained_in( self ) cpdef overlaps( GenomicInterval self, GenomicInterval iv ): """Returns a boolean value indicating whether the 'self' interval overlaps the 'iv' interval. This is deemed the case if - both are on the same chromosome, and - both are on the same strand, or at least one of them is not stranded (i.e., has strand == '.'), and - the actual intervals overlap """ if iv == None: return False if self.chrom != iv.chrom: return False if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ self.strand is not iv.strand: return False if self.start <= iv.start: return self.end > iv.start else: return iv.end > self.start def xrange( GenomicInterval self, long int step = 1 ): """Generate an iterator over the GenomicPositions covered by the interval, running from start to end. """ return _HTSeq_internal.GenomicInterval_xrange( self, step ) def xrange_d( GenomicInterval self, long int step = 1 ): """Generate an iterator over the GenomicPositions covered by the interval. running from start_d to end_d. """ return _HTSeq_internal.GenomicInterval_xranged( self, step ) cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ): """Extend the interval such that it includes iv.""" if iv is None: raise TypeError, "Cannot extend an interval to include None." if self.chrom != iv.chrom: raise ValueError, "Cannot extend an interval to include an interval on another chromosome." if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ self.strand is not iv.strand: raise ValueError, "Cannot extend an interval to include an interval on another strand." self.start = min( self.start, iv.start ) self.end = max( self.end, iv.end ) def copy( self ): return GenomicInterval( self.chrom, self.start, self.end, self.strand ) def GenomicInterval_from_directional( str chrom, long int start_d, long int length, str strand="." ): strand = intern( strand ) if strand.se is not strand_minus: return GenomicInterval( chrom, start_d, start_d+length, strand ) else: return GenomicInterval( chrom, start_d-length+1, start_d+1, strand ) cdef class GenomicPosition( GenomicInterval ): """A GenomicPosition specifies the position of a nucleotide or base pair on a reference genome. It has the following slots: chrom: The name of a sequence (i.e., chromosome, contig, or the like). pos: The position on the sequence specified by seqname. The position should always be given as 0-based value! strand: The strand, as a single character, '+' or '-'. '.' indicates that the strand is irrelavant. The GenomicPosition class is derived from GenomicInterval. Hence, a GenomicPosition is always a GenomicInterval of length 1. Do not tinker with the exposed GenomeInterval slots. """ def __init__( self, str chrom, long int pos, str strand='.' ): GenomicInterval.__init__( self, chrom, pos, pos+1, strand ) property pos: """As GenomicPosition is a subclass of GenomicInterval, 'pos' is actually just an alias for 'start_d'. """ def __get__( self ): return self.start_d def __set__( self, long newValue ): self.start_d = newValue property end: def __get__( self ): return self.start + 1 property length: def __get__( self ): return 1 def __repr__( self ): return "<%s object '%s':%d, strand '%s'>" % \ ( self.__class__.__name__, self.chrom, self.pos, self.strand ) def __str__( self ): return "%s:%d/%s" % ( self.chrom, self.pos, self.strand ) def __reduce__( GenomicPosition self ): return GenomicPosition, ( self.chrom, self.pos, self.strand ) def copy( self ): return GenomicPosition( self.chrom, self.pos, self.strand ) cdef class ChromVector( object ): cdef public object array cdef public GenomicInterval iv cdef public int offset cdef public bint is_vector_of_sets cdef public str _storage @classmethod def create( cls, GenomicInterval iv, str typecode, str storage, str memmap_dir = "" ): ncv = cls() ncv.iv = iv if storage == "ndarray": if typecode != 'O': ncv.array = numpy.zeros( shape = ( iv.length, ), dtype = typecode ) else: ncv.array = numpy.empty( shape = ( iv.length, ), dtype = typecode ) ncv.array[:] = None elif storage == "memmap": ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) elif storage == "step": ncv.array = StepVector.StepVector.create( typecode = typecode ) else: raise ValueError, "Illegal storage mode." ncv._storage = storage # TODO: Test whether offset works properly ncv.offset = iv.start ncv.is_vector_of_sets = False return ncv @classmethod def _create_view( cls, ChromVector vec, GenomicInterval iv ): if iv.length == 0: raise IndexError, "Cannot subset to zero-length interval." v = cls() v.iv = iv v.array = vec.array v.offset = vec.offset v.is_vector_of_sets = vec.is_vector_of_sets v._storage = vec._storage return v def __getitem__( self, index ): cdef slice index_slice cdef long int index_int cdef long int start, stop cdef GenomicInterval iv if isinstance( index, int ): index_int = index if index_int < self.iv.start or index_int >= self.iv.end: raise IndexError return self.array[ index_int - self.offset ] elif isinstance( index, slice ): index_slice = index if index_slice.start is not None: start = index_slice.start if start < self.iv.start: raise IndexError, "start too small" else: start = self.iv.start if index_slice.stop is not None: stop = index_slice.stop if stop > self.iv.end: raise IndexError, "stop too large" else: stop = self.iv.end iv = GenomicInterval( self.iv.chrom, start, stop, self.iv.strand ) if not self.iv.contains( iv ): raise IndexError return ChromVector._create_view( self, iv ) elif isinstance( index, GenomicInterval ): if not self.iv.contains( index ): raise IndexError if self.iv.strand is strand_nostrand and \ index.strand is not strand_nostrand: iv = index.copy() # Is this correct now? iv.strand = strand_nostrand return ChromVector._create_view( self, iv ) else: raise TypeError, "Illegal index type" def __setitem__( self, index, value ): cdef slice index_slice cdef long int start, stop if isinstance( value, ChromVector ): if self.array is value.array and value.iv.start == index.start and \ value.iv.end == index.stop and ( index.step is None or index.step == 1 ): return else: raise NotImplementedError, "Required assignment signature not yet implemented." if isinstance( index, int ): self.array[ index - self.iv.start ] = value elif isinstance( index, slice ): index_slice = index if index_slice.start is not None: start = index_slice.start if start < self.iv.start: raise IndexError, "start too small" else: start = self.iv.start if index_slice.stop is not None: stop = index_slice.stop if stop > self.iv.end: raise IndexError, "stop too large" else: stop = self.iv.end if start > stop: raise IndexError, "Start of interval is after its end." if start == stop: raise IndexError, "Cannot assign to zero-length interval." self.array[ start - self.offset : stop - self.iv.start : index.step ] = value elif isinstance( index, GenomicInterval ): if index.chrom != self.iv.chrom: raise KeyError, "Chromosome name mismatch." if self.iv.strand is not strand_nostrand and \ self.iv.strand is not self.index.strand: raise KeyError, "Strand mismatch." self.array[ index.iv.start - self.iv.start, index.iv.end - self.iv.start ] = value else: raise TypeError, "Illegal index type" def __iadd__( self, value ): if not self.is_vector_of_sets: self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) else: def addval( x ): y = x.copy() y.add( value ) return y self.apply( addval ) return self def __iter__( self ): return self.values() def values( self ): return iter( self.array[ self.iv.start - self.offset : self.iv.end - self.offset ] ) def steps( self ): return _HTSeq_internal.ChromVector_steps( self ) def apply( self, fun ): for iv, value in self.steps(): self.array[ iv.start - self.offset : iv.end - self.offset ] = fun( value ) def __repr__( self ): return "<%s object, %s, %s>" % ( self.__class__.__name__, str(self.iv), self._storage ) def __reduce__( self ): assert self.__class__ is ChromVector return( _ChromVector_unpickle, ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): cv = ChromVector() cv.array = array cv.iv = iv cv.offset = offset cv.is_vector_of_sets = is_vector_of_sets cv._storage = _storage return cv cdef class GenomicArray( object ): cdef public dict chrom_vectors cdef readonly bint stranded cdef readonly str typecode cdef public bint auto_add_chroms cdef readonly str storage cdef readonly str memmap_dir def __init__( self, object chroms, bint stranded=True, str typecode='d', str storage='step', str memmap_dir = "" ): self.chrom_vectors = {} self.stranded = stranded self.typecode = typecode self.auto_add_chroms = chroms == "auto" if self.auto_add_chroms: chroms = [] if storage != 'step': raise TypeError, "Automatic adding of chromosomes can " + \ " only be used with storage type 'StepVector'." elif isinstance( chroms, list ): if storage != 'step': raise TypeError, "Indefinite-length chromosomes can " + \ " only be used with storage type 'StepVector'." chroms = dict( [ ( c, sys.maxint ) for c in chroms ] ) elif not isinstance( chroms, dict ): raise TypeError, "'chroms' must be a list or a dict or 'auto'." self.storage = storage self.memmap_dir = memmap_dir for chrom in chroms: self.add_chrom( chrom, chroms[chrom] ) def __getitem__( self, index ): if isinstance( index, GenomicInterval ): if self.stranded and index.strand not in ( strand_plus, strand_minus ): raise KeyError, "Non-stranded index used for stranded GenomicArray." if self.auto_add_chroms and index.chrom not in self.chrom_vectors: self.add_chrom( index.chrom ) if isinstance( index, GenomicPosition ): if self.stranded: return self.chrom_vectors[ index.chrom ][ index.strand ][ index.pos ] else: return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.pos ] else: if self.stranded: return self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] else: return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] else: return self.chrom_vectors[ index ] def __setitem__( self, index, value ): cdef GenomicInterval index2 if isinstance( value, ChromVector ): if not isinstance( index, GenomicInterval ): raise NotImplementedError, "Required assignment signature not yet implemented." index2 = index.copy() if not self.stranded: index2.strand = strand_nostrand if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: return raise NotImplementedError, "Required assignment signature not yet implemented." if isinstance( index, GenomicInterval ): if self.stranded and index.strand not in ( strand_plus, strand_minus ): raise KeyError, "Non-stranded index used for stranded GenomicArray." if self.auto_add_chroms and index.chrom not in self.chrom_vectors: self.add_chrom( index.chrom ) if self.stranded: self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] = value else: self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] = value else: raise TypeError, "Illegal index type." def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): cdef GenomicInterval iv if length == sys.maxint: iv = GenomicInterval( chrom, start_index, sys.maxint, "." ) else: iv = GenomicInterval( chrom, start_index, start_index + length, "." ) if self.stranded: self.chrom_vectors[ chrom ] = {} iv.strand = "+" self.chrom_vectors[ chrom ][ strand_plus ] = \ ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) iv = iv.copy() iv.strand = "-" self.chrom_vectors[ chrom ][ strand_minus ] = \ ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) else: self.chrom_vectors[ chrom ] = { strand_nostrand: ChromVector.create( iv, self.typecode, self.storage ) } def __reduce__( self ): return ( _GenomicArray_unpickle, ( self.stranded, self.typecode, self.chrom_vectors ) ) def write_bedgraph_file( self, file_or_filename, strand=".", track_options="" ): if ( not self.stranded ) and strand != ".": raise ValueError, "Strand specified in unstranded GenomicArray." if self.stranded and strand not in ( strand_plus, strand_minus ): raise ValueError, "Strand must be specified for stranded GenomicArray." if hasattr( file_or_filename, "write" ): f = file_or_filename else: f = open( file_or_filename, "w" ) if track_options == "": f.write( "track type=bedGraph\n" ) else: f.write( "track type=bedGraph %s\n" % track_options ) for chrom in self.chrom_vectors: for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): if iv.start == -sys.maxint-1 or iv.end == sys.maxint: continue f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) if not hasattr( file_or_filename, "write" ): f.close() def steps( self ): return _HTSeq_internal.GenomicArray_steps( self ) def _GenomicArray_unpickle( stranded, typecode, chrom_vectors ): ga = GenomicArray( {}, stranded, typecode ) ga.chrom_vectors = chrom_vectors return ga ########################### ## Sequences ########################### def _make_translation_table_for_complementation( ): t = [ chr(i) for i in xrange(256) ] t[ ord('A') ] = 'T' t[ ord('T') ] = 'A' t[ ord('C') ] = 'G' t[ ord('G') ] = 'C' t[ ord('a') ] = 't' t[ ord('t') ] = 'a' t[ ord('c') ] = 'g' t[ ord('g') ] = 'c' return ''.join( t ) cdef bytes _translation_table_for_complementation = _make_translation_table_for_complementation( ) cpdef bytes reverse_complement( bytes seq ): """Returns the reverse complement of DNA sequence 'seq'. Does not yet work with extended IUPAC nucleotide letters or RNA.""" return seq[ ::-1 ].translate( _translation_table_for_complementation ) base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } cdef class Sequence( object ): """A Sequence, typically of DNA, with a name. """ def __init__( self, bytes seq, str name="unnamed" ): self.seq = seq self.name = name self.descr = None cpdef Sequence get_reverse_complement( self ): return Sequence( reverse_complement( self.seq ), "revcomp_of_" + self.name ) def __str__( self ): return self.seq def __repr__( self ): return "<%s object '%s' (length %d)>" % ( self.__class__.__name__, self.name, len( self.seq ) ) def __len__( self ): return len( self.seq ) def __getitem__( self, item ): if self.name.endswith( "[part]" ): new_name = self.name else: new_name = self.name + "[part]" return Sequence( self.seq[ item ], new_name ) def write_to_fasta_file( self, fasta_file ): if self.descr is not None: fasta_file.write( ">%s %s\n" % ( self.name, self.descr ) ) else: fasta_file.write( ">%s\n" % self.name ) i = 0 while i*70 < len(self.seq): fasta_file.write( self.seq[ i*70 : (i+1)*70 ] + "\n" ) i += 1 cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ): cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ cdef int seq_length = len( self.seq ) if numpy.PyArray_DIMS( count_array )[0] < seq_length: raise ValueError, "'count_array' too small for sequence." if numpy.PyArray_DIMS( count_array )[1] < 5: raise ValueError, "'count_array' has too few columns." cdef numpy.npy_intp i cdef char b cdef char* seq_cstr = self.seq for i in xrange( seq_length ): b = seq_cstr[i] if b == 'A' or b == 'a': count_array[ i, 0 ] += 1 elif b == 'C' or b == 'c': count_array[ i, 1 ] += 1 elif b == 'G' or b == 'g': count_array[ i, 2 ] += 1 elif b == 'T' or b == 't': count_array[ i, 3 ] += 1 elif b == 'N' or b == 'n' or b == ".": count_array[ i, 4 ] += 1 else: raise ValueError, "Illegal base letter encountered." return None cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): cdef int seqlen = len( self.seq ) cdef int patlen = len( pattern.seq ) cdef int minlen if seqlen < patlen: minlen = seqlen else: minlen = patlen cdef char * seq_cstr = self.seq cdef char * pat_cstr = pattern.seq cdef int match = 0 cdef int i, j cdef int num_mismatches for i in xrange( 1, minlen+1 ): num_mismatches = 0 for j in xrange( i ): if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: num_mismatches += 1 if num_mismatches > mismatch_prop * i: break else: match = i return self[ match : seqlen ] cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): cdef int seqlen = len( self.seq ) cdef int patlen = len( pattern.seq ) cdef int minlen if seqlen < patlen: minlen = seqlen else: minlen = patlen cdef char * seq_cstr = self.seq cdef char * pat_cstr = pattern.seq cdef int match = 0 cdef int i, j cdef int num_mismatches for i in xrange( 1, minlen+1 ): num_mismatches = 0 for j in xrange( i ): if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: num_mismatches += 1 if num_mismatches > mismatch_prop * i: break else: match = i return self[ 0 : seqlen-match ] cdef class SequenceWithQualities( Sequence ): """A Sequence with base-call quality scores. It now has property 'qual', an integer NumPy array of Sanger/Phred quality scores of the base calls. """ def __init__( self, bytes seq, str name, bytes qualstr, str qualscale="phred" ): """ Construct a SequenceWithQuality object. seq - The actual sequence. name - The sequence name or ID qualstr - The quality string. Must have the same length as seq qualscale - The encoding scale of the quality string. Must be one of "phred", "solexa", "solexa-old", or "noquals" ) """ Sequence.__init__( self, seq, name ) if qualscale != "noquals": if len( seq ) != len( qualstr ): raise ValueError, "'seq' and 'qualstr' do not have the same length." self._qualstr = qualstr else: self._qualstr = b'' self._qualscale = qualscale self._qualarr = None self._qualstr_phred = b'' cdef _fill_qual_arr( SequenceWithQualities self ): cdef int seq_len = len( self.seq ) if self._qualscale == "missing": raise ValueError, "Quality string missing." if seq_len != len( self._qualstr ): raise ValueError, "Quality string has not the same length as sequence." cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qualarr = numpy.empty( ( seq_len, ), numpy.int ) cdef int i cdef char * qualstr = self._qualstr if self._qualscale == "phred": for i in xrange( seq_len ): qualarr[i] = qualstr[i] - 33 elif self._qualscale == "solexa": for i in xrange( seq_len ): qualarr[i] = qualstr[i] - 64 elif self._qualscale == "solexa-old": for i in xrange( seq_len ): qualarr[i] = 10 * math.log10( 1 + 10 ** ( qualstr[i] - 64 ) / 10.0 ) else: raise ValueError, "Illegal quality scale '%s'." % self._qualscale self._qualarr = qualarr property qual: def __get__( self ): if self._qualarr is None: self._fill_qual_arr() return self._qualarr def __set__( self, newvalue ): if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : raise TypeError, "qual can only be assigned a numpy array of type numpy.int" if not ( newvalue.shape == ( len(self.seq), ) ) : raise TypeError, "assignment to qual with illegal shape" self._qualarr = newvalue self._qualstr = b"" self._qualscale = "none" self._qualstr_phred = b"" def __repr__( self ): return "<%s object '%s'>" % ( self.__class__.__name__, self.name ) def __getitem__( self, item ): if self.name.endswith( "[part]" ): new_name = self.name else: new_name = self.name + "[part]" return SequenceWithQualities( self.seq[ item ], new_name, self.qualstr[ item ] ) @property def qualstr( self ): cdef int seqlen cdef char * qualstr_phred_cstr = self._qualstr_phred cdef int i cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array if qualstr_phred_cstr[0] == 0: if self._qualscale == "noquals": raise ValueError, "Quality string missing" if self._qualscale == "phred": self._qualstr_phred = self._qualstr else: seqlen = len( self.seq ) self._qualstr_phred = (' ') * seqlen qualstr_phred_cstr = self._qualstr_phred if self._qualarr is None: self._fill_qual_arr() qual_array = self._qualarr for i in xrange( seqlen ): qualstr_phred_cstr[i] = 33 + qual_array[i] return self._qualstr_phred def write_to_fastq_file( self, fastq_file ): if hasattr( self, "descr" ) and self.descr is not None: fastq_file.write( "@%s %s\n" % ( self.name, self.descr ) ) else: fastq_file.write( "@%s\n" % self.name ) fastq_file.write( self.seq + "\n" ) fastq_file.write( "+\n" ) fastq_file.write( self.qualstr + "\n" ) def get_fastq_str( self, bint convert_to_phred=False ): sio = cStringIO.StringIO() self.write_to_fastq_file( sio, convert_to_phred ) return sio.getvalue() cpdef SequenceWithQualities get_reverse_complement( self ): cdef SequenceWithQualities res res = SequenceWithQualities( reverse_complement( self.seq ), "revcomp_of_" + self.name, self._qualstr[::-1], self._qualscale ) if self._qualarr is not None: res._qualarr = self._qualarr[::-1] return res cpdef object add_qual_to_count_array( SequenceWithQualities self, numpy.ndarray count_array_ ): cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ if self._qualarr is None: self._fill_qual_arr() cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr cdef numpy.npy_intp seq_length = numpy.PyArray_DIMS( qual_array )[0] cdef numpy.npy_intp qual_size = numpy.PyArray_DIMS( count_array )[1] if seq_length > numpy.PyArray_DIMS( count_array )[0]: raise ValueError, "'count_array' too small for sequence." cdef numpy.npy_intp i cdef numpy.npy_int q for i in xrange( seq_length ): q = qual_array[i] if( q >= qual_size ): raise ValueError, "Too large quality value encountered." count_array[ i, q ] += 1 return None cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, Sequence pattern, int max_mm_qual = 5 ): cdef int seqlen = len( self.seq ) cdef int patlen = len( pattern.seq ) cdef int minlen if seqlen < patlen: minlen = seqlen else: minlen = patlen cdef char * seq_cstr = self.seq cdef char * pat_cstr = pattern.seq cdef int match = 0 cdef int i, j cdef int sum_mm_qual if self._qualarr is None: self._fill_qual_arr() cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr for i in xrange( 1, minlen+1 ): num_mismatches = 0 for j in xrange( i ): if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: sum_mm_qual += qual_array[ j ] if sum_mm_qual > max_mm_qual: break else: match = i return self[ match : seqlen ] cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, Sequence pattern, int max_mm_qual = 5 ): cdef int seqlen = len( self.seq ) cdef int patlen = len( pattern.seq ) cdef int minlen if seqlen < patlen: minlen = seqlen else: minlen = patlen cdef char * seq_cstr = self.seq cdef char * pat_cstr = pattern.seq cdef int match = 0 cdef int i, j cdef int sum_mm_qual if self._qualarr is None: self._fill_qual_arr() cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr for i in xrange( 1, minlen+1 ): sum_mm_qual = 0 for j in xrange( i ): if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: sum_mm_qual += qual_array[ seqlen - i + j ] if sum_mm_qual > max_mm_qual: break else: match = i return self[ 0 : seqlen-match ] ########################### ## Alignment ########################### cdef class Alignment( object ): """Alignment base type: An alignment object can be defined in different ways but will always provide these attributes: read: a SequenceWithQualities object with the read aligned: whether the read is aligned iv: a GenomicInterval object with the alignment position """ def __init__( self, read, iv ): self._read = read self.iv = iv @property def read( self ): return self._read def __repr__( self ): cdef str s if self.paired_end: s = "Paired-end read" else: s = "Read" if self.aligned: return "<%s object: %s '%s' aligned to %s>" % ( self.__class__.__name__, s, self.read.name, str(self.iv) ) else: return "<%s object: %s '%s', not aligned>" % ( self.__class__.__name__, s, self.read.name ) @property def paired_end( self ): return False @property def aligned( self ): """Returns True unless self.iv is None. The latter indicates that this record decribes a read for which no alignment was found. """ return self.iv is not None cdef class AlignmentWithSequenceReversal( Alignment ): """Many aligners report the read's sequence in reverse-complemented form when it was mapped to the reverse strand. For such alignments, a daughter class of this one should be used. Then, the read is stored as aligned in the 'read_as_aligned' field, and get reverse-complemented back to the sequenced form when the 'read' attribute is sequenced. """ def __init__( self, SequenceWithQualities read_as_aligned, GenomicInterval iv ): self.read_as_aligned = read_as_aligned self._read_as_sequenced = None self.iv = iv property read: def __get__( self ): if self._read_as_sequenced is None: if (not self.aligned) or self.iv.strand != "-": self._read_as_sequenced = self.read_as_aligned else: self._read_as_sequenced = self.read_as_aligned.get_reverse_complement() self._read_as_sequenced.name = self.read_as_aligned.name return self._read_as_sequenced #def __set__( self, read ): # self.read_as_aligned = read # self._read_as_sequenced = None cdef class BowtieAlignment( AlignmentWithSequenceReversal ): """When reading in a Bowtie file, objects of the class BowtieAlignment are returned. In addition to the 'read' and 'iv' fields (see Alignment class), the fields 'reserved' and 'substitutions' are provided. These contain the content of the respective columns of the Bowtie output [A parser for the substitutions field will be added soon.] """ cdef public str reserved cdef public str substitutions def __init__( self, bowtie_line ): cdef str readId, strand, chrom, position, read, qual cdef int positionint (readId, strand, chrom, position, read, qual, self.reserved, self.substitutions) = bowtie_line.split( '\t' ) positionint = int( position ) AlignmentWithSequenceReversal.__init__( self, SequenceWithQualities( read, readId, qual ), GenomicInterval( chrom, positionint, positionint + len(read), strand ) ) cigar_operation_names = { 'M': 'matched', 'I': 'inserted', 'D': 'deleted', 'N': 'skipped', 'S': 'soft-clipped', 'H': 'hard-clipped', 'P': 'padded' } cdef class CigarOperation( object ): cdef public str type cdef public int size cdef public GenomicInterval ref_iv cdef public int query_from, query_to def __init__( self, str type_, int size, int rfrom, int rto, int qfrom, int qto, str chrom, str strand, bint check=True ): self.type = type_ self.size = size self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) self.query_from = qfrom self.query_to = qto if check and not self.check(): raise ValueError, "Inconsistent CIGAR operation." def __repr__( self ): return "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >" % ( self.__class__.__name__, self.size, cigar_operation_names[ self.type ], str( self.ref_iv ), self.query_from, self.query_to ) def check( CigarOperation self ): cdef int qlen = self.query_to - self.query_from cdef int rlen = self.ref_iv.length if self.type == 'M': if not ( qlen == self.size and rlen == self.size ): return False elif self.type == 'I' or self.type == 'S': if not ( qlen == self.size and rlen == 0 ): return False elif self.type == 'D' or self.type == 'N': if not ( qlen == 0 and rlen == self.size ): return False elif self.type == 'H' or self.type == 'P': if not ( qlen == 0 and rlen == 0 ): return False else: return False return True _re_cigar_codes = re.compile( '([A-Z])' ) cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): cdef list split_cigar, cl cdef int size cdef str code split_cigar = _re_cigar_codes.split( cigar_string ) if split_cigar[-1] != '' or len(split_cigar) % 2 != 1: raise ValueError, "Illegal CIGAR string '%s'" % cigar_string cl = [] for i in xrange( len(split_cigar) // 2 ): try: size = int( split_cigar[2*i] ) except ValueError: raise ValueError, "Illegal CIGAR string '%s'" % cigar_string code = split_cigar[2*i+1] cl.append( ( code, size ) ) return build_cigar_list( cl, ref_left, chrom, strand ) cpdef list build_cigar_list( list cigar_pairs, int ref_left = 0, str chrom = "", str strand = "." ): cdef list split_cigar, res cdef int rpos, qpos, size cdef str code rpos = ref_left qpos = 0 res = [] for code, size in cigar_pairs: if code == 'M': res.append( CigarOperation ( 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) rpos += size qpos += size elif code == 'I': res.append( CigarOperation ( 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) qpos += size elif code == 'D': res.append( CigarOperation ( 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) rpos += size elif code == 'N': res.append( CigarOperation ( 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) rpos += size elif code == 'S': res.append( CigarOperation ( 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) qpos += size elif code == 'H': res.append( CigarOperation ( 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) elif code == 'P': res.append( CigarOperation ( 'P', size, rpos, rpos, qpos, qpos, chrom, strand ) ) else: raise ValueError, "Unknown CIGAR code '%s' encountered." % code return res cdef _parse_SAM_optional_field_value( str field ): if len(field) < 5 or field[2] != ':' or field[4] != ':': raise ValueError, "Malformatted SAM optional field '%'" % field if field[3] == 'A': return field[5] elif field[3] == 'i': return int( field[5:] ) elif field[3] == 'f': return float( field[5:] ) elif field[3] == 'Z': return field[5:] elif field[3] == 'H': return int( field[5:], 16 ) else: raise ValueError, "SAM optional field with illegal type letter '%s'" % field[2] cigar_operation_codes = [ 'M', 'I', 'D', 'N', 'S', 'H', 'P', '=', 'X'] cigar_operation_code_dict = dict( [ (x,i) for i,x in enumerate( cigar_operation_codes ) ] ) cdef class SAM_Alignment( AlignmentWithSequenceReversal ): """When reading in a SAM file, objects of the class SAM_Alignment are returned. In addition to the 'read', 'iv' and 'aligned' fields (see Alignment class), the following fields are provided: - aQual: the alignment quality score - cigar: a list of CigarOperatio objects, describing the alignment - tags: the extra information tags [not yet implemented] """ def to_pysam_AlignedRead( self, sf ): try: import pysam except ImportError: sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) raise a = pysam.AlignedRead() a.seq = self.read.seq a.qual = self.read.qualstr a.qname = self.read.name a.flag = self.flag a.tags = self.optional_fields if self.aligned: a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] a.pos = self.iv.start a.tid = sf.gettid( self.iv.chrom ) a.isize = self.inferred_insert_size a.mapq = self.aQual else: a.pos = -1 a.tid = -1 if self.mate_aligned: a.mrnm = sf.gettid( self.mate_start.chrom ) a.mpos = self.mate_start.start else: a.mrnm = -1 a.mpos = -1 return a @classmethod def from_pysam_AlignedRead( cls, read, samfile ): strand = "-" if read.is_reverse else "+" if not read.is_unmapped: chrom = samfile.getrname(read.tid) iv = GenomicInterval( chrom, read.pos, read.aend, strand ) else: iv = None if read.qual != "*": seq = SequenceWithQualities( read.seq, read.qname, read.qual ) else: seq = SequenceWithQualities( read.seq, read.qname, read.qual, "noquals" ) a = SAM_Alignment( seq, iv ) a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] a.inferred_insert_size = read.isize a.aQual = read.mapq a.flag = read.flag a.proper_pair = read.is_proper_pair a.not_primary_alignment = read.is_secondary a.failed_platform_qc = read.is_qcfail a.pcr_or_optical_duplicate = read.is_duplicate a.original_sam_line = "" a.optional_fields = read.tags if read.is_paired: if read.is_proper_pair: strand = "-" if read.mate_is_reverse else "+" a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) if read.is_read1: a.pe_which = intern( "first" ) elif read.is_read2: a.pe_which = intern( "second" ) else: a.pe_which = intern( "unknown" ) else: a.pe_which = intern( "not_paired_end" ) return a @classmethod def from_SAM_line( cls, line ): cdef str qname, flag, rname, pos, mapq, cigar, cdef str mrnm, mpos, isize, seq, qual cdef list optional_fields cdef int posint, flagint cdef str strand cdef list cigarlist cdef SequenceWithQualities swq fields = line.rstrip().split( "\t" ) if len( fields ) < 10: raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, seq, qual) = fields[ 0:11 ] optional_fields = fields[ 11: ] if seq.count( "=" ) > 0: raise ValueError, "Sequence in SAM file contains '=', which is not supported." if seq.count( "." ) > 0: raise ValueError, "Sequence in SAM file contains '.', which is not supported." flagint = int( flag ) if flagint & 0x0004: # flag "query sequence is unmapped" iv = None cigarlist = None if rname != "*": # flag "query sequence is unmapped" warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) else: if rname == "*": raise ValueError, "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared" posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! if flagint & 0x0010: # flag "strand of the query" strand = "-" else: strand = "+" cigarlist = parse_cigar( cigar, posint, rname, strand ) iv = GenomicInterval( rname, posint, cigarlist[-1].ref_iv.end, strand ) if qual != "*": swq = SequenceWithQualities( seq.upper(), qname, qual ) else: swq = SequenceWithQualities( seq.upper(), qname, "", "noquals" ) alnmt = SAM_Alignment( swq, iv ) alnmt.flag = flagint alnmt.cigar = cigarlist alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] alnmt.aQual = int( mapq ) alnmt.inferred_insert_size = int( isize ) alnmt.original_sam_line = line if flagint & 0x0001: # flag "read is paired in sequencing" if flagint & 0x0008: # flag "mate is unmapped" if mrnm != "*": warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) alnmt.mate_start = None else: if mrnm == "*": raise ValueError, "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared" posint = int( mpos ) - 1 if flagint & 0x0020: # flag "strand of the mate" strand = "-" else: strand = "+" alnmt.mate_start = GenomicPosition( mrnm, posint, strand ) if alnmt.mate_start.chrom == "=": if alnmt.iv is not None: alnmt.mate_start.chrom = alnmt.iv.chrom else: warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) if flagint & 0x0040: alnmt.pe_which = intern( "first" ) elif flagint & 0x0080: alnmt.pe_which = intern( "second" ) else: alnmt.pe_which = intern( "unknown" ) else: alnmt.mate_start = None alnmt.pe_which = intern( "not_paired_end" ) alnmt.proper_pair = flagint & 0x0002 > 0 alnmt.not_primary_alignment = flagint & 0x0100 > 0 alnmt.failed_platform_qc = flagint & 0x0200 > 0 alnmt.pcr_or_optical_duplicate = flagint & 0x0400 > 0 return alnmt property flag: def __get__( self ): return self._flag def __set__( self, value ): self._flag = value @property def paired_end( self ): return self.pe_which != "not_paired_end" @property def mate_aligned( self ): return self.mate_start is not None def get_sam_line( self ): cdef str cigar = "" cdef GenomicInterval query_start, mate_start cdef CigarOperation cop if self.aligned: query_start = self.iv else: query_start = GenomicPosition( "*", -1 ) if self.mate_start is not None: mate_start = self.mate_start else: mate_start = GenomicPosition( "*", -1 ) if self.cigar is not None: for cop in self.cigar: cigar += str(cop.size) + cop.type else: cigar = "*" return '\t'.join( ( self.read.name, str(self.flag), query_start.chrom, str(query_start.start+1), str(self.aQual), cigar, mate_start.chrom, str(mate_start.pos+1), str(self.inferred_insert_size), self.read_as_aligned.seq, self.read_as_aligned.qualstr, '\t'.join( self.raw_optional_fields() ) ) ) def optional_field( SAM_Alignment self, str tag ): res = [ p for p in self.optional_fields if p[0] == tag ] if len(res) == 1: return res[0][1] else: if len(res) == 0: raise KeyError, "SAM optional field tag %s not found" % tag else: raise ValueError, "SAM optional field tag %s not unique" % tag def raw_optional_fields( self ): res = [] for op in self.optional_fields: if op[1].__class__ == str: if len(op[1]) == 1: tc = "A" else: tc = "Z" elif op[1].__class__ == int: tc = "i" elif op[1].__class__ == float: tc = "j" else: tc = "H" res.append( ":".join( [ op[0], tc, str(op[1]) ] ) ) return res HTSeq-0.5.4p3/src/HTSeq/_HTSeq.pxd0000664000175000017500000000425412110432433017134 0ustar andersanders00000000000000cimport numpy cdef class GenomicInterval: cdef public str chrom cdef public long start cdef public long end cdef str _strand cpdef is_contained_in( self, GenomicInterval iv ) cpdef contains( self, GenomicInterval iv ) cpdef overlaps( self, GenomicInterval iv ) cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ) cdef class GenomicPosition( GenomicInterval ): pass cdef class Sequence( object ): cdef public bytes seq cdef public str name cdef public str descr cpdef Sequence get_reverse_complement( self ) cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ) cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) cdef class SequenceWithQualities( Sequence ): cdef readonly bytes _qualstr cdef readonly bytes _qualstr_phred cdef readonly str _qualscale cdef readonly object _qualarr cdef _fill_qual_arr( SequenceWithQualities self ) cpdef object add_qual_to_count_array( SequenceWithQualities self, numpy.ndarray count_array_ ) cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, Sequence pattern, int max_mm_qual = ? ) cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, Sequence pattern, int max_mm_qual = ? ) cdef class Alignment( object ): cdef public SequenceWithQualities _read cdef public GenomicInterval iv cdef class AlignmentWithSequenceReversal( Alignment ): cdef public SequenceWithQualities read_as_aligned cdef public SequenceWithQualities _read_as_sequenced cdef class SAM_Alignment( AlignmentWithSequenceReversal ): cdef public list cigar cdef public int aQual cdef public GenomicPosition mate_start cdef public str pe_which cdef public int inferred_insert_size cdef public bint proper_pair cdef public bint not_primary_alignment cdef public bint failed_platform_qc cdef public bint pcr_or_optical_duplicate cdef readonly str original_sam_line cdef int _flag cdef public list optional_fields HTSeq-0.5.4p3/src/AutoPyObjPtr.i0000664000175000017500000000343612110432433017025 0ustar andersanders00000000000000/* This file defines a smart pointer "AutoAutoPyObjPtr" for PyObjects that deals with Python reference counting. This allows to store Python objects in a C++ container. Typemaps are provided to transform to standard Python objects. Simon Anders, 2009-08-28 */ %{ struct AutoPyObjPtr { PyObject * obj; AutoPyObjPtr( PyObject * o = Py_None ); AutoPyObjPtr( const AutoPyObjPtr & op ); AutoPyObjPtr & operator= ( const AutoPyObjPtr & po ); bool operator== ( const AutoPyObjPtr & po ) const; ~AutoPyObjPtr( ); #ifdef AUTOPYOBJPTR_EXTRAOPS AutoPyObjPtr & operator+=( const AutoPyObjPtr & po ); AutoPyObjPtr & operator+( const AutoPyObjPtr & po ); #endif }; AutoPyObjPtr::AutoPyObjPtr( PyObject * o ) : obj( o ) { Py_XINCREF( obj ); } AutoPyObjPtr::AutoPyObjPtr( const AutoPyObjPtr & op ) : obj( op.obj ) { Py_XINCREF( obj ); } AutoPyObjPtr & AutoPyObjPtr::operator= ( const AutoPyObjPtr & po ) { Py_XDECREF( obj ); obj = po.obj; Py_XINCREF( obj ); return *this; } bool AutoPyObjPtr::operator== ( const AutoPyObjPtr & po ) const { int res = PyObject_RichCompareBool( obj, po.obj, Py_EQ ); assert( res == 0 || res == 1 ); return res; } AutoPyObjPtr::~AutoPyObjPtr( ) { Py_XDECREF( obj ); } #ifdef AUTOPYOBJPTR_EXTRAOPS class type_error_non_arith {}; AutoPyObjPtr & AutoPyObjPtr::operator+= ( const AutoPyObjPtr & po ) { throw type_error_non_arith(); } AutoPyObjPtr & AutoPyObjPtr::operator+ ( const AutoPyObjPtr & po ) { throw type_error_non_arith(); } #endif %} %typemap(in) AutoPyObjPtr { $1 = AutoPyObjPtr( $input ); } %typemap(out) AutoPyObjPtr { Py_XINCREF( $1.obj ); $result = $1.obj; } HTSeq-0.5.4p3/src/_HTSeq.c0000664000175000017500000572534412135476304015632 0ustar andersanders00000000000000/* Generated by Cython 0.15.1 on Tue Apr 23 14:21:24 2013 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #else #include /* For offsetof */ #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #if PY_VERSION_HEX < 0x02040000 #define METH_COEXIST 0 #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) #define PyDict_Contains(d,o) PySequence_Contains(d,o) #endif #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #define PY_FORMAT_SIZE_T "" #define PyInt_FromSsize_t(z) PyInt_FromLong(z) #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) #define PyNumber_Index(o) PyNumber_Int(o) #define PyIndex_Check(o) PyNumber_Check(o) #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) #endif #if PY_VERSION_HEX < 0x02060000 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) #define PyVarObject_HEAD_INIT(type, size) \ PyObject_HEAD_INIT(type) size, #define PyType_Modified(t) typedef struct { void *buf; PyObject *obj; Py_ssize_t len; Py_ssize_t itemsize; int readonly; int ndim; char *format; Py_ssize_t *shape; Py_ssize_t *strides; Py_ssize_t *suboffsets; void *internal; } Py_buffer; #define PyBUF_SIMPLE 0 #define PyBUF_WRITABLE 0x0001 #define PyBUF_FORMAT 0x0004 #define PyBUF_ND 0x0008 #define PyBUF_STRIDES (0x0010 | PyBUF_ND) #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) #endif #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #endif #if PY_MAJOR_VERSION >= 3 #define Py_TPFLAGS_CHECKTYPES 0 #define Py_TPFLAGS_HAVE_INDEX 0 #endif #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #endif #if PY_VERSION_HEX < 0x02060000 #define PyBytesObject PyStringObject #define PyBytes_Type PyString_Type #define PyBytes_Check PyString_Check #define PyBytes_CheckExact PyString_CheckExact #define PyBytes_FromString PyString_FromString #define PyBytes_FromStringAndSize PyString_FromStringAndSize #define PyBytes_FromFormat PyString_FromFormat #define PyBytes_DecodeEscape PyString_DecodeEscape #define PyBytes_AsString PyString_AsString #define PyBytes_AsStringAndSize PyString_AsStringAndSize #define PyBytes_Size PyString_Size #define PyBytes_AS_STRING PyString_AS_STRING #define PyBytes_GET_SIZE PyString_GET_SIZE #define PyBytes_Repr PyString_Repr #define PyBytes_Concat PyString_Concat #define PyBytes_ConcatAndDel PyString_ConcatAndDel #endif #if PY_VERSION_HEX < 0x02060000 #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_VERSION_HEX < 0x03020000 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) #else #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) #endif #if PY_MAJOR_VERSION >= 3 #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) #else #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_NAMESTR(n) ((char *)(n)) #define __Pyx_DOCSTR(n) ((char *)(n)) #else #define __Pyx_NAMESTR(n) (n) #define __Pyx_DOCSTR(n) (n) #endif #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #define __PYX_HAVE__HTSeq___HTSeq #define __PYX_HAVE_API__HTSeq___HTSeq #include "stdio.h" #include "stdlib.h" #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #ifdef PYREX_WITHOUT_ASSERTIONS #define CYTHON_WITHOUT_ASSERTIONS #endif /* inline attribute */ #ifndef CYTHON_INLINE #if defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif /* unused attribute */ #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || defined(__INTEL_COMPILER) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ /* Type Conversion Predeclarations */ #define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s) #define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s)) #define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #ifdef __GNUC__ /* Test for GCC > 2.95 */ #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* __GNUC__ > 2 ... */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ > 2 ... */ #else /* __GNUC__ */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static PyObject *__pyx_m; static PyObject *__pyx_b; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "_HTSeq.pyx", "_HTSeq.pxd", "numpy.pxd", }; /* "numpy.pxd":719 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "numpy.pxd":720 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "numpy.pxd":721 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "numpy.pxd":722 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "numpy.pxd":726 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "numpy.pxd":727 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "numpy.pxd":728 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "numpy.pxd":729 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "numpy.pxd":733 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "numpy.pxd":734 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "numpy.pxd":743 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "numpy.pxd":744 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "numpy.pxd":745 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "numpy.pxd":747 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "numpy.pxd":748 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "numpy.pxd":749 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "numpy.pxd":751 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "numpy.pxd":752 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "numpy.pxd":754 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "numpy.pxd":755 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "numpy.pxd":756 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif /*--- Type declarations ---*/ struct __pyx_obj_5HTSeq_6_HTSeq_Alignment; struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal; struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment; struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray; struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__; struct __pyx_obj_5HTSeq_6_HTSeq_Sequence; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities; struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment; struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector; /* "numpy.pxd":758 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "numpy.pxd":759 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "numpy.pxd":760 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "numpy.pxd":762 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end; struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end; struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals; struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals; struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar; struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list; /* "HTSeq/_HTSeq.pxd":25 * cpdef Sequence get_reverse_complement( self ) * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ) * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) # <<<<<<<<<<<<<< * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) * */ struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end { int __pyx_n; float mismatch_prop; }; /* "HTSeq/_HTSeq.pxd":26 * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ) * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = ? ) # <<<<<<<<<<<<<< * * */ struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end { int __pyx_n; float mismatch_prop; }; /* "HTSeq/_HTSeq.pxd":36 * cdef _fill_qual_arr( SequenceWithQualities self ) * cpdef object add_qual_to_count_array( SequenceWithQualities self, numpy.ndarray count_array_ ) * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = ? ) * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, */ struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals { int __pyx_n; int max_mm_qual; }; /* "HTSeq/_HTSeq.pxd":38 * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, * Sequence pattern, int max_mm_qual = ? ) * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = ? ) * */ struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals { int __pyx_n; int max_mm_qual; }; /* "HTSeq/_HTSeq.pyx":1110 * _re_cigar_codes = re.compile( '([A-Z])' ) * * cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, cl * cdef int size */ struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar { int __pyx_n; int ref_left; PyObject *chrom; PyObject *strand; }; /* "HTSeq/_HTSeq.pyx":1127 * return build_cigar_list( cl, ref_left, chrom, strand ) * * cpdef list build_cigar_list( list cigar_pairs, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, res * cdef int rpos, qpos, size */ struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list { int __pyx_n; int ref_left; PyObject *chrom; PyObject *strand; }; /* "HTSeq/_HTSeq.pxd":42 * * * cdef class Alignment( object ): # <<<<<<<<<<<<<< * cdef public SequenceWithQualities _read * cdef public GenomicInterval iv */ struct __pyx_obj_5HTSeq_6_HTSeq_Alignment { PyObject_HEAD struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *_read; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *iv; }; /* "HTSeq/_HTSeq.pxd":46 * cdef public GenomicInterval iv * * cdef class AlignmentWithSequenceReversal( Alignment ): # <<<<<<<<<<<<<< * cdef public SequenceWithQualities read_as_aligned * cdef public SequenceWithQualities _read_as_sequenced */ struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal { struct __pyx_obj_5HTSeq_6_HTSeq_Alignment __pyx_base; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *read_as_aligned; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *_read_as_sequenced; }; /* "HTSeq/_HTSeq.pyx":1034 * * * cdef class BowtieAlignment( AlignmentWithSequenceReversal ): # <<<<<<<<<<<<<< * * """When reading in a Bowtie file, objects of the class BowtieAlignment */ struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment { struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal __pyx_base; PyObject *reserved; PyObject *substitutions; }; /* "HTSeq/_HTSeq.pyx":1067 * 'P': 'padded' } * * cdef class CigarOperation( object ): # <<<<<<<<<<<<<< * * cdef public str type */ struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation { PyObject_HEAD PyObject *type; int size; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *ref_iv; int query_from; int query_to; }; /* "HTSeq/_HTSeq.pxd":3 * cimport numpy * * cdef class GenomicInterval: # <<<<<<<<<<<<<< * * cdef public str chrom */ struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval { PyObject_HEAD struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *__pyx_vtab; PyObject *chrom; long start; long end; PyObject *_strand; }; /* "HTSeq/_HTSeq.pxd":15 * cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ) * * cdef class GenomicPosition( GenomicInterval ): # <<<<<<<<<<<<<< * pass * */ struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval __pyx_base; }; /* "HTSeq/_HTSeq.pyx":478 * return cv * * cdef class GenomicArray( object ): # <<<<<<<<<<<<<< * * cdef public dict chrom_vectors */ struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray { PyObject_HEAD PyObject *chrom_vectors; int stranded; PyObject *typecode; int auto_add_chroms; PyObject *storage; PyObject *memmap_dir; }; /* "HTSeq/_HTSeq.pyx":437 * raise TypeError, "Illegal index type" * * def __iadd__( self, value ): # <<<<<<<<<<<<<< * if not self.is_vector_of_sets: * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) */ struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ { PyObject_HEAD PyObject *__pyx_v_value; }; /* "HTSeq/_HTSeq.pxd":19 * * * cdef class Sequence( object ): # <<<<<<<<<<<<<< * cdef public bytes seq * cdef public str name */ struct __pyx_obj_5HTSeq_6_HTSeq_Sequence { PyObject_HEAD struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *__pyx_vtab; PyObject *seq; PyObject *name; PyObject *descr; }; /* "HTSeq/_HTSeq.pxd":29 * * * cdef class SequenceWithQualities( Sequence ): # <<<<<<<<<<<<<< * cdef readonly bytes _qualstr * cdef readonly bytes _qualstr_phred */ struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence __pyx_base; PyObject *_qualstr; PyObject *_qualstr_phred; PyObject *_qualscale; PyObject *_qualarr; }; /* "HTSeq/_HTSeq.pxd":50 * cdef public SequenceWithQualities _read_as_sequenced * * cdef class SAM_Alignment( AlignmentWithSequenceReversal ): # <<<<<<<<<<<<<< * cdef public list cigar * cdef public int aQual */ struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment { struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal __pyx_base; PyObject *cigar; int aQual; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *mate_start; PyObject *pe_which; int inferred_insert_size; int proper_pair; int not_primary_alignment; int failed_platform_qc; int pcr_or_optical_duplicate; PyObject *original_sam_line; int _flag; PyObject *optional_fields; }; /* "HTSeq/_HTSeq.pyx":314 * * * cdef class ChromVector( object ): # <<<<<<<<<<<<<< * * cdef public object array */ struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector { PyObject_HEAD PyObject *array; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *iv; int offset; int is_vector_of_sets; PyObject *_storage; }; /* "HTSeq/_HTSeq.pyx":26 * cdef str strand_nostrand = intern( "." ) * * cdef class GenomicInterval: # <<<<<<<<<<<<<< * * """A GenomicInterval specifies an interval (i.e., a range of */ struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval { PyObject *(*is_contained_in)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch); PyObject *(*contains)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch); PyObject *(*overlaps)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch); PyObject *(*extend_to_include)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *__pyx_vtabptr_5HTSeq_6_HTSeq_GenomicInterval; /* "HTSeq/_HTSeq.pyx":634 * base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } * * cdef class Sequence( object ): # <<<<<<<<<<<<<< * """A Sequence, typically of DNA, with a name. * """ */ struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*get_reverse_complement)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch); PyObject *(*add_bases_to_count_array)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, PyArrayObject *, int __pyx_skip_dispatch); struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*trim_left_end)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end *__pyx_optional_args); struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*trim_right_end)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end *__pyx_optional_args); }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *__pyx_vtabptr_5HTSeq_6_HTSeq_Sequence; /* "HTSeq/_HTSeq.pyx":754 * * * cdef class SequenceWithQualities( Sequence ): # <<<<<<<<<<<<<< * """A Sequence with base-call quality scores. * It now has property 'qual', an integer NumPy array of Sanger/Phred */ struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities { struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence __pyx_base; PyObject *(*_fill_qual_arr)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *); PyObject *(*add_qual_to_count_array)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, PyArrayObject *, int __pyx_skip_dispatch); struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*trim_left_end_with_quals)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals *__pyx_optional_args); struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*trim_right_end_with_quals)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals *__pyx_optional_args); struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*get_reverse_complement)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_vtabptr_5HTSeq_6_HTSeq_SequenceWithQualities; /* "HTSeq/_HTSeq.pyx":257 * * * cdef class GenomicPosition( GenomicInterval ): # <<<<<<<<<<<<<< * * """A GenomicPosition specifies the position of a nucleotide or */ struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicPosition { struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval __pyx_base; }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicPosition *__pyx_vtabptr_5HTSeq_6_HTSeq_GenomicPosition; #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #define __Pyx_RefNannySetupContext(name) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif /* CYTHON_REFNANNY */ static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name); /*proto*/ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/ static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); /*proto*/ static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } #define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ __Pyx_GetItemInt_List_Fast(o, i) : \ __Pyx_GetItemInt_Generic(o, to_py_func(i))) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) { if (likely(o != Py_None)) { if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, i); Py_INCREF(r); return r; } else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) { PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i); Py_INCREF(r); return r; } } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } #define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ __Pyx_GetItemInt_Tuple_Fast(o, i) : \ __Pyx_GetItemInt_Generic(o, to_py_func(i))) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) { if (likely(o != Py_None)) { if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, i); Py_INCREF(r); return r; } else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) { PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i); Py_INCREF(r); return r; } } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } #define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ __Pyx_GetItemInt_Fast(o, i) : \ __Pyx_GetItemInt_Generic(o, to_py_func(i))) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) { PyObject *r; if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { r = PyList_GET_ITEM(o, i); Py_INCREF(r); } else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { r = PyTuple_GET_ITEM(o, i); Py_INCREF(r); } else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) { r = PySequence_GetItem(o, i); } else { r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } return r; } static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname); static CYTHON_INLINE int __Pyx_NegateNonNeg(int b) { return unlikely(b < 0) ? b : !b; } static CYTHON_INLINE PyObject* __Pyx_PyBoolOrNull_FromLong(long b) { return unlikely(b < 0) ? NULL : __Pyx_PyBool_FromLong(b); } static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void); #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; if (unlikely(d == Py_None)) { __Pyx_RaiseNoneIndexingError(); return NULL; } value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) PyErr_SetObject(PyExc_KeyError, key); return NULL; } Py_INCREF(value); return value; } #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #endif static int __Pyx_PyUnicode_Tailmatch(PyObject* s, PyObject* substr, Py_ssize_t start, Py_ssize_t end, int direction); static int __Pyx_PyBytes_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction); static CYTHON_INLINE int __Pyx_PyStr_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction); /* Run-time type information about structs used with buffers */ struct __Pyx_StructField_; typedef struct { const char* name; /* for error messages only */ struct __Pyx_StructField_* fields; size_t size; /* sizeof(type) */ char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject */ } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); static void __Pyx_RaiseBufferIndexError(int axis); /*proto*/ #define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) #define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ static CYTHON_INLINE Py_ssize_t __Pyx_mod_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* proto */ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */ #define __Pyx_PyObject_AsDouble(obj) \ ((likely(PyFloat_CheckExact(obj))) ? \ PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj)) static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif Py_ssize_t __Pyx_zeros[] = {0, 0}; Py_ssize_t __Pyx_minusones[] = {-1, -1}; static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ static PyObject* __Pyx_Intern(PyObject* s); /* proto */ #include "descrobject.h" static PyObject* __Pyx_Method_ClassMethod(PyObject *method); /*proto*/ #include static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif #define __pyx_binding_PyCFunctionType_USED 1 typedef struct { PyCFunctionObject func; } __pyx_binding_PyCFunctionType_object; static PyTypeObject __pyx_binding_PyCFunctionType_type; static PyTypeObject *__pyx_binding_PyCFunctionType = NULL; static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module); /* proto */ #define __pyx_binding_PyCFunctionType_New(ml, self) __pyx_binding_PyCFunctionType_NewEx(ml, self, NULL) static int __pyx_binding_PyCFunctionType_init(void); /* proto */ static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_from_py_Py_intptr_t(PyObject *); static CYTHON_INLINE long __Pyx_pow_long(long, long); /* proto */ static CYTHON_INLINE npy_long __Pyx_PyInt_from_py_npy_long(PyObject *); static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_Py_intptr_t(Py_intptr_t); #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(_WIN32) && defined(__cplusplus) && CYTHON_CCOMPLEX #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); #if CYTHON_CCOMPLEX #define __Pyx_c_eqf(a, b) ((a)==(b)) #define __Pyx_c_sumf(a, b) ((a)+(b)) #define __Pyx_c_difff(a, b) ((a)-(b)) #define __Pyx_c_prodf(a, b) ((a)*(b)) #define __Pyx_c_quotf(a, b) ((a)/(b)) #define __Pyx_c_negf(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zerof(z) ((z)==(float)0) #define __Pyx_c_conjf(z) (::std::conj(z)) #if 1 #define __Pyx_c_absf(z) (::std::abs(z)) #define __Pyx_c_powf(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zerof(z) ((z)==0) #define __Pyx_c_conjf(z) (conjf(z)) #if 1 #define __Pyx_c_absf(z) (cabsf(z)) #define __Pyx_c_powf(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); #if CYTHON_CCOMPLEX #define __Pyx_c_eq(a, b) ((a)==(b)) #define __Pyx_c_sum(a, b) ((a)+(b)) #define __Pyx_c_diff(a, b) ((a)-(b)) #define __Pyx_c_prod(a, b) ((a)*(b)) #define __Pyx_c_quot(a, b) ((a)/(b)) #define __Pyx_c_neg(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero(z) ((z)==(double)0) #define __Pyx_c_conj(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs(z) (::std::abs(z)) #define __Pyx_c_pow(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero(z) ((z)==0) #define __Pyx_c_conj(z) (conj(z)) #if 1 #define __Pyx_c_abs(z) (cabs(z)) #define __Pyx_c_pow(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); static int __Pyx_check_binary_version(void); static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /*proto*/ static PyObject *__Pyx_ImportModule(const char *name); /*proto*/ static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, int __pyx_lineno, const char *__pyx_filename); /*proto*/ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'libc.stdlib' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *, PyObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *); /*proto*/ /* Module declarations from 'HTSeq._HTSeq' */ static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_Sequence = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_Alignment = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_ChromVector = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_GenomicArray = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_BowtieAlignment = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation = 0; static PyTypeObject *__pyx_ptype_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ = 0; static PyObject *__pyx_v_5HTSeq_6_HTSeq_strand_plus = 0; static PyObject *__pyx_v_5HTSeq_6_HTSeq_strand_minus = 0; static PyObject *__pyx_v_5HTSeq_6_HTSeq_strand_nostrand = 0; static PyObject *__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation = 0; static PyObject *__pyx_f_5HTSeq_6_HTSeq_reverse_complement(PyObject *, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_parse_cigar(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar *__pyx_optional_args); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_build_cigar_list(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list *__pyx_optional_args); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq__parse_SAM_optional_field_value(PyObject *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int_t = { "int_t", NULL, sizeof(__pyx_t_5numpy_int_t), 'I' }; #define __Pyx_MODULE_NAME "HTSeq._HTSeq" int __pyx_module_is_main_HTSeq___HTSeq = 0; /* Implementation of 'HTSeq._HTSeq' */ static PyObject *__pyx_builtin_property; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_NotImplementedError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_IndexError; static PyObject *__pyx_builtin_KeyError; static PyObject *__pyx_builtin_open; static PyObject *__pyx_builtin_xrange; static PyObject *__pyx_builtin_chr; static PyObject *__pyx_builtin_ord; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_RuntimeError; static char __pyx_k_2[] = "start is larger than end"; static char __pyx_k_3[] = "Strand must be'+', '-', or '.'."; static char __pyx_k_4[] = "<%s object '%s', [%d,%s), strand '%s'>"; static char __pyx_k_5[] = "%s:[%d,%s)/%s"; static char __pyx_k_6[] = "GenomicInterval_xrange"; static char __pyx_k_7[] = "GenomicInterval_xranged"; static char __pyx_k_8[] = "Cannot extend an interval to include None."; static char __pyx_k_9[] = "Cannot extend an interval to include an interval on another chromosome."; static char __pyx_k_10[] = "Cannot extend an interval to include an interval on another strand."; static char __pyx_k_11[] = "."; static char __pyx_k_12[] = "<%s object '%s':%d, strand '%s'>"; static char __pyx_k_13[] = "%s:%d/%s"; static char __pyx_k_14[] = ""; static char __pyx_k_15[] = ".nmm"; static char __pyx_k_16[] = "w+"; static char __pyx_k_17[] = "Illegal storage mode."; static char __pyx_k_18[] = "Cannot subset to zero-length interval."; static char __pyx_k_19[] = "start too small"; static char __pyx_k_20[] = "stop too large"; static char __pyx_k_21[] = "Illegal index type"; static char __pyx_k_22[] = "Required assignment signature not yet implemented."; static char __pyx_k_23[] = "Start of interval is after its end."; static char __pyx_k_24[] = "Cannot assign to zero-length interval."; static char __pyx_k_25[] = "Chromosome name mismatch."; static char __pyx_k_26[] = "Strand mismatch."; static char __pyx_k_27[] = "HTSeq._HTSeq"; static char __pyx_k_28[] = "<%s object, %s, %s>"; static char __pyx_k_29[] = "_ChromVector_unpickle"; static char __pyx_k_30[] = "Automatic adding of chromosomes can "; static char __pyx_k_31[] = " only be used with storage type 'StepVector'."; static char __pyx_k_32[] = "Indefinite-length chromosomes can "; static char __pyx_k_33[] = "'chroms' must be a list or a dict or 'auto'."; static char __pyx_k_34[] = "Non-stranded index used for stranded GenomicArray."; static char __pyx_k_35[] = "Illegal index type."; static char __pyx_k_37[] = "+"; static char __pyx_k_38[] = "-"; static char __pyx_k_39[] = "_GenomicArray_unpickle"; static char __pyx_k_40[] = "Strand specified in unstranded GenomicArray."; static char __pyx_k_41[] = "Strand must be specified for stranded GenomicArray."; static char __pyx_k_42[] = "track type=bedGraph\n"; static char __pyx_k_44[] = "track type=bedGraph %s\n"; static char __pyx_k_45[] = "%s\t%d\t%d\t%f\n"; static char __pyx_k_47[] = "get_reverse_complement"; static char __pyx_k_48[] = "<%s object '%s' (length %d)>"; static char __pyx_k_49[] = "[part]"; static char __pyx_k_50[] = ">%s %s\n"; static char __pyx_k_51[] = ">%s\n"; static char __pyx_k_52[] = "\n"; static char __pyx_k_53[] = "add_bases_to_count_array"; static char __pyx_k_54[] = "'count_array' too small for sequence."; static char __pyx_k_55[] = "'count_array' has too few columns."; static char __pyx_k_56[] = "Illegal base letter encountered."; static char __pyx_k_57[] = "'seq' and 'qualstr' do not have the same length."; static char __pyx_k_58[] = "Quality string missing."; static char __pyx_k_59[] = "Quality string has not the same length as sequence."; static char __pyx_k_60[] = "solexa-old"; static char __pyx_k_61[] = "Illegal quality scale '%s'."; static char __pyx_k_62[] = "qual can only be assigned a numpy array of type numpy.int"; static char __pyx_k_63[] = "assignment to qual with illegal shape"; static char __pyx_k_64[] = "<%s object '%s'>"; static char __pyx_k_65[] = "Quality string missing"; static char __pyx_k_66[] = " "; static char __pyx_k_67[] = "@%s %s\n"; static char __pyx_k_68[] = "@%s\n"; static char __pyx_k_69[] = "+\n"; static char __pyx_k_73[] = "add_qual_to_count_array"; static char __pyx_k_74[] = "Too large quality value encountered."; static char __pyx_k_75[] = "trim_left_end_with_quals"; static char __pyx_k_76[] = "trim_right_end_with_quals"; static char __pyx_k_77[] = "Paired-end read"; static char __pyx_k_78[] = "<%s object: %s '%s' aligned to %s>"; static char __pyx_k_79[] = "<%s object: %s '%s', not aligned>"; static char __pyx_k_80[] = "\t"; static char __pyx_k_82[] = "Inconsistent CIGAR operation."; static char __pyx_k_83[] = "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >"; static char __pyx_k_84[] = "cigar_operation_names"; static char __pyx_k_85[] = "Illegal CIGAR string '%s'"; static char __pyx_k_86[] = "Unknown CIGAR code '%s' encountered."; static char __pyx_k_87[] = ":"; static char __pyx_k_88[] = "Malformatted SAM optional field '%'"; static char __pyx_k_89[] = "SAM optional field with illegal type letter '%s'"; static char __pyx_k_90[] = "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)"; static char __pyx_k_92[] = "cigar_operation_code_dict"; static char __pyx_k_93[] = "*"; static char __pyx_k_94[] = "cigar_operation_codes"; static char __pyx_k_96[] = "SAM line does not contain at least 11 tab-delimited fields."; static char __pyx_k_97[] = "="; static char __pyx_k_99[] = "Sequence in SAM file contains '=', which is not supported."; static char __pyx_k__A[] = "A"; static char __pyx_k__B[] = "B"; static char __pyx_k__C[] = "C"; static char __pyx_k__D[] = "D"; static char __pyx_k__G[] = "G"; static char __pyx_k__H[] = "H"; static char __pyx_k__I[] = "I"; static char __pyx_k__L[] = "L"; static char __pyx_k__M[] = "M"; static char __pyx_k__N[] = "N"; static char __pyx_k__O[] = "O"; static char __pyx_k__P[] = "P"; static char __pyx_k__Q[] = "Q"; static char __pyx_k__S[] = "S"; static char __pyx_k__T[] = "T"; static char __pyx_k__X[] = "X"; static char __pyx_k__Z[] = "Z"; static char __pyx_k__a[] = "a"; static char __pyx_k__b[] = "b"; static char __pyx_k__c[] = "c"; static char __pyx_k__d[] = "d"; static char __pyx_k__f[] = "f"; static char __pyx_k__g[] = "g"; static char __pyx_k__h[] = "h"; static char __pyx_k__i[] = "i"; static char __pyx_k__j[] = "j"; static char __pyx_k__l[] = "l"; static char __pyx_k__q[] = "q"; static char __pyx_k__t[] = "t"; static char __pyx_k__w[] = "w"; static char __pyx_k__x[] = "x"; static char __pyx_k_101[] = "Sequence in SAM file contains '.', which is not supported."; static char __pyx_k_102[] = "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set"; static char __pyx_k_104[] = "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared"; static char __pyx_k_105[] = "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set"; static char __pyx_k_107[] = "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared"; static char __pyx_k_108[] = "Malformed SAM line: MRNM == '=' although read is not aligned."; static char __pyx_k_112[] = "SAM optional field tag %s not found"; static char __pyx_k_113[] = "SAM optional field tag %s not unique"; static char __pyx_k_114[] = "ndarray is not C contiguous"; static char __pyx_k_116[] = "ndarray is not Fortran contiguous"; static char __pyx_k_118[] = "Non-native byte order not supported"; static char __pyx_k_120[] = "unknown dtype code in numpy.pxd (%d)"; static char __pyx_k_121[] = "Format string allocated too short, see comment in numpy.pxd"; static char __pyx_k_124[] = "Format string allocated too short."; static char __pyx_k_126[] = "The length is calculated as end - start. If you set the length, \n 'start_d' will be preserved, i.e., 'end' is changed, unless the strand\n is '-', in which case 'start' is changed."; static char __pyx_k_127[] = "See the class docstring for the meaning of the 'directional start'.\n Note that if you set 'start_d', both the start and the end are changed, \n such the interval gets the requested new directional start and its\n length stays unchanged."; static char __pyx_k_128[] = "As GenomicPosition is a subclass of GenomicInterval, 'pos' is actually\n just an alias for 'start_d'.\n "; static char __pyx_k_129[] = "GenomicInterval_from_directional"; static char __pyx_k_130[] = "_make_translation_table_for_complementation"; static char __pyx_k_131[] = "soft-clipped"; static char __pyx_k_132[] = "hard-clipped"; static char __pyx_k_133[] = "([A-Z])"; static char __pyx_k_135[] = "from_pysam_AlignedRead"; static char __pyx_k__Zd[] = "Zd"; static char __pyx_k__Zf[] = "Zf"; static char __pyx_k__Zg[] = "Zg"; static char __pyx_k__iv[] = "iv"; static char __pyx_k__os[] = "os"; static char __pyx_k__re[] = "re"; static char __pyx_k__se[] = "se"; static char __pyx_k__Inf[] = "Inf"; static char __pyx_k__add[] = "add"; static char __pyx_k__chr[] = "chr"; static char __pyx_k__csv[] = "csv"; static char __pyx_k__end[] = "end"; static char __pyx_k__int[] = "int"; static char __pyx_k__ord[] = "ord"; static char __pyx_k__pos[] = "pos"; static char __pyx_k__qto[] = "qto"; static char __pyx_k__rto[] = "rto"; static char __pyx_k__seq[] = "seq"; static char __pyx_k__sys[] = "sys"; static char __pyx_k__tid[] = "tid"; static char __pyx_k__vec[] = "vec"; static char __pyx_k__Read[] = "Read"; static char __pyx_k__aend[] = "aend"; static char __pyx_k__auto[] = "auto"; static char __pyx_k__copy[] = "copy"; static char __pyx_k__flag[] = "flag"; static char __pyx_k__gzip[] = "gzip"; static char __pyx_k__join[] = "join"; static char __pyx_k__mapq[] = "mapq"; static char __pyx_k__math[] = "math"; static char __pyx_k__mode[] = "mode"; static char __pyx_k__mpos[] = "mpos"; static char __pyx_k__mrnm[] = "mrnm"; static char __pyx_k__name[] = "name"; static char __pyx_k__none[] = "none"; static char __pyx_k__open[] = "open"; static char __pyx_k__path[] = "path"; static char __pyx_k__qual[] = "qual"; static char __pyx_k__read[] = "read"; static char __pyx_k__size[] = "size"; static char __pyx_k__step[] = "step"; static char __pyx_k__stop[] = "stop"; static char __pyx_k__tags[] = "tags"; static char __pyx_k__type[] = "type"; static char __pyx_k__warn[] = "warn"; static char __pyx_k__apply[] = "apply"; static char __pyx_k__array[] = "array"; static char __pyx_k__check[] = "check"; static char __pyx_k__chrom[] = "chrom"; static char __pyx_k__cigar[] = "cigar"; static char __pyx_k__close[] = "close"; static char __pyx_k__count[] = "count"; static char __pyx_k__descr[] = "descr"; static char __pyx_k__dtype[] = "dtype"; static char __pyx_k__empty[] = "empty"; static char __pyx_k__end_d[] = "end_d"; static char __pyx_k__first[] = "first"; static char __pyx_k__index[] = "index"; static char __pyx_k__isize[] = "isize"; static char __pyx_k__log10[] = "log10"; static char __pyx_k__numpy[] = "numpy"; static char __pyx_k__phred[] = "phred"; static char __pyx_k__pysam[] = "pysam"; static char __pyx_k__qfrom[] = "qfrom"; static char __pyx_k__qname[] = "qname"; static char __pyx_k__range[] = "range"; static char __pyx_k__rfrom[] = "rfrom"; static char __pyx_k__shape[] = "shape"; static char __pyx_k__split[] = "split"; static char __pyx_k__start[] = "start"; static char __pyx_k__steps[] = "steps"; static char __pyx_k__type_[] = "type_"; static char __pyx_k__upper[] = "upper"; static char __pyx_k__write[] = "write"; static char __pyx_k__zeros[] = "zeros"; static char __pyx_k__chroms[] = "chroms"; static char __pyx_k__create[] = "create"; static char __pyx_k__gettid[] = "gettid"; static char __pyx_k__length[] = "length"; static char __pyx_k__maxint[] = "maxint"; static char __pyx_k__memmap[] = "memmap"; static char __pyx_k__offset[] = "offset"; static char __pyx_k__padded[] = "padded"; static char __pyx_k__ref_iv[] = "ref_iv"; static char __pyx_k__rstrip[] = "rstrip"; static char __pyx_k__second[] = "second"; static char __pyx_k__solexa[] = "solexa"; static char __pyx_k__stderr[] = "stderr"; static char __pyx_k__strand[] = "strand"; static char __pyx_k__values[] = "values"; static char __pyx_k__xrange[] = "xrange"; static char __pyx_k__aligned[] = "aligned"; static char __pyx_k__compile[] = "compile"; static char __pyx_k__deleted[] = "deleted"; static char __pyx_k__matched[] = "matched"; static char __pyx_k__missing[] = "missing"; static char __pyx_k__ndarray[] = "ndarray"; static char __pyx_k__noquals[] = "noquals"; static char __pyx_k__pattern[] = "pattern"; static char __pyx_k__qualstr[] = "qualstr"; static char __pyx_k__samfile[] = "samfile"; static char __pyx_k__skipped[] = "skipped"; static char __pyx_k__start_d[] = "start_d"; static char __pyx_k__storage[] = "storage"; static char __pyx_k__unknown[] = "unknown"; static char __pyx_k__unnamed[] = "unnamed"; static char __pyx_k__KeyError[] = "KeyError"; static char __pyx_k__StringIO[] = "StringIO"; static char __pyx_k____iadd__[] = "__iadd__"; static char __pyx_k____init__[] = "__init__"; static char __pyx_k____main__[] = "__main__"; static char __pyx_k____name__[] = "__name__"; static char __pyx_k____test__[] = "__test__"; static char __pyx_k___qualarr[] = "_qualarr"; static char __pyx_k___qualstr[] = "_qualstr"; static char __pyx_k___storage[] = "_storage"; static char __pyx_k__contains[] = "contains"; static char __pyx_k__filename[] = "filename"; static char __pyx_k__getrname[] = "getrname"; static char __pyx_k__getvalue[] = "getvalue"; static char __pyx_k__inserted[] = "inserted"; static char __pyx_k__is_read1[] = "is_read1"; static char __pyx_k__is_read2[] = "is_read2"; static char __pyx_k__overlaps[] = "overlaps"; static char __pyx_k__property[] = "property"; static char __pyx_k__ref_left[] = "ref_left"; static char __pyx_k__stranded[] = "stranded"; static char __pyx_k__typecode[] = "typecode"; static char __pyx_k__warnings[] = "warnings"; static char __pyx_k__TypeError[] = "TypeError"; static char __pyx_k____class__[] = "__class__"; static char __pyx_k__add_chrom[] = "add_chrom"; static char __pyx_k__cStringIO[] = "cStringIO"; static char __pyx_k__enumerate[] = "enumerate"; static char __pyx_k__is_paired[] = "is_paired"; static char __pyx_k__is_qcfail[] = "is_qcfail"; static char __pyx_k__itertools[] = "itertools"; static char __pyx_k__qualscale[] = "qualscale"; static char __pyx_k__translate[] = "translate"; static char __pyx_k__IndexError[] = "IndexError"; static char __pyx_k__StepVector[] = "StepVector"; static char __pyx_k__ValueError[] = "ValueError"; static char __pyx_k____reduce__[] = "__reduce__"; static char __pyx_k___qualscale[] = "_qualscale"; static char __pyx_k__is_reverse[] = "is_reverse"; static char __pyx_k__memmap_dir[] = "memmap_dir"; static char __pyx_k__paired_end[] = "paired_end"; static char __pyx_k__AlignedRead[] = "AlignedRead"; static char __pyx_k__ImportError[] = "ImportError"; static char __pyx_k__bowtie_line[] = "bowtie_line"; static char __pyx_k__cigar_pairs[] = "cigar_pairs"; static char __pyx_k__collections[] = "collections"; static char __pyx_k__is_unmapped[] = "is_unmapped"; static char __pyx_k__max_mm_qual[] = "max_mm_qual"; static char __pyx_k__revcomp_of_[] = "revcomp_of_"; static char __pyx_k__start_index[] = "start_index"; static char __pyx_k__RuntimeError[] = "RuntimeError"; static char __pyx_k___create_view[] = "_create_view"; static char __pyx_k__cigar_string[] = "cigar_string"; static char __pyx_k__is_duplicate[] = "is_duplicate"; static char __pyx_k__is_secondary[] = "is_secondary"; static char __pyx_k__mate_aligned[] = "mate_aligned"; static char __pyx_k__chrom_vectors[] = "chrom_vectors"; static char __pyx_k__from_SAM_line[] = "from_SAM_line"; static char __pyx_k__mismatch_prop[] = "mismatch_prop"; static char __pyx_k__track_options[] = "track_options"; static char __pyx_k__trim_left_end[] = "trim_left_end"; static char __pyx_k__base_to_column[] = "base_to_column"; static char __pyx_k__is_proper_pair[] = "is_proper_pair"; static char __pyx_k__not_paired_end[] = "not_paired_end"; static char __pyx_k__trim_right_end[] = "trim_right_end"; static char __pyx_k___HTSeq_internal[] = "_HTSeq_internal"; static char __pyx_k___re_cigar_codes[] = "_re_cigar_codes"; static char __pyx_k__is_contained_in[] = "is_contained_in"; static char __pyx_k__mate_is_reverse[] = "mate_is_reverse"; static char __pyx_k__read_as_aligned[] = "read_as_aligned"; static char __pyx_k__convert_to_phred[] = "convert_to_phred"; static char __pyx_k__file_or_filename[] = "file_or_filename"; static char __pyx_k__ChromVector_steps[] = "ChromVector_steps"; static char __pyx_k__extend_to_include[] = "extend_to_include"; static char __pyx_k__is_vector_of_sets[] = "is_vector_of_sets"; static char __pyx_k__GenomicArray_steps[] = "GenomicArray_steps"; static char __pyx_k__NotImplementedError[] = "NotImplementedError"; static char __pyx_k__raw_optional_fields[] = "raw_optional_fields"; static char __pyx_k__write_to_fastq_file[] = "write_to_fastq_file"; static PyObject *__pyx_kp_s_10; static PyObject *__pyx_kp_s_101; static PyObject *__pyx_kp_s_102; static PyObject *__pyx_kp_s_104; static PyObject *__pyx_kp_s_105; static PyObject *__pyx_kp_s_107; static PyObject *__pyx_kp_s_108; static PyObject *__pyx_kp_s_11; static PyObject *__pyx_kp_s_112; static PyObject *__pyx_kp_s_113; static PyObject *__pyx_kp_u_114; static PyObject *__pyx_kp_u_116; static PyObject *__pyx_kp_u_118; static PyObject *__pyx_kp_s_12; static PyObject *__pyx_kp_u_120; static PyObject *__pyx_kp_u_121; static PyObject *__pyx_kp_u_124; static PyObject *__pyx_n_s_129; static PyObject *__pyx_kp_s_13; static PyObject *__pyx_n_s_130; static PyObject *__pyx_kp_s_131; static PyObject *__pyx_kp_s_132; static PyObject *__pyx_kp_s_133; static PyObject *__pyx_n_s_135; static PyObject *__pyx_kp_b_14; static PyObject *__pyx_kp_s_14; static PyObject *__pyx_kp_s_15; static PyObject *__pyx_kp_s_16; static PyObject *__pyx_kp_s_17; static PyObject *__pyx_kp_s_18; static PyObject *__pyx_kp_s_19; static PyObject *__pyx_kp_s_2; static PyObject *__pyx_kp_s_20; static PyObject *__pyx_kp_s_21; static PyObject *__pyx_kp_s_22; static PyObject *__pyx_kp_s_23; static PyObject *__pyx_kp_s_24; static PyObject *__pyx_kp_s_25; static PyObject *__pyx_kp_s_26; static PyObject *__pyx_n_s_27; static PyObject *__pyx_kp_s_28; static PyObject *__pyx_n_s_29; static PyObject *__pyx_kp_s_3; static PyObject *__pyx_kp_s_30; static PyObject *__pyx_kp_s_31; static PyObject *__pyx_kp_s_32; static PyObject *__pyx_kp_s_33; static PyObject *__pyx_kp_s_34; static PyObject *__pyx_kp_s_35; static PyObject *__pyx_kp_s_37; static PyObject *__pyx_kp_s_38; static PyObject *__pyx_n_s_39; static PyObject *__pyx_kp_s_4; static PyObject *__pyx_kp_s_40; static PyObject *__pyx_kp_s_41; static PyObject *__pyx_kp_s_42; static PyObject *__pyx_kp_s_44; static PyObject *__pyx_kp_s_45; static PyObject *__pyx_n_s_47; static PyObject *__pyx_kp_s_48; static PyObject *__pyx_kp_s_49; static PyObject *__pyx_kp_s_5; static PyObject *__pyx_kp_s_50; static PyObject *__pyx_kp_s_51; static PyObject *__pyx_kp_s_52; static PyObject *__pyx_n_s_53; static PyObject *__pyx_kp_s_54; static PyObject *__pyx_kp_s_55; static PyObject *__pyx_kp_s_56; static PyObject *__pyx_kp_s_57; static PyObject *__pyx_kp_s_58; static PyObject *__pyx_kp_s_59; static PyObject *__pyx_n_s_6; static PyObject *__pyx_kp_s_60; static PyObject *__pyx_kp_s_61; static PyObject *__pyx_kp_s_62; static PyObject *__pyx_kp_s_63; static PyObject *__pyx_kp_s_64; static PyObject *__pyx_kp_s_65; static PyObject *__pyx_kp_s_66; static PyObject *__pyx_kp_s_67; static PyObject *__pyx_kp_s_68; static PyObject *__pyx_kp_s_69; static PyObject *__pyx_n_s_7; static PyObject *__pyx_n_s_73; static PyObject *__pyx_kp_s_74; static PyObject *__pyx_n_s_75; static PyObject *__pyx_n_s_76; static PyObject *__pyx_kp_s_77; static PyObject *__pyx_kp_s_78; static PyObject *__pyx_kp_s_79; static PyObject *__pyx_kp_s_8; static PyObject *__pyx_kp_s_80; static PyObject *__pyx_kp_s_82; static PyObject *__pyx_kp_s_83; static PyObject *__pyx_n_s_84; static PyObject *__pyx_kp_s_85; static PyObject *__pyx_kp_s_86; static PyObject *__pyx_kp_s_87; static PyObject *__pyx_kp_s_88; static PyObject *__pyx_kp_s_89; static PyObject *__pyx_kp_s_9; static PyObject *__pyx_kp_s_90; static PyObject *__pyx_n_s_92; static PyObject *__pyx_kp_s_93; static PyObject *__pyx_n_s_94; static PyObject *__pyx_kp_s_96; static PyObject *__pyx_kp_s_97; static PyObject *__pyx_kp_s_99; static PyObject *__pyx_n_s__A; static PyObject *__pyx_n_s__AlignedRead; static PyObject *__pyx_n_s__C; static PyObject *__pyx_n_s__ChromVector_steps; static PyObject *__pyx_n_s__D; static PyObject *__pyx_n_s__G; static PyObject *__pyx_n_s__GenomicArray_steps; static PyObject *__pyx_n_s__H; static PyObject *__pyx_n_s__I; static PyObject *__pyx_n_s__ImportError; static PyObject *__pyx_n_s__IndexError; static PyObject *__pyx_n_s__Inf; static PyObject *__pyx_n_s__KeyError; static PyObject *__pyx_n_s__M; static PyObject *__pyx_n_s__N; static PyObject *__pyx_n_s__NotImplementedError; static PyObject *__pyx_n_s__O; static PyObject *__pyx_n_s__P; static PyObject *__pyx_n_s__Read; static PyObject *__pyx_n_s__RuntimeError; static PyObject *__pyx_n_s__S; static PyObject *__pyx_n_s__StepVector; static PyObject *__pyx_n_s__StringIO; static PyObject *__pyx_n_s__T; static PyObject *__pyx_n_s__TypeError; static PyObject *__pyx_n_s__ValueError; static PyObject *__pyx_n_s__X; static PyObject *__pyx_n_s__Z; static PyObject *__pyx_n_s___HTSeq_internal; static PyObject *__pyx_n_s____class__; static PyObject *__pyx_n_s____iadd__; static PyObject *__pyx_n_s____init__; static PyObject *__pyx_n_s____main__; static PyObject *__pyx_n_s____name__; static PyObject *__pyx_n_s____reduce__; static PyObject *__pyx_n_s____test__; static PyObject *__pyx_n_s___create_view; static PyObject *__pyx_n_s___qualarr; static PyObject *__pyx_n_s___qualscale; static PyObject *__pyx_n_s___qualstr; static PyObject *__pyx_n_s___re_cigar_codes; static PyObject *__pyx_n_s___storage; static PyObject *__pyx_n_s__a; static PyObject *__pyx_n_s__add; static PyObject *__pyx_n_s__add_chrom; static PyObject *__pyx_n_s__aend; static PyObject *__pyx_n_s__aligned; static PyObject *__pyx_n_s__apply; static PyObject *__pyx_n_s__array; static PyObject *__pyx_n_s__auto; static PyObject *__pyx_n_s__base_to_column; static PyObject *__pyx_n_s__bowtie_line; static PyObject *__pyx_n_s__c; static PyObject *__pyx_n_s__cStringIO; static PyObject *__pyx_n_s__check; static PyObject *__pyx_n_s__chr; static PyObject *__pyx_n_s__chrom; static PyObject *__pyx_n_s__chrom_vectors; static PyObject *__pyx_n_s__chroms; static PyObject *__pyx_n_s__cigar; static PyObject *__pyx_n_s__cigar_pairs; static PyObject *__pyx_n_s__cigar_string; static PyObject *__pyx_n_s__close; static PyObject *__pyx_n_s__collections; static PyObject *__pyx_n_s__compile; static PyObject *__pyx_n_s__contains; static PyObject *__pyx_n_s__convert_to_phred; static PyObject *__pyx_n_s__copy; static PyObject *__pyx_n_s__count; static PyObject *__pyx_n_s__create; static PyObject *__pyx_n_s__csv; static PyObject *__pyx_n_s__d; static PyObject *__pyx_n_s__deleted; static PyObject *__pyx_n_s__descr; static PyObject *__pyx_n_s__dtype; static PyObject *__pyx_n_s__empty; static PyObject *__pyx_n_s__end; static PyObject *__pyx_n_s__end_d; static PyObject *__pyx_n_s__enumerate; static PyObject *__pyx_n_s__extend_to_include; static PyObject *__pyx_n_s__f; static PyObject *__pyx_n_s__file_or_filename; static PyObject *__pyx_n_s__filename; static PyObject *__pyx_n_s__first; static PyObject *__pyx_n_s__flag; static PyObject *__pyx_n_s__from_SAM_line; static PyObject *__pyx_n_s__g; static PyObject *__pyx_n_s__getrname; static PyObject *__pyx_n_s__gettid; static PyObject *__pyx_n_s__getvalue; static PyObject *__pyx_n_s__gzip; static PyObject *__pyx_n_s__i; static PyObject *__pyx_n_s__index; static PyObject *__pyx_n_s__inserted; static PyObject *__pyx_n_s__int; static PyObject *__pyx_n_s__is_contained_in; static PyObject *__pyx_n_s__is_duplicate; static PyObject *__pyx_n_s__is_paired; static PyObject *__pyx_n_s__is_proper_pair; static PyObject *__pyx_n_s__is_qcfail; static PyObject *__pyx_n_s__is_read1; static PyObject *__pyx_n_s__is_read2; static PyObject *__pyx_n_s__is_reverse; static PyObject *__pyx_n_s__is_secondary; static PyObject *__pyx_n_s__is_unmapped; static PyObject *__pyx_n_s__is_vector_of_sets; static PyObject *__pyx_n_s__isize; static PyObject *__pyx_n_s__itertools; static PyObject *__pyx_n_s__iv; static PyObject *__pyx_n_s__j; static PyObject *__pyx_n_s__join; static PyObject *__pyx_n_s__length; static PyObject *__pyx_n_s__log10; static PyObject *__pyx_n_s__mapq; static PyObject *__pyx_n_s__matched; static PyObject *__pyx_n_s__mate_aligned; static PyObject *__pyx_n_s__mate_is_reverse; static PyObject *__pyx_n_s__math; static PyObject *__pyx_n_s__max_mm_qual; static PyObject *__pyx_n_s__maxint; static PyObject *__pyx_n_s__memmap; static PyObject *__pyx_n_s__memmap_dir; static PyObject *__pyx_n_s__mismatch_prop; static PyObject *__pyx_n_s__missing; static PyObject *__pyx_n_s__mode; static PyObject *__pyx_n_s__mpos; static PyObject *__pyx_n_s__mrnm; static PyObject *__pyx_n_s__name; static PyObject *__pyx_n_s__ndarray; static PyObject *__pyx_n_s__none; static PyObject *__pyx_n_s__noquals; static PyObject *__pyx_n_s__not_paired_end; static PyObject *__pyx_n_s__numpy; static PyObject *__pyx_n_s__offset; static PyObject *__pyx_n_s__open; static PyObject *__pyx_n_s__ord; static PyObject *__pyx_n_s__os; static PyObject *__pyx_n_s__overlaps; static PyObject *__pyx_n_s__padded; static PyObject *__pyx_n_s__paired_end; static PyObject *__pyx_n_s__path; static PyObject *__pyx_n_s__pattern; static PyObject *__pyx_n_s__phred; static PyObject *__pyx_n_s__pos; static PyObject *__pyx_n_s__property; static PyObject *__pyx_n_s__pysam; static PyObject *__pyx_n_s__qfrom; static PyObject *__pyx_n_s__qname; static PyObject *__pyx_n_s__qto; static PyObject *__pyx_n_s__qual; static PyObject *__pyx_n_s__qualscale; static PyObject *__pyx_n_s__qualstr; static PyObject *__pyx_n_s__range; static PyObject *__pyx_n_s__raw_optional_fields; static PyObject *__pyx_n_s__re; static PyObject *__pyx_n_s__read; static PyObject *__pyx_n_s__read_as_aligned; static PyObject *__pyx_n_s__ref_iv; static PyObject *__pyx_n_s__ref_left; static PyObject *__pyx_n_s__revcomp_of_; static PyObject *__pyx_n_s__rfrom; static PyObject *__pyx_n_s__rstrip; static PyObject *__pyx_n_s__rto; static PyObject *__pyx_n_s__samfile; static PyObject *__pyx_n_s__se; static PyObject *__pyx_n_s__second; static PyObject *__pyx_n_s__seq; static PyObject *__pyx_n_s__shape; static PyObject *__pyx_n_s__size; static PyObject *__pyx_n_s__skipped; static PyObject *__pyx_n_s__solexa; static PyObject *__pyx_n_s__split; static PyObject *__pyx_n_s__start; static PyObject *__pyx_n_s__start_d; static PyObject *__pyx_n_s__start_index; static PyObject *__pyx_n_s__stderr; static PyObject *__pyx_n_s__step; static PyObject *__pyx_n_s__steps; static PyObject *__pyx_n_s__stop; static PyObject *__pyx_n_s__storage; static PyObject *__pyx_n_s__strand; static PyObject *__pyx_n_s__stranded; static PyObject *__pyx_n_s__sys; static PyObject *__pyx_n_s__t; static PyObject *__pyx_n_s__tags; static PyObject *__pyx_n_s__tid; static PyObject *__pyx_n_s__track_options; static PyObject *__pyx_n_s__translate; static PyObject *__pyx_n_s__trim_left_end; static PyObject *__pyx_n_s__trim_right_end; static PyObject *__pyx_n_s__type; static PyObject *__pyx_n_s__type_; static PyObject *__pyx_n_s__typecode; static PyObject *__pyx_n_s__unknown; static PyObject *__pyx_n_s__unnamed; static PyObject *__pyx_n_s__upper; static PyObject *__pyx_n_s__values; static PyObject *__pyx_n_s__vec; static PyObject *__pyx_n_s__w; static PyObject *__pyx_n_s__warn; static PyObject *__pyx_n_s__warnings; static PyObject *__pyx_n_s__write; static PyObject *__pyx_n_s__write_to_fastq_file; static PyObject *__pyx_n_s__x; static PyObject *__pyx_n_s__xrange; static PyObject *__pyx_n_s__zeros; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_2; static PyObject *__pyx_int_3; static PyObject *__pyx_int_4; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_int_10; static PyObject *__pyx_int_15; static PyObject *__pyx_int_16; static PyObject *__pyx_int_65; static PyObject *__pyx_int_67; static PyObject *__pyx_int_70; static PyObject *__pyx_int_71; static PyObject *__pyx_int_84; static PyObject *__pyx_int_97; static PyObject *__pyx_int_99; static PyObject *__pyx_int_103; static PyObject *__pyx_int_116; static PyObject *__pyx_k_1; static PyObject *__pyx_k_36; static PyObject *__pyx_k_slice_46; static PyObject *__pyx_k_slice_71; static PyObject *__pyx_k_slice_72; static PyObject *__pyx_k_tuple_43; static PyObject *__pyx_k_tuple_70; static PyObject *__pyx_k_tuple_81; static PyObject *__pyx_k_tuple_91; static PyObject *__pyx_k_tuple_95; static PyObject *__pyx_k_tuple_98; static PyObject *__pyx_k_tuple_100; static PyObject *__pyx_k_tuple_103; static PyObject *__pyx_k_tuple_106; static PyObject *__pyx_k_tuple_109; static PyObject *__pyx_k_tuple_110; static PyObject *__pyx_k_tuple_111; static PyObject *__pyx_k_tuple_115; static PyObject *__pyx_k_tuple_117; static PyObject *__pyx_k_tuple_119; static PyObject *__pyx_k_tuple_122; static PyObject *__pyx_k_tuple_123; static PyObject *__pyx_k_tuple_125; static PyObject *__pyx_k_tuple_134; /* "HTSeq/_HTSeq.pyx":53 * """ * * def __init__( GenomicInterval self, str chrom, long start, long end, # <<<<<<<<<<<<<< * str strand = strand_nostrand ): * """See the class docstring for the meaning of the slots. Note that */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval___init__[] = "See the class docstring for the meaning of the slots. Note that \n there is also a factory function, 'from_directional', to be used if\n you wish to specify start_d and length.\n "; struct wrapperbase __pyx_wrapperbase_5HTSeq_6_HTSeq_15GenomicInterval___init__; static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_chrom = 0; long __pyx_v_start; long __pyx_v_end; PyObject *__pyx_v_strand = 0; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__chrom,&__pyx_n_s__start,&__pyx_n_s__end,&__pyx_n_s__strand,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[4] = {0,0,0,0}; values[3] = __pyx_k_1; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__end); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_chrom = ((PyObject*)values[0]); __pyx_v_start = __Pyx_PyInt_AsLong(values[1]); if (unlikely((__pyx_v_start == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_end = __Pyx_PyInt_AsLong(values[2]); if (unlikely((__pyx_v_end == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_strand = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":59 * you wish to specify start_d and length. * """ * self.chrom = intern( chrom ) # <<<<<<<<<<<<<< * self.start = start * self.end = end */ __pyx_t_1 = __Pyx_Intern(((PyObject *)__pyx_v_chrom)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":60 * """ * self.chrom = intern( chrom ) * self.start = start # <<<<<<<<<<<<<< * self.end = end * self.strand = strand */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start = __pyx_v_start; /* "HTSeq/_HTSeq.pyx":61 * self.chrom = intern( chrom ) * self.start = start * self.end = end # <<<<<<<<<<<<<< * self.strand = strand * if self.start > self.end: */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end = __pyx_v_end; /* "HTSeq/_HTSeq.pyx":62 * self.start = start * self.end = end * self.strand = strand # <<<<<<<<<<<<<< * if self.start > self.end: * raise ValueError, "start is larger than end" */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__strand, ((PyObject *)__pyx_v_strand)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":63 * self.end = end * self.strand = strand * if self.start > self.end: # <<<<<<<<<<<<<< * raise ValueError, "start is larger than end" * */ __pyx_t_2 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start > ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":64 * self.strand = strand * if self.start > self.end: * raise ValueError, "start is larger than end" # <<<<<<<<<<<<<< * * property strand: */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_2), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":67 * * property strand: * def __set__( self, strand ): # <<<<<<<<<<<<<< * strand = intern( strand ) * if not( strand is strand_plus or strand is strand_minus or */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_strand); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_strand) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __Pyx_INCREF(__pyx_v_strand); /* "HTSeq/_HTSeq.pyx":68 * property strand: * def __set__( self, strand ): * strand = intern( strand ) # <<<<<<<<<<<<<< * if not( strand is strand_plus or strand is strand_minus or * strand is strand_nostrand ): */ __pyx_t_1 = __Pyx_Intern(__pyx_v_strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_v_strand); __pyx_v_strand = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":69 * def __set__( self, strand ): * strand = intern( strand ) * if not( strand is strand_plus or strand is strand_minus or # <<<<<<<<<<<<<< * strand is strand_nostrand ): * raise ValueError, "Strand must be'+', '-', or '.'." */ __pyx_t_2 = (__pyx_v_strand == ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus)); if (!__pyx_t_2) { __pyx_t_3 = (__pyx_v_strand == ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus)); if (!__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":70 * strand = intern( strand ) * if not( strand is strand_plus or strand is strand_minus or * strand is strand_nostrand ): # <<<<<<<<<<<<<< * raise ValueError, "Strand must be'+', '-', or '.'." * self._strand = strand */ __pyx_t_4 = (__pyx_v_strand == ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __pyx_t_5 = __pyx_t_4; } else { __pyx_t_5 = __pyx_t_3; } __pyx_t_3 = __pyx_t_5; } else { __pyx_t_3 = __pyx_t_2; } __pyx_t_2 = (!__pyx_t_3); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":71 * if not( strand is strand_plus or strand is strand_minus or * strand is strand_nostrand ): * raise ValueError, "Strand must be'+', '-', or '.'." # <<<<<<<<<<<<<< * self._strand = strand * def __get__( self ): */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_3), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":72 * strand is strand_nostrand ): * raise ValueError, "Strand must be'+', '-', or '.'." * self._strand = strand # <<<<<<<<<<<<<< * def __get__( self ): * return self._strand */ if (!(likely(PyString_CheckExact(__pyx_v_strand))||((__pyx_v_strand) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_strand)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_strand); __Pyx_GIVEREF(__pyx_v_strand); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand = ((PyObject*)__pyx_v_strand); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.strand.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_strand); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":73 * raise ValueError, "Strand must be'+', '-', or '.'." * self._strand = strand * def __get__( self ): # <<<<<<<<<<<<<< * return self._strand * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":74 * self._strand = strand * def __get__( self ): * return self._strand # <<<<<<<<<<<<<< * * def __reduce__( GenomicInterval self ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":76 * return self._strand * * def __reduce__( GenomicInterval self ): # <<<<<<<<<<<<<< * return GenomicInterval, ( self.chrom, self.start, self.end, * self.strand ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_1__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_1__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__"); /* "HTSeq/_HTSeq.pyx":77 * * def __reduce__( GenomicInterval self ): * return GenomicInterval, ( self.chrom, self.start, self.end, # <<<<<<<<<<<<<< * self.strand ) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); /* "HTSeq/_HTSeq.pyx":78 * def __reduce__( GenomicInterval self ): * return GenomicInterval, ( self.chrom, self.start, self.end, * self.strand ) # <<<<<<<<<<<<<< * * def __copy__( self ): */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = ((PyObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":80 * self.strand ) * * def __copy__( self ): # <<<<<<<<<<<<<< * constr, args = self.__reduce__() * return constr( *args ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_2__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_2__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_v_constr = NULL; PyObject *__pyx_v_args = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *(*__pyx_t_5)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__copy__"); /* "HTSeq/_HTSeq.pyx":81 * * def __copy__( self ): * constr, args = self.__reduce__() # <<<<<<<<<<<<<< * return constr( *args ) * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____reduce__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { if (unlikely(PyList_GET_SIZE(sequence) != 2)) { if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L6_unpacking_done:; } __pyx_v_constr = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_args = __pyx_t_3; __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":82 * def __copy__( self ): * constr, args = self.__reduce__() * return constr( *args ) # <<<<<<<<<<<<<< * * def __repr__( GenomicInterval self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __pyx_t_3 = PyObject_Call(__pyx_v_constr, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_constr); __Pyx_XDECREF(__pyx_v_args); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":84 * return constr( *args ) * * def __repr__( GenomicInterval self ): # <<<<<<<<<<<<<< * return "<%s object '%s', [%d,%s), strand '%s'>" % \ * ( self.__class__.__name__, self.chrom, self.start, */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":85 * * def __repr__( GenomicInterval self ): * return "<%s object '%s', [%d,%s), strand '%s'>" % \ # <<<<<<<<<<<<<< * ( self.__class__.__name__, self.chrom, self.start, * str(self.end) if self.end != sys.maxint else "Inf", self.strand ) */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":86 * def __repr__( GenomicInterval self ): * return "<%s object '%s', [%d,%s), strand '%s'>" % \ * ( self.__class__.__name__, self.chrom, self.start, # <<<<<<<<<<<<<< * str(self.end) if self.end != sys.maxint else "Inf", self.strand ) * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); /* "HTSeq/_HTSeq.pyx":87 * return "<%s object '%s', [%d,%s), strand '%s'>" % \ * ( self.__class__.__name__, self.chrom, self.start, * str(self.end) if self.end != sys.maxint else "Inf", self.strand ) # <<<<<<<<<<<<<< * * def __str__( GenomicInterval self ): */ __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__maxint); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_NE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_5; __pyx_t_5 = 0; } else { __Pyx_INCREF(((PyObject *)__pyx_n_s__Inf)); __pyx_t_3 = __pyx_n_s__Inf; } __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_4), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_r = ((PyObject *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":89 * str(self.end) if self.end != sys.maxint else "Inf", self.strand ) * * def __str__( GenomicInterval self ): # <<<<<<<<<<<<<< * return "%s:[%d,%s)/%s" % \ * ( self.chrom, self.start, str(self.end) if self.end != sys.maxint else "Inf", self.strand ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_4__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_4__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__"); /* "HTSeq/_HTSeq.pyx":90 * * def __str__( GenomicInterval self ): * return "%s:[%d,%s)/%s" % \ # <<<<<<<<<<<<<< * ( self.chrom, self.start, str(self.end) if self.end != sys.maxint else "Inf", self.strand ) * */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":91 * def __str__( GenomicInterval self ): * return "%s:[%d,%s)/%s" % \ * ( self.chrom, self.start, str(self.end) if self.end != sys.maxint else "Inf", self.strand ) # <<<<<<<<<<<<<< * * property length: */ __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__maxint); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_NE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(((PyObject *)__pyx_n_s__Inf)); __pyx_t_2 = __pyx_n_s__Inf; } __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_5), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_r = ((PyObject *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":99 * is '-', in which case 'start' is changed.""" * * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * return self.end - self.start * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":100 * * def __get__( GenomicInterval self ): * return self.end - self.start # <<<<<<<<<<<<<< * * def __set__( GenomicInterval self, long newLength ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end - ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.length.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":102 * return self.end - self.start * * def __set__( GenomicInterval self, long newLength ): # <<<<<<<<<<<<<< * if self._strand is not strand_minus: * self.end = self.start + newLength */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newLength); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newLength) { long __pyx_v_newLength; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); assert(__pyx_arg_newLength); { __pyx_v_newLength = __Pyx_PyInt_AsLong(__pyx_arg_newLength); if (unlikely((__pyx_v_newLength == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.length.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":103 * * def __set__( GenomicInterval self, long newLength ): * if self._strand is not strand_minus: # <<<<<<<<<<<<<< * self.end = self.start + newLength * else: */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand != __pyx_v_5HTSeq_6_HTSeq_strand_minus); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":104 * def __set__( GenomicInterval self, long newLength ): * if self._strand is not strand_minus: * self.end = self.start + newLength # <<<<<<<<<<<<<< * else: * self.start = self.end - newLength */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start + __pyx_v_newLength); goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":106 * self.end = self.start + newLength * else: * self.start = self.end - newLength # <<<<<<<<<<<<<< * * property start_d: */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end - __pyx_v_newLength); } __pyx_L5:; __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":114 * length stays unchanged.""" * * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * if self._strand is not strand_minus: * return self.start */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":115 * * def __get__( GenomicInterval self ): * if self._strand is not strand_minus: # <<<<<<<<<<<<<< * return self.start * else: */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand != __pyx_v_5HTSeq_6_HTSeq_strand_minus); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":116 * def __get__( GenomicInterval self ): * if self._strand is not strand_minus: * return self.start # <<<<<<<<<<<<<< * else: * return self.end - 1 */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":118 * return self.start * else: * return self.end - 1 # <<<<<<<<<<<<<< * * def __set__( GenomicInterval self, long newStartd ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end - 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } __pyx_L5:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start_d.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":120 * return self.end - 1 * * def __set__( GenomicInterval self, long newStartd ): # <<<<<<<<<<<<<< * if self._strand is not strand_minus: * self.end = newStartd + self.length */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newStartd); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newStartd) { long __pyx_v_newStartd; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; long __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); assert(__pyx_arg_newStartd); { __pyx_v_newStartd = __Pyx_PyInt_AsLong(__pyx_arg_newStartd); if (unlikely((__pyx_v_newStartd == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start_d.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":121 * * def __set__( GenomicInterval self, long newStartd ): * if self._strand is not strand_minus: # <<<<<<<<<<<<<< * self.end = newStartd + self.length * self.start = newStartd */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand != __pyx_v_5HTSeq_6_HTSeq_strand_minus); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":122 * def __set__( GenomicInterval self, long newStartd ): * if self._strand is not strand_minus: * self.end = newStartd + self.length # <<<<<<<<<<<<<< * self.start = newStartd * else: */ __pyx_t_2 = PyInt_FromLong(__pyx_v_newStartd); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_t_4); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end = __pyx_t_5; /* "HTSeq/_HTSeq.pyx":123 * if self._strand is not strand_minus: * self.end = newStartd + self.length * self.start = newStartd # <<<<<<<<<<<<<< * else: * self.start = newStartd + 1 - self.length */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start = __pyx_v_newStartd; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":125 * self.start = newStartd * else: * self.start = newStartd + 1 - self.length # <<<<<<<<<<<<<< * self.end = newStartd + 1 * */ __pyx_t_4 = PyInt_FromLong((__pyx_v_newStartd + 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start = __pyx_t_5; /* "HTSeq/_HTSeq.pyx":126 * else: * self.start = newStartd + 1 - self.length * self.end = newStartd + 1 # <<<<<<<<<<<<<< * * property end_d: */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end = (__pyx_v_newStartd + 1); } __pyx_L5:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start_d.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":130 * property end_d: * * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * if self._strand is not strand_minus: * return self.end */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5end_d___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5end_d___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":131 * * def __get__( GenomicInterval self ): * if self._strand is not strand_minus: # <<<<<<<<<<<<<< * return self.end * else: */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand != __pyx_v_5HTSeq_6_HTSeq_strand_minus); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":132 * def __get__( GenomicInterval self ): * if self._strand is not strand_minus: * return self.end # <<<<<<<<<<<<<< * else: * return self.start - 1 */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":134 * return self.end * else: * return self.start - 1 # <<<<<<<<<<<<<< * * property start_as_pos: */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start - 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } __pyx_L5:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.end_d.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":137 * * property start_as_pos: * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * return GenomicPosition( self.chrom, self.start, self. strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12start_as_pos___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12start_as_pos___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":138 * property start_as_pos: * def __get__( GenomicInterval self ): * return GenomicPosition( self.chrom, self.start, self. strand ) # <<<<<<<<<<<<<< * * property end_as_pos: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start_as_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":141 * * property end_as_pos: * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * return GenomicPosition( self.chrom, self.end, self. strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10end_as_pos___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10end_as_pos___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":142 * property end_as_pos: * def __get__( GenomicInterval self ): * return GenomicPosition( self.chrom, self.end, self. strand ) # <<<<<<<<<<<<<< * * property start_d_as_pos: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.end_as_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":145 * * property start_d_as_pos: * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * return GenomicPosition( self.chrom, self.start_d, self. strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_14start_d_as_pos___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_14start_d_as_pos___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":146 * property start_d_as_pos: * def __get__( GenomicInterval self ): * return GenomicPosition( self.chrom, self.start_d, self. strand ) # <<<<<<<<<<<<<< * * property end_d_as_pos: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__start_d); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start_d_as_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":149 * * property end_d_as_pos: * def __get__( GenomicInterval self ): # <<<<<<<<<<<<<< * return GenomicPosition( self.chrom, self.end_d, self. strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12end_d_as_pos___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12end_d_as_pos___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":150 * property end_d_as_pos: * def __get__( GenomicInterval self ): * return GenomicPosition( self.chrom, self.end_d, self. strand ) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__end_d); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.end_d_as_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":153 * * * def __richcmp__( GenomicInterval self, GenomicInterval other, int op ): # <<<<<<<<<<<<<< * if op == 2: # == * if other == None: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__richcmp__"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_self), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "self", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":159 * return self._strand is other._strand and \ * self.start == other.start and self.end == other.end * elif op == 3: # != # <<<<<<<<<<<<<< * return not ( self == other ) * else: */ switch (__pyx_v_op) { /* "HTSeq/_HTSeq.pyx":154 * * def __richcmp__( GenomicInterval self, GenomicInterval other, int op ): * if op == 2: # == # <<<<<<<<<<<<<< * if other == None: * return False */ case 2: /* "HTSeq/_HTSeq.pyx":155 * def __richcmp__( GenomicInterval self, GenomicInterval other, int op ): * if op == 2: # == * if other == None: # <<<<<<<<<<<<<< * return False * return self._strand is other._strand and \ */ __pyx_t_1 = PyObject_RichCompare(__pyx_v_other, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":156 * if op == 2: # == * if other == None: * return False # <<<<<<<<<<<<<< * return self._strand is other._strand and \ * self.start == other.start and self.end == other.end */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":157 * if other == None: * return False * return self._strand is other._strand and \ # <<<<<<<<<<<<<< * self.start == other.start and self.end == other.end * elif op == 3: # != */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->_strand == ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_other)->_strand); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":158 * return False * return self._strand is other._strand and \ * self.start == other.start and self.end == other.end # <<<<<<<<<<<<<< * elif op == 3: # != * return not ( self == other ) */ __pyx_t_3 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start == ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_other)->start); if (__pyx_t_3) { __pyx_t_4 = (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end == ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_other)->end); __pyx_t_5 = __pyx_t_4; } else { __pyx_t_5 = __pyx_t_3; } __pyx_t_3 = __pyx_t_5; } else { __pyx_t_3 = __pyx_t_2; } __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; break; /* "HTSeq/_HTSeq.pyx":159 * return self._strand is other._strand and \ * self.start == other.start and self.end == other.end * elif op == 3: # != # <<<<<<<<<<<<<< * return not ( self == other ) * else: */ case 3: /* "HTSeq/_HTSeq.pyx":160 * self.start == other.start and self.end == other.end * elif op == 3: # != * return not ( self == other ) # <<<<<<<<<<<<<< * else: * raise NotImplementedError */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_RichCompare(__pyx_v_self, __pyx_v_other, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; break; default: /* "HTSeq/_HTSeq.pyx":162 * return not ( self == other ) * else: * raise NotImplementedError # <<<<<<<<<<<<<< * * def __hash__( GenomicInterval self ): */ __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} break; } __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":164 * raise NotImplementedError * * def __hash__( GenomicInterval self ): # <<<<<<<<<<<<<< * return hash( ( self.chrom, self.start, self.end, self.strand ) ) * */ static Py_hash_t __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6__hash__(PyObject *__pyx_v_self); /*proto*/ static Py_hash_t __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6__hash__(PyObject *__pyx_v_self) { Py_hash_t __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_hash_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__hash__"); /* "HTSeq/_HTSeq.pyx":165 * * def __hash__( GenomicInterval self ): * return hash( ( self.chrom, self.start, self.end, self.strand ) ) # <<<<<<<<<<<<<< * * cpdef is_contained_in( GenomicInterval self, GenomicInterval iv ): */ __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_5 = PyObject_Hash(((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = __pyx_t_5; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":167 * return hash( ( self.chrom, self.start, self.end, self.strand ) ) * * cpdef is_contained_in( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * is fully within the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_is_contained_in(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_contained_in"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__is_contained_in); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":178 * - self.end <= iv.end * """ * if iv == None: # <<<<<<<<<<<<<< * return False * if self.chrom != iv.chrom: */ __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_iv), Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":179 * """ * if iv == None: * return False # <<<<<<<<<<<<<< * if self.chrom != iv.chrom: * return False */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":180 * if iv == None: * return False * if self.chrom != iv.chrom: # <<<<<<<<<<<<<< * return False * if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->chrom), ((PyObject *)__pyx_v_iv->chrom), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":181 * return False * if self.chrom != iv.chrom: * return False # <<<<<<<<<<<<<< * if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv._strand: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":182 * if self.chrom != iv.chrom: * return False * if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ # <<<<<<<<<<<<<< * self.strand is not iv._strand: * return False */ __pyx_t_4 = (__pyx_v_self->_strand != __pyx_v_5HTSeq_6_HTSeq_strand_nostrand); if (__pyx_t_4) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":183 * return False * if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv._strand: # <<<<<<<<<<<<<< * return False * if self.start < iv.start or self.end > iv.end: */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = (__pyx_t_1 != ((PyObject *)__pyx_v_iv->_strand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __pyx_t_6; } else { __pyx_t_7 = __pyx_t_5; } __pyx_t_5 = __pyx_t_7; } else { __pyx_t_5 = __pyx_t_4; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":184 * if self._strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv._strand: * return False # <<<<<<<<<<<<<< * if self.start < iv.start or self.end > iv.end: * return False */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":185 * self.strand is not iv._strand: * return False * if self.start < iv.start or self.end > iv.end: # <<<<<<<<<<<<<< * return False * return True */ __pyx_t_5 = (__pyx_v_self->start < __pyx_v_iv->start); if (!__pyx_t_5) { __pyx_t_4 = (__pyx_v_self->end > __pyx_v_iv->end); __pyx_t_7 = __pyx_t_4; } else { __pyx_t_7 = __pyx_t_5; } if (__pyx_t_7) { /* "HTSeq/_HTSeq.pyx":186 * return False * if self.start < iv.start or self.end > iv.end: * return False # <<<<<<<<<<<<<< * return True * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":187 * if self.start < iv.start or self.end > iv.end: * return False * return True # <<<<<<<<<<<<<< * * cpdef contains( GenomicInterval self, GenomicInterval iv ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.is_contained_in", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":167 * return hash( ( self.chrom, self.start, self.end, self.strand ) ) * * cpdef is_contained_in( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * is fully within the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in[] = "Returns a boolean value indicating whether the 'self' interval \n is fully within the 'iv' interval.\n \n This is deemed the case if\007\n - both are on the same chromosome, and \n - both are on the same strand, or at least one of them is\n not stranded (i.e., has strand == '.'), and\n - self.start >= iv.start, and\n - self.end <= iv.end\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in(PyObject *__pyx_v_self, PyObject *__pyx_v_iv) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_contained_in"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->__pyx_vtab)->is_contained_in(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self), ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.is_contained_in", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":189 * return True * * cpdef contains( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * fully contains the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_8contains(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_contains(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("contains"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__contains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_8contains)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":195 * See 'is_contained_in' for the exact criteria. * """ * if iv == None: # <<<<<<<<<<<<<< * return False * return iv.is_contained_in( self ) */ __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_iv), Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":196 * """ * if iv == None: * return False # <<<<<<<<<<<<<< * return iv.is_contained_in( self ) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":197 * if iv == None: * return False * return iv.is_contained_in( self ) # <<<<<<<<<<<<<< * * cpdef overlaps( GenomicInterval self, GenomicInterval iv ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv->__pyx_vtab)->is_contained_in(__pyx_v_iv, __pyx_v_self, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.contains", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":189 * return True * * cpdef contains( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * fully contains the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_8contains(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_8contains[] = "Returns a boolean value indicating whether the 'self' interval \n fully contains the 'iv' interval.\n\n See 'is_contained_in' for the exact criteria.\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_8contains(PyObject *__pyx_v_self, PyObject *__pyx_v_iv) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("contains"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->__pyx_vtab)->contains(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self), ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.contains", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":199 * return iv.is_contained_in( self ) * * cpdef overlaps( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * overlaps the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_overlaps(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("overlaps"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__overlaps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":209 * - the actual intervals overlap * """ * if iv == None: # <<<<<<<<<<<<<< * return False * if self.chrom != iv.chrom: */ __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_iv), Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":210 * """ * if iv == None: * return False # <<<<<<<<<<<<<< * if self.chrom != iv.chrom: * return False */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":211 * if iv == None: * return False * if self.chrom != iv.chrom: # <<<<<<<<<<<<<< * return False * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->chrom), ((PyObject *)__pyx_v_iv->chrom), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":212 * return False * if self.chrom != iv.chrom: * return False # <<<<<<<<<<<<<< * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":213 * if self.chrom != iv.chrom: * return False * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ # <<<<<<<<<<<<<< * self.strand is not iv.strand: * return False */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":214 * return False * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: # <<<<<<<<<<<<<< * return False * if self.start <= iv.start: */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = (__pyx_t_1 != __pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_t_6; } else { __pyx_t_7 = __pyx_t_5; } __pyx_t_5 = __pyx_t_7; } else { __pyx_t_5 = __pyx_t_4; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":215 * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: * return False # <<<<<<<<<<<<<< * if self.start <= iv.start: * return self.end > iv.start */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":216 * self.strand is not iv.strand: * return False * if self.start <= iv.start: # <<<<<<<<<<<<<< * return self.end > iv.start * else: */ __pyx_t_5 = (__pyx_v_self->start <= __pyx_v_iv->start); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":217 * return False * if self.start <= iv.start: * return self.end > iv.start # <<<<<<<<<<<<<< * else: * return iv.end > self.start */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_self->end > __pyx_v_iv->start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":219 * return self.end > iv.start * else: * return iv.end > self.start # <<<<<<<<<<<<<< * * def xrange( GenomicInterval self, long int step = 1 ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_iv->end > __pyx_v_self->start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } __pyx_L6:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.overlaps", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":199 * return iv.is_contained_in( self ) * * cpdef overlaps( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Returns a boolean value indicating whether the 'self' interval * overlaps the 'iv' interval. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps[] = "Returns a boolean value indicating whether the 'self' interval \n overlaps the 'iv' interval.\n \n This is deemed the case if\n - both are on the same chromosome, and \n - both are on the same strand, or at least one of them is\n not stranded (i.e., has strand == '.'), and\n - the actual intervals overlap\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps(PyObject *__pyx_v_self, PyObject *__pyx_v_iv) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("overlaps"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->__pyx_vtab)->overlaps(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self), ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.overlaps", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":221 * return iv.end > self.start * * def xrange( GenomicInterval self, long int step = 1 ): # <<<<<<<<<<<<<< * """Generate an iterator over the GenomicPositions covered by the interval, * running from start to end. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10xrange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_10xrange[] = "Generate an iterator over the GenomicPositions covered by the interval,\n running from start to end.\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10xrange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { long __pyx_v_step; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__step,0}; __Pyx_RefNannySetupContext("xrange"); { PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__step); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "xrange") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_step = __Pyx_PyInt_AsLong(values[0]); if (unlikely((__pyx_v_step == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_step = ((long)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("xrange", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.xrange", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":225 * running from start to end. * """ * return _HTSeq_internal.GenomicInterval_xrange( self, step ) # <<<<<<<<<<<<<< * * def xrange_d( GenomicInterval self, long int step = 1 ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___HTSeq_internal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.xrange", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":227 * return _HTSeq_internal.GenomicInterval_xrange( self, step ) * * def xrange_d( GenomicInterval self, long int step = 1 ): # <<<<<<<<<<<<<< * """Generate an iterator over the GenomicPositions covered by the interval. * running from start_d to end_d. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_11xrange_d(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_11xrange_d[] = "Generate an iterator over the GenomicPositions covered by the interval.\n running from start_d to end_d.\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_11xrange_d(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { long __pyx_v_step; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__step,0}; __Pyx_RefNannySetupContext("xrange_d"); { PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__step); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "xrange_d") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_step = __Pyx_PyInt_AsLong(values[0]); if (unlikely((__pyx_v_step == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_step = ((long)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("xrange_d", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.xrange_d", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":231 * running from start_d to end_d. * """ * return _HTSeq_internal.GenomicInterval_xranged( self, step ) # <<<<<<<<<<<<<< * * cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___HTSeq_internal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_7); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.xrange_d", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":233 * return _HTSeq_internal.GenomicInterval_xranged( self, step ) * * cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Extend the interval such that it includes iv.""" * if iv is None: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_extend_to_include(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; long __pyx_t_9; long __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("extend_to_include"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__extend_to_include); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":235 * cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ): * """Extend the interval such that it includes iv.""" * if iv is None: # <<<<<<<<<<<<<< * raise TypeError, "Cannot extend an interval to include None." * if self.chrom != iv.chrom: */ __pyx_t_4 = (((PyObject *)__pyx_v_iv) == Py_None); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":236 * """Extend the interval such that it includes iv.""" * if iv is None: * raise TypeError, "Cannot extend an interval to include None." # <<<<<<<<<<<<<< * if self.chrom != iv.chrom: * raise ValueError, "Cannot extend an interval to include an interval on another chromosome." */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_8), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":237 * if iv is None: * raise TypeError, "Cannot extend an interval to include None." * if self.chrom != iv.chrom: # <<<<<<<<<<<<<< * raise ValueError, "Cannot extend an interval to include an interval on another chromosome." * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->chrom), ((PyObject *)__pyx_v_iv->chrom), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":238 * raise TypeError, "Cannot extend an interval to include None." * if self.chrom != iv.chrom: * raise ValueError, "Cannot extend an interval to include an interval on another chromosome." # <<<<<<<<<<<<<< * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_9), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":239 * if self.chrom != iv.chrom: * raise ValueError, "Cannot extend an interval to include an interval on another chromosome." * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ # <<<<<<<<<<<<<< * self.strand is not iv.strand: * raise ValueError, "Cannot extend an interval to include an interval on another strand." */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":240 * raise ValueError, "Cannot extend an interval to include an interval on another chromosome." * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: # <<<<<<<<<<<<<< * raise ValueError, "Cannot extend an interval to include an interval on another strand." * self.start = min( self.start, iv.start ) */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = (__pyx_t_1 != __pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_t_6; } else { __pyx_t_7 = __pyx_t_5; } __pyx_t_5 = __pyx_t_7; } else { __pyx_t_5 = __pyx_t_4; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":241 * if self.strand is not strand_nostrand and iv.strand is not strand_nostrand and \ * self.strand is not iv.strand: * raise ValueError, "Cannot extend an interval to include an interval on another strand." # <<<<<<<<<<<<<< * self.start = min( self.start, iv.start ) * self.end = max( self.end, iv.end ) */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_10), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":242 * self.strand is not iv.strand: * raise ValueError, "Cannot extend an interval to include an interval on another strand." * self.start = min( self.start, iv.start ) # <<<<<<<<<<<<<< * self.end = max( self.end, iv.end ) * */ __pyx_t_8 = __pyx_v_iv->start; __pyx_t_9 = __pyx_v_self->start; if ((__pyx_t_8 < __pyx_t_9)) { __pyx_t_10 = __pyx_t_8; } else { __pyx_t_10 = __pyx_t_9; } __pyx_v_self->start = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":243 * raise ValueError, "Cannot extend an interval to include an interval on another strand." * self.start = min( self.start, iv.start ) * self.end = max( self.end, iv.end ) # <<<<<<<<<<<<<< * * def copy( self ): */ __pyx_t_10 = __pyx_v_iv->end; __pyx_t_8 = __pyx_v_self->end; if ((__pyx_t_10 > __pyx_t_8)) { __pyx_t_9 = __pyx_t_10; } else { __pyx_t_9 = __pyx_t_8; } __pyx_v_self->end = __pyx_t_9; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.extend_to_include", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":233 * return _HTSeq_internal.GenomicInterval_xranged( self, step ) * * cpdef extend_to_include( GenomicInterval self, GenomicInterval iv ): # <<<<<<<<<<<<<< * """Extend the interval such that it includes iv.""" * if iv is None: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include(PyObject *__pyx_v_self, PyObject *__pyx_v_iv); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include[] = "Extend the interval such that it includes iv."; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include(PyObject *__pyx_v_self, PyObject *__pyx_v_iv) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("extend_to_include"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->__pyx_vtab)->extend_to_include(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self), ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.extend_to_include", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":245 * self.end = max( self.end, iv.end ) * * def copy( self ): # <<<<<<<<<<<<<< * return GenomicInterval( self.chrom, self.start, self.end, self.strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_13copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_13copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("copy"); /* "HTSeq/_HTSeq.pyx":246 * * def copy( self ): * return GenomicInterval( self.chrom, self.start, self.end, self.strand ) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":5 * cdef class GenomicInterval: * * cdef public str chrom # <<<<<<<<<<<<<< * cdef public long start * cdef public long end */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.chrom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->chrom = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":6 * * cdef public str chrom * cdef public long start # <<<<<<<<<<<<<< * cdef public long end * cdef str _strand */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsLong(__pyx_v_value); if (unlikely((__pyx_t_1 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->start = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.start.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":7 * cdef public str chrom * cdef public long start * cdef public long end # <<<<<<<<<<<<<< * cdef str _strand * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.end.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsLong(__pyx_v_value); if (unlikely((__pyx_t_1 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_self)->end = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval.end.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":249 * * * def GenomicInterval_from_directional( str chrom, long int start_d, long int length, str strand="." ): # <<<<<<<<<<<<<< * strand = intern( strand ) * if strand.se is not strand_minus: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_GenomicInterval_from_directional(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5HTSeq_6_HTSeq_GenomicInterval_from_directional = {__Pyx_NAMESTR("GenomicInterval_from_directional"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_GenomicInterval_from_directional, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_GenomicInterval_from_directional(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_chrom = 0; long __pyx_v_start_d; long __pyx_v_length; PyObject *__pyx_v_strand = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__chrom,&__pyx_n_s__start_d,&__pyx_n_s__length,&__pyx_n_s__strand,0}; __Pyx_RefNannySetupContext("GenomicInterval_from_directional"); __pyx_self = __pyx_self; { PyObject* values[4] = {0,0,0,0}; values[3] = ((PyObject*)__pyx_kp_s_11); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start_d); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("GenomicInterval_from_directional", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__length); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("GenomicInterval_from_directional", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "GenomicInterval_from_directional") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_chrom = ((PyObject*)values[0]); __pyx_v_start_d = __Pyx_PyInt_AsLong(values[1]); if (unlikely((__pyx_v_start_d == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_length = __Pyx_PyInt_AsLong(values[2]); if (unlikely((__pyx_v_length == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_strand = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("GenomicInterval_from_directional", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval_from_directional", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __Pyx_INCREF(__pyx_v_strand); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":250 * * def GenomicInterval_from_directional( str chrom, long int start_d, long int length, str strand="." ): * strand = intern( strand ) # <<<<<<<<<<<<<< * if strand.se is not strand_minus: * return GenomicInterval( chrom, start_d, start_d+length, strand ) */ __pyx_t_1 = __Pyx_Intern(((PyObject *)__pyx_v_strand)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_v_strand)); __pyx_v_strand = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":251 * def GenomicInterval_from_directional( str chrom, long int start_d, long int length, str strand="." ): * strand = intern( strand ) * if strand.se is not strand_minus: # <<<<<<<<<<<<<< * return GenomicInterval( chrom, start_d, start_d+length, strand ) * else: */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_strand), __pyx_n_s__se); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":252 * strand = intern( strand ) * if strand.se is not strand_minus: * return GenomicInterval( chrom, start_d, start_d+length, strand ) # <<<<<<<<<<<<<< * else: * return GenomicInterval( chrom, start_d-length+1, start_d+1, strand ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(__pyx_v_start_d); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyInt_FromLong((__pyx_v_start_d + __pyx_v_length)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":254 * return GenomicInterval( chrom, start_d, start_d+length, strand ) * else: * return GenomicInterval( chrom, start_d-length+1, start_d+1, strand ) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyInt_FromLong(((__pyx_v_start_d - __pyx_v_length) + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromLong((__pyx_v_start_d + 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } __pyx_L6:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicInterval_from_directional", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_strand); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":275 * """ * * def __init__( self, str chrom, long int pos, str strand='.' ): # <<<<<<<<<<<<<< * GenomicInterval.__init__( self, chrom, pos, pos+1, strand ) * */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_chrom = 0; long __pyx_v_pos; PyObject *__pyx_v_strand = 0; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__chrom,&__pyx_n_s__pos,&__pyx_n_s__strand,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[3] = {0,0,0}; values[2] = ((PyObject*)__pyx_kp_s_11); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_chrom = ((PyObject*)values[0]); __pyx_v_pos = __Pyx_PyInt_AsLong(values[1]); if (unlikely((__pyx_v_pos == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_strand = ((PyObject*)values[2]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":276 * * def __init__( self, str chrom, long int pos, str strand='.' ): * GenomicInterval.__init__( self, chrom, pos, pos+1, strand ) # <<<<<<<<<<<<<< * * property pos: */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_pos); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromLong((__pyx_v_pos + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_4, 4, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":284 * """ * * def __get__( self ): # <<<<<<<<<<<<<< * return self.start_d * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":285 * * def __get__( self ): * return self.start_d # <<<<<<<<<<<<<< * * def __set__( self, long newValue ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__start_d); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":287 * return self.start_d * * def __set__( self, long newValue ): # <<<<<<<<<<<<<< * self.start_d = newValue * */ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newValue); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_newValue) { long __pyx_v_newValue; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); assert(__pyx_arg_newValue); { __pyx_v_newValue = __Pyx_PyInt_AsLong(__pyx_arg_newValue); if (unlikely((__pyx_v_newValue == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.pos.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":288 * * def __set__( self, long newValue ): * self.start_d = newValue # <<<<<<<<<<<<<< * * property end: */ __pyx_t_1 = PyInt_FromLong(__pyx_v_newValue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__start_d, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.pos.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":292 * property end: * * def __get__( self ): # <<<<<<<<<<<<<< * return self.start + 1 * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3end___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3end___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":293 * * def __get__( self ): * return self.start + 1 # <<<<<<<<<<<<<< * * property length: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.start + 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.end.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":297 * property length: * * def __get__( self ): # <<<<<<<<<<<<<< * return 1 * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_6length___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_6length___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":298 * * def __get__( self ): * return 1 # <<<<<<<<<<<<<< * * def __repr__( self ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_1); __pyx_r = __pyx_int_1; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":300 * return 1 * * def __repr__( self ): # <<<<<<<<<<<<<< * return "<%s object '%s':%d, strand '%s'>" % \ * ( self.__class__.__name__, self.chrom, self.pos, self.strand ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":301 * * def __repr__( self ): * return "<%s object '%s':%d, strand '%s'>" % \ # <<<<<<<<<<<<<< * ( self.__class__.__name__, self.chrom, self.pos, self.strand ) * */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":302 * def __repr__( self ): * return "<%s object '%s':%d, strand '%s'>" % \ * ( self.__class__.__name__, self.chrom, self.pos, self.strand ) # <<<<<<<<<<<<<< * * def __str__( self ): */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_12), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = ((PyObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":304 * ( self.__class__.__name__, self.chrom, self.pos, self.strand ) * * def __str__( self ): # <<<<<<<<<<<<<< * return "%s:%d/%s" % ( self.chrom, self.pos, self.strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_2__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_2__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__"); /* "HTSeq/_HTSeq.pyx":305 * * def __str__( self ): * return "%s:%d/%s" % ( self.chrom, self.pos, self.strand ) # <<<<<<<<<<<<<< * * def __reduce__( GenomicPosition self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_13), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":307 * return "%s:%d/%s" % ( self.chrom, self.pos, self.strand ) * * def __reduce__( GenomicPosition self ): # <<<<<<<<<<<<<< * return GenomicPosition, ( self.chrom, self.pos, self.strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__"); /* "HTSeq/_HTSeq.pyx":308 * * def __reduce__( GenomicPosition self ): * return GenomicPosition, ( self.chrom, self.pos, self.strand ) # <<<<<<<<<<<<<< * * def copy( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition))); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition))); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":310 * return GenomicPosition, ( self.chrom, self.pos, self.strand ) * * def copy( self ): # <<<<<<<<<<<<<< * return GenomicPosition( self.chrom, self.pos, self.strand ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_4copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_4copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("copy"); /* "HTSeq/_HTSeq.pyx":311 * * def copy( self ): * return GenomicPosition( self.chrom, self.pos, self.strand ) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_self)->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicPosition.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":323 * * @classmethod * def create( cls, GenomicInterval iv, str typecode, str storage, str memmap_dir = "" ): # <<<<<<<<<<<<<< * ncv = cls() * ncv.iv = iv */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv = 0; PyObject *__pyx_v_typecode = 0; PyObject *__pyx_v_storage = 0; PyObject *__pyx_v_memmap_dir = 0; PyObject *__pyx_v_ncv = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__iv,&__pyx_n_s__typecode,&__pyx_n_s__storage,&__pyx_n_s__memmap_dir,0}; __Pyx_RefNannySetupContext("create"); { PyObject* values[4] = {0,0,0,0}; values[3] = ((PyObject*)__pyx_kp_s_14); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iv); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__typecode); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__storage); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__memmap_dir); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "create") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)values[0]); __pyx_v_typecode = ((PyObject*)values[1]); __pyx_v_storage = ((PyObject*)values[2]); __pyx_v_memmap_dir = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("create", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_typecode), (&PyString_Type), 1, "typecode", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_storage), (&PyString_Type), 1, "storage", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memmap_dir), (&PyString_Type), 1, "memmap_dir", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":324 * @classmethod * def create( cls, GenomicInterval iv, str typecode, str storage, str memmap_dir = "" ): * ncv = cls() # <<<<<<<<<<<<<< * ncv.iv = iv * if storage == "ndarray": */ __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_ncv = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":325 * def create( cls, GenomicInterval iv, str typecode, str storage, str memmap_dir = "" ): * ncv = cls() * ncv.iv = iv # <<<<<<<<<<<<<< * if storage == "ndarray": * if typecode != 'O': */ if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__iv, ((PyObject *)__pyx_v_iv)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":326 * ncv = cls() * ncv.iv = iv * if storage == "ndarray": # <<<<<<<<<<<<<< * if typecode != 'O': * ncv.array = numpy.zeros( shape = ( iv.length, ), dtype = typecode ) */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_storage), ((PyObject *)__pyx_n_s__ndarray), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":327 * ncv.iv = iv * if storage == "ndarray": * if typecode != 'O': # <<<<<<<<<<<<<< * ncv.array = numpy.zeros( shape = ( iv.length, ), dtype = typecode ) * else: */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_typecode), ((PyObject *)__pyx_n_s__O), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":328 * if storage == "ndarray": * if typecode != 'O': * ncv.array = numpy.zeros( shape = ( iv.length, ), dtype = typecode ) # <<<<<<<<<<<<<< * else: * ncv.array = numpy.empty( shape = ( iv.length, ), dtype = typecode ) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__length); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__shape), ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_v_typecode)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__array, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":330 * ncv.array = numpy.zeros( shape = ( iv.length, ), dtype = typecode ) * else: * ncv.array = numpy.empty( shape = ( iv.length, ), dtype = typecode ) # <<<<<<<<<<<<<< * ncv.array[:] = None * elif storage == "memmap": */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__shape), ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_v_typecode)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__array, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_v_ncv)) { __Pyx_RaiseUnboundLocalError("ncv"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_4 = PyObject_GetAttr(__pyx_v_ncv, __pyx_n_s__array); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":331 * else: * ncv.array = numpy.empty( shape = ( iv.length, ), dtype = typecode ) * ncv.array[:] = None # <<<<<<<<<<<<<< * elif storage == "memmap": * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, */ __Pyx_GOTREF(__pyx_t_4); if (__Pyx_PySequence_SetSlice(__pyx_t_4, 0, PY_SSIZE_T_MAX, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_L7:; goto __pyx_L6; } /* "HTSeq/_HTSeq.pyx":332 * ncv.array = numpy.empty( shape = ( iv.length, ), dtype = typecode ) * ncv.array[:] = None * elif storage == "memmap": # <<<<<<<<<<<<<< * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_storage), ((PyObject *)__pyx_n_s__memmap), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":333 * ncv.array[:] = None * elif storage == "memmap": * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, # <<<<<<<<<<<<<< * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) * elif storage == "step": */ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__memmap); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__length); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__shape), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_v_typecode)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":334 * elif storage == "memmap": * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) # <<<<<<<<<<<<<< * elif storage == "step": * ncv.array = StepVector.StepVector.create( typecode = typecode ) */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__join); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_v_iv->chrom), __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_t_6, ((PyObject *)__pyx_kp_s_15)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(((PyObject *)__pyx_v_memmap_dir)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_memmap_dir)); __Pyx_GIVEREF(((PyObject *)__pyx_v_memmap_dir)); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__filename), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_kp_s_16)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":333 * ncv.array[:] = None * elif storage == "memmap": * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, # <<<<<<<<<<<<<< * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) * elif storage == "step": */ if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__array, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L6; } /* "HTSeq/_HTSeq.pyx":335 * ncv.array = numpy.memmap( shape = ( iv.length, ), dtype = typecode, * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) * elif storage == "step": # <<<<<<<<<<<<<< * ncv.array = StepVector.StepVector.create( typecode = typecode ) * else: */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_storage), ((PyObject *)__pyx_n_s__step), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":336 * filename = os.path.join( memmap_dir, iv.chrom + iv.strand + ".nmm" ), mode='w+' ) * elif storage == "step": * ncv.array = StepVector.StepVector.create( typecode = typecode ) # <<<<<<<<<<<<<< * else: * raise ValueError, "Illegal storage mode." */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__StepVector); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StepVector); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__create); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__typecode), ((PyObject *)__pyx_v_typecode)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__array, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":338 * ncv.array = StepVector.StepVector.create( typecode = typecode ) * else: * raise ValueError, "Illegal storage mode." # <<<<<<<<<<<<<< * ncv._storage = storage * # TODO: Test whether offset works properly */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_17), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":339 * else: * raise ValueError, "Illegal storage mode." * ncv._storage = storage # <<<<<<<<<<<<<< * # TODO: Test whether offset works properly * ncv.offset = iv.start */ if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s___storage, ((PyObject *)__pyx_v_storage)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":341 * ncv._storage = storage * # TODO: Test whether offset works properly * ncv.offset = iv.start # <<<<<<<<<<<<<< * ncv.is_vector_of_sets = False * return ncv */ __pyx_t_5 = PyInt_FromLong(__pyx_v_iv->start); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__offset, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":342 * # TODO: Test whether offset works properly * ncv.offset = iv.start * ncv.is_vector_of_sets = False # <<<<<<<<<<<<<< * return ncv * */ __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetAttr(__pyx_v_ncv, __pyx_n_s__is_vector_of_sets, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":343 * ncv.offset = iv.start * ncv.is_vector_of_sets = False * return ncv # <<<<<<<<<<<<<< * * @classmethod */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ncv); __pyx_r = __pyx_v_ncv; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ncv); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":346 * * @classmethod * def _create_view( cls, ChromVector vec, GenomicInterval iv ): # <<<<<<<<<<<<<< * if iv.length == 0: * raise IndexError, "Cannot subset to zero-length interval." */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_1_create_view(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_1_create_view(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *__pyx_v_vec = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv = 0; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__vec,&__pyx_n_s__iv,0}; __Pyx_RefNannySetupContext("_create_view"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__vec); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iv); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_create_view", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_create_view") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_vec = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)values[0]); __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_create_view", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector._create_view", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5HTSeq_6_HTSeq_ChromVector, 1, "vec", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":347 * @classmethod * def _create_view( cls, ChromVector vec, GenomicInterval iv ): * if iv.length == 0: # <<<<<<<<<<<<<< * raise IndexError, "Cannot subset to zero-length interval." * v = cls() */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__length); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":348 * def _create_view( cls, ChromVector vec, GenomicInterval iv ): * if iv.length == 0: * raise IndexError, "Cannot subset to zero-length interval." # <<<<<<<<<<<<<< * v = cls() * v.iv = iv */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_18), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":349 * if iv.length == 0: * raise IndexError, "Cannot subset to zero-length interval." * v = cls() # <<<<<<<<<<<<<< * v.iv = iv * v.array = vec.array */ __pyx_t_2 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_v_v = __pyx_t_2; __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":350 * raise IndexError, "Cannot subset to zero-length interval." * v = cls() * v.iv = iv # <<<<<<<<<<<<<< * v.array = vec.array * v.offset = vec.offset */ if (PyObject_SetAttr(__pyx_v_v, __pyx_n_s__iv, ((PyObject *)__pyx_v_iv)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":351 * v = cls() * v.iv = iv * v.array = vec.array # <<<<<<<<<<<<<< * v.offset = vec.offset * v.is_vector_of_sets = vec.is_vector_of_sets */ if (PyObject_SetAttr(__pyx_v_v, __pyx_n_s__array, __pyx_v_vec->array) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":352 * v.iv = iv * v.array = vec.array * v.offset = vec.offset # <<<<<<<<<<<<<< * v.is_vector_of_sets = vec.is_vector_of_sets * v._storage = vec._storage */ __pyx_t_2 = PyInt_FromLong(__pyx_v_vec->offset); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_v_v, __pyx_n_s__offset, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":353 * v.array = vec.array * v.offset = vec.offset * v.is_vector_of_sets = vec.is_vector_of_sets # <<<<<<<<<<<<<< * v._storage = vec._storage * return v */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_vec->is_vector_of_sets); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_v_v, __pyx_n_s__is_vector_of_sets, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":354 * v.offset = vec.offset * v.is_vector_of_sets = vec.is_vector_of_sets * v._storage = vec._storage # <<<<<<<<<<<<<< * return v * */ if (PyObject_SetAttr(__pyx_v_v, __pyx_n_s___storage, ((PyObject *)__pyx_v_vec->_storage)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":355 * v.is_vector_of_sets = vec.is_vector_of_sets * v._storage = vec._storage * return v # <<<<<<<<<<<<<< * * def __getitem__( self, index ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_v); __pyx_r = __pyx_v_v; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector._create_view", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":357 * return v * * def __getitem__( self, index ): # <<<<<<<<<<<<<< * cdef slice index_slice * cdef long int index_int */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_index_slice = 0; long __pyx_v_index_int; long __pyx_v_start; long __pyx_v_stop; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; long __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__"); /* "HTSeq/_HTSeq.pyx":362 * cdef long int start, stop * cdef GenomicInterval iv * if isinstance( index, int ): # <<<<<<<<<<<<<< * index_int = index * if index_int < self.iv.start or index_int >= self.iv.end: */ __pyx_t_1 = ((PyObject *)((PyObject*)(&PyInt_Type))); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":363 * cdef GenomicInterval iv * if isinstance( index, int ): * index_int = index # <<<<<<<<<<<<<< * if index_int < self.iv.start or index_int >= self.iv.end: * raise IndexError */ __pyx_t_3 = __Pyx_PyInt_AsLong(__pyx_v_index); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_index_int = __pyx_t_3; /* "HTSeq/_HTSeq.pyx":364 * if isinstance( index, int ): * index_int = index * if index_int < self.iv.start or index_int >= self.iv.end: # <<<<<<<<<<<<<< * raise IndexError * return self.array[ index_int - self.offset ] */ __pyx_t_2 = (__pyx_v_index_int < ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (!__pyx_t_2) { __pyx_t_4 = (__pyx_v_index_int >= ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end); __pyx_t_5 = __pyx_t_4; } else { __pyx_t_5 = __pyx_t_2; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":365 * index_int = index * if index_int < self.iv.start or index_int >= self.iv.end: * raise IndexError # <<<<<<<<<<<<<< * return self.array[ index_int - self.offset ] * elif isinstance( index, slice ): */ __Pyx_Raise(__pyx_builtin_IndexError, 0, 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":366 * if index_int < self.iv.start or index_int >= self.iv.end: * raise IndexError * return self.array[ index_int - self.offset ] # <<<<<<<<<<<<<< * elif isinstance( index, slice ): * index_slice = index */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = (__pyx_v_index_int - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset); __pyx_t_1 = __Pyx_GetItemInt(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, __pyx_t_3, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":367 * raise IndexError * return self.array[ index_int - self.offset ] * elif isinstance( index, slice ): # <<<<<<<<<<<<<< * index_slice = index * if index_slice.start is not None: */ __pyx_t_1 = ((PyObject *)((PyObject*)(&PySlice_Type))); __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":368 * return self.array[ index_int - self.offset ] * elif isinstance( index, slice ): * index_slice = index # <<<<<<<<<<<<<< * if index_slice.start is not None: * start = index_slice.start */ if (!(likely(PySlice_Check(__pyx_v_index))||((__pyx_v_index) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected slice, got %.200s", Py_TYPE(__pyx_v_index)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_index); __pyx_v_index_slice = ((PyObject*)__pyx_v_index); /* "HTSeq/_HTSeq.pyx":369 * elif isinstance( index, slice ): * index_slice = index * if index_slice.start is not None: # <<<<<<<<<<<<<< * start = index_slice.start * if start < self.iv.start: */ __pyx_t_5 = (((PySliceObject*)__pyx_v_index_slice)->start != Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":370 * index_slice = index * if index_slice.start is not None: * start = index_slice.start # <<<<<<<<<<<<<< * if start < self.iv.start: * raise IndexError, "start too small" */ __pyx_t_3 = __Pyx_PyInt_AsLong(((PySliceObject*)__pyx_v_index_slice)->start); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_start = __pyx_t_3; /* "HTSeq/_HTSeq.pyx":371 * if index_slice.start is not None: * start = index_slice.start * if start < self.iv.start: # <<<<<<<<<<<<<< * raise IndexError, "start too small" * else: */ __pyx_t_5 = (__pyx_v_start < ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":372 * start = index_slice.start * if start < self.iv.start: * raise IndexError, "start too small" # <<<<<<<<<<<<<< * else: * start = self.iv.start */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_19), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L8; } __pyx_L8:; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":374 * raise IndexError, "start too small" * else: * start = self.iv.start # <<<<<<<<<<<<<< * if index_slice.stop is not None: * stop = index_slice.stop */ __pyx_v_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":375 * else: * start = self.iv.start * if index_slice.stop is not None: # <<<<<<<<<<<<<< * stop = index_slice.stop * if stop > self.iv.end: */ __pyx_t_5 = (((PySliceObject*)__pyx_v_index_slice)->stop != Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":376 * start = self.iv.start * if index_slice.stop is not None: * stop = index_slice.stop # <<<<<<<<<<<<<< * if stop > self.iv.end: * raise IndexError, "stop too large" */ __pyx_t_3 = __Pyx_PyInt_AsLong(((PySliceObject*)__pyx_v_index_slice)->stop); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_stop = __pyx_t_3; /* "HTSeq/_HTSeq.pyx":377 * if index_slice.stop is not None: * stop = index_slice.stop * if stop > self.iv.end: # <<<<<<<<<<<<<< * raise IndexError, "stop too large" * else: */ __pyx_t_5 = (__pyx_v_stop > ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":378 * stop = index_slice.stop * if stop > self.iv.end: * raise IndexError, "stop too large" # <<<<<<<<<<<<<< * else: * stop = self.iv.end */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_20), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L10; } __pyx_L10:; goto __pyx_L9; } /*else*/ { /* "HTSeq/_HTSeq.pyx":380 * raise IndexError, "stop too large" * else: * stop = self.iv.end # <<<<<<<<<<<<<< * iv = GenomicInterval( self.iv.chrom, start, stop, self.iv.strand ) * if not self.iv.contains( iv ): */ __pyx_v_stop = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end; } __pyx_L9:; /* "HTSeq/_HTSeq.pyx":381 * else: * stop = self.iv.end * iv = GenomicInterval( self.iv.chrom, start, stop, self.iv.strand ) # <<<<<<<<<<<<<< * if not self.iv.contains( iv ): * raise IndexError */ __pyx_t_1 = PyInt_FromLong(__pyx_v_start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyInt_FromLong(__pyx_v_stop); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->chrom)); PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->chrom)); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":382 * stop = self.iv.end * iv = GenomicInterval( self.iv.chrom, start, stop, self.iv.strand ) * if not self.iv.contains( iv ): # <<<<<<<<<<<<<< * raise IndexError * return ChromVector._create_view( self, iv ) */ __pyx_t_7 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->__pyx_vtab)->contains(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv, __pyx_v_iv, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = (!__pyx_t_5); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":383 * iv = GenomicInterval( self.iv.chrom, start, stop, self.iv.strand ) * if not self.iv.contains( iv ): * raise IndexError # <<<<<<<<<<<<<< * return ChromVector._create_view( self, iv ) * elif isinstance( index, GenomicInterval ): */ __Pyx_Raise(__pyx_builtin_IndexError, 0, 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L11; } __pyx_L11:; /* "HTSeq/_HTSeq.pyx":384 * if not self.iv.contains( iv ): * raise IndexError * return ChromVector._create_view( self, iv ) # <<<<<<<<<<<<<< * elif isinstance( index, GenomicInterval ): * if not self.iv.contains( index ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_7 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), __pyx_n_s___create_view); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_6 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":385 * raise IndexError * return ChromVector._create_view( self, iv ) * elif isinstance( index, GenomicInterval ): # <<<<<<<<<<<<<< * if not self.iv.contains( index ): * raise IndexError */ __pyx_t_6 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)); __Pyx_INCREF(__pyx_t_6); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":386 * return ChromVector._create_view( self, iv ) * elif isinstance( index, GenomicInterval ): * if not self.iv.contains( index ): # <<<<<<<<<<<<<< * raise IndexError * if self.iv.strand is strand_nostrand and \ */ if (!(likely(((__pyx_v_index) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_index, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_6 = __pyx_v_index; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->__pyx_vtab)->contains(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv, ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_6), 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_5 = (!__pyx_t_2); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":387 * elif isinstance( index, GenomicInterval ): * if not self.iv.contains( index ): * raise IndexError # <<<<<<<<<<<<<< * if self.iv.strand is strand_nostrand and \ * index.strand is not strand_nostrand: */ __Pyx_Raise(__pyx_builtin_IndexError, 0, 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L12; } __pyx_L12:; /* "HTSeq/_HTSeq.pyx":388 * if not self.iv.contains( index ): * raise IndexError * if self.iv.strand is strand_nostrand and \ # <<<<<<<<<<<<<< * index.strand is not strand_nostrand: * iv = index.copy() # Is this correct now? */ __pyx_t_8 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = (__pyx_t_8 == ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":389 * raise IndexError * if self.iv.strand is strand_nostrand and \ * index.strand is not strand_nostrand: # <<<<<<<<<<<<<< * iv = index.copy() # Is this correct now? * iv.strand = strand_nostrand */ __pyx_t_8 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_8 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __pyx_t_2; } else { __pyx_t_4 = __pyx_t_5; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":390 * if self.iv.strand is strand_nostrand and \ * index.strand is not strand_nostrand: * iv = index.copy() # Is this correct now? # <<<<<<<<<<<<<< * iv.strand = strand_nostrand * return ChromVector._create_view( self, iv ) */ __pyx_t_8 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__copy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_6); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":391 * index.strand is not strand_nostrand: * iv = index.copy() # Is this correct now? * iv.strand = strand_nostrand # <<<<<<<<<<<<<< * return ChromVector._create_view( self, iv ) * else: */ if (PyObject_SetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L13; } __pyx_L13:; /* "HTSeq/_HTSeq.pyx":392 * iv = index.copy() # Is this correct now? * iv.strand = strand_nostrand * return ChromVector._create_view( self, iv ) # <<<<<<<<<<<<<< * else: * raise TypeError, "Illegal index type" */ __Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), __pyx_n_s___create_view); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); if (unlikely(!__pyx_v_iv)) { __Pyx_RaiseUnboundLocalError("iv"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":394 * return ChromVector._create_view( self, iv ) * else: * raise TypeError, "Illegal index type" # <<<<<<<<<<<<<< * * def __setitem__( self, index, value ): */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_21), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L5:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_index_slice); __Pyx_XDECREF((PyObject *)__pyx_v_iv); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":396 * raise TypeError, "Illegal index type" * * def __setitem__( self, index, value ): # <<<<<<<<<<<<<< * cdef slice index_slice * cdef long int start, stop */ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_index_slice = 0; long __pyx_v_start; long __pyx_v_stop; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; long __pyx_t_10; PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setitem__"); /* "HTSeq/_HTSeq.pyx":399 * cdef slice index_slice * cdef long int start, stop * if isinstance( value, ChromVector ): # <<<<<<<<<<<<<< * if self.array is value.array and value.iv.start == index.start and \ * value.iv.end == index.stop and ( index.step is None or index.step == 1 ): */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":400 * cdef long int start, stop * if isinstance( value, ChromVector ): * if self.array is value.array and value.iv.start == index.start and \ # <<<<<<<<<<<<<< * value.iv.end == index.stop and ( index.step is None or index.step == 1 ): * return */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array == __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__iv); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__start); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":401 * if isinstance( value, ChromVector ): * if self.array is value.array and value.iv.start == index.start and \ * value.iv.end == index.stop and ( index.step is None or index.step == 1 ): # <<<<<<<<<<<<<< * return * else: */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__iv); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { __pyx_t_3 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__step); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_7) { __pyx_t_3 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__step); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = __pyx_t_8; } else { __pyx_t_9 = __pyx_t_7; } __pyx_t_7 = __pyx_t_9; } else { __pyx_t_7 = __pyx_t_6; } __pyx_t_6 = __pyx_t_7; } else { __pyx_t_6 = __pyx_t_5; } __pyx_t_5 = __pyx_t_6; } else { __pyx_t_5 = __pyx_t_2; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":402 * if self.array is value.array and value.iv.start == index.start and \ * value.iv.end == index.stop and ( index.step is None or index.step == 1 ): * return # <<<<<<<<<<<<<< * else: * raise NotImplementedError, "Required assignment signature not yet implemented." */ __pyx_r = 0; goto __pyx_L0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":404 * return * else: * raise NotImplementedError, "Required assignment signature not yet implemented." # <<<<<<<<<<<<<< * if isinstance( index, int ): * self.array[ index - self.iv.start ] = value */ __Pyx_Raise(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_kp_s_22), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L6:; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":405 * else: * raise NotImplementedError, "Required assignment signature not yet implemented." * if isinstance( index, int ): # <<<<<<<<<<<<<< * self.array[ index - self.iv.start ] = value * elif isinstance( index, slice ): */ __pyx_t_4 = ((PyObject *)((PyObject*)(&PyInt_Type))); __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":406 * raise NotImplementedError, "Required assignment signature not yet implemented." * if isinstance( index, int ): * self.array[ index - self.iv.start ] = value # <<<<<<<<<<<<<< * elif isinstance( index, slice ): * index_slice = index */ __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_index, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyObject_SetItem(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, __pyx_t_3, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":407 * if isinstance( index, int ): * self.array[ index - self.iv.start ] = value * elif isinstance( index, slice ): # <<<<<<<<<<<<<< * index_slice = index * if index_slice.start is not None: */ __pyx_t_3 = ((PyObject *)((PyObject*)(&PySlice_Type))); __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":408 * self.array[ index - self.iv.start ] = value * elif isinstance( index, slice ): * index_slice = index # <<<<<<<<<<<<<< * if index_slice.start is not None: * start = index_slice.start */ if (!(likely(PySlice_Check(__pyx_v_index))||((__pyx_v_index) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected slice, got %.200s", Py_TYPE(__pyx_v_index)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_index); __pyx_v_index_slice = ((PyObject*)__pyx_v_index); /* "HTSeq/_HTSeq.pyx":409 * elif isinstance( index, slice ): * index_slice = index * if index_slice.start is not None: # <<<<<<<<<<<<<< * start = index_slice.start * if start < self.iv.start: */ __pyx_t_5 = (((PySliceObject*)__pyx_v_index_slice)->start != Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":410 * index_slice = index * if index_slice.start is not None: * start = index_slice.start # <<<<<<<<<<<<<< * if start < self.iv.start: * raise IndexError, "start too small" */ __pyx_t_10 = __Pyx_PyInt_AsLong(((PySliceObject*)__pyx_v_index_slice)->start); if (unlikely((__pyx_t_10 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_start = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":411 * if index_slice.start is not None: * start = index_slice.start * if start < self.iv.start: # <<<<<<<<<<<<<< * raise IndexError, "start too small" * else: */ __pyx_t_5 = (__pyx_v_start < ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":412 * start = index_slice.start * if start < self.iv.start: * raise IndexError, "start too small" # <<<<<<<<<<<<<< * else: * start = self.iv.start */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_19), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L9; } __pyx_L9:; goto __pyx_L8; } /*else*/ { /* "HTSeq/_HTSeq.pyx":414 * raise IndexError, "start too small" * else: * start = self.iv.start # <<<<<<<<<<<<<< * if index_slice.stop is not None: * stop = index_slice.stop */ __pyx_v_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":415 * else: * start = self.iv.start * if index_slice.stop is not None: # <<<<<<<<<<<<<< * stop = index_slice.stop * if stop > self.iv.end: */ __pyx_t_5 = (((PySliceObject*)__pyx_v_index_slice)->stop != Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":416 * start = self.iv.start * if index_slice.stop is not None: * stop = index_slice.stop # <<<<<<<<<<<<<< * if stop > self.iv.end: * raise IndexError, "stop too large" */ __pyx_t_10 = __Pyx_PyInt_AsLong(((PySliceObject*)__pyx_v_index_slice)->stop); if (unlikely((__pyx_t_10 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_stop = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":417 * if index_slice.stop is not None: * stop = index_slice.stop * if stop > self.iv.end: # <<<<<<<<<<<<<< * raise IndexError, "stop too large" * else: */ __pyx_t_5 = (__pyx_v_stop > ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":418 * stop = index_slice.stop * if stop > self.iv.end: * raise IndexError, "stop too large" # <<<<<<<<<<<<<< * else: * stop = self.iv.end */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_20), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L11; } __pyx_L11:; goto __pyx_L10; } /*else*/ { /* "HTSeq/_HTSeq.pyx":420 * raise IndexError, "stop too large" * else: * stop = self.iv.end # <<<<<<<<<<<<<< * if start > stop: * raise IndexError, "Start of interval is after its end." */ __pyx_v_stop = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end; } __pyx_L10:; /* "HTSeq/_HTSeq.pyx":421 * else: * stop = self.iv.end * if start > stop: # <<<<<<<<<<<<<< * raise IndexError, "Start of interval is after its end." * if start == stop: */ __pyx_t_5 = (__pyx_v_start > __pyx_v_stop); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":422 * stop = self.iv.end * if start > stop: * raise IndexError, "Start of interval is after its end." # <<<<<<<<<<<<<< * if start == stop: * raise IndexError, "Cannot assign to zero-length interval." */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_23), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L12; } __pyx_L12:; /* "HTSeq/_HTSeq.pyx":423 * if start > stop: * raise IndexError, "Start of interval is after its end." * if start == stop: # <<<<<<<<<<<<<< * raise IndexError, "Cannot assign to zero-length interval." * self.array[ start - self.offset : stop - self.iv.start : index.step ] = value */ __pyx_t_5 = (__pyx_v_start == __pyx_v_stop); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":424 * raise IndexError, "Start of interval is after its end." * if start == stop: * raise IndexError, "Cannot assign to zero-length interval." # <<<<<<<<<<<<<< * self.array[ start - self.offset : stop - self.iv.start : index.step ] = value * elif isinstance( index, GenomicInterval ): */ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_24), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L13; } __pyx_L13:; /* "HTSeq/_HTSeq.pyx":425 * if start == stop: * raise IndexError, "Cannot assign to zero-length interval." * self.array[ start - self.offset : stop - self.iv.start : index.step ] = value # <<<<<<<<<<<<<< * elif isinstance( index, GenomicInterval ): * if index.chrom != self.iv.chrom: */ __pyx_t_3 = PyInt_FromLong((__pyx_v_start - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromLong((__pyx_v_stop - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PySlice_New(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyObject_SetItem(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, __pyx_t_11, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":426 * raise IndexError, "Cannot assign to zero-length interval." * self.array[ start - self.offset : stop - self.iv.start : index.step ] = value * elif isinstance( index, GenomicInterval ): # <<<<<<<<<<<<<< * if index.chrom != self.iv.chrom: * raise KeyError, "Chromosome name mismatch." */ __pyx_t_11 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)); __Pyx_INCREF(__pyx_t_11); __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":427 * self.array[ start - self.offset : stop - self.iv.start : index.step ] = value * elif isinstance( index, GenomicInterval ): * if index.chrom != self.iv.chrom: # <<<<<<<<<<<<<< * raise KeyError, "Chromosome name mismatch." * if self.iv.strand is not strand_nostrand and \ */ __pyx_t_11 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_11, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->chrom), Py_NE); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":428 * elif isinstance( index, GenomicInterval ): * if index.chrom != self.iv.chrom: * raise KeyError, "Chromosome name mismatch." # <<<<<<<<<<<<<< * if self.iv.strand is not strand_nostrand and \ * self.iv.strand is not self.index.strand: */ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_s_25), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L14; } __pyx_L14:; /* "HTSeq/_HTSeq.pyx":429 * if index.chrom != self.iv.chrom: * raise KeyError, "Chromosome name mismatch." * if self.iv.strand is not strand_nostrand and \ # <<<<<<<<<<<<<< * self.iv.strand is not self.index.strand: * raise KeyError, "Strand mismatch." */ __pyx_t_11 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_5 = (__pyx_t_11 != ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":430 * raise KeyError, "Chromosome name mismatch." * if self.iv.strand is not strand_nostrand and \ * self.iv.strand is not self.index.strand: # <<<<<<<<<<<<<< * raise KeyError, "Strand mismatch." * self.array[ index.iv.start - self.iv.start, */ __pyx_t_11 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__index); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__strand); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_t_11 != __pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_t_2; } else { __pyx_t_6 = __pyx_t_5; } if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":431 * if self.iv.strand is not strand_nostrand and \ * self.iv.strand is not self.index.strand: * raise KeyError, "Strand mismatch." # <<<<<<<<<<<<<< * self.array[ index.iv.start - self.iv.start, * index.iv.end - self.iv.start ] = value */ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_s_26), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L15; } __pyx_L15:; /* "HTSeq/_HTSeq.pyx":432 * self.iv.strand is not self.index.strand: * raise KeyError, "Strand mismatch." * self.array[ index.iv.start - self.iv.start, # <<<<<<<<<<<<<< * index.iv.end - self.iv.start ] = value * else: */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__iv); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__start); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyNumber_Subtract(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":433 * raise KeyError, "Strand mismatch." * self.array[ index.iv.start - self.iv.start, * index.iv.end - self.iv.start ] = value # <<<<<<<<<<<<<< * else: * raise TypeError, "Illegal index type" */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__iv); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__end); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; if (PyObject_SetItem(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, ((PyObject *)__pyx_t_4), __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":435 * index.iv.end - self.iv.start ] = value * else: * raise TypeError, "Illegal index type" # <<<<<<<<<<<<<< * * def __iadd__( self, value ): */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_21), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L7:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_index_slice); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":441 * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) * else: * def addval( x ): # <<<<<<<<<<<<<< * y = x.copy() * y.add( value ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8__iadd___addval(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/ static PyMethodDef __pyx_mdef_5HTSeq_6_HTSeq_8__iadd___addval = {__Pyx_NAMESTR("addval"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8__iadd___addval, METH_O, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8__iadd___addval(PyObject *__pyx_self, PyObject *__pyx_v_x) { struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *__pyx_cur_scope; struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *__pyx_outer_scope; PyObject *__pyx_v_y = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("addval"); __pyx_outer_scope = (struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)__pyx_self; __pyx_cur_scope = __pyx_outer_scope; __pyx_self = __pyx_self; /* "HTSeq/_HTSeq.pyx":442 * else: * def addval( x ): * y = x.copy() # <<<<<<<<<<<<<< * y.add( value ) * return y */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_y = __pyx_t_2; __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":443 * def addval( x ): * y = x.copy() * y.add( value ) # <<<<<<<<<<<<<< * return y * self.apply( addval ) */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_y, __pyx_n_s__add); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (unlikely(!__pyx_cur_scope->__pyx_v_value)) { __Pyx_RaiseClosureNameError("value"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_value); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_value); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":444 * y = x.copy() * y.add( value ) * return y # <<<<<<<<<<<<<< * self.apply( addval ) * return self */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_y); __pyx_r = __pyx_v_y; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.__iadd__.addval", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_y); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":437 * raise TypeError, "Illegal index type" * * def __iadd__( self, value ): # <<<<<<<<<<<<<< * if not self.is_vector_of_sets: * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_4__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_4__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *__pyx_cur_scope; PyObject *__pyx_v_addval = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__iadd__"); __pyx_cur_scope = (struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)__pyx_ptype_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__->tp_new(__pyx_ptype_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __Pyx_INCREF(__pyx_v_value); __pyx_cur_scope->__pyx_v_value = __pyx_v_value; __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_value); /* "HTSeq/_HTSeq.pyx":438 * * def __iadd__( self, value ): * if not self.is_vector_of_sets: # <<<<<<<<<<<<<< * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) * else: */ __pyx_t_1 = (!((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->is_vector_of_sets); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":439 * def __iadd__( self, value ): * if not self.is_vector_of_sets: * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) # <<<<<<<<<<<<<< * else: * def addval( x ): */ __pyx_t_2 = __Pyx_PySequence_GetSlice(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, (((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset), (((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____iadd__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_value); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_value); __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":441 * self.array[ self.iv.start - self.offset : self.iv.end - self.offset ].__iadd__( value ) * else: * def addval( x ): # <<<<<<<<<<<<<< * y = x.copy() * y.add( value ) */ __pyx_t_4 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5HTSeq_6_HTSeq_8__iadd___addval, ((PyObject*)__pyx_cur_scope), __pyx_n_s_27); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF(__pyx_v_addval); __pyx_v_addval = __pyx_t_4; __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":445 * y.add( value ) * return y * self.apply( addval ) # <<<<<<<<<<<<<< * return self * */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__apply); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_v_addval); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_addval); __Pyx_GIVEREF(__pyx_v_addval); __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":446 * return y * self.apply( addval ) * return self # <<<<<<<<<<<<<< * * def __iter__( self ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self); __pyx_r = __pyx_v_self; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_addval); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":448 * return self * * def __iter__( self ): # <<<<<<<<<<<<<< * return self.values() * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5__iter__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5__iter__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__iter__"); /* "HTSeq/_HTSeq.pyx":449 * * def __iter__( self ): * return self.values() # <<<<<<<<<<<<<< * * def values( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__values); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":451 * return self.values() * * def values( self ): # <<<<<<<<<<<<<< * return iter( self.array[ self.iv.start - self.offset : self.iv.end - self.offset ] ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("values"); /* "HTSeq/_HTSeq.pyx":452 * * def values( self ): * return iter( self.array[ self.iv.start - self.offset : self.iv.end - self.offset ] ) # <<<<<<<<<<<<<< * * def steps( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PySequence_GetSlice(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, (((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->start - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset), (((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv->end - ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.values", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":454 * return iter( self.array[ self.iv.start - self.offset : self.iv.end - self.offset ] ) * * def steps( self ): # <<<<<<<<<<<<<< * return _HTSeq_internal.ChromVector_steps( self ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_7steps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_7steps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("steps"); /* "HTSeq/_HTSeq.pyx":455 * * def steps( self ): * return _HTSeq_internal.ChromVector_steps( self ) # <<<<<<<<<<<<<< * * def apply( self, fun ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___HTSeq_internal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ChromVector_steps); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.steps", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":457 * return _HTSeq_internal.ChromVector_steps( self ) * * def apply( self, fun ): # <<<<<<<<<<<<<< * for iv, value in self.steps(): * self.array[ iv.start - self.offset : iv.end - self.offset ] = fun( value ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8apply(PyObject *__pyx_v_self, PyObject *__pyx_v_fun); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8apply(PyObject *__pyx_v_self, PyObject *__pyx_v_fun) { PyObject *__pyx_v_iv = NULL; PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *(*__pyx_t_8)(PyObject *); Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("apply"); /* "HTSeq/_HTSeq.pyx":458 * * def apply( self, fun ): * for iv, value in self.steps(): # <<<<<<<<<<<<<< * self.array[ iv.start - self.offset : iv.end - self.offset ] = fun( value ) * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__steps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (PyList_CheckExact(__pyx_t_1)) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; } else if (PyTuple_CheckExact(__pyx_t_1)) { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break; __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; } else { __pyx_t_2 = __pyx_t_4(__pyx_t_1); if (unlikely(!__pyx_t_2)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { if (unlikely(PyList_GET_SIZE(sequence) != 2)) { if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L8_unpacking_done:; } __Pyx_XDECREF(__pyx_v_iv); __pyx_v_iv = __pyx_t_5; __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_v_value); __pyx_v_value = __pyx_t_6; __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":459 * def apply( self, fun ): * for iv, value in self.steps(): * self.array[ iv.start - self.offset : iv.end - self.offset ] = fun( value ) # <<<<<<<<<<<<<< * * def __repr__( self ): */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __pyx_t_6 = PyObject_Call(__pyx_v_fun, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; if (unlikely(!__pyx_v_iv)) { __Pyx_RaiseUnboundLocalError("iv"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_2 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyNumber_Subtract(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_v_iv)) { __Pyx_RaiseUnboundLocalError("iv"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_7 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__end); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PySequence_SetSlice(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array, __pyx_t_9, __pyx_t_10, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_iv); __Pyx_XDECREF(__pyx_v_value); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":461 * self.array[ iv.start - self.offset : iv.end - self.offset ] = fun( value ) * * def __repr__( self ): # <<<<<<<<<<<<<< * return "<%s object, %s, %s>" % ( self.__class__.__name__, str(self.iv), self._storage ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_9__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_9__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":462 * * def __repr__( self ): * return "<%s object, %s, %s>" % ( self.__class__.__name__, str(self.iv), self._storage ) # <<<<<<<<<<<<<< * * def __reduce__( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_28), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = ((PyObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":464 * return "<%s object, %s, %s>" % ( self.__class__.__name__, str(self.iv), self._storage ) * * def __reduce__( self ): # <<<<<<<<<<<<<< * assert self.__class__ is ChromVector * return( _ChromVector_unpickle, */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_10__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_10__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__"); /* "HTSeq/_HTSeq.pyx":465 * * def __reduce__( self ): * assert self.__class__ is ChromVector # <<<<<<<<<<<<<< * return( _ChromVector_unpickle, * ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) */ #ifndef CYTHON_WITHOUT_ASSERTIONS __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) { PyErr_SetNone(PyExc_AssertionError); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } #endif /* "HTSeq/_HTSeq.pyx":466 * def __reduce__( self ): * assert self.__class__ is ChromVector * return( _ChromVector_unpickle, # <<<<<<<<<<<<<< * ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_29); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); /* "HTSeq/_HTSeq.pyx":467 * assert self.__class__ is ChromVector * return( _ChromVector_unpickle, * ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) # <<<<<<<<<<<<<< * * def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): */ __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->is_vector_of_sets); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_INCREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); PyTuple_SET_ITEM(__pyx_t_5, 0, ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); __Pyx_GIVEREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_r = ((PyObject *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":316 * cdef class ChromVector( object ): * * cdef public object array # <<<<<<<<<<<<<< * cdef public GenomicInterval iv * cdef public int offset */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__"); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); __Pyx_DECREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array = __pyx_v_value; __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); __Pyx_DECREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->array = Py_None; __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":317 * * cdef public object array * cdef public GenomicInterval iv # <<<<<<<<<<<<<< * cdef public int offset * cdef public bint is_vector_of_sets */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.iv.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":318 * cdef public object array * cdef public GenomicInterval iv * cdef public int offset # <<<<<<<<<<<<<< * cdef public bint is_vector_of_sets * cdef public str _storage */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->offset = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":319 * cdef public GenomicInterval iv * cdef public int offset * cdef public bint is_vector_of_sets # <<<<<<<<<<<<<< * cdef public str _storage * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->is_vector_of_sets); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.is_vector_of_sets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->is_vector_of_sets = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector.is_vector_of_sets.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":320 * cdef public int offset * cdef public bint is_vector_of_sets * cdef public str _storage # <<<<<<<<<<<<<< * * @classmethod */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.ChromVector._storage.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage)); ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_v_self)->_storage = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":469 * ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) * * def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): # <<<<<<<<<<<<<< * cv = ChromVector() * cv.array = array */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_1_ChromVector_unpickle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5HTSeq_6_HTSeq_1_ChromVector_unpickle = {__Pyx_NAMESTR("_ChromVector_unpickle"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_1_ChromVector_unpickle, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_1_ChromVector_unpickle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_array = 0; PyObject *__pyx_v_iv = 0; PyObject *__pyx_v_offset = 0; PyObject *__pyx_v_is_vector_of_sets = 0; PyObject *__pyx_v__storage = 0; struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *__pyx_v_cv = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__array,&__pyx_n_s__iv,&__pyx_n_s__offset,&__pyx_n_s__is_vector_of_sets,&__pyx_n_s___storage,0}; __Pyx_RefNannySetupContext("_ChromVector_unpickle"); __pyx_self = __pyx_self; { PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__array); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iv); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_ChromVector_unpickle", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_ChromVector_unpickle", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__is_vector_of_sets); if (likely(values[3])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_ChromVector_unpickle", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 4: values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s___storage); if (likely(values[4])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_ChromVector_unpickle", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_ChromVector_unpickle") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_array = values[0]; __pyx_v_iv = values[1]; __pyx_v_offset = values[2]; __pyx_v_is_vector_of_sets = values[3]; __pyx_v__storage = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_ChromVector_unpickle", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq._ChromVector_unpickle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":470 * * def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): * cv = ChromVector() # <<<<<<<<<<<<<< * cv.array = array * cv.iv = iv */ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_cv = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":471 * def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): * cv = ChromVector() * cv.array = array # <<<<<<<<<<<<<< * cv.iv = iv * cv.offset = offset */ __Pyx_INCREF(__pyx_v_array); __Pyx_GIVEREF(__pyx_v_array); __Pyx_GOTREF(__pyx_v_cv->array); __Pyx_DECREF(__pyx_v_cv->array); __pyx_v_cv->array = __pyx_v_array; /* "HTSeq/_HTSeq.pyx":472 * cv = ChromVector() * cv.array = array * cv.iv = iv # <<<<<<<<<<<<<< * cv.offset = offset * cv.is_vector_of_sets = is_vector_of_sets */ if (!(likely(((__pyx_v_iv) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_iv, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_iv); __Pyx_GIVEREF(__pyx_v_iv); __Pyx_GOTREF(__pyx_v_cv->iv); __Pyx_DECREF(((PyObject *)__pyx_v_cv->iv)); __pyx_v_cv->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv); /* "HTSeq/_HTSeq.pyx":473 * cv.array = array * cv.iv = iv * cv.offset = offset # <<<<<<<<<<<<<< * cv.is_vector_of_sets = is_vector_of_sets * cv._storage = _storage */ __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_offset); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_cv->offset = __pyx_t_2; /* "HTSeq/_HTSeq.pyx":474 * cv.iv = iv * cv.offset = offset * cv.is_vector_of_sets = is_vector_of_sets # <<<<<<<<<<<<<< * cv._storage = _storage * return cv */ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_vector_of_sets); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_cv->is_vector_of_sets = __pyx_t_3; /* "HTSeq/_HTSeq.pyx":475 * cv.offset = offset * cv.is_vector_of_sets = is_vector_of_sets * cv._storage = _storage # <<<<<<<<<<<<<< * return cv * */ if (!(likely(PyString_CheckExact(__pyx_v__storage))||((__pyx_v__storage) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v__storage)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v__storage); __Pyx_GIVEREF(__pyx_v__storage); __Pyx_GOTREF(__pyx_v_cv->_storage); __Pyx_DECREF(((PyObject *)__pyx_v_cv->_storage)); __pyx_v_cv->_storage = ((PyObject*)__pyx_v__storage); /* "HTSeq/_HTSeq.pyx":476 * cv.is_vector_of_sets = is_vector_of_sets * cv._storage = _storage * return cv # <<<<<<<<<<<<<< * * cdef class GenomicArray( object ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_cv)); __pyx_r = ((PyObject *)__pyx_v_cv); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq._ChromVector_unpickle", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cv); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":487 * cdef readonly str memmap_dir * * def __init__( self, object chroms, bint stranded=True, str typecode='d', # <<<<<<<<<<<<<< * str storage='step', str memmap_dir = "" ): * self.chrom_vectors = {} */ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_chroms = 0; int __pyx_v_stranded; PyObject *__pyx_v_typecode = 0; PyObject *__pyx_v_storage = 0; PyObject *__pyx_v_memmap_dir = 0; PyObject *__pyx_v_chrom = NULL; PyObject *__pyx_v_c = NULL; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; PyObject *(*__pyx_t_5)(PyObject *); PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__chroms,&__pyx_n_s__stranded,&__pyx_n_s__typecode,&__pyx_n_s__storage,&__pyx_n_s__memmap_dir,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[5] = {0,0,0,0,0}; values[2] = ((PyObject*)__pyx_n_s__d); values[3] = ((PyObject*)__pyx_n_s__step); values[4] = ((PyObject*)__pyx_kp_s_14); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chroms); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stranded); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__typecode); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__storage); if (value) { values[3] = value; kw_args--; } } case 4: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__memmap_dir); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_chroms = values[0]; if (values[1]) { __pyx_v_stranded = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_stranded == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_stranded = ((int)1); } __pyx_v_typecode = ((PyObject*)values[2]); __pyx_v_storage = ((PyObject*)values[3]); __pyx_v_memmap_dir = ((PyObject*)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __Pyx_INCREF(__pyx_v_chroms); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_typecode), (&PyString_Type), 1, "typecode", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_storage), (&PyString_Type), 1, "storage", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memmap_dir), (&PyString_Type), 1, "memmap_dir", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":489 * def __init__( self, object chroms, bint stranded=True, str typecode='d', * str storage='step', str memmap_dir = "" ): * self.chrom_vectors = {} # <<<<<<<<<<<<<< * self.stranded = stranded * self.typecode = typecode */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":490 * str storage='step', str memmap_dir = "" ): * self.chrom_vectors = {} * self.stranded = stranded # <<<<<<<<<<<<<< * self.typecode = typecode * self.auto_add_chroms = chroms == "auto" */ ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded = __pyx_v_stranded; /* "HTSeq/_HTSeq.pyx":491 * self.chrom_vectors = {} * self.stranded = stranded * self.typecode = typecode # <<<<<<<<<<<<<< * self.auto_add_chroms = chroms == "auto" * if self.auto_add_chroms: */ __Pyx_INCREF(((PyObject *)__pyx_v_typecode)); __Pyx_GIVEREF(((PyObject *)__pyx_v_typecode)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode = __pyx_v_typecode; /* "HTSeq/_HTSeq.pyx":492 * self.stranded = stranded * self.typecode = typecode * self.auto_add_chroms = chroms == "auto" # <<<<<<<<<<<<<< * if self.auto_add_chroms: * chroms = [] */ __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_chroms, ((PyObject *)__pyx_n_s__auto), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms = __pyx_t_2; /* "HTSeq/_HTSeq.pyx":493 * self.typecode = typecode * self.auto_add_chroms = chroms == "auto" * if self.auto_add_chroms: # <<<<<<<<<<<<<< * chroms = [] * if storage != 'step': */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms) { /* "HTSeq/_HTSeq.pyx":494 * self.auto_add_chroms = chroms == "auto" * if self.auto_add_chroms: * chroms = [] # <<<<<<<<<<<<<< * if storage != 'step': * raise TypeError, "Automatic adding of chromosomes can " + \ */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_DECREF(__pyx_v_chroms); __pyx_v_chroms = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":495 * if self.auto_add_chroms: * chroms = [] * if storage != 'step': # <<<<<<<<<<<<<< * raise TypeError, "Automatic adding of chromosomes can " + \ * " only be used with storage type 'StepVector'." */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_storage), ((PyObject *)__pyx_n_s__step), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":496 * chroms = [] * if storage != 'step': * raise TypeError, "Automatic adding of chromosomes can " + \ # <<<<<<<<<<<<<< * " only be used with storage type 'StepVector'." * elif isinstance( chroms, list ): */ __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_kp_s_30), ((PyObject *)__pyx_kp_s_31)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_1), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; goto __pyx_L6; } /* "HTSeq/_HTSeq.pyx":498 * raise TypeError, "Automatic adding of chromosomes can " + \ * " only be used with storage type 'StepVector'." * elif isinstance( chroms, list ): # <<<<<<<<<<<<<< * if storage != 'step': * raise TypeError, "Indefinite-length chromosomes can " + \ */ __pyx_t_1 = ((PyObject *)((PyObject*)(&PyList_Type))); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_chroms, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":499 * " only be used with storage type 'StepVector'." * elif isinstance( chroms, list ): * if storage != 'step': # <<<<<<<<<<<<<< * raise TypeError, "Indefinite-length chromosomes can " + \ * " only be used with storage type 'StepVector'." */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_storage), ((PyObject *)__pyx_n_s__step), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":500 * elif isinstance( chroms, list ): * if storage != 'step': * raise TypeError, "Indefinite-length chromosomes can " + \ # <<<<<<<<<<<<<< * " only be used with storage type 'StepVector'." * chroms = dict( [ ( c, sys.maxint ) for c in chroms ] ) */ __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_kp_s_32), ((PyObject *)__pyx_kp_s_31)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_1), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L8; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":502 * raise TypeError, "Indefinite-length chromosomes can " + \ * " only be used with storage type 'StepVector'." * chroms = dict( [ ( c, sys.maxint ) for c in chroms ] ) # <<<<<<<<<<<<<< * elif not isinstance( chroms, dict ): * raise TypeError, "'chroms' must be a list or a dict or 'auto'." */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); if (PyList_CheckExact(__pyx_v_chroms) || PyTuple_CheckExact(__pyx_v_chroms)) { __pyx_t_3 = __pyx_v_chroms; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_chroms); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; } for (;;) { if (PyList_CheckExact(__pyx_t_3)) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; } else if (PyTuple_CheckExact(__pyx_t_3)) { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; } else { __pyx_t_6 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_6)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF(__pyx_v_c); __pyx_v_c = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__maxint); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(__pyx_v_c); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_c); __Pyx_GIVEREF(__pyx_v_c); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_v_chroms); __pyx_v_chroms = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /* "HTSeq/_HTSeq.pyx":503 * " only be used with storage type 'StepVector'." * chroms = dict( [ ( c, sys.maxint ) for c in chroms ] ) * elif not isinstance( chroms, dict ): # <<<<<<<<<<<<<< * raise TypeError, "'chroms' must be a list or a dict or 'auto'." * self.storage = storage */ __pyx_t_1 = ((PyObject *)((PyObject*)(&PyDict_Type))); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_chroms, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = (!__pyx_t_2); if (__pyx_t_8) { /* "HTSeq/_HTSeq.pyx":504 * chroms = dict( [ ( c, sys.maxint ) for c in chroms ] ) * elif not isinstance( chroms, dict ): * raise TypeError, "'chroms' must be a list or a dict or 'auto'." # <<<<<<<<<<<<<< * self.storage = storage * self.memmap_dir = memmap_dir */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_33), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":505 * elif not isinstance( chroms, dict ): * raise TypeError, "'chroms' must be a list or a dict or 'auto'." * self.storage = storage # <<<<<<<<<<<<<< * self.memmap_dir = memmap_dir * */ __Pyx_INCREF(((PyObject *)__pyx_v_storage)); __Pyx_GIVEREF(((PyObject *)__pyx_v_storage)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage = __pyx_v_storage; /* "HTSeq/_HTSeq.pyx":506 * raise TypeError, "'chroms' must be a list or a dict or 'auto'." * self.storage = storage * self.memmap_dir = memmap_dir # <<<<<<<<<<<<<< * * for chrom in chroms: */ __Pyx_INCREF(((PyObject *)__pyx_v_memmap_dir)); __Pyx_GIVEREF(((PyObject *)__pyx_v_memmap_dir)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir = __pyx_v_memmap_dir; /* "HTSeq/_HTSeq.pyx":508 * self.memmap_dir = memmap_dir * * for chrom in chroms: # <<<<<<<<<<<<<< * self.add_chrom( chrom, chroms[chrom] ) * */ if (PyList_CheckExact(__pyx_v_chroms) || PyTuple_CheckExact(__pyx_v_chroms)) { __pyx_t_1 = __pyx_v_chroms; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_chroms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; } for (;;) { if (PyList_CheckExact(__pyx_t_1)) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; } else if (PyTuple_CheckExact(__pyx_t_1)) { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; } else { __pyx_t_3 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_3)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF(__pyx_v_chrom); __pyx_v_chrom = __pyx_t_3; __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":509 * * for chrom in chroms: * self.add_chrom( chrom, chroms[chrom] ) # <<<<<<<<<<<<<< * * def __getitem__( self, index ): */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__add_chrom); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyObject_GetItem(__pyx_v_chroms, __pyx_v_chrom); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); __Pyx_INCREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_chrom); __Pyx_GIVEREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_chrom); __Pyx_XDECREF(__pyx_v_c); __Pyx_XDECREF(__pyx_v_chroms); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":511 * self.add_chrom( chrom, chroms[chrom] ) * * def __getitem__( self, index ): # <<<<<<<<<<<<<< * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_1__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_1__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__"); /* "HTSeq/_HTSeq.pyx":512 * * def __getitem__( self, index ): * if isinstance( index, GenomicInterval ): # <<<<<<<<<<<<<< * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":513 * def __getitem__( self, index ): * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): # <<<<<<<<<<<<<< * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (((int)__pyx_t_2)) { __pyx_t_3 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus), Py_NE); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = ((int)__pyx_t_3); } else { __pyx_t_4 = ((int)__pyx_t_2); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_4; __pyx_t_4 = __pyx_t_2; } else { __pyx_t_4 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":514 * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." # <<<<<<<<<<<<<< * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) */ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_s_34), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":515 * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: # <<<<<<<<<<<<<< * self.add_chrom( index.chrom ) * if isinstance( index, GenomicPosition ): */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = (__Pyx_NegateNonNeg(PyDict_Contains(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_1))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_4; } else { __pyx_t_2 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms; } if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":516 * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) # <<<<<<<<<<<<<< * if isinstance( index, GenomicPosition ): * if self.stranded: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__add_chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L7; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":517 * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) * if isinstance( index, GenomicPosition ): # <<<<<<<<<<<<<< * if self.stranded: * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.pos ] */ __pyx_t_5 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)); __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":518 * self.add_chrom( index.chrom ) * if isinstance( index, GenomicPosition ): * if self.stranded: # <<<<<<<<<<<<<< * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.pos ] * else: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { /* "HTSeq/_HTSeq.pyx":519 * if isinstance( index, GenomicPosition ): * if self.stranded: * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.pos ] # <<<<<<<<<<<<<< * else: * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.pos ] */ __Pyx_XDECREF(__pyx_r); __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_5); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__pos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_GetItem(__pyx_t_1, __pyx_t_5); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; goto __pyx_L9; } /*else*/ { /* "HTSeq/_HTSeq.pyx":521 * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.pos ] * else: * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.pos ] # <<<<<<<<<<<<<< * else: * if self.stranded: */ __Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_6); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_GetItem(__pyx_t_5, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__pos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; } __pyx_L9:; goto __pyx_L8; } /*else*/ { /* "HTSeq/_HTSeq.pyx":523 * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.pos ] * else: * if self.stranded: # <<<<<<<<<<<<<< * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] * else: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { /* "HTSeq/_HTSeq.pyx":524 * else: * if self.stranded: * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] # <<<<<<<<<<<<<< * else: * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyObject_GetItem(__pyx_t_5, __pyx_t_1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L10; } /*else*/ { /* "HTSeq/_HTSeq.pyx":526 * return self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] * else: * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] # <<<<<<<<<<<<<< * else: * return self.chrom_vectors[ index ] */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetItem(__pyx_t_6, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__start); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__end); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PySequence_GetSlice(__pyx_t_1, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } __pyx_L10:; } __pyx_L8:; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":528 * return self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] * else: * return self.chrom_vectors[ index ] # <<<<<<<<<<<<<< * * def __setitem__( self, index, value ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_index); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } __pyx_L5:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":530 * return self.chrom_vectors[ index ] * * def __setitem__( self, index, value ): # <<<<<<<<<<<<<< * cdef GenomicInterval index2 * if isinstance( value, ChromVector ): */ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_2__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_2__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_index2 = 0; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setitem__"); /* "HTSeq/_HTSeq.pyx":532 * def __setitem__( self, index, value ): * cdef GenomicInterval index2 * if isinstance( value, ChromVector ): # <<<<<<<<<<<<<< * if not isinstance( index, GenomicInterval ): * raise NotImplementedError, "Required assignment signature not yet implemented." */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":533 * cdef GenomicInterval index2 * if isinstance( value, ChromVector ): * if not isinstance( index, GenomicInterval ): # <<<<<<<<<<<<<< * raise NotImplementedError, "Required assignment signature not yet implemented." * index2 = index.copy() */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (!__pyx_t_2); if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":534 * if isinstance( value, ChromVector ): * if not isinstance( index, GenomicInterval ): * raise NotImplementedError, "Required assignment signature not yet implemented." # <<<<<<<<<<<<<< * index2 = index.copy() * if not self.stranded: */ __Pyx_Raise(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_kp_s_22), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":535 * if not isinstance( index, GenomicInterval ): * raise NotImplementedError, "Required assignment signature not yet implemented." * index2 = index.copy() # <<<<<<<<<<<<<< * if not self.stranded: * index2.strand = strand_nostrand */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_index2 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":536 * raise NotImplementedError, "Required assignment signature not yet implemented." * index2 = index.copy() * if not self.stranded: # <<<<<<<<<<<<<< * index2.strand = strand_nostrand * if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: */ __pyx_t_3 = (!((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded); if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":537 * index2 = index.copy() * if not self.stranded: * index2.strand = strand_nostrand # <<<<<<<<<<<<<< * if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: * return */ if (PyObject_SetAttr(((PyObject *)__pyx_v_index2), __pyx_n_s__strand, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":538 * if not self.stranded: * index2.strand = strand_nostrand * if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: # <<<<<<<<<<<<<< * return * raise NotImplementedError, "Required assignment signature not yet implemented." */ __pyx_t_4 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), ((PyObject *)__pyx_v_index2->chrom)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_index2), __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__array); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = (__pyx_t_1 == __pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { __pyx_t_5 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__iv); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_index2), __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_2; } else { __pyx_t_6 = __pyx_t_3; } if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":539 * index2.strand = strand_nostrand * if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: * return # <<<<<<<<<<<<<< * raise NotImplementedError, "Required assignment signature not yet implemented." * if isinstance( index, GenomicInterval ): */ __pyx_r = 0; goto __pyx_L0; goto __pyx_L8; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":540 * if self.chrom_vectors[ index2.chrom ][ index2.strand ].array is value.array and index2 == value.iv: * return * raise NotImplementedError, "Required assignment signature not yet implemented." # <<<<<<<<<<<<<< * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): */ __Pyx_Raise(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_kp_s_22), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":541 * return * raise NotImplementedError, "Required assignment signature not yet implemented." * if isinstance( index, GenomicInterval ): # <<<<<<<<<<<<<< * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)); __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_index, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":542 * raise NotImplementedError, "Required assignment signature not yet implemented." * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): # <<<<<<<<<<<<<< * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus), Py_NE); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (((int)__pyx_t_6)) { __pyx_t_3 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus), Py_NE); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_2 = ((int)__pyx_t_3); } else { __pyx_t_2 = ((int)__pyx_t_6); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_2; __pyx_t_2 = __pyx_t_6; } else { __pyx_t_2 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded; } if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":543 * if isinstance( index, GenomicInterval ): * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." # <<<<<<<<<<<<<< * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) */ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_s_34), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L10; } __pyx_L10:; /* "HTSeq/_HTSeq.pyx":544 * if self.stranded and index.strand not in ( strand_plus, strand_minus ): * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: # <<<<<<<<<<<<<< * self.add_chrom( index.chrom ) * if self.stranded: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = (__Pyx_NegateNonNeg(PyDict_Contains(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_1))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_2; } else { __pyx_t_6 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms; } if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":545 * raise KeyError, "Non-stranded index used for stranded GenomicArray." * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) # <<<<<<<<<<<<<< * if self.stranded: * self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] = value */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__add_chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L11; } __pyx_L11:; /* "HTSeq/_HTSeq.pyx":546 * if self.auto_add_chroms and index.chrom not in self.chrom_vectors: * self.add_chrom( index.chrom ) * if self.stranded: # <<<<<<<<<<<<<< * self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] = value * else: */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { /* "HTSeq/_HTSeq.pyx":547 * self.add_chrom( index.chrom ) * if self.stranded: * self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] = value # <<<<<<<<<<<<<< * else: * self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] = value */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_5); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__strand); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__start); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__end); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PySequence_SetSlice(__pyx_t_1, __pyx_t_7, __pyx_t_8, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L12; } /*else*/ { /* "HTSeq/_HTSeq.pyx":549 * self.chrom_vectors[ index.chrom ][ index.strand ][ index.start : index.end ] = value * else: * self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] = value # <<<<<<<<<<<<<< * else: * raise TypeError, "Illegal index type." */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__chrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_t_1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetItem(__pyx_t_5, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__start); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__end); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PySequence_SetSlice(__pyx_t_1, __pyx_t_8, __pyx_t_7, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L12:; goto __pyx_L9; } /*else*/ { /* "HTSeq/_HTSeq.pyx":551 * self.chrom_vectors[ index.chrom ][ strand_nostrand ][ index.start : index.end ] = value * else: * raise TypeError, "Illegal index type." # <<<<<<<<<<<<<< * * def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_35), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L9:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_index2); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":553 * raise TypeError, "Illegal index type." * * def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): # <<<<<<<<<<<<<< * cdef GenomicInterval iv * if length == sys.maxint: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_3add_chrom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_3add_chrom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_chrom = 0; PyObject *__pyx_v_length = 0; PyObject *__pyx_v_start_index = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__chrom,&__pyx_n_s__length,&__pyx_n_s__start_index,0}; __Pyx_RefNannySetupContext("add_chrom"); { PyObject* values[3] = {0,0,0}; values[1] = __pyx_k_36; values[2] = ((PyObject *)__pyx_int_0); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__length); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start_index); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "add_chrom") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_chrom = values[0]; __pyx_v_length = values[1]; __pyx_v_start_index = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("add_chrom", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.add_chrom", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":555 * def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): * cdef GenomicInterval iv * if length == sys.maxint: # <<<<<<<<<<<<<< * iv = GenomicInterval( chrom, start_index, sys.maxint, "." ) * else: */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__maxint); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_v_length, __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":556 * cdef GenomicInterval iv * if length == sys.maxint: * iv = GenomicInterval( chrom, start_index, sys.maxint, "." ) # <<<<<<<<<<<<<< * else: * iv = GenomicInterval( chrom, start_index, start_index + length, "." ) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__maxint); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_chrom); __Pyx_GIVEREF(__pyx_v_chrom); __Pyx_INCREF(__pyx_v_start_index); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_start_index); __Pyx_GIVEREF(__pyx_v_start_index); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_kp_s_11)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_kp_s_11)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_11)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":558 * iv = GenomicInterval( chrom, start_index, sys.maxint, "." ) * else: * iv = GenomicInterval( chrom, start_index, start_index + length, "." ) # <<<<<<<<<<<<<< * if self.stranded: * self.chrom_vectors[ chrom ] = {} */ __pyx_t_2 = PyNumber_Add(__pyx_v_start_index, __pyx_v_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_chrom); __Pyx_GIVEREF(__pyx_v_chrom); __Pyx_INCREF(__pyx_v_start_index); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_start_index); __Pyx_GIVEREF(__pyx_v_start_index); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_kp_s_11)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_kp_s_11)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_11)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":559 * else: * iv = GenomicInterval( chrom, start_index, start_index + length, "." ) * if self.stranded: # <<<<<<<<<<<<<< * self.chrom_vectors[ chrom ] = {} * iv.strand = "+" */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { /* "HTSeq/_HTSeq.pyx":560 * iv = GenomicInterval( chrom, start_index, start_index + length, "." ) * if self.stranded: * self.chrom_vectors[ chrom ] = {} # <<<<<<<<<<<<<< * iv.strand = "+" * self.chrom_vectors[ chrom ][ strand_plus ] = \ */ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); if (PyDict_SetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_chrom, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":561 * if self.stranded: * self.chrom_vectors[ chrom ] = {} * iv.strand = "+" # <<<<<<<<<<<<<< * self.chrom_vectors[ chrom ][ strand_plus ] = \ * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) */ if (PyObject_SetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand, ((PyObject *)__pyx_kp_s_37)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":563 * iv.strand = "+" * self.chrom_vectors[ chrom ][ strand_plus ] = \ * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) # <<<<<<<<<<<<<< * iv = iv.copy() * iv.strand = "-" */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), __pyx_n_s__create); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":562 * self.chrom_vectors[ chrom ] = {} * iv.strand = "+" * self.chrom_vectors[ chrom ][ strand_plus ] = \ # <<<<<<<<<<<<<< * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * iv = iv.copy() */ __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_chrom); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetItem(__pyx_t_1, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":564 * self.chrom_vectors[ chrom ][ strand_plus ] = \ * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * iv = iv.copy() # <<<<<<<<<<<<<< * iv.strand = "-" * self.chrom_vectors[ chrom ][ strand_minus ] = \ */ __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__copy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_v_iv)); __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":565 * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * iv = iv.copy() * iv.strand = "-" # <<<<<<<<<<<<<< * self.chrom_vectors[ chrom ][ strand_minus ] = \ * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) */ if (PyObject_SetAttr(((PyObject *)__pyx_v_iv), __pyx_n_s__strand, ((PyObject *)__pyx_kp_s_38)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":567 * iv.strand = "-" * self.chrom_vectors[ chrom ][ strand_minus ] = \ * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) # <<<<<<<<<<<<<< * else: * self.chrom_vectors[ chrom ] = { */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), __pyx_n_s__create); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":566 * iv = iv.copy() * iv.strand = "-" * self.chrom_vectors[ chrom ][ strand_minus ] = \ # <<<<<<<<<<<<<< * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * else: */ __pyx_t_4 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_chrom); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); if (PyObject_SetItem(__pyx_t_4, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":569 * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * else: * self.chrom_vectors[ chrom ] = { # <<<<<<<<<<<<<< * strand_nostrand: ChromVector.create( iv, self.typecode, self.storage ) } * */ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); /* "HTSeq/_HTSeq.pyx":570 * else: * self.chrom_vectors[ chrom ] = { * strand_nostrand: ChromVector.create( iv, self.typecode, self.storage ) } # <<<<<<<<<<<<<< * * def __reduce__( self ): */ __pyx_t_4 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector)), __pyx_n_s__create); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_iv)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":569 * ChromVector.create( iv, self.typecode, self.storage, self.memmap_dir ) * else: * self.chrom_vectors[ chrom ] = { # <<<<<<<<<<<<<< * strand_nostrand: ChromVector.create( iv, self.typecode, self.storage ) } * */ if (PyDict_SetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_chrom, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; } __pyx_L7:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.add_chrom", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_iv); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":572 * strand_nostrand: ChromVector.create( iv, self.typecode, self.storage ) } * * def __reduce__( self ): # <<<<<<<<<<<<<< * return ( _GenomicArray_unpickle, ( self.stranded, self.typecode, self.chrom_vectors ) ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_4__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_4__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__"); /* "HTSeq/_HTSeq.pyx":573 * * def __reduce__( self ): * return ( _GenomicArray_unpickle, ( self.stranded, self.typecode, self.chrom_vectors ) ) # <<<<<<<<<<<<<< * * def write_bedgraph_file( self, file_or_filename, strand=".", track_options="" ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_39); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_r = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":575 * return ( _GenomicArray_unpickle, ( self.stranded, self.typecode, self.chrom_vectors ) ) * * def write_bedgraph_file( self, file_or_filename, strand=".", track_options="" ): # <<<<<<<<<<<<<< * if ( not self.stranded ) and strand != ".": * raise ValueError, "Strand specified in unstranded GenomicArray." */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_5write_bedgraph_file(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_5write_bedgraph_file(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_file_or_filename = 0; PyObject *__pyx_v_strand = 0; PyObject *__pyx_v_track_options = 0; PyObject *__pyx_v_f = NULL; PyObject *__pyx_v_chrom = NULL; PyObject *__pyx_v_iv = NULL; PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; PyObject *(*__pyx_t_11)(PyObject *); PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *(*__pyx_t_15)(PyObject *); PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file_or_filename,&__pyx_n_s__strand,&__pyx_n_s__track_options,0}; __Pyx_RefNannySetupContext("write_bedgraph_file"); { PyObject* values[3] = {0,0,0}; values[1] = ((PyObject *)__pyx_kp_s_11); values[2] = ((PyObject *)__pyx_kp_s_14); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__file_or_filename); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__track_options); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "write_bedgraph_file") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_file_or_filename = values[0]; __pyx_v_strand = values[1]; __pyx_v_track_options = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("write_bedgraph_file", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.write_bedgraph_file", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":576 * * def write_bedgraph_file( self, file_or_filename, strand=".", track_options="" ): * if ( not self.stranded ) and strand != ".": # <<<<<<<<<<<<<< * raise ValueError, "Strand specified in unstranded GenomicArray." * if self.stranded and strand not in ( strand_plus, strand_minus ): */ __pyx_t_1 = (!((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded); if (__pyx_t_1) { __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_strand, ((PyObject *)__pyx_kp_s_11), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_3 = __pyx_t_2; } else { __pyx_t_3 = __pyx_t_1; } if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":577 * def write_bedgraph_file( self, file_or_filename, strand=".", track_options="" ): * if ( not self.stranded ) and strand != ".": * raise ValueError, "Strand specified in unstranded GenomicArray." # <<<<<<<<<<<<<< * if self.stranded and strand not in ( strand_plus, strand_minus ): * raise ValueError, "Strand must be specified for stranded GenomicArray." */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_40), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":578 * if ( not self.stranded ) and strand != ".": * raise ValueError, "Strand specified in unstranded GenomicArray." * if self.stranded and strand not in ( strand_plus, strand_minus ): # <<<<<<<<<<<<<< * raise ValueError, "Strand must be specified for stranded GenomicArray." * if hasattr( file_or_filename, "write" ): */ if (((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded) { __Pyx_INCREF(__pyx_v_strand); __pyx_t_4 = __pyx_v_strand; __pyx_t_3 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus), Py_NE); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (((int)__pyx_t_3)) { __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus), Py_NE); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_2 = ((int)__pyx_t_1); } else { __pyx_t_2 = ((int)__pyx_t_3); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_2; __pyx_t_2 = __pyx_t_3; } else { __pyx_t_2 = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded; } if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":579 * raise ValueError, "Strand specified in unstranded GenomicArray." * if self.stranded and strand not in ( strand_plus, strand_minus ): * raise ValueError, "Strand must be specified for stranded GenomicArray." # <<<<<<<<<<<<<< * if hasattr( file_or_filename, "write" ): * f = file_or_filename */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_41), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":580 * if self.stranded and strand not in ( strand_plus, strand_minus ): * raise ValueError, "Strand must be specified for stranded GenomicArray." * if hasattr( file_or_filename, "write" ): # <<<<<<<<<<<<<< * f = file_or_filename * else: */ __pyx_t_4 = ((PyObject *)__pyx_n_s__write); __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = PyObject_HasAttr(__pyx_v_file_or_filename, __pyx_t_4); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":581 * raise ValueError, "Strand must be specified for stranded GenomicArray." * if hasattr( file_or_filename, "write" ): * f = file_or_filename # <<<<<<<<<<<<<< * else: * f = open( file_or_filename, "w" ) */ __Pyx_INCREF(__pyx_v_file_or_filename); __pyx_v_f = __pyx_v_file_or_filename; goto __pyx_L8; } /*else*/ { /* "HTSeq/_HTSeq.pyx":583 * f = file_or_filename * else: * f = open( file_or_filename, "w" ) # <<<<<<<<<<<<<< * if track_options == "": * f.write( "track type=bedGraph\n" ) */ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(__pyx_v_file_or_filename); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_file_or_filename); __Pyx_GIVEREF(__pyx_v_file_or_filename); __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_n_s__w)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w)); __pyx_t_5 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_v_f = __pyx_t_5; __pyx_t_5 = 0; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":584 * else: * f = open( file_or_filename, "w" ) * if track_options == "": # <<<<<<<<<<<<<< * f.write( "track type=bedGraph\n" ) * else: */ __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_track_options, ((PyObject *)__pyx_kp_s_14), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":585 * f = open( file_or_filename, "w" ) * if track_options == "": * f.write( "track type=bedGraph\n" ) # <<<<<<<<<<<<<< * else: * f.write( "track type=bedGraph %s\n" % track_options ) */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_43), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9; } /*else*/ { /* "HTSeq/_HTSeq.pyx":587 * f.write( "track type=bedGraph\n" ) * else: * f.write( "track type=bedGraph %s\n" % track_options ) # <<<<<<<<<<<<<< * for chrom in self.chrom_vectors: * for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_44), __pyx_v_track_options); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L9:; /* "HTSeq/_HTSeq.pyx":588 * else: * f.write( "track type=bedGraph %s\n" % track_options ) * for chrom in self.chrom_vectors: # <<<<<<<<<<<<<< * for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): * if iv.start == -sys.maxint-1 or iv.end == sys.maxint: */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors); __pyx_t_7 = 0; __pyx_t_8 = PyDict_Size(__pyx_t_5); while (1) { if (unlikely(__pyx_t_8 != PyDict_Size(__pyx_t_5))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } if (!PyDict_Next(__pyx_t_5, (&__pyx_t_7), (&__pyx_t_9), NULL)) break; __Pyx_INCREF(((PyObject *)__pyx_t_9)); __Pyx_XDECREF(__pyx_v_chrom); __pyx_v_chrom = __pyx_t_9; /* "HTSeq/_HTSeq.pyx":589 * f.write( "track type=bedGraph %s\n" % track_options ) * for chrom in self.chrom_vectors: * for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): # <<<<<<<<<<<<<< * if iv.start == -sys.maxint-1 or iv.end == sys.maxint: * continue */ __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors), __pyx_v_chrom); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyObject_GetItem(__pyx_t_6, __pyx_v_strand); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__steps); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (PyList_CheckExact(__pyx_t_6)) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break; __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; } else if (PyTuple_CheckExact(__pyx_t_6)) { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break; __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; } else { __pyx_t_4 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_4)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_4); } if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { PyObject* sequence = __pyx_t_4; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); } else { if (unlikely(PyList_GET_SIZE(sequence) != 2)) { if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_12 = PyList_GET_ITEM(sequence, 0); __pyx_t_13 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_15 = Py_TYPE(__pyx_t_14)->tp_iternext; index = 0; __pyx_t_12 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_12)) goto __pyx_L14_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L14_unpacking_failed; __Pyx_GOTREF(__pyx_t_13); if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L15_unpacking_done; __pyx_L14_unpacking_failed:; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L15_unpacking_done:; } __Pyx_XDECREF(__pyx_v_iv); __pyx_v_iv = __pyx_t_12; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_v_value); __pyx_v_value = __pyx_t_13; __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":590 * for chrom in self.chrom_vectors: * for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): * if iv.start == -sys.maxint-1 or iv.end == sys.maxint: # <<<<<<<<<<<<<< * continue * f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__maxint); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Negative(__pyx_t_12); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(__pyx_t_13, __pyx_int_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_RichCompare(__pyx_t_4, __pyx_t_12, Py_EQ); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!__pyx_t_2) { __pyx_t_13 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__end); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__maxint); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_13, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_1 = __pyx_t_3; } else { __pyx_t_1 = __pyx_t_2; } if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":591 * for iv, value in self.chrom_vectors[ chrom ][ strand ].steps(): * if iv.start == -sys.maxint-1 or iv.end == sys.maxint: * continue # <<<<<<<<<<<<<< * f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) * if not hasattr( file_or_filename, "write" ): */ goto __pyx_L12_continue; goto __pyx_L16; } __pyx_L16:; /* "HTSeq/_HTSeq.pyx":592 * if iv.start == -sys.maxint-1 or iv.end == sys.maxint: * continue * f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) # <<<<<<<<<<<<<< * if not hasattr( file_or_filename, "write" ): * f.close() */ __pyx_t_12 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__chrom); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__start); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = PyObject_GetAttr(__pyx_v_iv, __pyx_n_s__end); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = PyTuple_New(4); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_16)); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_16, 3, __pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __pyx_t_4 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_45), ((PyObject *)__pyx_t_16)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_14)); __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_16)); PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_t_14)); __Pyx_GIVEREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __pyx_t_14 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_t_16), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_L12_continue:; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":593 * continue * f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) * if not hasattr( file_or_filename, "write" ): # <<<<<<<<<<<<<< * f.close() * */ __pyx_t_5 = ((PyObject *)__pyx_n_s__write); __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = PyObject_HasAttr(__pyx_v_file_or_filename, __pyx_t_5); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = (!__pyx_t_1); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":594 * f.write( "%s\t%d\t%d\t%f\n" % (iv.chrom, iv.start, iv.end, value) ) * if not hasattr( file_or_filename, "write" ): * f.close() # <<<<<<<<<<<<<< * * def steps( self ): */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L17; } __pyx_L17:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_16); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.write_bedgraph_file", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_f); __Pyx_XDECREF(__pyx_v_chrom); __Pyx_XDECREF(__pyx_v_iv); __Pyx_XDECREF(__pyx_v_value); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":596 * f.close() * * def steps( self ): # <<<<<<<<<<<<<< * return _HTSeq_internal.GenomicArray_steps( self ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_6steps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_6steps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("steps"); /* "HTSeq/_HTSeq.pyx":597 * * def steps( self ): * return _HTSeq_internal.GenomicArray_steps( self ) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___HTSeq_internal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__GenomicArray_steps); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.steps", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":480 * cdef class GenomicArray( object ): * * cdef public dict chrom_vectors # <<<<<<<<<<<<<< * cdef readonly bint stranded * cdef readonly str typecode */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.chrom_vectors.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors)); ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->chrom_vectors = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":481 * * cdef public dict chrom_vectors * cdef readonly bint stranded # <<<<<<<<<<<<<< * cdef readonly str typecode * cdef public bint auto_add_chroms */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8stranded___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8stranded___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->stranded); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.stranded.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":482 * cdef public dict chrom_vectors * cdef readonly bint stranded * cdef readonly str typecode # <<<<<<<<<<<<<< * cdef public bint auto_add_chroms * cdef readonly str storage */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8typecode___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8typecode___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->typecode); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":483 * cdef readonly bint stranded * cdef readonly str typecode * cdef public bint auto_add_chroms # <<<<<<<<<<<<<< * cdef readonly str storage * cdef readonly str memmap_dir */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.auto_add_chroms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->auto_add_chroms = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.GenomicArray.auto_add_chroms.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":484 * cdef readonly str typecode * cdef public bint auto_add_chroms * cdef readonly str storage # <<<<<<<<<<<<<< * cdef readonly str memmap_dir * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_7storage___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_7storage___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->storage); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":485 * cdef public bint auto_add_chroms * cdef readonly str storage * cdef readonly str memmap_dir # <<<<<<<<<<<<<< * * def __init__( self, object chroms, bint stranded=True, str typecode='d', */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_10memmap_dir___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_10memmap_dir___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_v_self)->memmap_dir); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":600 * * * def _GenomicArray_unpickle( stranded, typecode, chrom_vectors ): # <<<<<<<<<<<<<< * ga = GenomicArray( {}, stranded, typecode ) * ga.chrom_vectors = chrom_vectors */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_2_GenomicArray_unpickle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5HTSeq_6_HTSeq_2_GenomicArray_unpickle = {__Pyx_NAMESTR("_GenomicArray_unpickle"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_2_GenomicArray_unpickle, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_2_GenomicArray_unpickle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_stranded = 0; PyObject *__pyx_v_typecode = 0; PyObject *__pyx_v_chrom_vectors = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *__pyx_v_ga = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__stranded,&__pyx_n_s__typecode,&__pyx_n_s__chrom_vectors,0}; __Pyx_RefNannySetupContext("_GenomicArray_unpickle"); __pyx_self = __pyx_self; { PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stranded); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__typecode); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_GenomicArray_unpickle", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom_vectors); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_GenomicArray_unpickle", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_GenomicArray_unpickle") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_stranded = values[0]; __pyx_v_typecode = values[1]; __pyx_v_chrom_vectors = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_GenomicArray_unpickle", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq._GenomicArray_unpickle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":601 * * def _GenomicArray_unpickle( stranded, typecode, chrom_vectors ): * ga = GenomicArray( {}, stranded, typecode ) # <<<<<<<<<<<<<< * ga.chrom_vectors = chrom_vectors * return ga */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_stranded); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_stranded); __Pyx_GIVEREF(__pyx_v_stranded); __Pyx_INCREF(__pyx_v_typecode); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_typecode); __Pyx_GIVEREF(__pyx_v_typecode); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicArray)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_ga = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":602 * def _GenomicArray_unpickle( stranded, typecode, chrom_vectors ): * ga = GenomicArray( {}, stranded, typecode ) * ga.chrom_vectors = chrom_vectors # <<<<<<<<<<<<<< * return ga * */ if (!(likely(PyDict_CheckExact(__pyx_v_chrom_vectors))||((__pyx_v_chrom_vectors) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_chrom_vectors)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_chrom_vectors); __Pyx_GIVEREF(__pyx_v_chrom_vectors); __Pyx_GOTREF(__pyx_v_ga->chrom_vectors); __Pyx_DECREF(((PyObject *)__pyx_v_ga->chrom_vectors)); __pyx_v_ga->chrom_vectors = ((PyObject*)__pyx_v_chrom_vectors); /* "HTSeq/_HTSeq.pyx":603 * ga = GenomicArray( {}, stranded, typecode ) * ga.chrom_vectors = chrom_vectors * return ga # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ga)); __pyx_r = ((PyObject *)__pyx_v_ga); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq._GenomicArray_unpickle", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_ga); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":612 * * * def _make_translation_table_for_complementation( ): # <<<<<<<<<<<<<< * t = [ chr(i) for i in xrange(256) ] * t[ ord('A') ] = 'T' */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_3_make_translation_table_for_complementation(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyMethodDef __pyx_mdef_5HTSeq_6_HTSeq_3_make_translation_table_for_complementation = {__Pyx_NAMESTR("_make_translation_table_for_complementation"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_3_make_translation_table_for_complementation, METH_NOARGS, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_3_make_translation_table_for_complementation(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_v_t = NULL; long __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; long __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_make_translation_table_for_complementation"); __pyx_self = __pyx_self; /* "HTSeq/_HTSeq.pyx":613 * * def _make_translation_table_for_complementation( ): * t = [ chr(i) for i in xrange(256) ] # <<<<<<<<<<<<<< * t[ ord('A') ] = 'T' * t[ ord('T') ] = 'A' */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); for (__pyx_t_2 = 0; __pyx_t_2 < 256; __pyx_t_2+=1) { __pyx_v_i = __pyx_t_2; __pyx_t_3 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_builtin_chr, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_INCREF(((PyObject *)__pyx_t_1)); __pyx_v_t = __pyx_t_1; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":614 * def _make_translation_table_for_complementation( ): * t = [ chr(i) for i in xrange(256) ] * t[ ord('A') ] = 'T' # <<<<<<<<<<<<<< * t[ ord('T') ] = 'A' * t[ ord('C') ] = 'G' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_65, ((PyObject *)__pyx_n_s__T)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":615 * t = [ chr(i) for i in xrange(256) ] * t[ ord('A') ] = 'T' * t[ ord('T') ] = 'A' # <<<<<<<<<<<<<< * t[ ord('C') ] = 'G' * t[ ord('G') ] = 'C' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_84, ((PyObject *)__pyx_n_s__A)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":616 * t[ ord('A') ] = 'T' * t[ ord('T') ] = 'A' * t[ ord('C') ] = 'G' # <<<<<<<<<<<<<< * t[ ord('G') ] = 'C' * t[ ord('a') ] = 't' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_67, ((PyObject *)__pyx_n_s__G)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":617 * t[ ord('T') ] = 'A' * t[ ord('C') ] = 'G' * t[ ord('G') ] = 'C' # <<<<<<<<<<<<<< * t[ ord('a') ] = 't' * t[ ord('t') ] = 'a' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_71, ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":618 * t[ ord('C') ] = 'G' * t[ ord('G') ] = 'C' * t[ ord('a') ] = 't' # <<<<<<<<<<<<<< * t[ ord('t') ] = 'a' * t[ ord('c') ] = 'g' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_97, ((PyObject *)__pyx_n_s__t)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":619 * t[ ord('G') ] = 'C' * t[ ord('a') ] = 't' * t[ ord('t') ] = 'a' # <<<<<<<<<<<<<< * t[ ord('c') ] = 'g' * t[ ord('g') ] = 'c' */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_116, ((PyObject *)__pyx_n_s__a)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":620 * t[ ord('a') ] = 't' * t[ ord('t') ] = 'a' * t[ ord('c') ] = 'g' # <<<<<<<<<<<<<< * t[ ord('g') ] = 'c' * return ''.join( t ) */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_99, ((PyObject *)__pyx_n_s__g)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":621 * t[ ord('t') ] = 'a' * t[ ord('c') ] = 'g' * t[ ord('g') ] = 'c' # <<<<<<<<<<<<<< * return ''.join( t ) * */ if (PyObject_SetItem(((PyObject *)__pyx_v_t), __pyx_int_103, ((PyObject *)__pyx_n_s__c)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":622 * t[ ord('c') ] = 'g' * t[ ord('g') ] = 'c' * return ''.join( t ) # <<<<<<<<<<<<<< * * cdef bytes _translation_table_for_complementation = _make_translation_table_for_complementation( ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_14), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_t)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_t)); __Pyx_GIVEREF(((PyObject *)__pyx_v_t)); __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq._make_translation_table_for_complementation", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":626 * cdef bytes _translation_table_for_complementation = _make_translation_table_for_complementation( ) * * cpdef bytes reverse_complement( bytes seq ): # <<<<<<<<<<<<<< * """Returns the reverse complement of DNA sequence 'seq'. Does not yet * work with extended IUPAC nucleotide letters or RNA.""" */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_4reverse_complement(PyObject *__pyx_self, PyObject *__pyx_v_seq); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_reverse_complement(PyObject *__pyx_v_seq, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reverse_complement"); /* "HTSeq/_HTSeq.pyx":630 * work with extended IUPAC nucleotide letters or RNA.""" * * return seq[ ::-1 ].translate( _translation_table_for_complementation ) # <<<<<<<<<<<<<< * * base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_seq), __pyx_k_slice_46); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_t_1), __pyx_n_s__translate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation)); __Pyx_GIVEREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation)); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":626 * cdef bytes _translation_table_for_complementation = _make_translation_table_for_complementation( ) * * cpdef bytes reverse_complement( bytes seq ): # <<<<<<<<<<<<<< * """Returns the reverse complement of DNA sequence 'seq'. Does not yet * work with extended IUPAC nucleotide letters or RNA.""" */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_4reverse_complement(PyObject *__pyx_self, PyObject *__pyx_v_seq); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_4reverse_complement[] = "Returns the reverse complement of DNA sequence 'seq'. Does not yet\n work with extended IUPAC nucleotide letters or RNA."; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_4reverse_complement(PyObject *__pyx_self, PyObject *__pyx_v_seq) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reverse_complement"); __pyx_self = __pyx_self; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_seq), (&PyBytes_Type), 1, "seq", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_reverse_complement(__pyx_v_seq, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":638 * """ * * def __init__( self, bytes seq, str name="unnamed" ): # <<<<<<<<<<<<<< * self.seq = seq * self.name = name */ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_seq = 0; PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__seq,&__pyx_n_s__name,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[2] = {0,0}; values[1] = ((PyObject*)__pyx_n_s__unnamed); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seq); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_seq = ((PyObject*)values[0]); __pyx_v_name = ((PyObject*)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_seq), (&PyBytes_Type), 1, "seq", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":639 * * def __init__( self, bytes seq, str name="unnamed" ): * self.seq = seq # <<<<<<<<<<<<<< * self.name = name * self.descr = None */ __Pyx_INCREF(((PyObject *)__pyx_v_seq)); __Pyx_GIVEREF(((PyObject *)__pyx_v_seq)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq = __pyx_v_seq; /* "HTSeq/_HTSeq.pyx":640 * def __init__( self, bytes seq, str name="unnamed" ): * self.seq = seq * self.name = name # <<<<<<<<<<<<<< * self.descr = None * */ __Pyx_INCREF(((PyObject *)__pyx_v_name)); __Pyx_GIVEREF(((PyObject *)__pyx_v_name)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name = __pyx_v_name; /* "HTSeq/_HTSeq.pyx":641 * self.seq = seq * self.name = name * self.descr = None # <<<<<<<<<<<<<< * * cpdef Sequence get_reverse_complement( self ): */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr = ((PyObject*)Py_None); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":643 * self.descr = None * * cpdef Sequence get_reverse_complement( self ): # <<<<<<<<<<<<<< * return Sequence( * reverse_complement( self.seq ), */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_1get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_f_5HTSeq_6_HTSeq_8Sequence_get_reverse_complement(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, int __pyx_skip_dispatch) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_reverse_complement"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_47); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_8Sequence_1get_reverse_complement)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_Sequence))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":644 * * cpdef Sequence get_reverse_complement( self ): * return Sequence( # <<<<<<<<<<<<<< * reverse_complement( self.seq ), * "revcomp_of_" + self.name ) */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "HTSeq/_HTSeq.pyx":645 * cpdef Sequence get_reverse_complement( self ): * return Sequence( * reverse_complement( self.seq ), # <<<<<<<<<<<<<< * "revcomp_of_" + self.name ) * */ __pyx_t_1 = ((PyObject *)__pyx_v_self->seq); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_reverse_complement(((PyObject*)__pyx_t_1), 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":646 * return Sequence( * reverse_complement( self.seq ), * "revcomp_of_" + self.name ) # <<<<<<<<<<<<<< * * def __str__( self ): */ __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_n_s__revcomp_of_), ((PyObject *)__pyx_v_self->name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_Sequence)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.get_reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":643 * self.descr = None * * cpdef Sequence get_reverse_complement( self ): # <<<<<<<<<<<<<< * return Sequence( * reverse_complement( self.seq ), */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_1get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_1get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_reverse_complement"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->__pyx_vtab)->get_reverse_complement(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self), 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.get_reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":648 * "revcomp_of_" + self.name ) * * def __str__( self ): # <<<<<<<<<<<<<< * return self.seq * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_2__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_2__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__"); /* "HTSeq/_HTSeq.pyx":649 * * def __str__( self ): * return self.seq # <<<<<<<<<<<<<< * * def __repr__( self ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":651 * return self.seq * * def __repr__( self ): # <<<<<<<<<<<<<< * return "<%s object '%s' (length %d)>" % ( * self.__class__.__name__, self.name, len( self.seq ) ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":652 * * def __repr__( self ): * return "<%s object '%s' (length %d)>" % ( # <<<<<<<<<<<<<< * self.__class__.__name__, self.name, len( self.seq ) ) * */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":653 * def __repr__( self ): * return "<%s object '%s' (length %d)>" % ( * self.__class__.__name__, self.name, len( self.seq ) ) # <<<<<<<<<<<<<< * * def __len__( self ): */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_3 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_48), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":655 * self.__class__.__name__, self.name, len( self.seq ) ) * * def __len__( self ): # <<<<<<<<<<<<<< * return len( self.seq ) * */ static Py_ssize_t __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4__len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4__len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__len__"); /* "HTSeq/_HTSeq.pyx":656 * * def __len__( self ): * return len( self.seq ) # <<<<<<<<<<<<<< * * def __getitem__( self, item ): */ __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":658 * return len( self.seq ) * * def __getitem__( self, item ): # <<<<<<<<<<<<<< * if self.name.endswith( "[part]" ): * new_name = self.name */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_v_new_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__"); /* "HTSeq/_HTSeq.pyx":659 * * def __getitem__( self, item ): * if self.name.endswith( "[part]" ): # <<<<<<<<<<<<<< * new_name = self.name * else: */ if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "endswith"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = __Pyx_PyStr_Tailmatch(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name), ((PyObject *)__pyx_kp_s_49), 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":660 * def __getitem__( self, item ): * if self.name.endswith( "[part]" ): * new_name = self.name # <<<<<<<<<<<<<< * else: * new_name = self.name + "[part]" */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); __pyx_v_new_name = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name); goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":662 * new_name = self.name * else: * new_name = self.name + "[part]" # <<<<<<<<<<<<<< * return Sequence( self.seq[ item ], new_name ) * */ __pyx_t_2 = PyNumber_Add(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name), ((PyObject *)__pyx_kp_s_49)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __pyx_v_new_name = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":663 * else: * new_name = self.name + "[part]" * return Sequence( self.seq[ item ], new_name ) # <<<<<<<<<<<<<< * * def write_to_fasta_file( self, fasta_file ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyObject_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq), __pyx_v_item); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_new_name); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_new_name); __Pyx_GIVEREF(__pyx_v_new_name); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_Sequence)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_new_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":665 * return Sequence( self.seq[ item ], new_name ) * * def write_to_fasta_file( self, fasta_file ): # <<<<<<<<<<<<<< * if self.descr is not None: * fasta_file.write( ">%s %s\n" % ( self.name, self.descr ) ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_6write_to_fasta_file(PyObject *__pyx_v_self, PyObject *__pyx_v_fasta_file); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_6write_to_fasta_file(PyObject *__pyx_v_self, PyObject *__pyx_v_fasta_file) { PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("write_to_fasta_file"); /* "HTSeq/_HTSeq.pyx":666 * * def write_to_fasta_file( self, fasta_file ): * if self.descr is not None: # <<<<<<<<<<<<<< * fasta_file.write( ">%s %s\n" % ( self.name, self.descr ) ) * else: */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr != ((PyObject*)Py_None)); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":667 * def write_to_fasta_file( self, fasta_file ): * if self.descr is not None: * fasta_file.write( ">%s %s\n" % ( self.name, self.descr ) ) # <<<<<<<<<<<<<< * else: * fasta_file.write( ">%s\n" % self.name ) */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_fasta_file, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_50), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":669 * fasta_file.write( ">%s %s\n" % ( self.name, self.descr ) ) * else: * fasta_file.write( ">%s\n" % self.name ) # <<<<<<<<<<<<<< * i = 0 * while i*70 < len(self.seq): */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_fasta_file, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_51), ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":670 * else: * fasta_file.write( ">%s\n" % self.name ) * i = 0 # <<<<<<<<<<<<<< * while i*70 < len(self.seq): * fasta_file.write( self.seq[ i*70 : (i+1)*70 ] + "\n" ) */ __Pyx_INCREF(__pyx_int_0); __pyx_v_i = __pyx_int_0; /* "HTSeq/_HTSeq.pyx":671 * fasta_file.write( ">%s\n" % self.name ) * i = 0 * while i*70 < len(self.seq): # <<<<<<<<<<<<<< * fasta_file.write( self.seq[ i*70 : (i+1)*70 ] + "\n" ) * i += 1 */ while (1) { __pyx_t_3 = PyNumber_Multiply(__pyx_v_i, __pyx_int_70); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyBytes_GET_SIZE(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_1) break; /* "HTSeq/_HTSeq.pyx":672 * i = 0 * while i*70 < len(self.seq): * fasta_file.write( self.seq[ i*70 : (i+1)*70 ] + "\n" ) # <<<<<<<<<<<<<< * i += 1 * */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_fasta_file, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyNumber_Multiply(__pyx_v_i, __pyx_int_70); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_int_70); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq), __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_3), ((PyObject *)__pyx_kp_s_52)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":673 * while i*70 < len(self.seq): * fasta_file.write( self.seq[ i*70 : (i+1)*70 ] + "\n" ) * i += 1 # <<<<<<<<<<<<<< * * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ): */ __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_v_i); __pyx_v_i = __pyx_t_2; __pyx_t_2 = 0; } __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.write_to_fasta_file", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":675 * i += 1 * * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ): # <<<<<<<<<<<<<< * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_7add_bases_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_8Sequence_add_bases_to_count_array(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, PyArrayObject *__pyx_v_count_array_, int __pyx_skip_dispatch) { PyArrayObject *__pyx_v_count_array = 0; int __pyx_v_seq_length; npy_intp __pyx_v_i; char __pyx_v_b; char *__pyx_v_seq_cstr; Py_buffer __pyx_bstruct_count_array; Py_ssize_t __pyx_bstride_0_count_array = 0; Py_ssize_t __pyx_bstride_1_count_array = 0; Py_ssize_t __pyx_bshape_0_count_array = 0; Py_ssize_t __pyx_bshape_1_count_array = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; int __pyx_t_5; char *__pyx_t_6; int __pyx_t_7; npy_intp __pyx_t_8; int __pyx_t_9; int __pyx_t_10; npy_intp __pyx_t_11; long __pyx_t_12; int __pyx_t_13; npy_intp __pyx_t_14; long __pyx_t_15; npy_intp __pyx_t_16; long __pyx_t_17; npy_intp __pyx_t_18; long __pyx_t_19; int __pyx_t_20; npy_intp __pyx_t_21; long __pyx_t_22; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_bases_to_count_array"); __pyx_bstruct_count_array.buf = NULL; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_53); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_8Sequence_7add_bases_to_count_array)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_count_array_)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_count_array_)); __Pyx_GIVEREF(((PyObject *)__pyx_v_count_array_)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":677 * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ): * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ # <<<<<<<<<<<<<< * cdef int seq_length = len( self.seq ) * */ { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_count_array, (PyObject*)((PyArrayObject *)__pyx_v_count_array_), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_count_array = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_count_array.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_count_array = __pyx_bstruct_count_array.strides[0]; __pyx_bstride_1_count_array = __pyx_bstruct_count_array.strides[1]; __pyx_bshape_0_count_array = __pyx_bstruct_count_array.shape[0]; __pyx_bshape_1_count_array = __pyx_bstruct_count_array.shape[1]; } } __Pyx_INCREF(((PyObject *)__pyx_v_count_array_)); __pyx_v_count_array = ((PyArrayObject *)__pyx_v_count_array_); /* "HTSeq/_HTSeq.pyx":678 * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ * cdef int seq_length = len( self.seq ) # <<<<<<<<<<<<<< * * if numpy.PyArray_DIMS( count_array )[0] < seq_length: */ __pyx_t_1 = ((PyObject *)__pyx_v_self->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seq_length = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":680 * cdef int seq_length = len( self.seq ) * * if numpy.PyArray_DIMS( count_array )[0] < seq_length: # <<<<<<<<<<<<<< * raise ValueError, "'count_array' too small for sequence." * if numpy.PyArray_DIMS( count_array )[1] < 5: */ __pyx_t_5 = ((PyArray_DIMS(((PyArrayObject *)__pyx_v_count_array))[0]) < __pyx_v_seq_length); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":681 * * if numpy.PyArray_DIMS( count_array )[0] < seq_length: * raise ValueError, "'count_array' too small for sequence." # <<<<<<<<<<<<<< * if numpy.PyArray_DIMS( count_array )[1] < 5: * raise ValueError, "'count_array' has too few columns." */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_54), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":682 * if numpy.PyArray_DIMS( count_array )[0] < seq_length: * raise ValueError, "'count_array' too small for sequence." * if numpy.PyArray_DIMS( count_array )[1] < 5: # <<<<<<<<<<<<<< * raise ValueError, "'count_array' has too few columns." * */ __pyx_t_5 = ((PyArray_DIMS(((PyArrayObject *)__pyx_v_count_array))[1]) < 5); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":683 * raise ValueError, "'count_array' too small for sequence." * if numpy.PyArray_DIMS( count_array )[1] < 5: * raise ValueError, "'count_array' has too few columns." # <<<<<<<<<<<<<< * * cdef numpy.npy_intp i */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_55), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":687 * cdef numpy.npy_intp i * cdef char b * cdef char* seq_cstr = self.seq # <<<<<<<<<<<<<< * for i in xrange( seq_length ): * b = seq_cstr[i] */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_self->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_seq_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":688 * cdef char b * cdef char* seq_cstr = self.seq * for i in xrange( seq_length ): # <<<<<<<<<<<<<< * b = seq_cstr[i] * if b == 'A' or b == 'a': */ __pyx_t_7 = __pyx_v_seq_length; for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; /* "HTSeq/_HTSeq.pyx":689 * cdef char* seq_cstr = self.seq * for i in xrange( seq_length ): * b = seq_cstr[i] # <<<<<<<<<<<<<< * if b == 'A' or b == 'a': * count_array[ i, 0 ] += 1 */ __pyx_v_b = (__pyx_v_seq_cstr[__pyx_v_i]); /* "HTSeq/_HTSeq.pyx":690 * for i in xrange( seq_length ): * b = seq_cstr[i] * if b == 'A' or b == 'a': # <<<<<<<<<<<<<< * count_array[ i, 0 ] += 1 * elif b == 'C' or b == 'c': */ __pyx_t_5 = (__pyx_v_b == 'A'); if (!__pyx_t_5) { __pyx_t_9 = (__pyx_v_b == 'a'); __pyx_t_10 = __pyx_t_9; } else { __pyx_t_10 = __pyx_t_5; } if (__pyx_t_10) { /* "HTSeq/_HTSeq.pyx":691 * b = seq_cstr[i] * if b == 'A' or b == 'a': * count_array[ i, 0 ] += 1 # <<<<<<<<<<<<<< * elif b == 'C' or b == 'c': * count_array[ i, 1 ] += 1 */ __pyx_t_11 = __pyx_v_i; __pyx_t_12 = 0; __pyx_t_13 = -1; if (__pyx_t_11 < 0) { __pyx_t_11 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_11 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_11 >= __pyx_bshape_0_count_array)) __pyx_t_13 = 0; if (__pyx_t_12 < 0) { __pyx_t_12 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 1; } else if (unlikely(__pyx_t_12 >= __pyx_bshape_1_count_array)) __pyx_t_13 = 1; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_11, __pyx_bstride_0_count_array, __pyx_t_12, __pyx_bstride_1_count_array) += 1; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":692 * if b == 'A' or b == 'a': * count_array[ i, 0 ] += 1 * elif b == 'C' or b == 'c': # <<<<<<<<<<<<<< * count_array[ i, 1 ] += 1 * elif b == 'G' or b == 'g': */ __pyx_t_10 = (__pyx_v_b == 'C'); if (!__pyx_t_10) { __pyx_t_5 = (__pyx_v_b == 'c'); __pyx_t_9 = __pyx_t_5; } else { __pyx_t_9 = __pyx_t_10; } if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":693 * count_array[ i, 0 ] += 1 * elif b == 'C' or b == 'c': * count_array[ i, 1 ] += 1 # <<<<<<<<<<<<<< * elif b == 'G' or b == 'g': * count_array[ i, 2 ] += 1 */ __pyx_t_14 = __pyx_v_i; __pyx_t_15 = 1; __pyx_t_13 = -1; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_14 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_14 >= __pyx_bshape_0_count_array)) __pyx_t_13 = 0; if (__pyx_t_15 < 0) { __pyx_t_15 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_15 < 0)) __pyx_t_13 = 1; } else if (unlikely(__pyx_t_15 >= __pyx_bshape_1_count_array)) __pyx_t_13 = 1; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_14, __pyx_bstride_0_count_array, __pyx_t_15, __pyx_bstride_1_count_array) += 1; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":694 * elif b == 'C' or b == 'c': * count_array[ i, 1 ] += 1 * elif b == 'G' or b == 'g': # <<<<<<<<<<<<<< * count_array[ i, 2 ] += 1 * elif b == 'T' or b == 't': */ __pyx_t_9 = (__pyx_v_b == 'G'); if (!__pyx_t_9) { __pyx_t_10 = (__pyx_v_b == 'g'); __pyx_t_5 = __pyx_t_10; } else { __pyx_t_5 = __pyx_t_9; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":695 * count_array[ i, 1 ] += 1 * elif b == 'G' or b == 'g': * count_array[ i, 2 ] += 1 # <<<<<<<<<<<<<< * elif b == 'T' or b == 't': * count_array[ i, 3 ] += 1 */ __pyx_t_16 = __pyx_v_i; __pyx_t_17 = 2; __pyx_t_13 = -1; if (__pyx_t_16 < 0) { __pyx_t_16 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_16 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_16 >= __pyx_bshape_0_count_array)) __pyx_t_13 = 0; if (__pyx_t_17 < 0) { __pyx_t_17 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_17 < 0)) __pyx_t_13 = 1; } else if (unlikely(__pyx_t_17 >= __pyx_bshape_1_count_array)) __pyx_t_13 = 1; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_16, __pyx_bstride_0_count_array, __pyx_t_17, __pyx_bstride_1_count_array) += 1; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":696 * elif b == 'G' or b == 'g': * count_array[ i, 2 ] += 1 * elif b == 'T' or b == 't': # <<<<<<<<<<<<<< * count_array[ i, 3 ] += 1 * elif b == 'N' or b == 'n' or b == ".": */ __pyx_t_5 = (__pyx_v_b == 'T'); if (!__pyx_t_5) { __pyx_t_9 = (__pyx_v_b == 't'); __pyx_t_10 = __pyx_t_9; } else { __pyx_t_10 = __pyx_t_5; } if (__pyx_t_10) { /* "HTSeq/_HTSeq.pyx":697 * count_array[ i, 2 ] += 1 * elif b == 'T' or b == 't': * count_array[ i, 3 ] += 1 # <<<<<<<<<<<<<< * elif b == 'N' or b == 'n' or b == ".": * count_array[ i, 4 ] += 1 */ __pyx_t_18 = __pyx_v_i; __pyx_t_19 = 3; __pyx_t_13 = -1; if (__pyx_t_18 < 0) { __pyx_t_18 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_18 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_18 >= __pyx_bshape_0_count_array)) __pyx_t_13 = 0; if (__pyx_t_19 < 0) { __pyx_t_19 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_19 < 0)) __pyx_t_13 = 1; } else if (unlikely(__pyx_t_19 >= __pyx_bshape_1_count_array)) __pyx_t_13 = 1; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_18, __pyx_bstride_0_count_array, __pyx_t_19, __pyx_bstride_1_count_array) += 1; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":698 * elif b == 'T' or b == 't': * count_array[ i, 3 ] += 1 * elif b == 'N' or b == 'n' or b == ".": # <<<<<<<<<<<<<< * count_array[ i, 4 ] += 1 * else: */ __pyx_t_10 = (__pyx_v_b == 'N'); if (!__pyx_t_10) { __pyx_t_5 = (__pyx_v_b == 'n'); if (!__pyx_t_5) { __pyx_t_9 = (__pyx_v_b == '.'); __pyx_t_20 = __pyx_t_9; } else { __pyx_t_20 = __pyx_t_5; } __pyx_t_5 = __pyx_t_20; } else { __pyx_t_5 = __pyx_t_10; } if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":699 * count_array[ i, 3 ] += 1 * elif b == 'N' or b == 'n' or b == ".": * count_array[ i, 4 ] += 1 # <<<<<<<<<<<<<< * else: * raise ValueError, "Illegal base letter encountered." */ __pyx_t_21 = __pyx_v_i; __pyx_t_22 = 4; __pyx_t_13 = -1; if (__pyx_t_21 < 0) { __pyx_t_21 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_21 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_21 >= __pyx_bshape_0_count_array)) __pyx_t_13 = 0; if (__pyx_t_22 < 0) { __pyx_t_22 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_22 < 0)) __pyx_t_13 = 1; } else if (unlikely(__pyx_t_22 >= __pyx_bshape_1_count_array)) __pyx_t_13 = 1; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_21, __pyx_bstride_0_count_array, __pyx_t_22, __pyx_bstride_1_count_array) += 1; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":701 * count_array[ i, 4 ] += 1 * else: * raise ValueError, "Illegal base letter encountered." # <<<<<<<<<<<<<< * * return None */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_56), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 701; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L7:; } /* "HTSeq/_HTSeq.pyx":703 * raise ValueError, "Illegal base letter encountered." * * return None # <<<<<<<<<<<<<< * * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_count_array); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.add_bases_to_count_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_count_array); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_count_array); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":675 * i += 1 * * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ): # <<<<<<<<<<<<<< * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_7add_bases_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_7add_bases_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_bases_to_count_array"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_count_array_), __pyx_ptype_5numpy_ndarray, 1, "count_array_", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->__pyx_vtab)->add_bases_to_count_array(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self), ((PyArrayObject *)__pyx_v_count_array_), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.add_bases_to_count_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":705 * return None * * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): # <<<<<<<<<<<<<< * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_8trim_left_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_f_5HTSeq_6_HTSeq_8Sequence_trim_left_end(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end *__pyx_optional_args) { float __pyx_v_mismatch_prop = ((float)0.); int __pyx_v_seqlen; int __pyx_v_patlen; int __pyx_v_minlen; char *__pyx_v_seq_cstr; char *__pyx_v_pat_cstr; int __pyx_v_match; int __pyx_v_i; int __pyx_v_j; int __pyx_v_num_mismatches; struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; int __pyx_t_5; char *__pyx_t_6; long __pyx_t_7; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trim_left_end"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_mismatch_prop = __pyx_optional_args->mismatch_prop; } } /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__trim_left_end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_8Sequence_8trim_left_end)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_mismatch_prop); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_pattern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_Sequence))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":706 * * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): * cdef int seqlen = len( self.seq ) # <<<<<<<<<<<<<< * cdef int patlen = len( pattern.seq ) * cdef int minlen */ __pyx_t_1 = ((PyObject *)__pyx_v_self->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seqlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":707 * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) # <<<<<<<<<<<<<< * cdef int minlen * if seqlen < patlen: */ __pyx_t_1 = ((PyObject *)__pyx_v_pattern->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_patlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":709 * cdef int patlen = len( pattern.seq ) * cdef int minlen * if seqlen < patlen: # <<<<<<<<<<<<<< * minlen = seqlen * else: */ __pyx_t_5 = (__pyx_v_seqlen < __pyx_v_patlen); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":710 * cdef int minlen * if seqlen < patlen: * minlen = seqlen # <<<<<<<<<<<<<< * else: * minlen = patlen */ __pyx_v_minlen = __pyx_v_seqlen; goto __pyx_L3; } /*else*/ { /* "HTSeq/_HTSeq.pyx":712 * minlen = seqlen * else: * minlen = patlen # <<<<<<<<<<<<<< * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq */ __pyx_v_minlen = __pyx_v_patlen; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":713 * else: * minlen = patlen * cdef char * seq_cstr = self.seq # <<<<<<<<<<<<<< * cdef char * pat_cstr = pattern.seq * cdef int match = 0 */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_self->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_seq_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":714 * minlen = patlen * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq # <<<<<<<<<<<<<< * cdef int match = 0 * cdef int i, j */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_pattern->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_pat_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":715 * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq * cdef int match = 0 # <<<<<<<<<<<<<< * cdef int i, j * cdef int num_mismatches */ __pyx_v_match = 0; /* "HTSeq/_HTSeq.pyx":718 * cdef int i, j * cdef int num_mismatches * for i in xrange( 1, minlen+1 ): # <<<<<<<<<<<<<< * num_mismatches = 0 * for j in xrange( i ): */ __pyx_t_7 = (__pyx_v_minlen + 1); for (__pyx_t_8 = 1; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; /* "HTSeq/_HTSeq.pyx":719 * cdef int num_mismatches * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 # <<<<<<<<<<<<<< * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: */ __pyx_v_num_mismatches = 0; /* "HTSeq/_HTSeq.pyx":720 * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 * for j in xrange( i ): # <<<<<<<<<<<<<< * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * num_mismatches += 1 */ __pyx_t_9 = __pyx_v_i; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_j = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":721 * num_mismatches = 0 * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: # <<<<<<<<<<<<<< * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: */ __pyx_t_5 = ((__pyx_v_seq_cstr[__pyx_v_j]) != (__pyx_v_pat_cstr[((__pyx_v_patlen - __pyx_v_i) + __pyx_v_j)])); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":722 * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * num_mismatches += 1 # <<<<<<<<<<<<<< * if num_mismatches > mismatch_prop * i: * break */ __pyx_v_num_mismatches = (__pyx_v_num_mismatches + 1); /* "HTSeq/_HTSeq.pyx":723 * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_v_num_mismatches > (__pyx_v_mismatch_prop * __pyx_v_i)); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":724 * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: * break # <<<<<<<<<<<<<< * else: * match = i */ goto __pyx_L7_break; goto __pyx_L9; } __pyx_L9:; goto __pyx_L8; } __pyx_L8:; } /*else*/ { /* "HTSeq/_HTSeq.pyx":726 * break * else: * match = i # <<<<<<<<<<<<<< * return self[ match : seqlen ] * */ __pyx_v_match = __pyx_v_i; } __pyx_L7_break:; } /* "HTSeq/_HTSeq.pyx":727 * else: * match = i * return self[ match : seqlen ] # <<<<<<<<<<<<<< * * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self), __pyx_v_match, __pyx_v_seqlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5HTSeq_6_HTSeq_Sequence))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_left_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":705 * return None * * cpdef Sequence trim_left_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): # <<<<<<<<<<<<<< * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_8trim_left_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_8trim_left_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern = 0; float __pyx_v_mismatch_prop; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pattern,&__pyx_n_s__mismatch_prop,0}; __Pyx_RefNannySetupContext("trim_left_end"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pattern); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mismatch_prop); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "trim_left_end") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_pattern = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)values[0]); if (values[1]) { __pyx_v_mismatch_prop = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_mismatch_prop == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_mismatch_prop = ((float)0.); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("trim_left_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_left_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pattern), __pyx_ptype_5HTSeq_6_HTSeq_Sequence, 1, "pattern", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.mismatch_prop = __pyx_v_mismatch_prop; __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->__pyx_vtab)->trim_left_end(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self), __pyx_v_pattern, 1, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_left_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":729 * return self[ match : seqlen ] * * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): # <<<<<<<<<<<<<< * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_9trim_right_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_f_5HTSeq_6_HTSeq_8Sequence_trim_right_end(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end *__pyx_optional_args) { float __pyx_v_mismatch_prop = ((float)0.); int __pyx_v_seqlen; int __pyx_v_patlen; int __pyx_v_minlen; char *__pyx_v_seq_cstr; char *__pyx_v_pat_cstr; int __pyx_v_match; int __pyx_v_i; int __pyx_v_j; int __pyx_v_num_mismatches; struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; int __pyx_t_5; char *__pyx_t_6; long __pyx_t_7; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trim_right_end"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_mismatch_prop = __pyx_optional_args->mismatch_prop; } } /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__trim_right_end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_8Sequence_9trim_right_end)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_mismatch_prop); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_pattern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_Sequence))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":730 * * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): * cdef int seqlen = len( self.seq ) # <<<<<<<<<<<<<< * cdef int patlen = len( pattern.seq ) * cdef int minlen */ __pyx_t_1 = ((PyObject *)__pyx_v_self->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seqlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":731 * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) # <<<<<<<<<<<<<< * cdef int minlen * if seqlen < patlen: */ __pyx_t_1 = ((PyObject *)__pyx_v_pattern->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_patlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":733 * cdef int patlen = len( pattern.seq ) * cdef int minlen * if seqlen < patlen: # <<<<<<<<<<<<<< * minlen = seqlen * else: */ __pyx_t_5 = (__pyx_v_seqlen < __pyx_v_patlen); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":734 * cdef int minlen * if seqlen < patlen: * minlen = seqlen # <<<<<<<<<<<<<< * else: * minlen = patlen */ __pyx_v_minlen = __pyx_v_seqlen; goto __pyx_L3; } /*else*/ { /* "HTSeq/_HTSeq.pyx":736 * minlen = seqlen * else: * minlen = patlen # <<<<<<<<<<<<<< * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq */ __pyx_v_minlen = __pyx_v_patlen; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":737 * else: * minlen = patlen * cdef char * seq_cstr = self.seq # <<<<<<<<<<<<<< * cdef char * pat_cstr = pattern.seq * cdef int match = 0 */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_self->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_seq_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":738 * minlen = patlen * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq # <<<<<<<<<<<<<< * cdef int match = 0 * cdef int i, j */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_pattern->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_pat_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":739 * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq * cdef int match = 0 # <<<<<<<<<<<<<< * cdef int i, j * cdef int num_mismatches */ __pyx_v_match = 0; /* "HTSeq/_HTSeq.pyx":742 * cdef int i, j * cdef int num_mismatches * for i in xrange( 1, minlen+1 ): # <<<<<<<<<<<<<< * num_mismatches = 0 * for j in xrange( i ): */ __pyx_t_7 = (__pyx_v_minlen + 1); for (__pyx_t_8 = 1; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; /* "HTSeq/_HTSeq.pyx":743 * cdef int num_mismatches * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 # <<<<<<<<<<<<<< * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: */ __pyx_v_num_mismatches = 0; /* "HTSeq/_HTSeq.pyx":744 * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 * for j in xrange( i ): # <<<<<<<<<<<<<< * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * num_mismatches += 1 */ __pyx_t_9 = __pyx_v_i; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_j = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":745 * num_mismatches = 0 * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: # <<<<<<<<<<<<<< * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: */ __pyx_t_5 = ((__pyx_v_seq_cstr[((__pyx_v_seqlen - __pyx_v_i) + __pyx_v_j)]) != (__pyx_v_pat_cstr[__pyx_v_j])); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":746 * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * num_mismatches += 1 # <<<<<<<<<<<<<< * if num_mismatches > mismatch_prop * i: * break */ __pyx_v_num_mismatches = (__pyx_v_num_mismatches + 1); /* "HTSeq/_HTSeq.pyx":747 * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_v_num_mismatches > (__pyx_v_mismatch_prop * __pyx_v_i)); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":748 * num_mismatches += 1 * if num_mismatches > mismatch_prop * i: * break # <<<<<<<<<<<<<< * else: * match = i */ goto __pyx_L7_break; goto __pyx_L9; } __pyx_L9:; goto __pyx_L8; } __pyx_L8:; } /*else*/ { /* "HTSeq/_HTSeq.pyx":750 * break * else: * match = i # <<<<<<<<<<<<<< * return self[ 0 : seqlen-match ] * */ __pyx_v_match = __pyx_v_i; } __pyx_L7_break:; } /* "HTSeq/_HTSeq.pyx":751 * else: * match = i * return self[ 0 : seqlen-match ] # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self), 0, (__pyx_v_seqlen - __pyx_v_match)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5HTSeq_6_HTSeq_Sequence))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_right_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":729 * return self[ match : seqlen ] * * cpdef Sequence trim_right_end( Sequence self, Sequence pattern, float mismatch_prop = 0. ): # <<<<<<<<<<<<<< * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_9trim_right_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_9trim_right_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern = 0; float __pyx_v_mismatch_prop; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pattern,&__pyx_n_s__mismatch_prop,0}; __Pyx_RefNannySetupContext("trim_right_end"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pattern); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mismatch_prop); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "trim_right_end") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_pattern = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)values[0]); if (values[1]) { __pyx_v_mismatch_prop = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_mismatch_prop == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_mismatch_prop = ((float)0.); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("trim_right_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_right_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pattern), __pyx_ptype_5HTSeq_6_HTSeq_Sequence, 1, "pattern", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.mismatch_prop = __pyx_v_mismatch_prop; __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->__pyx_vtab)->trim_right_end(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self), __pyx_v_pattern, 1, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.trim_right_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":20 * * cdef class Sequence( object ): * cdef public bytes seq # <<<<<<<<<<<<<< * cdef public str name * cdef public str descr */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyBytes_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.seq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->seq = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":21 * cdef class Sequence( object ): * cdef public bytes seq * cdef public str name # <<<<<<<<<<<<<< * cdef public str descr * cpdef Sequence get_reverse_complement( self ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->name = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":22 * cdef public bytes seq * cdef public str name * cdef public str descr # <<<<<<<<<<<<<< * cpdef Sequence get_reverse_complement( self ) * cpdef object add_bases_to_count_array( Sequence self, numpy.ndarray count_array_ ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Sequence.descr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self)->descr = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":760 * """ * * def __init__( self, bytes seq, str name, bytes qualstr, str qualscale="phred" ): # <<<<<<<<<<<<<< * """ Construct a SequenceWithQuality object. * */ static int __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_21SequenceWithQualities___init__[] = " Construct a SequenceWithQuality object.\n \n seq - The actual sequence.\n name - The sequence name or ID\n qualstr - The quality string. Must have the same length as seq\n qualscale - The encoding scale of the quality string. Must be one of\n \"phred\", \"solexa\", \"solexa-old\", or \"noquals\" )\n "; struct wrapperbase __pyx_wrapperbase_5HTSeq_6_HTSeq_21SequenceWithQualities___init__; static int __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_seq = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_qualstr = 0; PyObject *__pyx_v_qualscale = 0; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__seq,&__pyx_n_s__name,&__pyx_n_s__qualstr,&__pyx_n_s__qualscale,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[4] = {0,0,0,0}; values[3] = ((PyObject*)__pyx_n_s__phred); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seq); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__qualstr); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__qualscale); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_seq = ((PyObject*)values[0]); __pyx_v_name = ((PyObject*)values[1]); __pyx_v_qualstr = ((PyObject*)values[2]); __pyx_v_qualscale = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_seq), (&PyBytes_Type), 1, "seq", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qualstr), (&PyBytes_Type), 1, "qualstr", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qualscale), (&PyString_Type), 1, "qualscale", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":769 * "phred", "solexa", "solexa-old", or "noquals" ) * """ * Sequence.__init__( self, seq, name ) # <<<<<<<<<<<<<< * if qualscale != "noquals": * if len( seq ) != len( qualstr ): */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_Sequence)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_seq)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_seq)); __Pyx_GIVEREF(((PyObject *)__pyx_v_seq)); __Pyx_INCREF(((PyObject *)__pyx_v_name)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_name)); __Pyx_GIVEREF(((PyObject *)__pyx_v_name)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":770 * """ * Sequence.__init__( self, seq, name ) * if qualscale != "noquals": # <<<<<<<<<<<<<< * if len( seq ) != len( qualstr ): * raise ValueError, "'seq' and 'qualstr' do not have the same length." */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_qualscale), ((PyObject *)__pyx_n_s__noquals), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":771 * Sequence.__init__( self, seq, name ) * if qualscale != "noquals": * if len( seq ) != len( qualstr ): # <<<<<<<<<<<<<< * raise ValueError, "'seq' and 'qualstr' do not have the same length." * self._qualstr = qualstr */ if (unlikely(((PyObject *)__pyx_v_seq) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_seq)); if (unlikely(((PyObject *)__pyx_v_qualstr) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_6 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_qualstr)); __pyx_t_4 = (__pyx_t_5 != __pyx_t_6); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":772 * if qualscale != "noquals": * if len( seq ) != len( qualstr ): * raise ValueError, "'seq' and 'qualstr' do not have the same length." # <<<<<<<<<<<<<< * self._qualstr = qualstr * else: */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_57), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":773 * if len( seq ) != len( qualstr ): * raise ValueError, "'seq' and 'qualstr' do not have the same length." * self._qualstr = qualstr # <<<<<<<<<<<<<< * else: * self._qualstr = b'' */ __Pyx_INCREF(((PyObject *)__pyx_v_qualstr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qualstr)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr = __pyx_v_qualstr; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":775 * self._qualstr = qualstr * else: * self._qualstr = b'' # <<<<<<<<<<<<<< * self._qualscale = qualscale * self._qualarr = None */ __Pyx_INCREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr = __pyx_kp_b_14; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":776 * else: * self._qualstr = b'' * self._qualscale = qualscale # <<<<<<<<<<<<<< * self._qualarr = None * self._qualstr_phred = b'' */ __Pyx_INCREF(((PyObject *)__pyx_v_qualscale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qualscale)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale = __pyx_v_qualscale; /* "HTSeq/_HTSeq.pyx":777 * self._qualstr = b'' * self._qualscale = qualscale * self._qualarr = None # <<<<<<<<<<<<<< * self._qualstr_phred = b'' * */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); __Pyx_DECREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr = Py_None; /* "HTSeq/_HTSeq.pyx":778 * self._qualscale = qualscale * self._qualarr = None * self._qualstr_phred = b'' # <<<<<<<<<<<<<< * * cdef _fill_qual_arr( SequenceWithQualities self ): */ __Pyx_INCREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred = __pyx_kp_b_14; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":780 * self._qualstr_phred = b'' * * cdef _fill_qual_arr( SequenceWithQualities self ): # <<<<<<<<<<<<<< * cdef int seq_len = len( self.seq ) * if self._qualscale == "missing": */ static PyObject *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities__fill_qual_arr(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_self) { int __pyx_v_seq_len; PyArrayObject *__pyx_v_qualarr = 0; int __pyx_v_i; char *__pyx_v_qualstr; Py_buffer __pyx_bstruct_qualarr; Py_ssize_t __pyx_bstride_0_qualarr = 0; Py_ssize_t __pyx_bshape_0_qualarr = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyArrayObject *__pyx_t_7 = NULL; char *__pyx_t_8; int __pyx_t_9; int __pyx_t_10; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; __pyx_t_5numpy_int_t __pyx_t_14; int __pyx_t_15; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_fill_qual_arr"); __pyx_bstruct_qualarr.buf = NULL; /* "HTSeq/_HTSeq.pyx":781 * * cdef _fill_qual_arr( SequenceWithQualities self ): * cdef int seq_len = len( self.seq ) # <<<<<<<<<<<<<< * if self._qualscale == "missing": * raise ValueError, "Quality string missing." */ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seq_len = __pyx_t_2; /* "HTSeq/_HTSeq.pyx":782 * cdef _fill_qual_arr( SequenceWithQualities self ): * cdef int seq_len = len( self.seq ) * if self._qualscale == "missing": # <<<<<<<<<<<<<< * raise ValueError, "Quality string missing." * if seq_len != len( self._qualstr ): */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->_qualscale), ((PyObject *)__pyx_n_s__missing), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":783 * cdef int seq_len = len( self.seq ) * if self._qualscale == "missing": * raise ValueError, "Quality string missing." # <<<<<<<<<<<<<< * if seq_len != len( self._qualstr ): * raise ValueError, "Quality string has not the same length as sequence." */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_58), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":784 * if self._qualscale == "missing": * raise ValueError, "Quality string missing." * if seq_len != len( self._qualstr ): # <<<<<<<<<<<<<< * raise ValueError, "Quality string has not the same length as sequence." * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qualarr = numpy.empty( ( seq_len, ), numpy.int ) */ __pyx_t_1 = ((PyObject *)__pyx_v_self->_qualstr); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_seq_len != __pyx_t_2); if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":785 * raise ValueError, "Quality string missing." * if seq_len != len( self._qualstr ): * raise ValueError, "Quality string has not the same length as sequence." # <<<<<<<<<<<<<< * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qualarr = numpy.empty( ( seq_len, ), numpy.int ) * cdef int i */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_59), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":786 * if seq_len != len( self._qualstr ): * raise ValueError, "Quality string has not the same length as sequence." * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qualarr = numpy.empty( ( seq_len, ), numpy.int ) # <<<<<<<<<<<<<< * cdef int i * cdef char * qualstr = self._qualstr */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_seq_len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_qualarr, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_qualarr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_qualarr.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_qualarr = __pyx_bstruct_qualarr.strides[0]; __pyx_bshape_0_qualarr = __pyx_bstruct_qualarr.shape[0]; } } __pyx_t_7 = 0; __pyx_v_qualarr = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":788 * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qualarr = numpy.empty( ( seq_len, ), numpy.int ) * cdef int i * cdef char * qualstr = self._qualstr # <<<<<<<<<<<<<< * if self._qualscale == "phred": * for i in xrange( seq_len ): */ __pyx_t_8 = PyBytes_AsString(((PyObject *)__pyx_v_self->_qualstr)); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_qualstr = __pyx_t_8; /* "HTSeq/_HTSeq.pyx":789 * cdef int i * cdef char * qualstr = self._qualstr * if self._qualscale == "phred": # <<<<<<<<<<<<<< * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 33 */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->_qualscale), ((PyObject *)__pyx_n_s__phred), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":790 * cdef char * qualstr = self._qualstr * if self._qualscale == "phred": * for i in xrange( seq_len ): # <<<<<<<<<<<<<< * qualarr[i] = qualstr[i] - 33 * elif self._qualscale == "solexa": */ __pyx_t_9 = __pyx_v_seq_len; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":791 * if self._qualscale == "phred": * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 33 # <<<<<<<<<<<<<< * elif self._qualscale == "solexa": * for i in xrange( seq_len ): */ __pyx_t_11 = __pyx_v_i; __pyx_t_12 = -1; if (__pyx_t_11 < 0) { __pyx_t_11 += __pyx_bshape_0_qualarr; if (unlikely(__pyx_t_11 < 0)) __pyx_t_12 = 0; } else if (unlikely(__pyx_t_11 >= __pyx_bshape_0_qualarr)) __pyx_t_12 = 0; if (unlikely(__pyx_t_12 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qualarr.buf, __pyx_t_11, __pyx_bstride_0_qualarr) = ((__pyx_v_qualstr[__pyx_v_i]) - 33); } goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":792 * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 33 * elif self._qualscale == "solexa": # <<<<<<<<<<<<<< * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 64 */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->_qualscale), ((PyObject *)__pyx_n_s__solexa), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":793 * qualarr[i] = qualstr[i] - 33 * elif self._qualscale == "solexa": * for i in xrange( seq_len ): # <<<<<<<<<<<<<< * qualarr[i] = qualstr[i] - 64 * elif self._qualscale == "solexa-old": */ __pyx_t_9 = __pyx_v_seq_len; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":794 * elif self._qualscale == "solexa": * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 64 # <<<<<<<<<<<<<< * elif self._qualscale == "solexa-old": * for i in xrange( seq_len ): */ __pyx_t_12 = __pyx_v_i; __pyx_t_13 = -1; if (__pyx_t_12 < 0) { __pyx_t_12 += __pyx_bshape_0_qualarr; if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_12 >= __pyx_bshape_0_qualarr)) __pyx_t_13 = 0; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qualarr.buf, __pyx_t_12, __pyx_bstride_0_qualarr) = ((__pyx_v_qualstr[__pyx_v_i]) - 64); } goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":795 * for i in xrange( seq_len ): * qualarr[i] = qualstr[i] - 64 * elif self._qualscale == "solexa-old": # <<<<<<<<<<<<<< * for i in xrange( seq_len ): * qualarr[i] = 10 * math.log10( 1 + 10 ** ( qualstr[i] - 64 ) / 10.0 ) */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_self->_qualscale), ((PyObject *)__pyx_kp_s_60), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":796 * qualarr[i] = qualstr[i] - 64 * elif self._qualscale == "solexa-old": * for i in xrange( seq_len ): # <<<<<<<<<<<<<< * qualarr[i] = 10 * math.log10( 1 + 10 ** ( qualstr[i] - 64 ) / 10.0 ) * else: */ __pyx_t_9 = __pyx_v_seq_len; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; /* "HTSeq/_HTSeq.pyx":797 * elif self._qualscale == "solexa-old": * for i in xrange( seq_len ): * qualarr[i] = 10 * math.log10( 1 + 10 ** ( qualstr[i] - 64 ) / 10.0 ) # <<<<<<<<<<<<<< * else: * raise ValueError, "Illegal quality scale '%s'." % self._qualscale */ __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__math); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log10); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyFloat_FromDouble((1.0 + (__Pyx_pow_long(10, ((__pyx_v_qualstr[__pyx_v_i]) - 64)) / 10.0))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_int_10, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_14 = __Pyx_PyInt_from_py_npy_long(__pyx_t_4); if (unlikely((__pyx_t_14 == (npy_long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_bshape_0_qualarr; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_bshape_0_qualarr)) __pyx_t_15 = 0; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qualarr.buf, __pyx_t_13, __pyx_bstride_0_qualarr) = __pyx_t_14; } goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":799 * qualarr[i] = 10 * math.log10( 1 + 10 ** ( qualstr[i] - 64 ) / 10.0 ) * else: * raise ValueError, "Illegal quality scale '%s'." % self._qualscale # <<<<<<<<<<<<<< * self._qualarr = qualarr * */ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_61), ((PyObject *)__pyx_v_self->_qualscale)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":800 * else: * raise ValueError, "Illegal quality scale '%s'." % self._qualscale * self._qualarr = qualarr # <<<<<<<<<<<<<< * * property qual: */ __Pyx_INCREF(((PyObject *)__pyx_v_qualarr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qualarr)); __Pyx_GOTREF(__pyx_v_self->_qualarr); __Pyx_DECREF(__pyx_v_self->_qualarr); __pyx_v_self->_qualarr = ((PyObject *)__pyx_v_qualarr); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qualarr); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities._fill_qual_arr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qualarr); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_qualarr); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":803 * * property qual: * def __get__( self ): # <<<<<<<<<<<<<< * if self._qualarr is None: * self._fill_qual_arr() */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":804 * property qual: * def __get__( self ): * if self._qualarr is None: # <<<<<<<<<<<<<< * self._fill_qual_arr() * return self._qualarr */ __pyx_t_1 = (((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr == Py_None); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":805 * def __get__( self ): * if self._qualarr is None: * self._fill_qual_arr() # <<<<<<<<<<<<<< * return self._qualarr * def __set__( self, newvalue ): */ __pyx_t_2 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->_fill_qual_arr(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":806 * if self._qualarr is None: * self._fill_qual_arr() * return self._qualarr # <<<<<<<<<<<<<< * def __set__( self, newvalue ): * if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.qual.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":807 * self._fill_qual_arr() * return self._qualarr * def __set__( self, newvalue ): # <<<<<<<<<<<<<< * if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : * raise TypeError, "qual can only be assigned a numpy array of type numpy.int" */ static int __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_newvalue); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_newvalue) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); /* "HTSeq/_HTSeq.pyx":808 * return self._qualarr * def __set__( self, newvalue ): * if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : # <<<<<<<<<<<<<< * raise TypeError, "qual can only be assigned a numpy array of type numpy.int" * if not ( newvalue.shape == ( len(self.seq), ) ) : */ __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_5numpy_ndarray)); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_newvalue, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { __pyx_t_1 = PyObject_GetAttr(__pyx_v_newvalue, __pyx_n_s__dtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__int); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_5; } else { __pyx_t_6 = __pyx_t_2; } __pyx_t_2 = (!__pyx_t_6); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":809 * def __set__( self, newvalue ): * if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : * raise TypeError, "qual can only be assigned a numpy array of type numpy.int" # <<<<<<<<<<<<<< * if not ( newvalue.shape == ( len(self.seq), ) ) : * raise TypeError, "assignment to qual with illegal shape" */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_62), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":810 * if not ( isinstance( newvalue, numpy.ndarray ) and newvalue.dtype == numpy.int ) : * raise TypeError, "qual can only be assigned a numpy array of type numpy.int" * if not ( newvalue.shape == ( len(self.seq), ) ) : # <<<<<<<<<<<<<< * raise TypeError, "assignment to qual with illegal shape" * self._qualarr = newvalue */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_newvalue, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.seq); __Pyx_INCREF(__pyx_t_4); if (unlikely(__pyx_t_4 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = PyBytes_GET_SIZE(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_t_1), Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = (!__pyx_t_2); if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":811 * raise TypeError, "qual can only be assigned a numpy array of type numpy.int" * if not ( newvalue.shape == ( len(self.seq), ) ) : * raise TypeError, "assignment to qual with illegal shape" # <<<<<<<<<<<<<< * self._qualarr = newvalue * self._qualstr = b"" */ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_63), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":812 * if not ( newvalue.shape == ( len(self.seq), ) ) : * raise TypeError, "assignment to qual with illegal shape" * self._qualarr = newvalue # <<<<<<<<<<<<<< * self._qualstr = b"" * self._qualscale = "none" */ __Pyx_INCREF(__pyx_v_newvalue); __Pyx_GIVEREF(__pyx_v_newvalue); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); __Pyx_DECREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr = __pyx_v_newvalue; /* "HTSeq/_HTSeq.pyx":813 * raise TypeError, "assignment to qual with illegal shape" * self._qualarr = newvalue * self._qualstr = b"" # <<<<<<<<<<<<<< * self._qualscale = "none" * self._qualstr_phred = b"" */ __Pyx_INCREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr = __pyx_kp_b_14; /* "HTSeq/_HTSeq.pyx":814 * self._qualarr = newvalue * self._qualstr = b"" * self._qualscale = "none" # <<<<<<<<<<<<<< * self._qualstr_phred = b"" * */ __Pyx_INCREF(((PyObject *)__pyx_n_s__none)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__none)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale = __pyx_n_s__none; /* "HTSeq/_HTSeq.pyx":815 * self._qualstr = b"" * self._qualscale = "none" * self._qualstr_phred = b"" # <<<<<<<<<<<<<< * * def __repr__( self ): */ __Pyx_INCREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_14)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred = __pyx_kp_b_14; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.qual.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":817 * self._qualstr_phred = b"" * * def __repr__( self ): # <<<<<<<<<<<<<< * return "<%s object '%s'>" % ( self.__class__.__name__, self.name ) * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":818 * * def __repr__( self ): * return "<%s object '%s'>" % ( self.__class__.__name__, self.name ) # <<<<<<<<<<<<<< * * def __getitem__( self, item ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_64), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":820 * return "<%s object '%s'>" % ( self.__class__.__name__, self.name ) * * def __getitem__( self, item ): # <<<<<<<<<<<<<< * if self.name.endswith( "[part]" ): * new_name = self.name */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_v_new_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__"); /* "HTSeq/_HTSeq.pyx":821 * * def __getitem__( self, item ): * if self.name.endswith( "[part]" ): # <<<<<<<<<<<<<< * new_name = self.name * else: */ if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "endswith"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = __Pyx_PyStr_Tailmatch(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name), ((PyObject *)__pyx_kp_s_49), 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":822 * def __getitem__( self, item ): * if self.name.endswith( "[part]" ): * new_name = self.name # <<<<<<<<<<<<<< * else: * new_name = self.name + "[part]" */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); __pyx_v_new_name = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name); goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":824 * new_name = self.name * else: * new_name = self.name + "[part]" # <<<<<<<<<<<<<< * return SequenceWithQualities( * self.seq[ item ], new_name, self.qualstr[ item ] ) */ __pyx_t_2 = PyNumber_Add(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name), ((PyObject *)__pyx_kp_s_49)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __pyx_v_new_name = ((PyObject *)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":825 * else: * new_name = self.name + "[part]" * return SequenceWithQualities( # <<<<<<<<<<<<<< * self.seq[ item ], new_name, self.qualstr[ item ] ) * */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":826 * new_name = self.name + "[part]" * return SequenceWithQualities( * self.seq[ item ], new_name, self.qualstr[ item ] ) # <<<<<<<<<<<<<< * * @property */ __pyx_t_2 = PyObject_GetItem(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.seq), __pyx_v_item); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__qualstr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_v_item); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_new_name); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_new_name); __Pyx_GIVEREF(__pyx_v_new_name); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_new_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":829 * * @property * def qualstr( self ): # <<<<<<<<<<<<<< * cdef int seqlen * cdef char * qualstr_phred_cstr = self._qualstr_phred */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_3qualstr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_3qualstr(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { int __pyx_v_seqlen; char *__pyx_v_qualstr_phred_cstr; int __pyx_v_i; PyArrayObject *__pyx_v_qual_array = 0; Py_buffer __pyx_bstruct_qual_array; Py_ssize_t __pyx_bstride_0_qual_array = 0; Py_ssize_t __pyx_bshape_0_qual_array = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyArrayObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("qualstr"); __pyx_bstruct_qual_array.buf = NULL; /* "HTSeq/_HTSeq.pyx":831 * def qualstr( self ): * cdef int seqlen * cdef char * qualstr_phred_cstr = self._qualstr_phred # <<<<<<<<<<<<<< * cdef int i * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array */ __pyx_t_1 = PyBytes_AsString(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_qualstr_phred_cstr = __pyx_t_1; /* "HTSeq/_HTSeq.pyx":834 * cdef int i * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array * if qualstr_phred_cstr[0] == 0: # <<<<<<<<<<<<<< * if self._qualscale == "noquals": * raise ValueError, "Quality string missing" */ __pyx_t_2 = ((__pyx_v_qualstr_phred_cstr[0]) == 0); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":835 * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array * if qualstr_phred_cstr[0] == 0: * if self._qualscale == "noquals": # <<<<<<<<<<<<<< * raise ValueError, "Quality string missing" * if self._qualscale == "phred": */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale), ((PyObject *)__pyx_n_s__noquals), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":836 * if qualstr_phred_cstr[0] == 0: * if self._qualscale == "noquals": * raise ValueError, "Quality string missing" # <<<<<<<<<<<<<< * if self._qualscale == "phred": * self._qualstr_phred = self._qualstr */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_65), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":837 * if self._qualscale == "noquals": * raise ValueError, "Quality string missing" * if self._qualscale == "phred": # <<<<<<<<<<<<<< * self._qualstr_phred = self._qualstr * else: */ __pyx_t_2 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale), ((PyObject *)__pyx_n_s__phred), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":838 * raise ValueError, "Quality string missing" * if self._qualscale == "phred": * self._qualstr_phred = self._qualstr # <<<<<<<<<<<<<< * else: * seqlen = len( self.seq ) */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":840 * self._qualstr_phred = self._qualstr * else: * seqlen = len( self.seq ) # <<<<<<<<<<<<<< * self._qualstr_phred = (' ') * seqlen * qualstr_phred_cstr = self._qualstr_phred */ __pyx_t_3 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.seq); __Pyx_INCREF(__pyx_t_3); if (unlikely(__pyx_t_3 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_seqlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":841 * else: * seqlen = len( self.seq ) * self._qualstr_phred = (' ') * seqlen # <<<<<<<<<<<<<< * qualstr_phred_cstr = self._qualstr_phred * if self._qualarr is None: */ __pyx_t_3 = PyInt_FromLong(__pyx_v_seqlen); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Multiply(((PyObject *)__pyx_kp_s_66), __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred = __pyx_t_5; __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":842 * seqlen = len( self.seq ) * self._qualstr_phred = (' ') * seqlen * qualstr_phred_cstr = self._qualstr_phred # <<<<<<<<<<<<<< * if self._qualarr is None: * self._fill_qual_arr() */ __pyx_t_1 = PyBytes_AsString(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_qualstr_phred_cstr = __pyx_t_1; /* "HTSeq/_HTSeq.pyx":843 * self._qualstr_phred = (' ') * seqlen * qualstr_phred_cstr = self._qualstr_phred * if self._qualarr is None: # <<<<<<<<<<<<<< * self._fill_qual_arr() * qual_array = self._qualarr */ __pyx_t_2 = (((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr == Py_None); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":844 * qualstr_phred_cstr = self._qualstr_phred * if self._qualarr is None: * self._fill_qual_arr() # <<<<<<<<<<<<<< * qual_array = self._qualarr * for i in xrange( seqlen ): */ __pyx_t_5 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->_fill_qual_arr(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L8; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":845 * if self._qualarr is None: * self._fill_qual_arr() * qual_array = self._qualarr # <<<<<<<<<<<<<< * for i in xrange( seqlen ): * qualstr_phred_cstr[i] = 33 + qual_array[i] */ if (!(likely(((((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_6 = ((PyArrayObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_qual_array, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_qual_array, (PyObject*)__pyx_v_qual_array, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } } __pyx_bstride_0_qual_array = __pyx_bstruct_qual_array.strides[0]; __pyx_bshape_0_qual_array = __pyx_bstruct_qual_array.shape[0]; if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_6 = 0; __Pyx_INCREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); __pyx_v_qual_array = ((PyArrayObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); /* "HTSeq/_HTSeq.pyx":846 * self._fill_qual_arr() * qual_array = self._qualarr * for i in xrange( seqlen ): # <<<<<<<<<<<<<< * qualstr_phred_cstr[i] = 33 + qual_array[i] * return self._qualstr_phred */ __pyx_t_7 = __pyx_v_seqlen; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_7; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "HTSeq/_HTSeq.pyx":847 * qual_array = self._qualarr * for i in xrange( seqlen ): * qualstr_phred_cstr[i] = 33 + qual_array[i] # <<<<<<<<<<<<<< * return self._qualstr_phred * */ __pyx_t_12 = __pyx_v_i; __pyx_t_13 = -1; if (__pyx_t_12 < 0) { __pyx_t_12 += __pyx_bshape_0_qual_array; if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_12 >= __pyx_bshape_0_qual_array)) __pyx_t_13 = 0; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } (__pyx_v_qualstr_phred_cstr[__pyx_v_i]) = (33 + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qual_array.buf, __pyx_t_12, __pyx_bstride_0_qual_array))); } } __pyx_L7:; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":848 * for i in xrange( seqlen ): * qualstr_phred_cstr[i] = 33 + qual_array[i] * return self._qualstr_phred # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.qualstr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_qual_array); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":851 * * * def write_to_fastq_file( self, fastq_file ): # <<<<<<<<<<<<<< * if hasattr( self, "descr" ) and self.descr is not None: * fastq_file.write( "@%s %s\n" % ( self.name, self.descr ) ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4write_to_fastq_file(PyObject *__pyx_v_self, PyObject *__pyx_v_fastq_file); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4write_to_fastq_file(PyObject *__pyx_v_self, PyObject *__pyx_v_fastq_file) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("write_to_fastq_file"); /* "HTSeq/_HTSeq.pyx":852 * * def write_to_fastq_file( self, fastq_file ): * if hasattr( self, "descr" ) and self.descr is not None: # <<<<<<<<<<<<<< * fastq_file.write( "@%s %s\n" % ( self.name, self.descr ) ) * else: */ __pyx_t_1 = ((PyObject *)__pyx_n_s__descr); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_HasAttr(__pyx_v_self, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { __pyx_t_3 = (((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.descr != ((PyObject*)Py_None)); __pyx_t_4 = __pyx_t_3; } else { __pyx_t_4 = __pyx_t_2; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":853 * def write_to_fastq_file( self, fastq_file ): * if hasattr( self, "descr" ) and self.descr is not None: * fastq_file.write( "@%s %s\n" % ( self.name, self.descr ) ) # <<<<<<<<<<<<<< * else: * fastq_file.write( "@%s\n" % self.name ) */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_fastq_file, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.descr)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.descr)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.descr)); __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_67), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_6)); __Pyx_GIVEREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":855 * fastq_file.write( "@%s %s\n" % ( self.name, self.descr ) ) * else: * fastq_file.write( "@%s\n" % self.name ) # <<<<<<<<<<<<<< * fastq_file.write( self.seq + "\n" ) * fastq_file.write( "+\n" ) */ __pyx_t_6 = PyObject_GetAttr(__pyx_v_fastq_file, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_68), ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.name)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":856 * else: * fastq_file.write( "@%s\n" % self.name ) * fastq_file.write( self.seq + "\n" ) # <<<<<<<<<<<<<< * fastq_file.write( "+\n" ) * fastq_file.write( self.qualstr + "\n" ) */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_fastq_file, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Add(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.seq), ((PyObject *)__pyx_kp_s_52)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":857 * fastq_file.write( "@%s\n" % self.name ) * fastq_file.write( self.seq + "\n" ) * fastq_file.write( "+\n" ) # <<<<<<<<<<<<<< * fastq_file.write( self.qualstr + "\n" ) * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_fastq_file, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_70), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":858 * fastq_file.write( self.seq + "\n" ) * fastq_file.write( "+\n" ) * fastq_file.write( self.qualstr + "\n" ) # <<<<<<<<<<<<<< * * def get_fastq_str( self, bint convert_to_phred=False ): */ __pyx_t_6 = PyObject_GetAttr(__pyx_v_fastq_file, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__qualstr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Add(__pyx_t_1, ((PyObject *)__pyx_kp_s_52)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.write_to_fastq_file", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":860 * fastq_file.write( self.qualstr + "\n" ) * * def get_fastq_str( self, bint convert_to_phred=False ): # <<<<<<<<<<<<<< * sio = cStringIO.StringIO() * self.write_to_fastq_file( sio, convert_to_phred ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_5get_fastq_str(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_5get_fastq_str(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_convert_to_phred; PyObject *__pyx_v_sio = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__convert_to_phred,0}; __Pyx_RefNannySetupContext("get_fastq_str"); { PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__convert_to_phred); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "get_fastq_str") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_convert_to_phred = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_convert_to_phred == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_convert_to_phred = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_fastq_str", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.get_fastq_str", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":861 * * def get_fastq_str( self, bint convert_to_phred=False ): * sio = cStringIO.StringIO() # <<<<<<<<<<<<<< * self.write_to_fastq_file( sio, convert_to_phred ) * return sio.getvalue() */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__cStringIO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_sio = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":862 * def get_fastq_str( self, bint convert_to_phred=False ): * sio = cStringIO.StringIO() * self.write_to_fastq_file( sio, convert_to_phred ) # <<<<<<<<<<<<<< * return sio.getvalue() * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__write_to_fastq_file); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_convert_to_phred); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(__pyx_v_sio); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_sio); __Pyx_GIVEREF(__pyx_v_sio); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":863 * sio = cStringIO.StringIO() * self.write_to_fastq_file( sio, convert_to_phred ) * return sio.getvalue() # <<<<<<<<<<<<<< * * cpdef SequenceWithQualities get_reverse_complement( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyObject_GetAttr(__pyx_v_sio, __pyx_n_s__getvalue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.get_fastq_str", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_sio); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":865 * return sio.getvalue() * * cpdef SequenceWithQualities get_reverse_complement( self ): # <<<<<<<<<<<<<< * cdef SequenceWithQualities res * res = SequenceWithQualities( */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_6get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_get_reverse_complement(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, int __pyx_skip_dispatch) { struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_res = 0; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_reverse_complement"); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_47); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_6get_reverse_complement)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":868 * cdef SequenceWithQualities res * res = SequenceWithQualities( * reverse_complement( self.seq ), # <<<<<<<<<<<<<< * "revcomp_of_" + self.name, * self._qualstr[::-1], */ __pyx_t_1 = ((PyObject *)__pyx_v_self->seq); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_reverse_complement(((PyObject*)__pyx_t_1), 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":869 * res = SequenceWithQualities( * reverse_complement( self.seq ), * "revcomp_of_" + self.name, # <<<<<<<<<<<<<< * self._qualstr[::-1], * self._qualscale ) */ __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_n_s__revcomp_of_), ((PyObject *)__pyx_v_self->name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); /* "HTSeq/_HTSeq.pyx":870 * reverse_complement( self.seq ), * "revcomp_of_" + self.name, * self._qualstr[::-1], # <<<<<<<<<<<<<< * self._qualscale ) * if self._qualarr is not None: */ __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___qualstr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_k_slice_71); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":871 * "revcomp_of_" + self.name, * self._qualstr[::-1], * self._qualscale ) # <<<<<<<<<<<<<< * if self._qualarr is not None: * res._qualarr = self._qualarr[::-1] */ __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___qualscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_v_res = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":872 * self._qualstr[::-1], * self._qualscale ) * if self._qualarr is not None: # <<<<<<<<<<<<<< * res._qualarr = self._qualarr[::-1] * return res */ __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___qualarr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = (__pyx_t_3 != Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { /* "HTSeq/_HTSeq.pyx":873 * self._qualscale ) * if self._qualarr is not None: * res._qualarr = self._qualarr[::-1] # <<<<<<<<<<<<<< * return res * */ __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___qualarr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_GetItem(__pyx_t_3, __pyx_k_slice_72); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_res->_qualarr); __Pyx_DECREF(__pyx_v_res->_qualarr); __pyx_v_res->_qualarr = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":874 * if self._qualarr is not None: * res._qualarr = self._qualarr[::-1] * return res # <<<<<<<<<<<<<< * * cpdef object add_qual_to_count_array( SequenceWithQualities self, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_res)); __pyx_r = __pyx_v_res; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.get_reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_res); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":865 * return sio.getvalue() * * cpdef SequenceWithQualities get_reverse_complement( self ): # <<<<<<<<<<<<<< * cdef SequenceWithQualities res * res = SequenceWithQualities( */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_6get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_6get_reverse_complement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_reverse_complement"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->get_reverse_complement(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)__pyx_v_self), 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.get_reverse_complement", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_get_reverse_complement__pyx_wrap_1(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_self, int __pyx_skip_dispatch) { return __pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_get_reverse_complement(__pyx_v_self, __pyx_skip_dispatch); } /* "HTSeq/_HTSeq.pyx":876 * return res * * cpdef object add_qual_to_count_array( SequenceWithQualities self, # <<<<<<<<<<<<<< * numpy.ndarray count_array_ ): * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_7add_qual_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_add_qual_to_count_array(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_self, PyArrayObject *__pyx_v_count_array_, int __pyx_skip_dispatch) { PyArrayObject *__pyx_v_count_array = 0; PyArrayObject *__pyx_v_qual_array = 0; npy_intp __pyx_v_seq_length; npy_intp __pyx_v_qual_size; npy_intp __pyx_v_i; npy_int __pyx_v_q; Py_buffer __pyx_bstruct_count_array; Py_ssize_t __pyx_bstride_0_count_array = 0; Py_ssize_t __pyx_bstride_1_count_array = 0; Py_ssize_t __pyx_bshape_0_count_array = 0; Py_ssize_t __pyx_bshape_1_count_array = 0; Py_buffer __pyx_bstruct_qual_array; Py_ssize_t __pyx_bstride_0_qual_array = 0; Py_ssize_t __pyx_bshape_0_qual_array = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyArrayObject *__pyx_t_5 = NULL; npy_intp __pyx_t_6; npy_intp __pyx_t_7; npy_intp __pyx_t_8; int __pyx_t_9; npy_intp __pyx_t_10; npy_int __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_qual_to_count_array"); __pyx_bstruct_count_array.buf = NULL; __pyx_bstruct_qual_array.buf = NULL; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_7add_qual_to_count_array)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_count_array_)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_count_array_)); __Pyx_GIVEREF(((PyObject *)__pyx_v_count_array_)); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":879 * numpy.ndarray count_array_ ): * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ # <<<<<<<<<<<<<< * if self._qualarr is None: * self._fill_qual_arr() */ { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_count_array, (PyObject*)((PyArrayObject *)__pyx_v_count_array_), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_count_array = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_count_array.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_count_array = __pyx_bstruct_count_array.strides[0]; __pyx_bstride_1_count_array = __pyx_bstruct_count_array.strides[1]; __pyx_bshape_0_count_array = __pyx_bstruct_count_array.shape[0]; __pyx_bshape_1_count_array = __pyx_bstruct_count_array.shape[1]; } } __Pyx_INCREF(((PyObject *)__pyx_v_count_array_)); __pyx_v_count_array = ((PyArrayObject *)__pyx_v_count_array_); /* "HTSeq/_HTSeq.pyx":880 * * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ * if self._qualarr is None: # <<<<<<<<<<<<<< * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr */ __pyx_t_4 = (__pyx_v_self->_qualarr == Py_None); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":881 * cdef numpy.ndarray[ numpy.int_t, ndim=2 ] count_array = count_array_ * if self._qualarr is None: * self._fill_qual_arr() # <<<<<<<<<<<<<< * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * */ __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self->__pyx_base.__pyx_vtab)->_fill_qual_arr(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":882 * if self._qualarr is None: * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr # <<<<<<<<<<<<<< * * cdef numpy.npy_intp seq_length = numpy.PyArray_DIMS( qual_array )[0] */ if (!(likely(((__pyx_v_self->_qualarr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self->_qualarr, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_5 = ((PyArrayObject *)__pyx_v_self->_qualarr); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_qual_array, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_qual_array = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_qual_array.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_qual_array = __pyx_bstruct_qual_array.strides[0]; __pyx_bshape_0_qual_array = __pyx_bstruct_qual_array.shape[0]; } } __pyx_t_5 = 0; __Pyx_INCREF(__pyx_v_self->_qualarr); __pyx_v_qual_array = ((PyArrayObject *)__pyx_v_self->_qualarr); /* "HTSeq/_HTSeq.pyx":884 * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * * cdef numpy.npy_intp seq_length = numpy.PyArray_DIMS( qual_array )[0] # <<<<<<<<<<<<<< * cdef numpy.npy_intp qual_size = numpy.PyArray_DIMS( count_array )[1] * */ __pyx_v_seq_length = (PyArray_DIMS(((PyArrayObject *)__pyx_v_qual_array))[0]); /* "HTSeq/_HTSeq.pyx":885 * * cdef numpy.npy_intp seq_length = numpy.PyArray_DIMS( qual_array )[0] * cdef numpy.npy_intp qual_size = numpy.PyArray_DIMS( count_array )[1] # <<<<<<<<<<<<<< * * if seq_length > numpy.PyArray_DIMS( count_array )[0]: */ __pyx_v_qual_size = (PyArray_DIMS(((PyArrayObject *)__pyx_v_count_array))[1]); /* "HTSeq/_HTSeq.pyx":887 * cdef numpy.npy_intp qual_size = numpy.PyArray_DIMS( count_array )[1] * * if seq_length > numpy.PyArray_DIMS( count_array )[0]: # <<<<<<<<<<<<<< * raise ValueError, "'count_array' too small for sequence." * */ __pyx_t_4 = (__pyx_v_seq_length > (PyArray_DIMS(((PyArrayObject *)__pyx_v_count_array))[0])); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":888 * * if seq_length > numpy.PyArray_DIMS( count_array )[0]: * raise ValueError, "'count_array' too small for sequence." # <<<<<<<<<<<<<< * * cdef numpy.npy_intp i */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_54), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":892 * cdef numpy.npy_intp i * cdef numpy.npy_int q * for i in xrange( seq_length ): # <<<<<<<<<<<<<< * q = qual_array[i] * if( q >= qual_size ): */ __pyx_t_6 = __pyx_v_seq_length; for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { __pyx_v_i = __pyx_t_7; /* "HTSeq/_HTSeq.pyx":893 * cdef numpy.npy_int q * for i in xrange( seq_length ): * q = qual_array[i] # <<<<<<<<<<<<<< * if( q >= qual_size ): * raise ValueError, "Too large quality value encountered." */ __pyx_t_8 = __pyx_v_i; __pyx_t_9 = -1; if (__pyx_t_8 < 0) { __pyx_t_8 += __pyx_bshape_0_qual_array; if (unlikely(__pyx_t_8 < 0)) __pyx_t_9 = 0; } else if (unlikely(__pyx_t_8 >= __pyx_bshape_0_qual_array)) __pyx_t_9 = 0; if (unlikely(__pyx_t_9 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_q = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qual_array.buf, __pyx_t_8, __pyx_bstride_0_qual_array)); /* "HTSeq/_HTSeq.pyx":894 * for i in xrange( seq_length ): * q = qual_array[i] * if( q >= qual_size ): # <<<<<<<<<<<<<< * raise ValueError, "Too large quality value encountered." * count_array[ i, q ] += 1 */ __pyx_t_4 = (__pyx_v_q >= __pyx_v_qual_size); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":895 * q = qual_array[i] * if( q >= qual_size ): * raise ValueError, "Too large quality value encountered." # <<<<<<<<<<<<<< * count_array[ i, q ] += 1 * */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_74), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":896 * if( q >= qual_size ): * raise ValueError, "Too large quality value encountered." * count_array[ i, q ] += 1 # <<<<<<<<<<<<<< * * return None */ __pyx_t_10 = __pyx_v_i; __pyx_t_11 = __pyx_v_q; __pyx_t_9 = -1; if (__pyx_t_10 < 0) { __pyx_t_10 += __pyx_bshape_0_count_array; if (unlikely(__pyx_t_10 < 0)) __pyx_t_9 = 0; } else if (unlikely(__pyx_t_10 >= __pyx_bshape_0_count_array)) __pyx_t_9 = 0; if (__pyx_t_11 < 0) { __pyx_t_11 += __pyx_bshape_1_count_array; if (unlikely(__pyx_t_11 < 0)) __pyx_t_9 = 1; } else if (unlikely(__pyx_t_11 >= __pyx_bshape_1_count_array)) __pyx_t_9 = 1; if (unlikely(__pyx_t_9 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_count_array.buf, __pyx_t_10, __pyx_bstride_0_count_array, __pyx_t_11, __pyx_bstride_1_count_array) += 1; } /* "HTSeq/_HTSeq.pyx":898 * count_array[ i, q ] += 1 * * return None # <<<<<<<<<<<<<< * * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_count_array); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.add_qual_to_count_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_count_array); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_count_array); __Pyx_XDECREF((PyObject *)__pyx_v_qual_array); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":876 * return res * * cpdef object add_qual_to_count_array( SequenceWithQualities self, # <<<<<<<<<<<<<< * numpy.ndarray count_array_ ): * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_7add_qual_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_7add_qual_to_count_array(PyObject *__pyx_v_self, PyObject *__pyx_v_count_array_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_qual_to_count_array"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_count_array_), __pyx_ptype_5numpy_ndarray, 1, "count_array_", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->add_qual_to_count_array(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self), ((PyArrayObject *)__pyx_v_count_array_), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.add_qual_to_count_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":900 * return None * * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8trim_left_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals *__pyx_optional_args) { int __pyx_v_max_mm_qual = ((int)5); int __pyx_v_seqlen; int __pyx_v_patlen; int __pyx_v_minlen; char *__pyx_v_seq_cstr; char *__pyx_v_pat_cstr; int __pyx_v_match; int __pyx_v_i; int __pyx_v_j; int __pyx_v_sum_mm_qual; PyArrayObject *__pyx_v_qual_array = 0; long __pyx_v_num_mismatches; Py_buffer __pyx_bstruct_qual_array; Py_ssize_t __pyx_bstride_0_qual_array = 0; Py_ssize_t __pyx_bshape_0_qual_array = 0; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; int __pyx_t_5; char *__pyx_t_6; PyArrayObject *__pyx_t_7 = NULL; long __pyx_t_8; int __pyx_t_9; int __pyx_t_10; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trim_left_end_with_quals"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_max_mm_qual = __pyx_optional_args->max_mm_qual; } } __pyx_bstruct_qual_array.buf = NULL; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_75); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8trim_left_end_with_quals)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyInt_FromLong(__pyx_v_max_mm_qual); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_pattern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":902 * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) # <<<<<<<<<<<<<< * cdef int patlen = len( pattern.seq ) * cdef int minlen */ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seqlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":903 * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) # <<<<<<<<<<<<<< * cdef int minlen * if seqlen < patlen: */ __pyx_t_1 = ((PyObject *)__pyx_v_pattern->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_patlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":905 * cdef int patlen = len( pattern.seq ) * cdef int minlen * if seqlen < patlen: # <<<<<<<<<<<<<< * minlen = seqlen * else: */ __pyx_t_5 = (__pyx_v_seqlen < __pyx_v_patlen); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":906 * cdef int minlen * if seqlen < patlen: * minlen = seqlen # <<<<<<<<<<<<<< * else: * minlen = patlen */ __pyx_v_minlen = __pyx_v_seqlen; goto __pyx_L3; } /*else*/ { /* "HTSeq/_HTSeq.pyx":908 * minlen = seqlen * else: * minlen = patlen # <<<<<<<<<<<<<< * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq */ __pyx_v_minlen = __pyx_v_patlen; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":909 * else: * minlen = patlen * cdef char * seq_cstr = self.seq # <<<<<<<<<<<<<< * cdef char * pat_cstr = pattern.seq * cdef int match = 0 */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_self->__pyx_base.seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_seq_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":910 * minlen = patlen * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq # <<<<<<<<<<<<<< * cdef int match = 0 * cdef int i, j */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_pattern->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_pat_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":911 * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq * cdef int match = 0 # <<<<<<<<<<<<<< * cdef int i, j * cdef int sum_mm_qual */ __pyx_v_match = 0; /* "HTSeq/_HTSeq.pyx":914 * cdef int i, j * cdef int sum_mm_qual * if self._qualarr is None: # <<<<<<<<<<<<<< * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr */ __pyx_t_5 = (__pyx_v_self->_qualarr == Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":915 * cdef int sum_mm_qual * if self._qualarr is None: * self._fill_qual_arr() # <<<<<<<<<<<<<< * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): */ __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self->__pyx_base.__pyx_vtab)->_fill_qual_arr(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":916 * if self._qualarr is None: * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr # <<<<<<<<<<<<<< * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 */ if (!(likely(((__pyx_v_self->_qualarr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self->_qualarr, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_v_self->_qualarr); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_qual_array, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_qual_array = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_qual_array.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_qual_array = __pyx_bstruct_qual_array.strides[0]; __pyx_bshape_0_qual_array = __pyx_bstruct_qual_array.shape[0]; } } __pyx_t_7 = 0; __Pyx_INCREF(__pyx_v_self->_qualarr); __pyx_v_qual_array = ((PyArrayObject *)__pyx_v_self->_qualarr); /* "HTSeq/_HTSeq.pyx":917 * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): # <<<<<<<<<<<<<< * num_mismatches = 0 * for j in xrange( i ): */ __pyx_t_8 = (__pyx_v_minlen + 1); for (__pyx_t_9 = 1; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* "HTSeq/_HTSeq.pyx":918 * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 # <<<<<<<<<<<<<< * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: */ __pyx_v_num_mismatches = 0; /* "HTSeq/_HTSeq.pyx":919 * for i in xrange( 1, minlen+1 ): * num_mismatches = 0 * for j in xrange( i ): # <<<<<<<<<<<<<< * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * sum_mm_qual += qual_array[ j ] */ __pyx_t_10 = __pyx_v_i; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_j = __pyx_t_11; /* "HTSeq/_HTSeq.pyx":920 * num_mismatches = 0 * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: # <<<<<<<<<<<<<< * sum_mm_qual += qual_array[ j ] * if sum_mm_qual > max_mm_qual: */ __pyx_t_5 = ((__pyx_v_seq_cstr[__pyx_v_j]) != (__pyx_v_pat_cstr[((__pyx_v_patlen - __pyx_v_i) + __pyx_v_j)])); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":921 * for j in xrange( i ): * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * sum_mm_qual += qual_array[ j ] # <<<<<<<<<<<<<< * if sum_mm_qual > max_mm_qual: * break */ __pyx_t_12 = __pyx_v_j; __pyx_t_13 = -1; if (__pyx_t_12 < 0) { __pyx_t_12 += __pyx_bshape_0_qual_array; if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_12 >= __pyx_bshape_0_qual_array)) __pyx_t_13 = 0; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sum_mm_qual = (__pyx_v_sum_mm_qual + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qual_array.buf, __pyx_t_12, __pyx_bstride_0_qual_array))); /* "HTSeq/_HTSeq.pyx":922 * if seq_cstr[ j ] != pat_cstr[ patlen - i + j ]: * sum_mm_qual += qual_array[ j ] * if sum_mm_qual > max_mm_qual: # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_v_sum_mm_qual > __pyx_v_max_mm_qual); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":923 * sum_mm_qual += qual_array[ j ] * if sum_mm_qual > max_mm_qual: * break # <<<<<<<<<<<<<< * else: * match = i */ goto __pyx_L8_break; goto __pyx_L10; } __pyx_L10:; goto __pyx_L9; } __pyx_L9:; } /*else*/ { /* "HTSeq/_HTSeq.pyx":925 * break * else: * match = i # <<<<<<<<<<<<<< * return self[ match : seqlen ] * */ __pyx_v_match = __pyx_v_i; } __pyx_L8_break:; } /* "HTSeq/_HTSeq.pyx":926 * else: * match = i * return self[ match : seqlen ] # <<<<<<<<<<<<<< * * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self), __pyx_v_match, __pyx_v_seqlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_left_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_qual_array); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":900 * return None * * cpdef SequenceWithQualities trim_left_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8trim_left_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8trim_left_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern = 0; int __pyx_v_max_mm_qual; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pattern,&__pyx_n_s__max_mm_qual,0}; __Pyx_RefNannySetupContext("trim_left_end_with_quals"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pattern); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_mm_qual); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "trim_left_end_with_quals") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_pattern = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)values[0]); if (values[1]) { __pyx_v_max_mm_qual = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_max_mm_qual == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_max_mm_qual = ((int)5); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("trim_left_end_with_quals", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_left_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pattern), __pyx_ptype_5HTSeq_6_HTSeq_Sequence, 1, "pattern", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.max_mm_qual = __pyx_v_max_mm_qual; __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->trim_left_end_with_quals(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self), __pyx_v_pattern, 1, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_left_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":928 * return self[ match : seqlen ] * * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_9trim_right_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_self, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals *__pyx_optional_args) { int __pyx_v_max_mm_qual = ((int)5); int __pyx_v_seqlen; int __pyx_v_patlen; int __pyx_v_minlen; char *__pyx_v_seq_cstr; char *__pyx_v_pat_cstr; int __pyx_v_match; int __pyx_v_i; int __pyx_v_j; int __pyx_v_sum_mm_qual; PyArrayObject *__pyx_v_qual_array = 0; Py_buffer __pyx_bstruct_qual_array; Py_ssize_t __pyx_bstride_0_qual_array = 0; Py_ssize_t __pyx_bshape_0_qual_array = 0; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; int __pyx_t_5; char *__pyx_t_6; PyArrayObject *__pyx_t_7 = NULL; long __pyx_t_8; int __pyx_t_9; int __pyx_t_10; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trim_right_end_with_quals"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_max_mm_qual = __pyx_optional_args->max_mm_qual; } } __pyx_bstruct_qual_array.buf = NULL; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_76); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_9trim_right_end_with_quals)) { __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = PyInt_FromLong(__pyx_v_max_mm_qual); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_pattern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pattern)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "HTSeq/_HTSeq.pyx":930 * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) # <<<<<<<<<<<<<< * cdef int patlen = len( pattern.seq ) * cdef int minlen */ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_seqlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":931 * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) * cdef int patlen = len( pattern.seq ) # <<<<<<<<<<<<<< * cdef int minlen * if seqlen < patlen: */ __pyx_t_1 = ((PyObject *)__pyx_v_pattern->seq); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyBytes_GET_SIZE(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_patlen = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":933 * cdef int patlen = len( pattern.seq ) * cdef int minlen * if seqlen < patlen: # <<<<<<<<<<<<<< * minlen = seqlen * else: */ __pyx_t_5 = (__pyx_v_seqlen < __pyx_v_patlen); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":934 * cdef int minlen * if seqlen < patlen: * minlen = seqlen # <<<<<<<<<<<<<< * else: * minlen = patlen */ __pyx_v_minlen = __pyx_v_seqlen; goto __pyx_L3; } /*else*/ { /* "HTSeq/_HTSeq.pyx":936 * minlen = seqlen * else: * minlen = patlen # <<<<<<<<<<<<<< * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq */ __pyx_v_minlen = __pyx_v_patlen; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":937 * else: * minlen = patlen * cdef char * seq_cstr = self.seq # <<<<<<<<<<<<<< * cdef char * pat_cstr = pattern.seq * cdef int match = 0 */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_self->__pyx_base.seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_seq_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":938 * minlen = patlen * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq # <<<<<<<<<<<<<< * cdef int match = 0 * cdef int i, j */ __pyx_t_6 = PyBytes_AsString(((PyObject *)__pyx_v_pattern->seq)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_pat_cstr = __pyx_t_6; /* "HTSeq/_HTSeq.pyx":939 * cdef char * seq_cstr = self.seq * cdef char * pat_cstr = pattern.seq * cdef int match = 0 # <<<<<<<<<<<<<< * cdef int i, j * cdef int sum_mm_qual */ __pyx_v_match = 0; /* "HTSeq/_HTSeq.pyx":942 * cdef int i, j * cdef int sum_mm_qual * if self._qualarr is None: # <<<<<<<<<<<<<< * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr */ __pyx_t_5 = (__pyx_v_self->_qualarr == Py_None); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":943 * cdef int sum_mm_qual * if self._qualarr is None: * self._fill_qual_arr() # <<<<<<<<<<<<<< * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): */ __pyx_t_1 = ((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self->__pyx_base.__pyx_vtab)->_fill_qual_arr(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L4; } __pyx_L4:; /* "HTSeq/_HTSeq.pyx":944 * if self._qualarr is None: * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr # <<<<<<<<<<<<<< * for i in xrange( 1, minlen+1 ): * sum_mm_qual = 0 */ if (!(likely(((__pyx_v_self->_qualarr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self->_qualarr, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_v_self->_qualarr); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_qual_array, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_qual_array = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_qual_array.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_qual_array = __pyx_bstruct_qual_array.strides[0]; __pyx_bshape_0_qual_array = __pyx_bstruct_qual_array.shape[0]; } } __pyx_t_7 = 0; __Pyx_INCREF(__pyx_v_self->_qualarr); __pyx_v_qual_array = ((PyArrayObject *)__pyx_v_self->_qualarr); /* "HTSeq/_HTSeq.pyx":945 * self._fill_qual_arr() * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): # <<<<<<<<<<<<<< * sum_mm_qual = 0 * for j in xrange( i ): */ __pyx_t_8 = (__pyx_v_minlen + 1); for (__pyx_t_9 = 1; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* "HTSeq/_HTSeq.pyx":946 * cdef numpy.ndarray[ numpy.int_t, ndim=1 ] qual_array = self._qualarr * for i in xrange( 1, minlen+1 ): * sum_mm_qual = 0 # <<<<<<<<<<<<<< * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: */ __pyx_v_sum_mm_qual = 0; /* "HTSeq/_HTSeq.pyx":947 * for i in xrange( 1, minlen+1 ): * sum_mm_qual = 0 * for j in xrange( i ): # <<<<<<<<<<<<<< * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * sum_mm_qual += qual_array[ seqlen - i + j ] */ __pyx_t_10 = __pyx_v_i; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_j = __pyx_t_11; /* "HTSeq/_HTSeq.pyx":948 * sum_mm_qual = 0 * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: # <<<<<<<<<<<<<< * sum_mm_qual += qual_array[ seqlen - i + j ] * if sum_mm_qual > max_mm_qual: */ __pyx_t_5 = ((__pyx_v_seq_cstr[((__pyx_v_seqlen - __pyx_v_i) + __pyx_v_j)]) != (__pyx_v_pat_cstr[__pyx_v_j])); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":949 * for j in xrange( i ): * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * sum_mm_qual += qual_array[ seqlen - i + j ] # <<<<<<<<<<<<<< * if sum_mm_qual > max_mm_qual: * break */ __pyx_t_12 = ((__pyx_v_seqlen - __pyx_v_i) + __pyx_v_j); __pyx_t_13 = -1; if (__pyx_t_12 < 0) { __pyx_t_12 += __pyx_bshape_0_qual_array; if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 0; } else if (unlikely(__pyx_t_12 >= __pyx_bshape_0_qual_array)) __pyx_t_13 = 0; if (unlikely(__pyx_t_13 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sum_mm_qual = (__pyx_v_sum_mm_qual + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_qual_array.buf, __pyx_t_12, __pyx_bstride_0_qual_array))); /* "HTSeq/_HTSeq.pyx":950 * if seq_cstr[ seqlen - i + j ] != pat_cstr[ j ]: * sum_mm_qual += qual_array[ seqlen - i + j ] * if sum_mm_qual > max_mm_qual: # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_v_sum_mm_qual > __pyx_v_max_mm_qual); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":951 * sum_mm_qual += qual_array[ seqlen - i + j ] * if sum_mm_qual > max_mm_qual: * break # <<<<<<<<<<<<<< * else: * match = i */ goto __pyx_L8_break; goto __pyx_L10; } __pyx_L10:; goto __pyx_L9; } __pyx_L9:; } /*else*/ { /* "HTSeq/_HTSeq.pyx":953 * break * else: * match = i # <<<<<<<<<<<<<< * return self[ 0 : seqlen-match ] * */ __pyx_v_match = __pyx_v_i; } __pyx_L8_break:; } /* "HTSeq/_HTSeq.pyx":954 * else: * match = i * return self[ 0 : seqlen-match ] # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self), 0, (__pyx_v_seqlen - __pyx_v_match)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_right_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_qual_array); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_qual_array); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":928 * return self[ match : seqlen ] * * cpdef SequenceWithQualities trim_right_end_with_quals( SequenceWithQualities self, # <<<<<<<<<<<<<< * Sequence pattern, int max_mm_qual = 5 ): * cdef int seqlen = len( self.seq ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_9trim_right_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_9trim_right_end_with_quals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *__pyx_v_pattern = 0; int __pyx_v_max_mm_qual; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pattern,&__pyx_n_s__max_mm_qual,0}; __Pyx_RefNannySetupContext("trim_right_end_with_quals"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pattern); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_mm_qual); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "trim_right_end_with_quals") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_pattern = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)values[0]); if (values[1]) { __pyx_v_max_mm_qual = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_max_mm_qual == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_max_mm_qual = ((int)5); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("trim_right_end_with_quals", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_right_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pattern), __pyx_ptype_5HTSeq_6_HTSeq_Sequence, 1, "pattern", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.max_mm_qual = __pyx_v_max_mm_qual; __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->__pyx_base.__pyx_vtab)->trim_right_end_with_quals(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self), __pyx_v_pattern, 1, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SequenceWithQualities.trim_right_end_with_quals", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":30 * * cdef class SequenceWithQualities( Sequence ): * cdef readonly bytes _qualstr # <<<<<<<<<<<<<< * cdef readonly bytes _qualstr_phred * cdef readonly str _qualscale */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualstr___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualstr___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":31 * cdef class SequenceWithQualities( Sequence ): * cdef readonly bytes _qualstr * cdef readonly bytes _qualstr_phred # <<<<<<<<<<<<<< * cdef readonly str _qualscale * cdef readonly object _qualarr */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_14_qualstr_phred___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_14_qualstr_phred___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualstr_phred); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":32 * cdef readonly bytes _qualstr * cdef readonly bytes _qualstr_phred * cdef readonly str _qualscale # <<<<<<<<<<<<<< * cdef readonly object _qualarr * cdef _fill_qual_arr( SequenceWithQualities self ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_10_qualscale___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_10_qualscale___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualscale); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":33 * cdef readonly bytes _qualstr_phred * cdef readonly str _qualscale * cdef readonly object _qualarr # <<<<<<<<<<<<<< * cdef _fill_qual_arr( SequenceWithQualities self ) * cpdef object add_qual_to_count_array( SequenceWithQualities self, numpy.ndarray count_array_ ) */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualarr___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualarr___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr); __pyx_r = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_self)->_qualarr; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":972 * """ * * def __init__( self, read, iv ): # <<<<<<<<<<<<<< * self._read = read * self.iv = iv */ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_read = 0; PyObject *__pyx_v_iv = 0; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__read,&__pyx_n_s__iv,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__read); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iv); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_read = values[0]; __pyx_v_iv = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":973 * * def __init__( self, read, iv ): * self._read = read # <<<<<<<<<<<<<< * self.iv = iv * */ if (!(likely(((__pyx_v_read) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_read); __Pyx_GIVEREF(__pyx_v_read); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_read); /* "HTSeq/_HTSeq.pyx":974 * def __init__( self, read, iv ): * self._read = read * self.iv = iv # <<<<<<<<<<<<<< * * @property */ if (!(likely(((__pyx_v_iv) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_iv, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_iv); __Pyx_GIVEREF(__pyx_v_iv); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_iv); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":977 * * @property * def read( self ): # <<<<<<<<<<<<<< * return self._read * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_1read(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_1read(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read"); /* "HTSeq/_HTSeq.pyx":978 * @property * def read( self ): * return self._read # <<<<<<<<<<<<<< * * def __repr__( self ): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":980 * return self._read * * def __repr__( self ): # <<<<<<<<<<<<<< * cdef str s * if self.paired_end: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_2__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_2__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_v_s = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":982 * def __repr__( self ): * cdef str s * if self.paired_end: # <<<<<<<<<<<<<< * s = "Paired-end read" * else: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__paired_end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":983 * cdef str s * if self.paired_end: * s = "Paired-end read" # <<<<<<<<<<<<<< * else: * s = "Read" */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_77)); __pyx_v_s = __pyx_kp_s_77; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":985 * s = "Paired-end read" * else: * s = "Read" # <<<<<<<<<<<<<< * if self.aligned: * return "<%s object: %s '%s' aligned to %s>" % ( */ __Pyx_INCREF(((PyObject *)__pyx_n_s__Read)); __pyx_v_s = __pyx_n_s__Read; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":986 * else: * s = "Read" * if self.aligned: # <<<<<<<<<<<<<< * return "<%s object: %s '%s' aligned to %s>" % ( * self.__class__.__name__, s, self.read.name, str(self.iv) ) */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__aligned); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":987 * s = "Read" * if self.aligned: * return "<%s object: %s '%s' aligned to %s>" % ( # <<<<<<<<<<<<<< * self.__class__.__name__, s, self.read.name, str(self.iv) ) * else: */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":988 * if self.aligned: * return "<%s object: %s '%s' aligned to %s>" % ( * self.__class__.__name__, s, self.read.name, str(self.iv) ) # <<<<<<<<<<<<<< * else: * return "<%s object: %s '%s', not aligned>" % ( */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_s)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_s)); __Pyx_GIVEREF(((PyObject *)__pyx_v_s)); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_78), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_r = ((PyObject *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":990 * self.__class__.__name__, s, self.read.name, str(self.iv) ) * else: * return "<%s object: %s '%s', not aligned>" % ( # <<<<<<<<<<<<<< * self.__class__.__name__, s, self.read.name ) * */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":991 * else: * return "<%s object: %s '%s', not aligned>" % ( * self.__class__.__name__, s, self.read.name ) # <<<<<<<<<<<<<< * * @property */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_s)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_s)); __Pyx_GIVEREF(((PyObject *)__pyx_v_s)); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_79), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_r = ((PyObject *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0; } __pyx_L6:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":994 * * @property * def paired_end( self ): # <<<<<<<<<<<<<< * return False * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_3paired_end(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_3paired_end(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("paired_end"); /* "HTSeq/_HTSeq.pyx":995 * @property * def paired_end( self ): * return False # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.paired_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":998 * * @property * def aligned( self ): # <<<<<<<<<<<<<< * """Returns True unless self.iv is None. The latter indicates that * this record decribes a read for which no alignment was found. */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_4aligned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_5HTSeq_6_HTSeq_9Alignment_4aligned[] = "Returns True unless self.iv is None. The latter indicates that\n this record decribes a read for which no alignment was found.\n "; static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_4aligned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("aligned"); /* "HTSeq/_HTSeq.pyx":1002 * this record decribes a read for which no alignment was found. * """ * return self.iv is not None # <<<<<<<<<<<<<< * * cdef class AlignmentWithSequenceReversal( Alignment ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = (((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv) != Py_None); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.aligned", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":43 * * cdef class Alignment( object ): * cdef public SequenceWithQualities _read # <<<<<<<<<<<<<< * cdef public GenomicInterval iv * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Alignment._read.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->_read = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":44 * cdef class Alignment( object ): * cdef public SequenceWithQualities _read * cdef public GenomicInterval iv # <<<<<<<<<<<<<< * * cdef class AlignmentWithSequenceReversal( Alignment ): */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.Alignment.iv.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)__pyx_v_self)->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1015 * """ * * def __init__( self, SequenceWithQualities read_as_aligned, GenomicInterval iv ): # <<<<<<<<<<<<<< * self.read_as_aligned = read_as_aligned * self._read_as_sequenced = None */ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_read_as_aligned = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_iv = 0; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__read_as_aligned,&__pyx_n_s__iv,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__read_as_aligned); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iv); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_read_as_aligned = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)values[0]); __pyx_v_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.AlignmentWithSequenceReversal.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_read_as_aligned), __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities, 1, "read_as_aligned", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iv), __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval, 1, "iv", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1016 * * def __init__( self, SequenceWithQualities read_as_aligned, GenomicInterval iv ): * self.read_as_aligned = read_as_aligned # <<<<<<<<<<<<<< * self._read_as_sequenced = None * self.iv = iv */ __Pyx_INCREF(((PyObject *)__pyx_v_read_as_aligned)); __Pyx_GIVEREF(((PyObject *)__pyx_v_read_as_aligned)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned = __pyx_v_read_as_aligned; /* "HTSeq/_HTSeq.pyx":1017 * def __init__( self, SequenceWithQualities read_as_aligned, GenomicInterval iv ): * self.read_as_aligned = read_as_aligned * self._read_as_sequenced = None # <<<<<<<<<<<<<< * self.iv = iv * */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); /* "HTSeq/_HTSeq.pyx":1018 * self.read_as_aligned = read_as_aligned * self._read_as_sequenced = None * self.iv = iv # <<<<<<<<<<<<<< * * property read: */ __Pyx_INCREF(((PyObject *)__pyx_v_iv)); __Pyx_GIVEREF(((PyObject *)__pyx_v_iv)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->__pyx_base.iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->__pyx_base.iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->__pyx_base.iv = __pyx_v_iv; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.AlignmentWithSequenceReversal.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1021 * * property read: * def __get__( self ): # <<<<<<<<<<<<<< * if self._read_as_sequenced is None: * if (not self.aligned) or self.iv.strand != "-": */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_4read___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_4read___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":1022 * property read: * def __get__( self ): * if self._read_as_sequenced is None: # <<<<<<<<<<<<<< * if (not self.aligned) or self.iv.strand != "-": * self._read_as_sequenced = self.read_as_aligned */ __pyx_t_1 = (((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced) == Py_None); if (__pyx_t_1) { /* "HTSeq/_HTSeq.pyx":1023 * def __get__( self ): * if self._read_as_sequenced is None: * if (not self.aligned) or self.iv.strand != "-": # <<<<<<<<<<<<<< * self._read_as_sequenced = self.read_as_aligned * else: */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__aligned); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = (!__pyx_t_1); if (!__pyx_t_3) { __pyx_t_2 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->__pyx_base.iv), __pyx_n_s__strand); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_kp_s_38), Py_NE); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_1; } else { __pyx_t_4 = __pyx_t_3; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1024 * if self._read_as_sequenced is None: * if (not self.aligned) or self.iv.strand != "-": * self._read_as_sequenced = self.read_as_aligned # <<<<<<<<<<<<<< * else: * self._read_as_sequenced = self.read_as_aligned.get_reverse_complement() */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1026 * self._read_as_sequenced = self.read_as_aligned * else: * self._read_as_sequenced = self.read_as_aligned.get_reverse_complement() # <<<<<<<<<<<<<< * self._read_as_sequenced.name = self.read_as_aligned.name * return self._read_as_sequenced */ __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned->__pyx_base.__pyx_vtab)->get_reverse_complement(((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned), 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1027 * else: * self._read_as_sequenced = self.read_as_aligned.get_reverse_complement() * self._read_as_sequenced.name = self.read_as_aligned.name # <<<<<<<<<<<<<< * return self._read_as_sequenced * #def __set__( self, read ): */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned->__pyx_base.name)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned->__pyx_base.name)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced->__pyx_base.name); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced->__pyx_base.name)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced->__pyx_base.name = ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned->__pyx_base.name; } __pyx_L6:; goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":1028 * self._read_as_sequenced = self.read_as_aligned.get_reverse_complement() * self._read_as_sequenced.name = self.read_as_aligned.name * return self._read_as_sequenced # <<<<<<<<<<<<<< * #def __set__( self, read ): * # self.read_as_aligned = read */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.AlignmentWithSequenceReversal.read.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":47 * * cdef class AlignmentWithSequenceReversal( Alignment ): * cdef public SequenceWithQualities read_as_aligned # <<<<<<<<<<<<<< * cdef public SequenceWithQualities _read_as_sequenced * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.AlignmentWithSequenceReversal.read_as_aligned.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->read_as_aligned = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":48 * cdef class AlignmentWithSequenceReversal( Alignment ): * cdef public SequenceWithQualities read_as_aligned * cdef public SequenceWithQualities _read_as_sequenced # <<<<<<<<<<<<<< * * cdef class SAM_Alignment( AlignmentWithSequenceReversal ): */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.AlignmentWithSequenceReversal._read_as_sequenced.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced)); ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)__pyx_v_self)->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1047 * cdef public str substitutions * * def __init__( self, bowtie_line ): # <<<<<<<<<<<<<< * cdef str readId, strand, chrom, position, read, qual * cdef int positionint */ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_bowtie_line = 0; PyObject *__pyx_v_readId = 0; PyObject *__pyx_v_strand = 0; PyObject *__pyx_v_chrom = 0; PyObject *__pyx_v_position = 0; PyObject *__pyx_v_read = 0; PyObject *__pyx_v_qual = 0; int __pyx_v_positionint; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *(*__pyx_t_11)(PyObject *); int __pyx_t_12; Py_ssize_t __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__bowtie_line,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bowtie_line); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_bowtie_line = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.BowtieAlignment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":1051 * cdef int positionint * (readId, strand, chrom, position, read, qual, * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) # <<<<<<<<<<<<<< * positionint = int( position ) * AlignmentWithSequenceReversal.__init__( self, */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_bowtie_line, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_81), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 8)) { if (PyTuple_GET_SIZE(sequence) > 8) __Pyx_RaiseTooManyValuesError(8); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 7); } else { if (unlikely(PyList_GET_SIZE(sequence) != 8)) { if (PyList_GET_SIZE(sequence) > 8) __Pyx_RaiseTooManyValuesError(8); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); __pyx_t_4 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); __pyx_t_6 = PyList_GET_ITEM(sequence, 4); __pyx_t_7 = PyList_GET_ITEM(sequence, 5); __pyx_t_8 = PyList_GET_ITEM(sequence, 6); __pyx_t_9 = PyList_GET_ITEM(sequence, 7); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 2; __pyx_t_4 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 3; __pyx_t_5 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 4; __pyx_t_6 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 5; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 6; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); index = 7; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L7_unpacking_done:; } /* "HTSeq/_HTSeq.pyx":1050 * cdef str readId, strand, chrom, position, read, qual * cdef int positionint * (readId, strand, chrom, position, read, qual, # <<<<<<<<<<<<<< * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) * positionint = int( position ) */ if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_6)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_7)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_8)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_9)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_readId = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_strand = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; __pyx_v_chrom = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; __pyx_v_position = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_read = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_v_qual = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1051 * cdef int positionint * (readId, strand, chrom, position, read, qual, * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) # <<<<<<<<<<<<<< * positionint = int( position ) * AlignmentWithSequenceReversal.__init__( self, */ __Pyx_GIVEREF(__pyx_t_8); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0; /* "HTSeq/_HTSeq.pyx":1052 * (readId, strand, chrom, position, read, qual, * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) * positionint = int( position ) # <<<<<<<<<<<<<< * AlignmentWithSequenceReversal.__init__( self, * SequenceWithQualities( read, readId, qual ), */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_position)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_position)); __Pyx_GIVEREF(((PyObject *)__pyx_v_position)); __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_positionint = __pyx_t_12; /* "HTSeq/_HTSeq.pyx":1053 * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) * positionint = int( position ) * AlignmentWithSequenceReversal.__init__( self, # <<<<<<<<<<<<<< * SequenceWithQualities( read, readId, qual ), * GenomicInterval( chrom, positionint, positionint + len(read), strand ) ) */ __pyx_t_9 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal)), __pyx_n_s____init__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); /* "HTSeq/_HTSeq.pyx":1054 * positionint = int( position ) * AlignmentWithSequenceReversal.__init__( self, * SequenceWithQualities( read, readId, qual ), # <<<<<<<<<<<<<< * GenomicInterval( chrom, positionint, positionint + len(read), strand ) ) * */ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_read)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_read)); __Pyx_GIVEREF(((PyObject *)__pyx_v_read)); __Pyx_INCREF(((PyObject *)__pyx_v_readId)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_readId)); __Pyx_GIVEREF(((PyObject *)__pyx_v_readId)); __Pyx_INCREF(((PyObject *)__pyx_v_qual)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_qual)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qual)); __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1055 * AlignmentWithSequenceReversal.__init__( self, * SequenceWithQualities( read, readId, qual ), * GenomicInterval( chrom, positionint, positionint + len(read), strand ) ) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = PyInt_FromLong(__pyx_v_positionint); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = PyObject_Length(((PyObject *)__pyx_v_read)); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = PyInt_FromSsize_t((__pyx_v_positionint + __pyx_t_13)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_7 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("HTSeq._HTSeq.BowtieAlignment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_readId); __Pyx_XDECREF(__pyx_v_strand); __Pyx_XDECREF(__pyx_v_chrom); __Pyx_XDECREF(__pyx_v_position); __Pyx_XDECREF(__pyx_v_read); __Pyx_XDECREF(__pyx_v_qual); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1044 * """ * * cdef public str reserved # <<<<<<<<<<<<<< * cdef public str substitutions * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.BowtieAlignment.reserved.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->reserved = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1045 * * cdef public str reserved * cdef public str substitutions # <<<<<<<<<<<<<< * * def __init__( self, bowtie_line ): */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.BowtieAlignment.substitutions.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions)); ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)__pyx_v_self)->substitutions = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1074 * cdef public int query_from, query_to * * def __init__( self, str type_, int size, int rfrom, int rto, int qfrom, # <<<<<<<<<<<<<< * int qto, str chrom, str strand, bint check=True ): * self.type = type_ */ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_type_ = 0; int __pyx_v_size; int __pyx_v_rfrom; int __pyx_v_rto; int __pyx_v_qfrom; int __pyx_v_qto; PyObject *__pyx_v_chrom = 0; PyObject *__pyx_v_strand = 0; int __pyx_v_check; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__type_,&__pyx_n_s__size,&__pyx_n_s__rfrom,&__pyx_n_s__rto,&__pyx_n_s__qfrom,&__pyx_n_s__qto,&__pyx_n_s__chrom,&__pyx_n_s__strand,&__pyx_n_s__check,0}; __Pyx_RefNannySetupContext("__init__"); { PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__type_); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rfrom); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rto); if (likely(values[3])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 4: values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__qfrom); if (likely(values[4])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 5: values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__qto); if (likely(values[5])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 6: values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (likely(values[6])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 7: values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (likely(values[7])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 8: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__check); if (value) { values[8] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_type_ = ((PyObject*)values[0]); __pyx_v_size = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_rfrom = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_rfrom == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_rto = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_rto == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_qfrom = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_qfrom == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_qto = __Pyx_PyInt_AsInt(values[5]); if (unlikely((__pyx_v_qto == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_chrom = ((PyObject*)values[6]); __pyx_v_strand = ((PyObject*)values[7]); if (values[8]) { __pyx_v_check = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_check == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { /* "HTSeq/_HTSeq.pyx":1075 * * def __init__( self, str type_, int size, int rfrom, int rto, int qfrom, * int qto, str chrom, str strand, bint check=True ): # <<<<<<<<<<<<<< * self.type = type_ * self.size = size */ __pyx_v_check = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 8, 9, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_type_), (&PyString_Type), 1, "type_", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1076 * def __init__( self, str type_, int size, int rfrom, int rto, int qfrom, * int qto, str chrom, str strand, bint check=True ): * self.type = type_ # <<<<<<<<<<<<<< * self.size = size * self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) */ __Pyx_INCREF(((PyObject *)__pyx_v_type_)); __Pyx_GIVEREF(((PyObject *)__pyx_v_type_)); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type = __pyx_v_type_; /* "HTSeq/_HTSeq.pyx":1077 * int qto, str chrom, str strand, bint check=True ): * self.type = type_ * self.size = size # <<<<<<<<<<<<<< * self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) * self.query_from = qfrom */ ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size = __pyx_v_size; /* "HTSeq/_HTSeq.pyx":1078 * self.type = type_ * self.size = size * self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) # <<<<<<<<<<<<<< * self.query_from = qfrom * self.query_to = qto */ __pyx_t_1 = PyInt_FromLong(__pyx_v_rfrom); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_rto); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1079 * self.size = size * self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) * self.query_from = qfrom # <<<<<<<<<<<<<< * self.query_to = qto * if check and not self.check(): */ ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_from = __pyx_v_qfrom; /* "HTSeq/_HTSeq.pyx":1080 * self.ref_iv = GenomicInterval( chrom, rfrom, rto, strand ) * self.query_from = qfrom * self.query_to = qto # <<<<<<<<<<<<<< * if check and not self.check(): * raise ValueError, "Inconsistent CIGAR operation." */ ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_to = __pyx_v_qto; /* "HTSeq/_HTSeq.pyx":1081 * self.query_from = qfrom * self.query_to = qto * if check and not self.check(): # <<<<<<<<<<<<<< * raise ValueError, "Inconsistent CIGAR operation." * */ if (__pyx_v_check) { __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__check); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = (!__pyx_t_4); __pyx_t_4 = __pyx_t_5; } else { __pyx_t_4 = __pyx_v_check; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1082 * self.query_to = qto * if check and not self.check(): * raise ValueError, "Inconsistent CIGAR operation." # <<<<<<<<<<<<<< * * def __repr__( self ): */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_82), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1084 * raise ValueError, "Inconsistent CIGAR operation." * * def __repr__( self ): # <<<<<<<<<<<<<< * return "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >" % ( * self.__class__.__name__, self.size, cigar_operation_names[ self.type ], */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__"); /* "HTSeq/_HTSeq.pyx":1085 * * def __repr__( self ): * return "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >" % ( # <<<<<<<<<<<<<< * self.__class__.__name__, self.size, cigar_operation_names[ self.type ], * str( self.ref_iv ), self.query_from, self.query_to ) */ __Pyx_XDECREF(__pyx_r); /* "HTSeq/_HTSeq.pyx":1086 * def __repr__( self ): * return "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >" % ( * self.__class__.__name__, self.size, cigar_operation_names[ self.type ], # <<<<<<<<<<<<<< * str( self.ref_iv ), self.query_from, self.query_to ) * */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_84); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetItem(__pyx_t_3, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1087 * return "< %s: %d base(s) %s on ref iv %s, query iv [%d,%d) >" % ( * self.__class__.__name__, self.size, cigar_operation_names[ self.type ], * str( self.ref_iv ), self.query_from, self.query_to ) # <<<<<<<<<<<<<< * * def check( CigarOperation self ): */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_from); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_to); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_83), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1085; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_r = ((PyObject *)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1089 * str( self.ref_iv ), self.query_from, self.query_to ) * * def check( CigarOperation self ): # <<<<<<<<<<<<<< * cdef int qlen = self.query_to - self.query_from * cdef int rlen = self.ref_iv.length */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_2check(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_2check(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { int __pyx_v_qlen; int __pyx_v_rlen; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check"); /* "HTSeq/_HTSeq.pyx":1090 * * def check( CigarOperation self ): * cdef int qlen = self.query_to - self.query_from # <<<<<<<<<<<<<< * cdef int rlen = self.ref_iv.length * if self.type == 'M': */ __pyx_v_qlen = (((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_to - ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_from); /* "HTSeq/_HTSeq.pyx":1091 * def check( CigarOperation self ): * cdef int qlen = self.query_to - self.query_from * cdef int rlen = self.ref_iv.length # <<<<<<<<<<<<<< * if self.type == 'M': * if not ( qlen == self.size and rlen == self.size ): */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv), __pyx_n_s__length); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_rlen = __pyx_t_2; /* "HTSeq/_HTSeq.pyx":1092 * cdef int qlen = self.query_to - self.query_from * cdef int rlen = self.ref_iv.length * if self.type == 'M': # <<<<<<<<<<<<<< * if not ( qlen == self.size and rlen == self.size ): * return False */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__M), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":1093 * cdef int rlen = self.ref_iv.length * if self.type == 'M': * if not ( qlen == self.size and rlen == self.size ): # <<<<<<<<<<<<<< * return False * elif self.type == 'I' or self.type == 'S': */ __pyx_t_3 = (__pyx_v_qlen == ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); if (__pyx_t_3) { __pyx_t_4 = (__pyx_v_rlen == ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); __pyx_t_5 = __pyx_t_4; } else { __pyx_t_5 = __pyx_t_3; } __pyx_t_3 = (!__pyx_t_5); if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":1094 * if self.type == 'M': * if not ( qlen == self.size and rlen == self.size ): * return False # <<<<<<<<<<<<<< * elif self.type == 'I' or self.type == 'S': * if not ( qlen == self.size and rlen == 0 ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L6; } __pyx_L6:; goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":1095 * if not ( qlen == self.size and rlen == self.size ): * return False * elif self.type == 'I' or self.type == 'S': # <<<<<<<<<<<<<< * if not ( qlen == self.size and rlen == 0 ): * return False */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__I), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!__pyx_t_3) { __pyx_t_5 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__S), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = __pyx_t_5; } else { __pyx_t_4 = __pyx_t_3; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1096 * return False * elif self.type == 'I' or self.type == 'S': * if not ( qlen == self.size and rlen == 0 ): # <<<<<<<<<<<<<< * return False * elif self.type == 'D' or self.type == 'N': */ __pyx_t_4 = (__pyx_v_qlen == ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); if (__pyx_t_4) { __pyx_t_3 = (__pyx_v_rlen == 0); __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_t_4 = (!__pyx_t_5); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1097 * elif self.type == 'I' or self.type == 'S': * if not ( qlen == self.size and rlen == 0 ): * return False # <<<<<<<<<<<<<< * elif self.type == 'D' or self.type == 'N': * if not ( qlen == 0 and rlen == self.size ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L7; } __pyx_L7:; goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":1098 * if not ( qlen == self.size and rlen == 0 ): * return False * elif self.type == 'D' or self.type == 'N': # <<<<<<<<<<<<<< * if not ( qlen == 0 and rlen == self.size ): * return False */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__D), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!__pyx_t_4) { __pyx_t_5 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__N), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_3 = __pyx_t_5; } else { __pyx_t_3 = __pyx_t_4; } if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":1099 * return False * elif self.type == 'D' or self.type == 'N': * if not ( qlen == 0 and rlen == self.size ): # <<<<<<<<<<<<<< * return False * elif self.type == 'H' or self.type == 'P': */ __pyx_t_3 = (__pyx_v_qlen == 0); if (__pyx_t_3) { __pyx_t_4 = (__pyx_v_rlen == ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); __pyx_t_5 = __pyx_t_4; } else { __pyx_t_5 = __pyx_t_3; } __pyx_t_3 = (!__pyx_t_5); if (__pyx_t_3) { /* "HTSeq/_HTSeq.pyx":1100 * elif self.type == 'D' or self.type == 'N': * if not ( qlen == 0 and rlen == self.size ): * return False # <<<<<<<<<<<<<< * elif self.type == 'H' or self.type == 'P': * if not ( qlen == 0 and rlen == 0 ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L8; } __pyx_L8:; goto __pyx_L5; } /* "HTSeq/_HTSeq.pyx":1101 * if not ( qlen == 0 and rlen == self.size ): * return False * elif self.type == 'H' or self.type == 'P': # <<<<<<<<<<<<<< * if not ( qlen == 0 and rlen == 0 ): * return False */ __pyx_t_3 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__H), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!__pyx_t_3) { __pyx_t_5 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type), ((PyObject *)__pyx_n_s__P), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = __pyx_t_5; } else { __pyx_t_4 = __pyx_t_3; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1102 * return False * elif self.type == 'H' or self.type == 'P': * if not ( qlen == 0 and rlen == 0 ): # <<<<<<<<<<<<<< * return False * else: */ __pyx_t_4 = (__pyx_v_qlen == 0); if (__pyx_t_4) { __pyx_t_3 = (__pyx_v_rlen == 0); __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_t_4 = (!__pyx_t_5); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1103 * elif self.type == 'H' or self.type == 'P': * if not ( qlen == 0 and rlen == 0 ): * return False # <<<<<<<<<<<<<< * else: * return False */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; goto __pyx_L9; } __pyx_L9:; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1105 * return False * else: * return False # <<<<<<<<<<<<<< * return True * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":1106 * else: * return False * return True # <<<<<<<<<<<<<< * * _re_cigar_codes = re.compile( '([A-Z])' ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.check", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1069 * cdef class CigarOperation( object ): * * cdef public str type # <<<<<<<<<<<<<< * cdef public int size * cdef public GenomicInterval ref_iv */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->type = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1070 * * cdef public str type * cdef public int size # <<<<<<<<<<<<<< * cdef public GenomicInterval ref_iv * cdef public int query_from, query_to */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->size = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1071 * cdef public str type * cdef public int size * cdef public GenomicInterval ref_iv # <<<<<<<<<<<<<< * cdef public int query_from, query_to * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.ref_iv.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv)); ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->ref_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1072 * cdef public int size * cdef public GenomicInterval ref_iv * cdef public int query_from, query_to # <<<<<<<<<<<<<< * * def __init__( self, str type_, int size, int rfrom, int rto, int qfrom, */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_from); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.query_from.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_from = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.query_from.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_to); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.query_to.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_v_self)->query_to = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.CigarOperation.query_to.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1110 * _re_cigar_codes = re.compile( '([A-Z])' ) * * cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, cl * cdef int size */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_5parse_cigar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_parse_cigar(PyObject *__pyx_v_cigar_string, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar *__pyx_optional_args) { int __pyx_v_ref_left = ((int)0); PyObject *__pyx_v_chrom = ((PyObject*)__pyx_kp_s_14); PyObject *__pyx_v_strand = ((PyObject*)__pyx_kp_s_11); PyObject *__pyx_v_split_cigar = 0; PyObject *__pyx_v_cl = 0; int __pyx_v_size; PyObject *__pyx_v_code = 0; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; int __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; int __pyx_t_15; struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list __pyx_t_16; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parse_cigar"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_ref_left = __pyx_optional_args->ref_left; if (__pyx_optional_args->__pyx_n > 1) { __pyx_v_chrom = __pyx_optional_args->chrom; if (__pyx_optional_args->__pyx_n > 2) { __pyx_v_strand = __pyx_optional_args->strand; } } } } /* "HTSeq/_HTSeq.pyx":1114 * cdef int size * cdef str code * split_cigar = _re_cigar_codes.split( cigar_string ) # <<<<<<<<<<<<<< * if split_cigar[-1] != '' or len(split_cigar) % 2 != 1: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___re_cigar_codes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_cigar_string)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cigar_string)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cigar_string)); __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_split_cigar = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1115 * cdef str code * split_cigar = _re_cigar_codes.split( cigar_string ) * if split_cigar[-1] != '' or len(split_cigar) % 2 != 1: # <<<<<<<<<<<<<< * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * cl = [] */ __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_split_cigar), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_kp_s_14), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_4) { if (unlikely(((PyObject *)__pyx_v_split_cigar) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyList_GET_SIZE(((PyObject *)__pyx_v_split_cigar)); __pyx_t_6 = (__Pyx_mod_Py_ssize_t(__pyx_t_5, 2) != 1); __pyx_t_7 = __pyx_t_6; } else { __pyx_t_7 = __pyx_t_4; } if (__pyx_t_7) { /* "HTSeq/_HTSeq.pyx":1116 * split_cigar = _re_cigar_codes.split( cigar_string ) * if split_cigar[-1] != '' or len(split_cigar) % 2 != 1: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string # <<<<<<<<<<<<<< * cl = [] * for i in xrange( len(split_cigar) // 2 ): */ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_85), ((PyObject *)__pyx_v_cigar_string)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":1117 * if split_cigar[-1] != '' or len(split_cigar) % 2 != 1: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * cl = [] # <<<<<<<<<<<<<< * for i in xrange( len(split_cigar) // 2 ): * try: */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_v_cl = __pyx_t_3; __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1118 * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * cl = [] * for i in xrange( len(split_cigar) // 2 ): # <<<<<<<<<<<<<< * try: * size = int( split_cigar[2*i] ) */ if (unlikely(((PyObject *)__pyx_v_split_cigar) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyList_GET_SIZE(((PyObject *)__pyx_v_split_cigar)); __pyx_t_3 = PyInt_FromSsize_t(__Pyx_div_Py_ssize_t(__pyx_t_5, 2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_builtin_xrange, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_8 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (PyList_CheckExact(__pyx_t_1)) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; } else if (PyTuple_CheckExact(__pyx_t_1)) { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; } else { __pyx_t_3 = __pyx_t_8(__pyx_t_1); if (unlikely(!__pyx_t_3)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF(__pyx_v_i); __pyx_v_i = __pyx_t_3; __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1119 * cl = [] * for i in xrange( len(split_cigar) // 2 ): * try: # <<<<<<<<<<<<<< * size = int( split_cigar[2*i] ) * except ValueError: */ { __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { /* "HTSeq/_HTSeq.pyx":1120 * for i in xrange( len(split_cigar) // 2 ): * try: * size = int( split_cigar[2*i] ) # <<<<<<<<<<<<<< * except ValueError: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string */ __pyx_t_3 = PyNumber_Multiply(__pyx_int_2, __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L6_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_split_cigar), __pyx_t_3); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L6_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L6_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L6_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L6_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_size = __pyx_t_12; } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L13_try_end; __pyx_L6_error:; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1121 * try: * size = int( split_cigar[2*i] ) * except ValueError: # <<<<<<<<<<<<<< * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * code = split_cigar[2*i+1] */ __pyx_t_12 = PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_12) { __Pyx_AddTraceback("HTSeq._HTSeq.parse_cigar", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_13); /* "HTSeq/_HTSeq.pyx":1122 * size = int( split_cigar[2*i] ) * except ValueError: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string # <<<<<<<<<<<<<< * code = split_cigar[2*i+1] * cl.append( ( code, size ) ) */ __pyx_t_14 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_85), ((PyObject *)__pyx_v_cigar_string)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_14)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_14), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L7_exception_handled; } __pyx_L8_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L1_error; __pyx_L7_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L13_try_end:; } /* "HTSeq/_HTSeq.pyx":1123 * except ValueError: * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * code = split_cigar[2*i+1] # <<<<<<<<<<<<<< * cl.append( ( code, size ) ) * return build_cigar_list( cl, ref_left, chrom, strand ) */ __pyx_t_13 = PyNumber_Multiply(__pyx_int_2, __pyx_v_i); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = PyNumber_Add(__pyx_t_13, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_GetItem(((PyObject *)__pyx_v_split_cigar), __pyx_t_3); if (!__pyx_t_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyString_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_13)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(((PyObject *)__pyx_v_code)); __pyx_v_code = ((PyObject*)__pyx_t_13); __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":1124 * raise ValueError, "Illegal CIGAR string '%s'" % cigar_string * code = split_cigar[2*i+1] * cl.append( ( code, size ) ) # <<<<<<<<<<<<<< * return build_cigar_list( cl, ref_left, chrom, strand ) * */ if (unlikely(((PyObject *)__pyx_v_cl) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_13 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_code)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_code)); __Pyx_GIVEREF(((PyObject *)__pyx_v_code)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_15 = PyList_Append(__pyx_v_cl, ((PyObject *)__pyx_t_3)); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1125 * code = split_cigar[2*i+1] * cl.append( ( code, size ) ) * return build_cigar_list( cl, ref_left, chrom, strand ) # <<<<<<<<<<<<<< * * cpdef list build_cigar_list( list cigar_pairs, int ref_left = 0, str chrom = "", str strand = "." ): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_16.__pyx_n = 3; __pyx_t_16.ref_left = __pyx_v_ref_left; __pyx_t_16.chrom = __pyx_v_chrom; __pyx_t_16.strand = __pyx_v_strand; __pyx_t_1 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_build_cigar_list(__pyx_v_cl, 0, &__pyx_t_16)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("HTSeq._HTSeq.parse_cigar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_split_cigar); __Pyx_XDECREF(__pyx_v_cl); __Pyx_XDECREF(__pyx_v_code); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1110 * _re_cigar_codes = re.compile( '([A-Z])' ) * * cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, cl * cdef int size */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_5parse_cigar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_5parse_cigar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_cigar_string = 0; int __pyx_v_ref_left; PyObject *__pyx_v_chrom = 0; PyObject *__pyx_v_strand = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cigar_string,&__pyx_n_s__ref_left,&__pyx_n_s__chrom,&__pyx_n_s__strand,0}; __Pyx_RefNannySetupContext("parse_cigar"); __pyx_self = __pyx_self; { PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject*)__pyx_kp_s_14); values[3] = ((PyObject*)__pyx_kp_s_11); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cigar_string); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ref_left); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "parse_cigar") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_cigar_string = ((PyObject*)values[0]); if (values[1]) { __pyx_v_ref_left = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_ref_left == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_ref_left = ((int)0); } __pyx_v_chrom = ((PyObject*)values[2]); __pyx_v_strand = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("parse_cigar", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.parse_cigar", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cigar_string), (&PyString_Type), 1, "cigar_string", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 3; __pyx_t_2.ref_left = __pyx_v_ref_left; __pyx_t_2.chrom = __pyx_v_chrom; __pyx_t_2.strand = __pyx_v_strand; __pyx_t_1 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_parse_cigar(__pyx_v_cigar_string, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.parse_cigar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1127 * return build_cigar_list( cl, ref_left, chrom, strand ) * * cpdef list build_cigar_list( list cigar_pairs, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, res * cdef int rpos, qpos, size */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_6build_cigar_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_5HTSeq_6_HTSeq_build_cigar_list(PyObject *__pyx_v_cigar_pairs, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list *__pyx_optional_args) { int __pyx_v_ref_left = ((int)0); PyObject *__pyx_v_chrom = ((PyObject*)__pyx_kp_s_14); PyObject *__pyx_v_strand = ((PyObject*)__pyx_kp_s_11); PyObject *__pyx_v_res = 0; int __pyx_v_rpos; int __pyx_v_qpos; int __pyx_v_size; PyObject *__pyx_v_code = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *(*__pyx_t_7)(PyObject *); int __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("build_cigar_list"); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_ref_left = __pyx_optional_args->ref_left; if (__pyx_optional_args->__pyx_n > 1) { __pyx_v_chrom = __pyx_optional_args->chrom; if (__pyx_optional_args->__pyx_n > 2) { __pyx_v_strand = __pyx_optional_args->strand; } } } } /* "HTSeq/_HTSeq.pyx":1131 * cdef int rpos, qpos, size * cdef str code * rpos = ref_left # <<<<<<<<<<<<<< * qpos = 0 * res = [] */ __pyx_v_rpos = __pyx_v_ref_left; /* "HTSeq/_HTSeq.pyx":1132 * cdef str code * rpos = ref_left * qpos = 0 # <<<<<<<<<<<<<< * res = [] * for code, size in cigar_pairs: */ __pyx_v_qpos = 0; /* "HTSeq/_HTSeq.pyx":1133 * rpos = ref_left * qpos = 0 * res = [] # <<<<<<<<<<<<<< * for code, size in cigar_pairs: * if code == 'M': */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_v_res = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1134 * qpos = 0 * res = [] * for code, size in cigar_pairs: # <<<<<<<<<<<<<< * if code == 'M': * res.append( CigarOperation ( */ if (unlikely(((PyObject *)__pyx_v_cigar_pairs) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = ((PyObject *)__pyx_v_cigar_pairs); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); } else { if (unlikely(PyList_GET_SIZE(sequence) != 2)) { if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L6_unpacking_done:; } if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(((PyObject *)__pyx_v_code)); __pyx_v_code = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; __pyx_v_size = __pyx_t_8; /* "HTSeq/_HTSeq.pyx":1135 * res = [] * for code, size in cigar_pairs: * if code == 'M': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__M), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1136 * for code, size in cigar_pairs: * if code == 'M': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) * rpos += size */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1137 * if code == 'M': * res.append( CigarOperation ( * 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) # <<<<<<<<<<<<<< * rpos += size * qpos += size */ __pyx_t_3 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyInt_FromLong((__pyx_v_rpos + __pyx_v_size)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyInt_FromLong((__pyx_v_qpos + __pyx_v_size)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_11)); __Pyx_INCREF(((PyObject *)__pyx_n_s__M)); PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_n_s__M)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__M)); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 5, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_11, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_11, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_10); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "HTSeq/_HTSeq.pyx":1138 * res.append( CigarOperation ( * 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) * rpos += size # <<<<<<<<<<<<<< * qpos += size * elif code == 'I': */ __pyx_v_rpos = (__pyx_v_rpos + __pyx_v_size); /* "HTSeq/_HTSeq.pyx":1139 * 'M', size, rpos, rpos + size, qpos, qpos + size, chrom, strand ) ) * rpos += size * qpos += size # <<<<<<<<<<<<<< * elif code == 'I': * res.append( CigarOperation ( */ __pyx_v_qpos = (__pyx_v_qpos + __pyx_v_size); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1140 * rpos += size * qpos += size * elif code == 'I': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__I), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1141 * qpos += size * elif code == 'I': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1142 * elif code == 'I': * res.append( CigarOperation ( * 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) # <<<<<<<<<<<<<< * qpos += size * elif code == 'D': */ __pyx_t_10 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyInt_FromLong((__pyx_v_qpos + __pyx_v_size)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_n_s__I)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__I)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__I)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_3, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_3, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1143 * res.append( CigarOperation ( * 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size # <<<<<<<<<<<<<< * elif code == 'D': * res.append( CigarOperation ( */ __pyx_v_qpos = (__pyx_v_qpos + __pyx_v_size); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1144 * 'I', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size * elif code == 'D': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__D), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1145 * qpos += size * elif code == 'D': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1146 * elif code == 'D': * res.append( CigarOperation ( * 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) # <<<<<<<<<<<<<< * rpos += size * elif code == 'N': */ __pyx_t_5 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromLong((__pyx_v_rpos + __pyx_v_size)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = PyTuple_New(8); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __Pyx_INCREF(((PyObject *)__pyx_n_s__D)); PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_n_s__D)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__D)); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 5, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_10, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_10, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* "HTSeq/_HTSeq.pyx":1147 * res.append( CigarOperation ( * 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size # <<<<<<<<<<<<<< * elif code == 'N': * res.append( CigarOperation ( */ __pyx_v_rpos = (__pyx_v_rpos + __pyx_v_size); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1148 * 'D', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size * elif code == 'N': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__N), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1149 * rpos += size * elif code == 'N': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1150 * elif code == 'N': * res.append( CigarOperation ( * 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) # <<<<<<<<<<<<<< * rpos += size * elif code == 'S': */ __pyx_t_11 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = PyInt_FromLong((__pyx_v_rpos + __pyx_v_size)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __Pyx_INCREF(((PyObject *)__pyx_n_s__N)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_s__N)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__N)); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_5, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_5, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_3); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1151 * res.append( CigarOperation ( * 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size # <<<<<<<<<<<<<< * elif code == 'S': * res.append( CigarOperation ( */ __pyx_v_rpos = (__pyx_v_rpos + __pyx_v_size); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1152 * 'N', size, rpos, rpos + size, qpos, qpos, chrom, strand ) ) * rpos += size * elif code == 'S': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__S), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1153 * rpos += size * elif code == 'S': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1154 * elif code == 'S': * res.append( CigarOperation ( * 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) # <<<<<<<<<<<<<< * qpos += size * elif code == 'H': */ __pyx_t_3 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyInt_FromLong((__pyx_v_qpos + __pyx_v_size)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_11)); __Pyx_INCREF(((PyObject *)__pyx_n_s__S)); PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_n_s__S)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__S)); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 5, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_11, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_11, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_10); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "HTSeq/_HTSeq.pyx":1155 * res.append( CigarOperation ( * 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size # <<<<<<<<<<<<<< * elif code == 'H': * res.append( CigarOperation ( */ __pyx_v_qpos = (__pyx_v_qpos + __pyx_v_size); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1156 * 'S', size, rpos, rpos, qpos, qpos + size, chrom, strand ) ) * qpos += size * elif code == 'H': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__H), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1157 * qpos += size * elif code == 'H': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) * elif code == 'P': */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1158 * elif code == 'H': * res.append( CigarOperation ( * 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) # <<<<<<<<<<<<<< * elif code == 'P': * res.append( CigarOperation ( */ __pyx_t_10 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_n_s__H)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__H)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__H)); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_3, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_3, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1159 * res.append( CigarOperation ( * 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) * elif code == 'P': # <<<<<<<<<<<<<< * res.append( CigarOperation ( * 'P', size, rpos, rpos, qpos, qpos, chrom, strand ) ) */ __pyx_t_9 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_code), ((PyObject *)__pyx_n_s__P), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_9) { /* "HTSeq/_HTSeq.pyx":1160 * 'H', size, rpos, rpos, qpos, qpos, chrom, strand ) ) * elif code == 'P': * res.append( CigarOperation ( # <<<<<<<<<<<<<< * 'P', size, rpos, rpos, qpos, qpos, chrom, strand ) ) * else: */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } /* "HTSeq/_HTSeq.pyx":1161 * elif code == 'P': * res.append( CigarOperation ( * 'P', size, rpos, rpos, qpos, qpos, chrom, strand ) ) # <<<<<<<<<<<<<< * else: * raise ValueError, "Unknown CIGAR code '%s' encountered." % code */ __pyx_t_5 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromLong(__pyx_v_rpos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = PyInt_FromLong(__pyx_v_qpos); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = PyTuple_New(8); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __Pyx_INCREF(((PyObject *)__pyx_n_s__P)); PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_n_s__P)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__P)); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 5, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __Pyx_INCREF(((PyObject *)__pyx_v_chrom)); PyTuple_SET_ITEM(__pyx_t_10, 6, ((PyObject *)__pyx_v_chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chrom)); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_10, 7, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_CigarOperation)), ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_12 = PyList_Append(__pyx_v_res, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1163 * 'P', size, rpos, rpos, qpos, qpos, chrom, strand ) ) * else: * raise ValueError, "Unknown CIGAR code '%s' encountered." % code # <<<<<<<<<<<<<< * return res * */ __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_86), ((PyObject *)__pyx_v_code)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_11)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_11), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L7:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1164 * else: * raise ValueError, "Unknown CIGAR code '%s' encountered." % code * return res # <<<<<<<<<<<<<< * * cdef _parse_SAM_optional_field_value( str field ): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_res)); __pyx_r = __pyx_v_res; goto __pyx_L0; __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("HTSeq._HTSeq.build_cigar_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_res); __Pyx_XDECREF(__pyx_v_code); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1127 * return build_cigar_list( cl, ref_left, chrom, strand ) * * cpdef list build_cigar_list( list cigar_pairs, int ref_left = 0, str chrom = "", str strand = "." ): # <<<<<<<<<<<<<< * cdef list split_cigar, res * cdef int rpos, qpos, size */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_6build_cigar_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_6build_cigar_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_cigar_pairs = 0; int __pyx_v_ref_left; PyObject *__pyx_v_chrom = 0; PyObject *__pyx_v_strand = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cigar_pairs,&__pyx_n_s__ref_left,&__pyx_n_s__chrom,&__pyx_n_s__strand,0}; __Pyx_RefNannySetupContext("build_cigar_list"); __pyx_self = __pyx_self; { PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject*)__pyx_kp_s_14); values[3] = ((PyObject*)__pyx_kp_s_11); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cigar_pairs); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ref_left); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__chrom); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strand); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "build_cigar_list") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_cigar_pairs = ((PyObject*)values[0]); if (values[1]) { __pyx_v_ref_left = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_ref_left == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_ref_left = ((int)0); } __pyx_v_chrom = ((PyObject*)values[2]); __pyx_v_strand = ((PyObject*)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("build_cigar_list", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.build_cigar_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cigar_pairs), (&PyList_Type), 1, "cigar_pairs", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chrom), (&PyString_Type), 1, "chrom", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strand), (&PyString_Type), 1, "strand", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 3; __pyx_t_2.ref_left = __pyx_v_ref_left; __pyx_t_2.chrom = __pyx_v_chrom; __pyx_t_2.strand = __pyx_v_strand; __pyx_t_1 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_build_cigar_list(__pyx_v_cigar_pairs, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.build_cigar_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1166 * return res * * cdef _parse_SAM_optional_field_value( str field ): # <<<<<<<<<<<<<< * if len(field) < 5 or field[2] != ':' or field[4] != ':': * raise ValueError, "Malformatted SAM optional field '%'" % field */ static PyObject *__pyx_f_5HTSeq_6_HTSeq__parse_SAM_optional_field_value(PyObject *__pyx_v_field) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; double __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_parse_SAM_optional_field_value"); /* "HTSeq/_HTSeq.pyx":1167 * * cdef _parse_SAM_optional_field_value( str field ): * if len(field) < 5 or field[2] != ':' or field[4] != ':': # <<<<<<<<<<<<<< * raise ValueError, "Malformatted SAM optional field '%'" % field * if field[3] == 'A': */ __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_field)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_2 = (__pyx_t_1 < 5); if (!__pyx_t_2) { __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_kp_s_87), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_4) { __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 4, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_kp_s_87), Py_NE); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_5; } else { __pyx_t_6 = __pyx_t_4; } __pyx_t_4 = __pyx_t_6; } else { __pyx_t_4 = __pyx_t_2; } if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1168 * cdef _parse_SAM_optional_field_value( str field ): * if len(field) < 5 or field[2] != ':' or field[4] != ':': * raise ValueError, "Malformatted SAM optional field '%'" % field # <<<<<<<<<<<<<< * if field[3] == 'A': * return field[5] */ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_88), ((PyObject *)__pyx_v_field)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; /* "HTSeq/_HTSeq.pyx":1169 * if len(field) < 5 or field[2] != ':' or field[4] != ':': * raise ValueError, "Malformatted SAM optional field '%'" % field * if field[3] == 'A': # <<<<<<<<<<<<<< * return field[5] * elif field[3] == 'i': */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_n_s__A), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1170 * raise ValueError, "Malformatted SAM optional field '%'" % field * if field[3] == 'A': * return field[5] # <<<<<<<<<<<<<< * elif field[3] == 'i': * return int( field[5:] ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 5, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L4; } /* "HTSeq/_HTSeq.pyx":1171 * if field[3] == 'A': * return field[5] * elif field[3] == 'i': # <<<<<<<<<<<<<< * return int( field[5:] ) * elif field[3] == 'f': */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1172 * return field[5] * elif field[3] == 'i': * return int( field[5:] ) # <<<<<<<<<<<<<< * elif field[3] == 'f': * return float( field[5:] ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_field), 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L4; } /* "HTSeq/_HTSeq.pyx":1173 * elif field[3] == 'i': * return int( field[5:] ) * elif field[3] == 'f': # <<<<<<<<<<<<<< * return float( field[5:] ) * elif field[3] == 'Z': */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_n_s__f), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1174 * return int( field[5:] ) * elif field[3] == 'f': * return float( field[5:] ) # <<<<<<<<<<<<<< * elif field[3] == 'Z': * return field[5:] */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_field), 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_8 = __Pyx_PyObject_AsDouble(((PyObject *)__pyx_t_3)); if (unlikely(__pyx_t_8 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L4; } /* "HTSeq/_HTSeq.pyx":1175 * elif field[3] == 'f': * return float( field[5:] ) * elif field[3] == 'Z': # <<<<<<<<<<<<<< * return field[5:] * elif field[3] == 'H': */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_n_s__Z), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1176 * return float( field[5:] ) * elif field[3] == 'Z': * return field[5:] # <<<<<<<<<<<<<< * elif field[3] == 'H': * return int( field[5:], 16 ) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_field), 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_r = ((PyObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L4; } /* "HTSeq/_HTSeq.pyx":1177 * elif field[3] == 'Z': * return field[5:] * elif field[3] == 'H': # <<<<<<<<<<<<<< * return int( field[5:], 16 ) * else: */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_3, ((PyObject *)__pyx_n_s__H), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1178 * return field[5:] * elif field[3] == 'H': * return int( field[5:], 16 ) # <<<<<<<<<<<<<< * else: * raise ValueError, "SAM optional field with illegal type letter '%s'" % field[2] */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_field), 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(__pyx_int_16); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_16); __Pyx_GIVEREF(__pyx_int_16); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; goto __pyx_L4; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1180 * return int( field[5:], 16 ) * else: * raise ValueError, "SAM optional field with illegal type letter '%s'" % field[2] # <<<<<<<<<<<<<< * * cigar_operation_codes = [ 'M', 'I', 'D', 'N', 'S', 'H', 'P', '=', 'X'] */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_field), 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_89), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L4:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("HTSeq._HTSeq._parse_SAM_optional_field_value", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1195 * """ * * def to_pysam_AlignedRead( self, sf ): # <<<<<<<<<<<<<< * try: * import pysam */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_to_pysam_AlignedRead(PyObject *__pyx_v_self, PyObject *__pyx_v_sf); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_to_pysam_AlignedRead(PyObject *__pyx_v_self, PyObject *__pyx_v_sf) { PyObject *__pyx_v_pysam = NULL; PyObject *__pyx_v_a = NULL; PyObject *__pyx_v_c = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; Py_ssize_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("to_pysam_AlignedRead"); /* "HTSeq/_HTSeq.pyx":1196 * * def to_pysam_AlignedRead( self, sf ): * try: # <<<<<<<<<<<<<< * import pysam * except ImportError: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "HTSeq/_HTSeq.pyx":1197 * def to_pysam_AlignedRead( self, sf ): * try: * import pysam # <<<<<<<<<<<<<< * except ImportError: * sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) */ __pyx_t_4 = __Pyx_Import(((PyObject *)__pyx_n_s__pysam), 0, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L5_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_v_pysam = __pyx_t_4; __pyx_t_4 = 0; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L12_try_end; __pyx_L5_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":1198 * try: * import pysam * except ImportError: # <<<<<<<<<<<<<< * sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) * raise */ __pyx_t_5 = PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_5) { __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.to_pysam_AlignedRead", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "HTSeq/_HTSeq.pyx":1199 * import pysam * except ImportError: * sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) # <<<<<<<<<<<<<< * raise * */ __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__stderr); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__write); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_91), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "HTSeq/_HTSeq.pyx":1200 * except ImportError: * sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) * raise # <<<<<<<<<<<<<< * * a = pysam.AlignedRead() */ __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_7); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_exception_handled; } __pyx_L7_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L6_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L12_try_end:; } /* "HTSeq/_HTSeq.pyx":1202 * raise * * a = pysam.AlignedRead() # <<<<<<<<<<<<<< * a.seq = self.read.seq * a.qual = self.read.qualstr */ __pyx_t_7 = PyObject_GetAttr(__pyx_v_pysam, __pyx_n_s__AlignedRead); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_a = __pyx_t_6; __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":1203 * * a = pysam.AlignedRead() * a.seq = self.read.seq # <<<<<<<<<<<<<< * a.qual = self.read.qualstr * a.qname = self.read.name */ __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__seq); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__seq, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1204 * a = pysam.AlignedRead() * a.seq = self.read.seq * a.qual = self.read.qualstr # <<<<<<<<<<<<<< * a.qname = self.read.name * a.flag = self.flag */ __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__qualstr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__qual, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":1205 * a.seq = self.read.seq * a.qual = self.read.qualstr * a.qname = self.read.name # <<<<<<<<<<<<<< * a.flag = self.flag * a.tags = self.optional_fields */ __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__name); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__qname, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1206 * a.qual = self.read.qualstr * a.qname = self.read.name * a.flag = self.flag # <<<<<<<<<<<<<< * a.tags = self.optional_fields * if self.aligned: */ __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__flag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__flag, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1207 * a.qname = self.read.name * a.flag = self.flag * a.tags = self.optional_fields # <<<<<<<<<<<<<< * if self.aligned: * a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] */ if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__tags, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1208 * a.flag = self.flag * a.tags = self.optional_fields * if self.aligned: # <<<<<<<<<<<<<< * a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] * a.pos = self.iv.start */ __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__aligned); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_10) { /* "HTSeq/_HTSeq.pyx":1209 * a.tags = self.optional_fields * if self.aligned: * a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] # <<<<<<<<<<<<<< * a.pos = self.iv.start * a.tid = sf.gettid( self.iv.chrom ) */ __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_6 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar); __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break; __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; __Pyx_XDECREF(__pyx_v_c); __pyx_v_c = __pyx_t_4; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s_92); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = PyObject_GetAttr(__pyx_v_c, __pyx_n_s__type); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = PyObject_GetItem(__pyx_t_4, __pyx_t_9); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_GetAttr(__pyx_v_c, __pyx_n_s__size); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_8 = 0; __pyx_t_9 = 0; if (unlikely(PyList_Append(__pyx_t_7, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__cigar, ((PyObject *)__pyx_t_7)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1210 * if self.aligned: * a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] * a.pos = self.iv.start # <<<<<<<<<<<<<< * a.tid = sf.gettid( self.iv.chrom ) * a.isize = self.inferred_insert_size */ __pyx_t_7 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv->start); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__pos, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1211 * a.cigar = [ (cigar_operation_code_dict[c.type], c.size) for c in self.cigar ] * a.pos = self.iv.start * a.tid = sf.gettid( self.iv.chrom ) # <<<<<<<<<<<<<< * a.isize = self.inferred_insert_size * a.mapq = self.aQual */ __pyx_t_7 = PyObject_GetAttr(__pyx_v_sf, __pyx_n_s__gettid); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv->chrom)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv->chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv->chrom)); __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__tid, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":1212 * a.pos = self.iv.start * a.tid = sf.gettid( self.iv.chrom ) * a.isize = self.inferred_insert_size # <<<<<<<<<<<<<< * a.mapq = self.aQual * else: */ __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->inferred_insert_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__isize, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":1213 * a.tid = sf.gettid( self.iv.chrom ) * a.isize = self.inferred_insert_size * a.mapq = self.aQual # <<<<<<<<<<<<<< * else: * a.pos = -1 */ __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->aQual); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__mapq, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L15; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1215 * a.mapq = self.aQual * else: * a.pos = -1 # <<<<<<<<<<<<<< * a.tid = -1 * if self.mate_aligned: */ if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__pos, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1216 * else: * a.pos = -1 * a.tid = -1 # <<<<<<<<<<<<<< * if self.mate_aligned: * a.mrnm = sf.gettid( self.mate_start.chrom ) */ if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__tid, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L15:; /* "HTSeq/_HTSeq.pyx":1217 * a.pos = -1 * a.tid = -1 * if self.mate_aligned: # <<<<<<<<<<<<<< * a.mrnm = sf.gettid( self.mate_start.chrom ) * a.mpos = self.mate_start.start */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__mate_aligned); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_10) { /* "HTSeq/_HTSeq.pyx":1218 * a.tid = -1 * if self.mate_aligned: * a.mrnm = sf.gettid( self.mate_start.chrom ) # <<<<<<<<<<<<<< * a.mpos = self.mate_start.start * else: */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_sf, __pyx_n_s__gettid); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start->__pyx_base.chrom)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start->__pyx_base.chrom)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start->__pyx_base.chrom)); __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__mrnm, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "HTSeq/_HTSeq.pyx":1219 * if self.mate_aligned: * a.mrnm = sf.gettid( self.mate_start.chrom ) * a.mpos = self.mate_start.start # <<<<<<<<<<<<<< * else: * a.mrnm = -1 */ __pyx_t_7 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start->__pyx_base.start); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__mpos, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L18; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1221 * a.mpos = self.mate_start.start * else: * a.mrnm = -1 # <<<<<<<<<<<<<< * a.mpos = -1 * return a */ if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__mrnm, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1222 * else: * a.mrnm = -1 * a.mpos = -1 # <<<<<<<<<<<<<< * return a * */ if (PyObject_SetAttr(__pyx_v_a, __pyx_n_s__mpos, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L18:; /* "HTSeq/_HTSeq.pyx":1223 * a.mrnm = -1 * a.mpos = -1 * return a # <<<<<<<<<<<<<< * * @classmethod */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_a); __pyx_r = __pyx_v_a; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.to_pysam_AlignedRead", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_pysam); __Pyx_XDECREF(__pyx_v_a); __Pyx_XDECREF(__pyx_v_c); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1226 * * @classmethod * def from_pysam_AlignedRead( cls, read, samfile ): # <<<<<<<<<<<<<< * strand = "-" if read.is_reverse else "+" * if not read.is_unmapped: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_1from_pysam_AlignedRead(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_1from_pysam_AlignedRead(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_read = 0; PyObject *__pyx_v_samfile = 0; PyObject *__pyx_v_strand = NULL; PyObject *__pyx_v_chrom = NULL; PyObject *__pyx_v_iv = NULL; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_seq = NULL; struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *__pyx_v_a = NULL; PyObject *__pyx_v_code = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *(*__pyx_t_12)(PyObject *); int __pyx_t_13; struct __pyx_opt_args_5HTSeq_6_HTSeq_build_cigar_list __pyx_t_14; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__read,&__pyx_n_s__samfile,0}; __Pyx_RefNannySetupContext("from_pysam_AlignedRead"); { PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__read); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__samfile); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("from_pysam_AlignedRead", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "from_pysam_AlignedRead") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_read = values[0]; __pyx_v_samfile = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("from_pysam_AlignedRead", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.from_pysam_AlignedRead", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; /* "HTSeq/_HTSeq.pyx":1227 * @classmethod * def from_pysam_AlignedRead( cls, read, samfile ): * strand = "-" if read.is_reverse else "+" # <<<<<<<<<<<<<< * if not read.is_unmapped: * chrom = samfile.getrname(read.tid) */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_reverse); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { __Pyx_INCREF(((PyObject *)__pyx_kp_s_38)); __pyx_t_1 = __pyx_kp_s_38; } else { __Pyx_INCREF(((PyObject *)__pyx_kp_s_37)); __pyx_t_1 = __pyx_kp_s_37; } __pyx_v_strand = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1228 * def from_pysam_AlignedRead( cls, read, samfile ): * strand = "-" if read.is_reverse else "+" * if not read.is_unmapped: # <<<<<<<<<<<<<< * chrom = samfile.getrname(read.tid) * iv = GenomicInterval( chrom, read.pos, read.aend, strand ) */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_unmapped); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = (!__pyx_t_3); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1229 * strand = "-" if read.is_reverse else "+" * if not read.is_unmapped: * chrom = samfile.getrname(read.tid) # <<<<<<<<<<<<<< * iv = GenomicInterval( chrom, read.pos, read.aend, strand ) * else: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_samfile, __pyx_n_s__getrname); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__tid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_v_chrom = __pyx_t_2; __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1230 * if not read.is_unmapped: * chrom = samfile.getrname(read.tid) * iv = GenomicInterval( chrom, read.pos, read.aend, strand ) # <<<<<<<<<<<<<< * else: * iv = None */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__pos); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__aend); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_chrom); __Pyx_GIVEREF(__pyx_v_chrom); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_strand); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_strand); __Pyx_GIVEREF(__pyx_v_strand); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_iv = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1232 * iv = GenomicInterval( chrom, read.pos, read.aend, strand ) * else: * iv = None # <<<<<<<<<<<<<< * if read.qual != "*": * seq = SequenceWithQualities( read.seq, read.qname, read.qual ) */ __Pyx_INCREF(Py_None); __pyx_v_iv = Py_None; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":1233 * else: * iv = None * if read.qual != "*": # <<<<<<<<<<<<<< * seq = SequenceWithQualities( read.seq, read.qname, read.qual ) * else: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__qual); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_5, ((PyObject *)__pyx_kp_s_93), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1234 * iv = None * if read.qual != "*": * seq = SequenceWithQualities( read.seq, read.qname, read.qual ) # <<<<<<<<<<<<<< * else: * seq = SequenceWithQualities( read.seq, read.qname, read.qual, "noquals" ) */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__seq); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__qname); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__qual); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_v_seq = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1236 * seq = SequenceWithQualities( read.seq, read.qname, read.qual ) * else: * seq = SequenceWithQualities( read.seq, read.qname, read.qual, "noquals" ) # <<<<<<<<<<<<<< * a = SAM_Alignment( seq, iv ) * a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__seq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__qname); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__qual); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_n_s__noquals)); PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_n_s__noquals)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__noquals)); __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_v_seq = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_1); __pyx_t_1 = 0; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":1237 * else: * seq = SequenceWithQualities( read.seq, read.qname, read.qual, "noquals" ) * a = SAM_Alignment( seq, iv ) # <<<<<<<<<<<<<< * a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] * a.inferred_insert_size = read.isize */ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_seq)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_seq)); __Pyx_GIVEREF(((PyObject *)__pyx_v_seq)); __Pyx_INCREF(__pyx_v_iv); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_iv); __Pyx_GIVEREF(__pyx_v_iv); __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_a = ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1238 * seq = SequenceWithQualities( read.seq, read.qname, read.qual, "noquals" ) * a = SAM_Alignment( seq, iv ) * a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] # <<<<<<<<<<<<<< * a.inferred_insert_size = read.isize * a.aQual = read.mapq */ __pyx_t_1 = PyObject_RichCompare(__pyx_v_iv, Py_None, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_6 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__cigar); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) { __pyx_t_2 = __pyx_t_6; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (PyList_CheckExact(__pyx_t_2)) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break; __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; } else if (PyTuple_CheckExact(__pyx_t_2)) { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break; __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; } else { __pyx_t_6 = __pyx_t_8(__pyx_t_2); if (unlikely(!__pyx_t_6)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_6); } if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); } else { if (unlikely(PyList_GET_SIZE(sequence) != 2)) { if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_10 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext; index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L11_unpacking_done:; } __Pyx_XDECREF(__pyx_v_code); __pyx_v_code = __pyx_t_9; __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_v_length); __pyx_v_length = __pyx_t_10; __pyx_t_10 = 0; __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s_94); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyObject_GetItem(__pyx_t_6, __pyx_v_code); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_length); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_length); __Pyx_GIVEREF(__pyx_v_length); __pyx_t_10 = 0; if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = ((PyObject *)__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_v_chrom)) { __Pyx_RaiseUnboundLocalError("chrom"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (!(likely(PyString_CheckExact(__pyx_v_chrom))||((__pyx_v_chrom) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_chrom)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_1 = __pyx_v_chrom; __Pyx_INCREF(__pyx_t_1); if (!(likely(PyString_CheckExact(__pyx_v_strand))||((__pyx_v_strand) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_strand)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_6 = __pyx_v_strand; __Pyx_INCREF(__pyx_t_6); __pyx_t_14.__pyx_n = 3; __pyx_t_14.ref_left = __pyx_t_13; __pyx_t_14.chrom = ((PyObject*)__pyx_t_1); __pyx_t_14.strand = ((PyObject*)__pyx_t_6); __pyx_t_10 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_build_cigar_list(((PyObject*)__pyx_t_2), 0, &__pyx_t_14)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = __pyx_t_10; __pyx_t_10 = 0; } else { __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __pyx_t_5 = __pyx_t_10; __pyx_t_10 = 0; } __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __Pyx_GOTREF(__pyx_v_a->cigar); __Pyx_DECREF(((PyObject *)__pyx_v_a->cigar)); __pyx_v_a->cigar = __pyx_t_5; __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1239 * a = SAM_Alignment( seq, iv ) * a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] * a.inferred_insert_size = read.isize # <<<<<<<<<<<<<< * a.aQual = read.mapq * a.flag = read.flag */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__isize); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->inferred_insert_size = __pyx_t_13; /* "HTSeq/_HTSeq.pyx":1240 * a.cigar = build_cigar_list( [ (cigar_operation_codes[code], length) for (code, length) in read.cigar ] , read.pos, chrom, strand ) if iv != None else [] * a.inferred_insert_size = read.isize * a.aQual = read.mapq # <<<<<<<<<<<<<< * a.flag = read.flag * a.proper_pair = read.is_proper_pair */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__mapq); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->aQual = __pyx_t_13; /* "HTSeq/_HTSeq.pyx":1241 * a.inferred_insert_size = read.isize * a.aQual = read.mapq * a.flag = read.flag # <<<<<<<<<<<<<< * a.proper_pair = read.is_proper_pair * a.not_primary_alignment = read.is_secondary */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__flag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1241; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetAttr(((PyObject *)__pyx_v_a), __pyx_n_s__flag, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1241; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1242 * a.aQual = read.mapq * a.flag = read.flag * a.proper_pair = read.is_proper_pair # <<<<<<<<<<<<<< * a.not_primary_alignment = read.is_secondary * a.failed_platform_qc = read.is_qcfail */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_proper_pair); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->proper_pair = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":1243 * a.flag = read.flag * a.proper_pair = read.is_proper_pair * a.not_primary_alignment = read.is_secondary # <<<<<<<<<<<<<< * a.failed_platform_qc = read.is_qcfail * a.pcr_or_optical_duplicate = read.is_duplicate */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_secondary); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->not_primary_alignment = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":1244 * a.proper_pair = read.is_proper_pair * a.not_primary_alignment = read.is_secondary * a.failed_platform_qc = read.is_qcfail # <<<<<<<<<<<<<< * a.pcr_or_optical_duplicate = read.is_duplicate * a.original_sam_line = "" */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_qcfail); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->failed_platform_qc = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":1245 * a.not_primary_alignment = read.is_secondary * a.failed_platform_qc = read.is_qcfail * a.pcr_or_optical_duplicate = read.is_duplicate # <<<<<<<<<<<<<< * a.original_sam_line = "" * a.optional_fields = read.tags */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_duplicate); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_a->pcr_or_optical_duplicate = __pyx_t_4; /* "HTSeq/_HTSeq.pyx":1246 * a.failed_platform_qc = read.is_qcfail * a.pcr_or_optical_duplicate = read.is_duplicate * a.original_sam_line = "" # <<<<<<<<<<<<<< * a.optional_fields = read.tags * if read.is_paired: */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); __Pyx_GOTREF(__pyx_v_a->original_sam_line); __Pyx_DECREF(((PyObject *)__pyx_v_a->original_sam_line)); __pyx_v_a->original_sam_line = __pyx_kp_s_14; /* "HTSeq/_HTSeq.pyx":1247 * a.pcr_or_optical_duplicate = read.is_duplicate * a.original_sam_line = "" * a.optional_fields = read.tags # <<<<<<<<<<<<<< * if read.is_paired: * if read.is_proper_pair: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__tags); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_a->optional_fields); __Pyx_DECREF(((PyObject *)__pyx_v_a->optional_fields)); __pyx_v_a->optional_fields = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1248 * a.original_sam_line = "" * a.optional_fields = read.tags * if read.is_paired: # <<<<<<<<<<<<<< * if read.is_proper_pair: * strand = "-" if read.mate_is_reverse else "+" */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_paired); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1249 * a.optional_fields = read.tags * if read.is_paired: * if read.is_proper_pair: # <<<<<<<<<<<<<< * strand = "-" if read.mate_is_reverse else "+" * a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_proper_pair); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1250 * if read.is_paired: * if read.is_proper_pair: * strand = "-" if read.mate_is_reverse else "+" # <<<<<<<<<<<<<< * a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) * if read.is_read1: */ __pyx_t_10 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__mate_is_reverse); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_4) { __Pyx_INCREF(((PyObject *)__pyx_kp_s_38)); __pyx_t_5 = __pyx_kp_s_38; } else { __Pyx_INCREF(((PyObject *)__pyx_kp_s_37)); __pyx_t_5 = __pyx_kp_s_37; } __Pyx_DECREF(__pyx_v_strand); __pyx_v_strand = ((PyObject *)__pyx_t_5); __pyx_t_5 = 0; /* "HTSeq/_HTSeq.pyx":1251 * if read.is_proper_pair: * strand = "-" if read.mate_is_reverse else "+" * a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) # <<<<<<<<<<<<<< * if read.is_read1: * a.pe_which = intern( "first" ) */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_samfile, __pyx_n_s__getrname); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__mrnm); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_t_6 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__mpos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_strand); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_strand); __Pyx_GIVEREF(__pyx_v_strand); __pyx_t_10 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_a->mate_start); __Pyx_DECREF(((PyObject *)__pyx_v_a->mate_start)); __pyx_v_a->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_t_6); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":1252 * strand = "-" if read.mate_is_reverse else "+" * a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) * if read.is_read1: # <<<<<<<<<<<<<< * a.pe_which = intern( "first" ) * elif read.is_read2: */ __pyx_t_6 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_read1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1253 * a.mate_start = GenomicPosition( samfile.getrname(read.mrnm), read.mpos, strand ) * if read.is_read1: * a.pe_which = intern( "first" ) # <<<<<<<<<<<<<< * elif read.is_read2: * a.pe_which = intern( "second" ) */ __pyx_t_6 = ((PyObject *)__pyx_n_s__first); __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = __Pyx_Intern(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_a->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_a->pe_which)); __pyx_v_a->pe_which = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L14; } /* "HTSeq/_HTSeq.pyx":1254 * if read.is_read1: * a.pe_which = intern( "first" ) * elif read.is_read2: # <<<<<<<<<<<<<< * a.pe_which = intern( "second" ) * else: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_read, __pyx_n_s__is_read2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1255 * a.pe_which = intern( "first" ) * elif read.is_read2: * a.pe_which = intern( "second" ) # <<<<<<<<<<<<<< * else: * a.pe_which = intern( "unknown" ) */ __pyx_t_5 = ((PyObject *)__pyx_n_s__second); __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_6)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_a->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_a->pe_which)); __pyx_v_a->pe_which = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L14; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1257 * a.pe_which = intern( "second" ) * else: * a.pe_which = intern( "unknown" ) # <<<<<<<<<<<<<< * else: * a.pe_which = intern( "not_paired_end" ) */ __pyx_t_6 = ((PyObject *)__pyx_n_s__unknown); __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = __Pyx_Intern(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_a->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_a->pe_which)); __pyx_v_a->pe_which = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; } __pyx_L14:; goto __pyx_L13; } __pyx_L13:; goto __pyx_L12; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1259 * a.pe_which = intern( "unknown" ) * else: * a.pe_which = intern( "not_paired_end" ) # <<<<<<<<<<<<<< * return a * */ __pyx_t_5 = ((PyObject *)__pyx_n_s__not_paired_end); __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_6)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_a->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_a->pe_which)); __pyx_v_a->pe_which = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; } __pyx_L12:; /* "HTSeq/_HTSeq.pyx":1260 * else: * a.pe_which = intern( "not_paired_end" ) * return a # <<<<<<<<<<<<<< * * @classmethod */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_a)); __pyx_r = ((PyObject *)__pyx_v_a); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.from_pysam_AlignedRead", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_strand); __Pyx_XDECREF(__pyx_v_chrom); __Pyx_XDECREF(__pyx_v_iv); __Pyx_XDECREF((PyObject *)__pyx_v_seq); __Pyx_XDECREF((PyObject *)__pyx_v_a); __Pyx_XDECREF(__pyx_v_code); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1263 * * @classmethod * def from_SAM_line( cls, line ): # <<<<<<<<<<<<<< * cdef str qname, flag, rname, pos, mapq, cigar, * cdef str mrnm, mpos, isize, seq, qual */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_2from_SAM_line(PyObject *__pyx_v_cls, PyObject *__pyx_v_line); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_2from_SAM_line(PyObject *__pyx_v_cls, PyObject *__pyx_v_line) { PyObject *__pyx_v_qname = 0; PyObject *__pyx_v_flag = 0; PyObject *__pyx_v_rname = 0; PyObject *__pyx_v_pos = 0; PyObject *__pyx_v_mapq = 0; PyObject *__pyx_v_cigar = 0; PyObject *__pyx_v_mrnm = 0; PyObject *__pyx_v_mpos = 0; PyObject *__pyx_v_isize = 0; PyObject *__pyx_v_seq = 0; PyObject *__pyx_v_qual = 0; PyObject *__pyx_v_optional_fields = 0; int __pyx_v_posint; int __pyx_v_flagint; PyObject *__pyx_v_strand = 0; PyObject *__pyx_v_cigarlist = 0; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *__pyx_v_swq = 0; PyObject *__pyx_v_fields = NULL; PyObject *__pyx_v_iv = NULL; struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *__pyx_v_alnmt = NULL; PyObject *__pyx_v_field = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *(*__pyx_t_16)(PyObject *); int __pyx_t_17; long __pyx_t_18; struct __pyx_opt_args_5HTSeq_6_HTSeq_parse_cigar __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_SAM_line"); /* "HTSeq/_HTSeq.pyx":1272 * cdef SequenceWithQualities swq * * fields = line.rstrip().split( "\t" ) # <<<<<<<<<<<<<< * if len( fields ) < 10: * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_95), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_fields = __pyx_t_2; __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1273 * * fields = line.rstrip().split( "\t" ) * if len( fields ) < 10: # <<<<<<<<<<<<<< * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." * (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, */ __pyx_t_3 = PyObject_Length(__pyx_v_fields); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = (__pyx_t_3 < 10); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1274 * fields = line.rstrip().split( "\t" ) * if len( fields ) < 10: * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." # <<<<<<<<<<<<<< * (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, * seq, qual) = fields[ 0:11 ] */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_96), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":1276 * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." * (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, * seq, qual) = fields[ 0:11 ] # <<<<<<<<<<<<<< * optional_fields = fields[ 11: ] * */ __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_fields, 0, 11); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; if (likely(PyTuple_CheckExact(sequence))) { if (unlikely(PyTuple_GET_SIZE(sequence) != 11)) { if (PyTuple_GET_SIZE(sequence) > 11) __Pyx_RaiseTooManyValuesError(11); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 6); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 7); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 8); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 9); __pyx_t_14 = PyTuple_GET_ITEM(sequence, 10); } else { if (unlikely(PyList_GET_SIZE(sequence) != 11)) { if (PyList_GET_SIZE(sequence) > 11) __Pyx_RaiseTooManyValuesError(11); else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_6 = PyList_GET_ITEM(sequence, 2); __pyx_t_7 = PyList_GET_ITEM(sequence, 3); __pyx_t_8 = PyList_GET_ITEM(sequence, 4); __pyx_t_9 = PyList_GET_ITEM(sequence, 5); __pyx_t_10 = PyList_GET_ITEM(sequence, 6); __pyx_t_11 = PyList_GET_ITEM(sequence, 7); __pyx_t_12 = PyList_GET_ITEM(sequence, 8); __pyx_t_13 = PyList_GET_ITEM(sequence, 9); __pyx_t_14 = PyList_GET_ITEM(sequence, 10); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_15)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_5 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 2; __pyx_t_6 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 3; __pyx_t_7 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 4; __pyx_t_8 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); index = 5; __pyx_t_9 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 6; __pyx_t_10 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 7; __pyx_t_11 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); index = 8; __pyx_t_12 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_12)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); index = 9; __pyx_t_13 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_13)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_13); index = 10; __pyx_t_14 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_14)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_14); if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L7_unpacking_done:; } /* "HTSeq/_HTSeq.pyx":1275 * if len( fields ) < 10: * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." * (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, # <<<<<<<<<<<<<< * seq, qual) = fields[ 0:11 ] * optional_fields = fields[ 11: ] */ if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_6)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_7)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_8)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_9)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_10)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_11)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_12)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_13)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!(likely(PyString_CheckExact(__pyx_t_14))||((__pyx_t_14) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_14)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_qname = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_flag = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_rname = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_v_pos = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; __pyx_v_mapq = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __pyx_v_cigar = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0; __pyx_v_mrnm = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0; __pyx_v_mpos = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; __pyx_v_isize = ((PyObject*)__pyx_t_12); __pyx_t_12 = 0; __pyx_v_seq = ((PyObject*)__pyx_t_13); __pyx_t_13 = 0; __pyx_v_qual = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0; /* "HTSeq/_HTSeq.pyx":1277 * (qname, flag, rname, pos, mapq, cigar, mrnm, mpos, isize, * seq, qual) = fields[ 0:11 ] * optional_fields = fields[ 11: ] # <<<<<<<<<<<<<< * * if seq.count( "=" ) > 0: */ __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_fields, 11, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_optional_fields = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1279 * optional_fields = fields[ 11: ] * * if seq.count( "=" ) > 0: # <<<<<<<<<<<<<< * raise ValueError, "Sequence in SAM file contains '=', which is not supported." * if seq.count( "." ) > 0: */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_seq), __pyx_n_s__count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_98), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_14, __pyx_int_0, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1280 * * if seq.count( "=" ) > 0: * raise ValueError, "Sequence in SAM file contains '=', which is not supported." # <<<<<<<<<<<<<< * if seq.count( "." ) > 0: * raise ValueError, "Sequence in SAM file contains '.', which is not supported." */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_99), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L8; } __pyx_L8:; /* "HTSeq/_HTSeq.pyx":1281 * if seq.count( "=" ) > 0: * raise ValueError, "Sequence in SAM file contains '=', which is not supported." * if seq.count( "." ) > 0: # <<<<<<<<<<<<<< * raise ValueError, "Sequence in SAM file contains '.', which is not supported." * flagint = int( flag ) */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_seq), __pyx_n_s__count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_100), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_14, __pyx_int_0, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1282 * raise ValueError, "Sequence in SAM file contains '=', which is not supported." * if seq.count( "." ) > 0: * raise ValueError, "Sequence in SAM file contains '.', which is not supported." # <<<<<<<<<<<<<< * flagint = int( flag ) * */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_101), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L9; } __pyx_L9:; /* "HTSeq/_HTSeq.pyx":1283 * if seq.count( "." ) > 0: * raise ValueError, "Sequence in SAM file contains '.', which is not supported." * flagint = int( flag ) # <<<<<<<<<<<<<< * * if flagint & 0x0004: # flag "query sequence is unmapped" */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_flag)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_flag)); __Pyx_GIVEREF(((PyObject *)__pyx_v_flag)); __pyx_t_14 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_t_14); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_flagint = __pyx_t_17; /* "HTSeq/_HTSeq.pyx":1285 * flagint = int( flag ) * * if flagint & 0x0004: # flag "query sequence is unmapped" # <<<<<<<<<<<<<< * iv = None * cigarlist = None */ __pyx_t_18 = (__pyx_v_flagint & 0x0004); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1286 * * if flagint & 0x0004: # flag "query sequence is unmapped" * iv = None # <<<<<<<<<<<<<< * cigarlist = None * if rname != "*": # flag "query sequence is unmapped" */ __Pyx_INCREF(Py_None); __pyx_v_iv = Py_None; /* "HTSeq/_HTSeq.pyx":1287 * if flagint & 0x0004: # flag "query sequence is unmapped" * iv = None * cigarlist = None # <<<<<<<<<<<<<< * if rname != "*": # flag "query sequence is unmapped" * warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) */ __Pyx_INCREF(Py_None); __pyx_v_cigarlist = ((PyObject*)Py_None); /* "HTSeq/_HTSeq.pyx":1288 * iv = None * cigarlist = None * if rname != "*": # flag "query sequence is unmapped" # <<<<<<<<<<<<<< * warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) * else: */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_rname), ((PyObject *)__pyx_kp_s_93), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1289 * cigarlist = None * if rname != "*": # flag "query sequence is unmapped" * warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) # <<<<<<<<<<<<<< * else: * if rname == "*": */ __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_103), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L11; } __pyx_L11:; goto __pyx_L10; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1291 * warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) * else: * if rname == "*": # <<<<<<<<<<<<<< * raise ValueError, "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared" * posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_rname), ((PyObject *)__pyx_kp_s_93), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1292 * else: * if rname == "*": * raise ValueError, "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared" # <<<<<<<<<<<<<< * posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! * if flagint & 0x0010: # flag "strand of the query" */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_104), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L12; } __pyx_L12:; /* "HTSeq/_HTSeq.pyx":1293 * if rname == "*": * raise ValueError, "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared" * posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! # <<<<<<<<<<<<<< * if flagint & 0x0010: # flag "strand of the query" * strand = "-" */ __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_14)); __Pyx_INCREF(((PyObject *)__pyx_v_pos)); PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_pos)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pos)); __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Subtract(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_t_14); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_posint = __pyx_t_17; /* "HTSeq/_HTSeq.pyx":1294 * raise ValueError, "Malformed SAM line: RNAME == '*' although flag bit &0x0004 cleared" * posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! * if flagint & 0x0010: # flag "strand of the query" # <<<<<<<<<<<<<< * strand = "-" * else: */ __pyx_t_18 = (__pyx_v_flagint & 0x0010); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1295 * posint = int( pos ) - 1 # SAM is one-based, but HTSeq is zero-based! * if flagint & 0x0010: # flag "strand of the query" * strand = "-" # <<<<<<<<<<<<<< * else: * strand = "+" */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_38)); __pyx_v_strand = __pyx_kp_s_38; goto __pyx_L13; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1297 * strand = "-" * else: * strand = "+" # <<<<<<<<<<<<<< * cigarlist = parse_cigar( cigar, posint, rname, strand ) * iv = GenomicInterval( rname, posint, cigarlist[-1].ref_iv.end, strand ) */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_37)); __pyx_v_strand = __pyx_kp_s_37; } __pyx_L13:; /* "HTSeq/_HTSeq.pyx":1298 * else: * strand = "+" * cigarlist = parse_cigar( cigar, posint, rname, strand ) # <<<<<<<<<<<<<< * iv = GenomicInterval( rname, posint, cigarlist[-1].ref_iv.end, strand ) * */ __pyx_t_19.__pyx_n = 3; __pyx_t_19.ref_left = __pyx_v_posint; __pyx_t_19.chrom = __pyx_v_rname; __pyx_t_19.strand = __pyx_v_strand; __pyx_t_14 = ((PyObject *)__pyx_f_5HTSeq_6_HTSeq_parse_cigar(__pyx_v_cigar, 0, &__pyx_t_19)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __pyx_v_cigarlist = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0; /* "HTSeq/_HTSeq.pyx":1299 * strand = "+" * cigarlist = parse_cigar( cigar, posint, rname, strand ) * iv = GenomicInterval( rname, posint, cigarlist[-1].ref_iv.end, strand ) # <<<<<<<<<<<<<< * * if qual != "*": */ __pyx_t_14 = PyInt_FromLong(__pyx_v_posint); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_cigarlist), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ref_iv); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); __Pyx_INCREF(((PyObject *)__pyx_v_rname)); PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_v_rname)); __Pyx_GIVEREF(((PyObject *)__pyx_v_rname)); PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_13, 3, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_14 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval)), ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; __pyx_v_iv = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L10:; /* "HTSeq/_HTSeq.pyx":1301 * iv = GenomicInterval( rname, posint, cigarlist[-1].ref_iv.end, strand ) * * if qual != "*": # <<<<<<<<<<<<<< * swq = SequenceWithQualities( seq.upper(), qname, qual ) * else: */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_qual), ((PyObject *)__pyx_kp_s_93), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1302 * * if qual != "*": * swq = SequenceWithQualities( seq.upper(), qname, qual ) # <<<<<<<<<<<<<< * else: * swq = SequenceWithQualities( seq.upper(), qname, "", "noquals" ) */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_seq), __pyx_n_s__upper); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __Pyx_INCREF(((PyObject *)__pyx_v_qname)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_qname)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qname)); __Pyx_INCREF(((PyObject *)__pyx_v_qual)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_qual)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qual)); __pyx_t_13 = 0; __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_swq = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L14; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1304 * swq = SequenceWithQualities( seq.upper(), qname, qual ) * else: * swq = SequenceWithQualities( seq.upper(), qname, "", "noquals" ) # <<<<<<<<<<<<<< * * alnmt = SAM_Alignment( swq, iv ) */ __pyx_t_13 = PyObject_GetAttr(((PyObject *)__pyx_v_seq), __pyx_n_s__upper); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_qname)); PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)__pyx_v_qname)); __Pyx_GIVEREF(((PyObject *)__pyx_v_qname)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_14)); PyTuple_SET_ITEM(__pyx_t_13, 2, ((PyObject *)__pyx_kp_s_14)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); __Pyx_INCREF(((PyObject *)__pyx_n_s__noquals)); PyTuple_SET_ITEM(__pyx_t_13, 3, ((PyObject *)__pyx_n_s__noquals)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__noquals)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities)), ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; __pyx_v_swq = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L14:; /* "HTSeq/_HTSeq.pyx":1306 * swq = SequenceWithQualities( seq.upper(), qname, "", "noquals" ) * * alnmt = SAM_Alignment( swq, iv ) # <<<<<<<<<<<<<< * alnmt.flag = flagint * alnmt.cigar = cigarlist */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_swq)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_swq)); __Pyx_GIVEREF(((PyObject *)__pyx_v_swq)); __Pyx_INCREF(__pyx_v_iv); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_iv); __Pyx_GIVEREF(__pyx_v_iv); __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_alnmt = ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_t_13); __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":1307 * * alnmt = SAM_Alignment( swq, iv ) * alnmt.flag = flagint # <<<<<<<<<<<<<< * alnmt.cigar = cigarlist * alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] */ __pyx_t_13 = PyInt_FromLong(__pyx_v_flagint); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); if (PyObject_SetAttr(((PyObject *)__pyx_v_alnmt), __pyx_n_s__flag, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":1308 * alnmt = SAM_Alignment( swq, iv ) * alnmt.flag = flagint * alnmt.cigar = cigarlist # <<<<<<<<<<<<<< * alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] * alnmt.aQual = int( mapq ) */ __Pyx_INCREF(((PyObject *)__pyx_v_cigarlist)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cigarlist)); __Pyx_GOTREF(__pyx_v_alnmt->cigar); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->cigar)); __pyx_v_alnmt->cigar = __pyx_v_cigarlist; /* "HTSeq/_HTSeq.pyx":1309 * alnmt.flag = flagint * alnmt.cigar = cigarlist * alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] # <<<<<<<<<<<<<< * alnmt.aQual = int( mapq ) * alnmt.inferred_insert_size = int( isize ) */ __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); if (unlikely(((PyObject *)__pyx_v_optional_fields) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = ((PyObject *)__pyx_v_optional_fields); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; __pyx_t_14 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_14); __pyx_t_3++; __Pyx_XDECREF(__pyx_v_field); __pyx_v_field = __pyx_t_14; __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PySequence_GetSlice(__pyx_v_field, 0, 2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); if (!(likely(PyString_CheckExact(__pyx_v_field))||((__pyx_v_field) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_field)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_12 = __pyx_v_field; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = __pyx_f_5HTSeq_6_HTSeq__parse_SAM_optional_field_value(((PyObject*)__pyx_t_12)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_12)); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_14 = 0; __pyx_t_11 = 0; if (unlikely(PyList_Append(__pyx_t_13, (PyObject*)__pyx_t_12))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(((PyObject *)__pyx_t_13)); __Pyx_GIVEREF(((PyObject *)__pyx_t_13)); __Pyx_GOTREF(__pyx_v_alnmt->optional_fields); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->optional_fields)); __pyx_v_alnmt->optional_fields = __pyx_t_13; __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":1310 * alnmt.cigar = cigarlist * alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] * alnmt.aQual = int( mapq ) # <<<<<<<<<<<<<< * alnmt.inferred_insert_size = int( isize ) * alnmt.original_sam_line = line */ __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); __Pyx_INCREF(((PyObject *)__pyx_v_mapq)); PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_v_mapq)); __Pyx_GIVEREF(((PyObject *)__pyx_v_mapq)); __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_alnmt->aQual = __pyx_t_17; /* "HTSeq/_HTSeq.pyx":1311 * alnmt.optional_fields = [ ( field[:2], _parse_SAM_optional_field_value( field ) ) for field in optional_fields ] * alnmt.aQual = int( mapq ) * alnmt.inferred_insert_size = int( isize ) # <<<<<<<<<<<<<< * alnmt.original_sam_line = line * */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_isize)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_isize)); __Pyx_GIVEREF(((PyObject *)__pyx_v_isize)); __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_t_13); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_alnmt->inferred_insert_size = __pyx_t_17; /* "HTSeq/_HTSeq.pyx":1312 * alnmt.aQual = int( mapq ) * alnmt.inferred_insert_size = int( isize ) * alnmt.original_sam_line = line # <<<<<<<<<<<<<< * * if flagint & 0x0001: # flag "read is paired in sequencing" */ if (!(likely(PyString_CheckExact(__pyx_v_line))||((__pyx_v_line) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_line)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_line); __Pyx_GIVEREF(__pyx_v_line); __Pyx_GOTREF(__pyx_v_alnmt->original_sam_line); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->original_sam_line)); __pyx_v_alnmt->original_sam_line = ((PyObject*)__pyx_v_line); /* "HTSeq/_HTSeq.pyx":1314 * alnmt.original_sam_line = line * * if flagint & 0x0001: # flag "read is paired in sequencing" # <<<<<<<<<<<<<< * if flagint & 0x0008: # flag "mate is unmapped" * if mrnm != "*": */ __pyx_t_18 = (__pyx_v_flagint & 0x0001); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1315 * * if flagint & 0x0001: # flag "read is paired in sequencing" * if flagint & 0x0008: # flag "mate is unmapped" # <<<<<<<<<<<<<< * if mrnm != "*": * warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) */ __pyx_t_18 = (__pyx_v_flagint & 0x0008); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1316 * if flagint & 0x0001: # flag "read is paired in sequencing" * if flagint & 0x0008: # flag "mate is unmapped" * if mrnm != "*": # <<<<<<<<<<<<<< * warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) * alnmt.mate_start = None */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_mrnm), ((PyObject *)__pyx_kp_s_93), Py_NE); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1317 * if flagint & 0x0008: # flag "mate is unmapped" * if mrnm != "*": * warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) # <<<<<<<<<<<<<< * alnmt.mate_start = None * else: */ __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_106), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L19; } __pyx_L19:; /* "HTSeq/_HTSeq.pyx":1318 * if mrnm != "*": * warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) * alnmt.mate_start = None # <<<<<<<<<<<<<< * else: * if mrnm == "*": */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_alnmt->mate_start); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->mate_start)); __pyx_v_alnmt->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)Py_None); goto __pyx_L18; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1320 * alnmt.mate_start = None * else: * if mrnm == "*": # <<<<<<<<<<<<<< * raise ValueError, "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared" * posint = int( mpos ) - 1 */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_mrnm), ((PyObject *)__pyx_kp_s_93), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1321 * else: * if mrnm == "*": * raise ValueError, "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared" # <<<<<<<<<<<<<< * posint = int( mpos ) - 1 * if flagint & 0x0020: # flag "strand of the mate" */ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_107), 0, 0); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L20; } __pyx_L20:; /* "HTSeq/_HTSeq.pyx":1322 * if mrnm == "*": * raise ValueError, "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared" * posint = int( mpos ) - 1 # <<<<<<<<<<<<<< * if flagint & 0x0020: # flag "strand of the mate" * strand = "-" */ __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); __Pyx_INCREF(((PyObject *)__pyx_v_mpos)); PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_v_mpos)); __Pyx_GIVEREF(((PyObject *)__pyx_v_mpos)); __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Subtract(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_t_13); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_posint = __pyx_t_17; /* "HTSeq/_HTSeq.pyx":1323 * raise ValueError, "Malformed SAM line: MRNM == '*' although flag bit &0x0008 cleared" * posint = int( mpos ) - 1 * if flagint & 0x0020: # flag "strand of the mate" # <<<<<<<<<<<<<< * strand = "-" * else: */ __pyx_t_18 = (__pyx_v_flagint & 0x0020); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1324 * posint = int( mpos ) - 1 * if flagint & 0x0020: # flag "strand of the mate" * strand = "-" # <<<<<<<<<<<<<< * else: * strand = "+" */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_38)); __Pyx_XDECREF(((PyObject *)__pyx_v_strand)); __pyx_v_strand = __pyx_kp_s_38; goto __pyx_L21; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1326 * strand = "-" * else: * strand = "+" # <<<<<<<<<<<<<< * alnmt.mate_start = GenomicPosition( mrnm, posint, strand ) * if alnmt.mate_start.chrom == "=": */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_37)); __Pyx_XDECREF(((PyObject *)__pyx_v_strand)); __pyx_v_strand = __pyx_kp_s_37; } __pyx_L21:; /* "HTSeq/_HTSeq.pyx":1327 * else: * strand = "+" * alnmt.mate_start = GenomicPosition( mrnm, posint, strand ) # <<<<<<<<<<<<<< * if alnmt.mate_start.chrom == "=": * if alnmt.iv is not None: */ __pyx_t_13 = PyInt_FromLong(__pyx_v_posint); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_v_mrnm)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_mrnm)); __Pyx_GIVEREF(((PyObject *)__pyx_v_mrnm)); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __Pyx_INCREF(((PyObject *)__pyx_v_strand)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_strand)); __Pyx_GIVEREF(((PyObject *)__pyx_v_strand)); __pyx_t_13 = 0; __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_13); __Pyx_GOTREF(__pyx_v_alnmt->mate_start); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->mate_start)); __pyx_v_alnmt->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_t_13); __pyx_t_13 = 0; /* "HTSeq/_HTSeq.pyx":1328 * strand = "+" * alnmt.mate_start = GenomicPosition( mrnm, posint, strand ) * if alnmt.mate_start.chrom == "=": # <<<<<<<<<<<<<< * if alnmt.iv is not None: * alnmt.mate_start.chrom = alnmt.iv.chrom */ __pyx_t_4 = __Pyx_PyString_Equals(((PyObject *)__pyx_v_alnmt->mate_start->__pyx_base.chrom), ((PyObject *)__pyx_kp_s_97), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1329 * alnmt.mate_start = GenomicPosition( mrnm, posint, strand ) * if alnmt.mate_start.chrom == "=": * if alnmt.iv is not None: # <<<<<<<<<<<<<< * alnmt.mate_start.chrom = alnmt.iv.chrom * else: */ __pyx_t_4 = (((PyObject *)__pyx_v_alnmt->__pyx_base.__pyx_base.iv) != Py_None); if (__pyx_t_4) { /* "HTSeq/_HTSeq.pyx":1330 * if alnmt.mate_start.chrom == "=": * if alnmt.iv is not None: * alnmt.mate_start.chrom = alnmt.iv.chrom # <<<<<<<<<<<<<< * else: * warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) */ __Pyx_INCREF(((PyObject *)__pyx_v_alnmt->__pyx_base.__pyx_base.iv->chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_alnmt->__pyx_base.__pyx_base.iv->chrom)); __Pyx_GOTREF(__pyx_v_alnmt->mate_start->__pyx_base.chrom); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->mate_start->__pyx_base.chrom)); __pyx_v_alnmt->mate_start->__pyx_base.chrom = __pyx_v_alnmt->__pyx_base.__pyx_base.iv->chrom; goto __pyx_L23; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1332 * alnmt.mate_start.chrom = alnmt.iv.chrom * else: * warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) # <<<<<<<<<<<<<< * if flagint & 0x0040: * alnmt.pe_which = intern( "first" ) */ __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_109), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_L23:; goto __pyx_L22; } __pyx_L22:; } __pyx_L18:; /* "HTSeq/_HTSeq.pyx":1333 * else: * warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) * if flagint & 0x0040: # <<<<<<<<<<<<<< * alnmt.pe_which = intern( "first" ) * elif flagint & 0x0080: */ __pyx_t_18 = (__pyx_v_flagint & 0x0040); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1334 * warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) * if flagint & 0x0040: * alnmt.pe_which = intern( "first" ) # <<<<<<<<<<<<<< * elif flagint & 0x0080: * alnmt.pe_which = intern( "second" ) */ __pyx_t_13 = ((PyObject *)__pyx_n_s__first); __Pyx_INCREF(__pyx_t_13); __pyx_t_2 = __Pyx_Intern(__pyx_t_13); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_alnmt->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->pe_which)); __pyx_v_alnmt->pe_which = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L24; } /* "HTSeq/_HTSeq.pyx":1335 * if flagint & 0x0040: * alnmt.pe_which = intern( "first" ) * elif flagint & 0x0080: # <<<<<<<<<<<<<< * alnmt.pe_which = intern( "second" ) * else: */ __pyx_t_18 = (__pyx_v_flagint & 0x0080); if (__pyx_t_18) { /* "HTSeq/_HTSeq.pyx":1336 * alnmt.pe_which = intern( "first" ) * elif flagint & 0x0080: * alnmt.pe_which = intern( "second" ) # <<<<<<<<<<<<<< * else: * alnmt.pe_which = intern( "unknown" ) */ __pyx_t_2 = ((PyObject *)__pyx_n_s__second); __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = __Pyx_Intern(__pyx_t_2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyString_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_13)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_13); __Pyx_GOTREF(__pyx_v_alnmt->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->pe_which)); __pyx_v_alnmt->pe_which = ((PyObject*)__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L24; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1338 * alnmt.pe_which = intern( "second" ) * else: * alnmt.pe_which = intern( "unknown" ) # <<<<<<<<<<<<<< * else: * alnmt.mate_start = None */ __pyx_t_13 = ((PyObject *)__pyx_n_s__unknown); __Pyx_INCREF(__pyx_t_13); __pyx_t_2 = __Pyx_Intern(__pyx_t_13); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_alnmt->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->pe_which)); __pyx_v_alnmt->pe_which = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L24:; goto __pyx_L17; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1340 * alnmt.pe_which = intern( "unknown" ) * else: * alnmt.mate_start = None # <<<<<<<<<<<<<< * alnmt.pe_which = intern( "not_paired_end" ) * */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_alnmt->mate_start); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->mate_start)); __pyx_v_alnmt->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)Py_None); /* "HTSeq/_HTSeq.pyx":1341 * else: * alnmt.mate_start = None * alnmt.pe_which = intern( "not_paired_end" ) # <<<<<<<<<<<<<< * * alnmt.proper_pair = flagint & 0x0002 > 0 */ __pyx_t_2 = ((PyObject *)__pyx_n_s__not_paired_end); __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = __Pyx_Intern(__pyx_t_2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyString_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_13)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GIVEREF(__pyx_t_13); __Pyx_GOTREF(__pyx_v_alnmt->pe_which); __Pyx_DECREF(((PyObject *)__pyx_v_alnmt->pe_which)); __pyx_v_alnmt->pe_which = ((PyObject*)__pyx_t_13); __pyx_t_13 = 0; } __pyx_L17:; /* "HTSeq/_HTSeq.pyx":1343 * alnmt.pe_which = intern( "not_paired_end" ) * * alnmt.proper_pair = flagint & 0x0002 > 0 # <<<<<<<<<<<<<< * alnmt.not_primary_alignment = flagint & 0x0100 > 0 * alnmt.failed_platform_qc = flagint & 0x0200 > 0 */ __pyx_v_alnmt->proper_pair = ((__pyx_v_flagint & 0x0002) > 0); /* "HTSeq/_HTSeq.pyx":1344 * * alnmt.proper_pair = flagint & 0x0002 > 0 * alnmt.not_primary_alignment = flagint & 0x0100 > 0 # <<<<<<<<<<<<<< * alnmt.failed_platform_qc = flagint & 0x0200 > 0 * alnmt.pcr_or_optical_duplicate = flagint & 0x0400 > 0 */ __pyx_v_alnmt->not_primary_alignment = ((__pyx_v_flagint & 0x0100) > 0); /* "HTSeq/_HTSeq.pyx":1345 * alnmt.proper_pair = flagint & 0x0002 > 0 * alnmt.not_primary_alignment = flagint & 0x0100 > 0 * alnmt.failed_platform_qc = flagint & 0x0200 > 0 # <<<<<<<<<<<<<< * alnmt.pcr_or_optical_duplicate = flagint & 0x0400 > 0 * */ __pyx_v_alnmt->failed_platform_qc = ((__pyx_v_flagint & 0x0200) > 0); /* "HTSeq/_HTSeq.pyx":1346 * alnmt.not_primary_alignment = flagint & 0x0100 > 0 * alnmt.failed_platform_qc = flagint & 0x0200 > 0 * alnmt.pcr_or_optical_duplicate = flagint & 0x0400 > 0 # <<<<<<<<<<<<<< * * return alnmt */ __pyx_v_alnmt->pcr_or_optical_duplicate = ((__pyx_v_flagint & 0x0400) > 0); /* "HTSeq/_HTSeq.pyx":1348 * alnmt.pcr_or_optical_duplicate = flagint & 0x0400 > 0 * * return alnmt # <<<<<<<<<<<<<< * * property flag: */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_alnmt)); __pyx_r = ((PyObject *)__pyx_v_alnmt); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.from_SAM_line", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_qname); __Pyx_XDECREF(__pyx_v_flag); __Pyx_XDECREF(__pyx_v_rname); __Pyx_XDECREF(__pyx_v_pos); __Pyx_XDECREF(__pyx_v_mapq); __Pyx_XDECREF(__pyx_v_cigar); __Pyx_XDECREF(__pyx_v_mrnm); __Pyx_XDECREF(__pyx_v_mpos); __Pyx_XDECREF(__pyx_v_isize); __Pyx_XDECREF(__pyx_v_seq); __Pyx_XDECREF(__pyx_v_qual); __Pyx_XDECREF(__pyx_v_optional_fields); __Pyx_XDECREF(__pyx_v_strand); __Pyx_XDECREF(__pyx_v_cigarlist); __Pyx_XDECREF((PyObject *)__pyx_v_swq); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_iv); __Pyx_XDECREF((PyObject *)__pyx_v_alnmt); __Pyx_XDECREF(__pyx_v_field); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1351 * * property flag: * def __get__( self ): # <<<<<<<<<<<<<< * return self._flag * def __set__( self, value ): */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); /* "HTSeq/_HTSeq.pyx":1352 * property flag: * def __get__( self ): * return self._flag # <<<<<<<<<<<<<< * def __set__( self, value ): * self._flag = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->_flag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.flag.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1353 * def __get__( self ): * return self._flag * def __set__( self, value ): # <<<<<<<<<<<<<< * self._flag = value * */ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); /* "HTSeq/_HTSeq.pyx":1354 * return self._flag * def __set__( self, value ): * self._flag = value # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->_flag = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.flag.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1357 * * @property * def paired_end( self ): # <<<<<<<<<<<<<< * return self.pe_which != "not_paired_end" * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_3paired_end(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_3paired_end(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("paired_end"); /* "HTSeq/_HTSeq.pyx":1358 * @property * def paired_end( self ): * return self.pe_which != "not_paired_end" # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyString_Equals(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which), ((PyObject *)__pyx_n_s__not_paired_end), Py_NE); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.paired_end", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1361 * * @property * def mate_aligned( self ): # <<<<<<<<<<<<<< * return self.mate_start is not None * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4mate_aligned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4mate_aligned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("mate_aligned"); /* "HTSeq/_HTSeq.pyx":1362 * @property * def mate_aligned( self ): * return self.mate_start is not None # <<<<<<<<<<<<<< * * def get_sam_line( self ): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = (((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start) != Py_None); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.mate_aligned", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1364 * return self.mate_start is not None * * def get_sam_line( self ): # <<<<<<<<<<<<<< * cdef str cigar = "" * cdef GenomicInterval query_start, mate_start */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5get_sam_line(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5get_sam_line(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_v_cigar = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_query_start = 0; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *__pyx_v_mate_start = 0; struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *__pyx_v_cop = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; Py_ssize_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_sam_line"); /* "HTSeq/_HTSeq.pyx":1365 * * def get_sam_line( self ): * cdef str cigar = "" # <<<<<<<<<<<<<< * cdef GenomicInterval query_start, mate_start * cdef CigarOperation cop */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_14)); __pyx_v_cigar = __pyx_kp_s_14; /* "HTSeq/_HTSeq.pyx":1369 * cdef CigarOperation cop * * if self.aligned: # <<<<<<<<<<<<<< * query_start = self.iv * else: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__aligned); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":1370 * * if self.aligned: * query_start = self.iv # <<<<<<<<<<<<<< * else: * query_start = GenomicPosition( "*", -1 ) */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv)); __pyx_v_query_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.__pyx_base.iv; goto __pyx_L5; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1372 * query_start = self.iv * else: * query_start = GenomicPosition( "*", -1 ) # <<<<<<<<<<<<<< * * if self.mate_start is not None: */ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_k_tuple_110), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_query_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_1); __pyx_t_1 = 0; } __pyx_L5:; /* "HTSeq/_HTSeq.pyx":1374 * query_start = GenomicPosition( "*", -1 ) * * if self.mate_start is not None: # <<<<<<<<<<<<<< * mate_start = self.mate_start * else: */ __pyx_t_2 = (((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start) != Py_None); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":1375 * * if self.mate_start is not None: * mate_start = self.mate_start # <<<<<<<<<<<<<< * else: * mate_start = GenomicPosition( "*", -1 ) */ __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start)); __pyx_v_mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start); goto __pyx_L6; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1377 * mate_start = self.mate_start * else: * mate_start = GenomicPosition( "*", -1 ) # <<<<<<<<<<<<<< * * if self.cigar is not None: */ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition)), ((PyObject *)__pyx_k_tuple_111), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)__pyx_t_1); __pyx_t_1 = 0; } __pyx_L6:; /* "HTSeq/_HTSeq.pyx":1379 * mate_start = GenomicPosition( "*", -1 ) * * if self.cigar is not None: # <<<<<<<<<<<<<< * for cop in self.cigar: * cigar += str(cop.size) + cop.type */ __pyx_t_2 = (((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar != ((PyObject*)Py_None)); if (__pyx_t_2) { /* "HTSeq/_HTSeq.pyx":1380 * * if self.cigar is not None: * for cop in self.cigar: # <<<<<<<<<<<<<< * cigar += str(cop.size) + cop.type * else: */ if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5HTSeq_6_HTSeq_CigarOperation))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(((PyObject *)__pyx_v_cop)); __pyx_v_cop = ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)__pyx_t_4); __pyx_t_4 = 0; /* "HTSeq/_HTSeq.pyx":1381 * if self.cigar is not None: * for cop in self.cigar: * cigar += str(cop.size) + cop.type # <<<<<<<<<<<<<< * else: * cigar = "*" */ __pyx_t_4 = PyInt_FromLong(__pyx_v_cop->size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_4, ((PyObject *)__pyx_v_cop->type)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_cigar), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_v_cigar)); __pyx_v_cigar = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1383 * cigar += str(cop.size) + cop.type * else: * cigar = "*" # <<<<<<<<<<<<<< * * return '\t'.join( ( self.read.name, str(self.flag), query_start.chrom, */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_93)); __Pyx_DECREF(((PyObject *)__pyx_v_cigar)); __pyx_v_cigar = __pyx_kp_s_93; } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":1385 * cigar = "*" * * return '\t'.join( ( self.read.name, str(self.flag), query_start.chrom, # <<<<<<<<<<<<<< * str(query_start.start+1), str(self.aQual), cigar, mate_start.chrom, * str(mate_start.pos+1), str(self.inferred_insert_size), */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_80), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__flag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6)); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; /* "HTSeq/_HTSeq.pyx":1386 * * return '\t'.join( ( self.read.name, str(self.flag), query_start.chrom, * str(query_start.start+1), str(self.aQual), cigar, mate_start.chrom, # <<<<<<<<<<<<<< * str(mate_start.pos+1), str(self.inferred_insert_size), * self.read_as_aligned.seq, self.read_as_aligned.qualstr, */ __pyx_t_6 = PyInt_FromLong((__pyx_v_query_start->start + 1)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_t_7 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->aQual); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; /* "HTSeq/_HTSeq.pyx":1387 * return '\t'.join( ( self.read.name, str(self.flag), query_start.chrom, * str(query_start.start+1), str(self.aQual), cigar, mate_start.chrom, * str(mate_start.pos+1), str(self.inferred_insert_size), # <<<<<<<<<<<<<< * self.read_as_aligned.seq, self.read_as_aligned.qualstr, * '\t'.join( self.raw_optional_fields() ) ) ) */ __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_mate_start), __pyx_n_s__pos); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyNumber_Add(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_t_8 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->inferred_insert_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; /* "HTSeq/_HTSeq.pyx":1388 * str(query_start.start+1), str(self.aQual), cigar, mate_start.chrom, * str(mate_start.pos+1), str(self.inferred_insert_size), * self.read_as_aligned.seq, self.read_as_aligned.qualstr, # <<<<<<<<<<<<<< * '\t'.join( self.raw_optional_fields() ) ) ) * */ __pyx_t_10 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.read_as_aligned), __pyx_n_s__qualstr); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); /* "HTSeq/_HTSeq.pyx":1389 * str(mate_start.pos+1), str(self.inferred_insert_size), * self.read_as_aligned.seq, self.read_as_aligned.qualstr, * '\t'.join( self.raw_optional_fields() ) ) ) # <<<<<<<<<<<<<< * * def optional_field( SAM_Alignment self, str tag ): */ __pyx_t_11 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_80), __pyx_n_s__join); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__raw_optional_fields); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_12)); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_12)); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_query_start->chrom)); PyTuple_SET_ITEM(__pyx_t_12, 2, ((PyObject *)__pyx_v_query_start->chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_query_start->chrom)); PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 4, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_cigar)); PyTuple_SET_ITEM(__pyx_t_12, 5, ((PyObject *)__pyx_v_cigar)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cigar)); __Pyx_INCREF(((PyObject *)__pyx_v_mate_start->chrom)); PyTuple_SET_ITEM(__pyx_t_12, 6, ((PyObject *)__pyx_v_mate_start->chrom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_mate_start->chrom)); PyTuple_SET_ITEM(__pyx_t_12, 7, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 8, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.read_as_aligned->__pyx_base.seq)); PyTuple_SET_ITEM(__pyx_t_12, 9, ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.read_as_aligned->__pyx_base.seq)); __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->__pyx_base.read_as_aligned->__pyx_base.seq)); PyTuple_SET_ITEM(__pyx_t_12, 10, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 11, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_12)); __Pyx_GIVEREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; __pyx_r = __pyx_t_12; __pyx_t_12 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.get_sam_line", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_cigar); __Pyx_XDECREF((PyObject *)__pyx_v_query_start); __Pyx_XDECREF((PyObject *)__pyx_v_mate_start); __Pyx_XDECREF((PyObject *)__pyx_v_cop); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1391 * '\t'.join( self.raw_optional_fields() ) ) ) * * def optional_field( SAM_Alignment self, str tag ): # <<<<<<<<<<<<<< * res = [ p for p in self.optional_fields if p[0] == tag ] * if len(res) == 1: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_6optional_field(PyObject *__pyx_v_self, PyObject *__pyx_v_tag); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_6optional_field(PyObject *__pyx_v_self, PyObject *__pyx_v_tag) { PyObject *__pyx_v_res = NULL; PyObject *__pyx_v_p = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("optional_field"); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tag), (&PyString_Type), 1, "tag", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "HTSeq/_HTSeq.pyx":1392 * * def optional_field( SAM_Alignment self, str tag ): * res = [ p for p in self.optional_fields if p[0] == tag ] # <<<<<<<<<<<<<< * if len(res) == 1: * return res[0][1] */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; __Pyx_XDECREF(__pyx_v_p); __pyx_v_p = __pyx_t_4; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_p, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_v_tag), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_v_p))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(((PyObject *)__pyx_t_1)); __pyx_v_res = __pyx_t_1; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1393 * def optional_field( SAM_Alignment self, str tag ): * res = [ p for p in self.optional_fields if p[0] == tag ] * if len(res) == 1: # <<<<<<<<<<<<<< * return res[0][1] * else: */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_res)); __pyx_t_5 = (__pyx_t_3 == 1); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1394 * res = [ p for p in self.optional_fields if p[0] == tag ] * if len(res) == 1: * return res[0][1] # <<<<<<<<<<<<<< * else: * if len(res) == 0: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_res), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; goto __pyx_L8; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1396 * return res[0][1] * else: * if len(res) == 0: # <<<<<<<<<<<<<< * raise KeyError, "SAM optional field tag %s not found" % tag * else: */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_res)); __pyx_t_5 = (__pyx_t_3 == 0); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1397 * else: * if len(res) == 0: * raise KeyError, "SAM optional field tag %s not found" % tag # <<<<<<<<<<<<<< * else: * raise ValueError, "SAM optional field tag %s not unique" % tag */ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_112), ((PyObject *)__pyx_v_tag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L9; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1399 * raise KeyError, "SAM optional field tag %s not found" % tag * else: * raise ValueError, "SAM optional field tag %s not unique" % tag # <<<<<<<<<<<<<< * * def raw_optional_fields( self ): */ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_113), ((PyObject *)__pyx_v_tag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L9:; } __pyx_L8:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.optional_field", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_res); __Pyx_XDECREF(__pyx_v_p); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pyx":1401 * raise ValueError, "SAM optional field tag %s not unique" % tag * * def raw_optional_fields( self ): # <<<<<<<<<<<<<< * res = [] * for op in self.optional_fields: */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_7raw_optional_fields(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_7raw_optional_fields(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_v_res = NULL; PyObject *__pyx_v_op = NULL; PyObject *__pyx_v_tc = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; Py_ssize_t __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("raw_optional_fields"); /* "HTSeq/_HTSeq.pyx":1402 * * def raw_optional_fields( self ): * res = [] # <<<<<<<<<<<<<< * for op in self.optional_fields: * if op[1].__class__ == str: */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_v_res = __pyx_t_1; __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1403 * def raw_optional_fields( self ): * res = [] * for op in self.optional_fields: # <<<<<<<<<<<<<< * if op[1].__class__ == str: * if len(op[1]) == 1: */ if (unlikely(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; __Pyx_XDECREF(__pyx_v_op); __pyx_v_op = __pyx_t_3; __pyx_t_3 = 0; /* "HTSeq/_HTSeq.pyx":1404 * res = [] * for op in self.optional_fields: * if op[1].__class__ == str: # <<<<<<<<<<<<<< * if len(op[1]) == 1: * tc = "A" */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_op, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____class__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)((PyObject*)(&PyString_Type))), Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1405 * for op in self.optional_fields: * if op[1].__class__ == str: * if len(op[1]) == 1: # <<<<<<<<<<<<<< * tc = "A" * else: */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_op, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = (__pyx_t_6 == 1); if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1406 * if op[1].__class__ == str: * if len(op[1]) == 1: * tc = "A" # <<<<<<<<<<<<<< * else: * tc = "Z" */ __Pyx_INCREF(((PyObject *)__pyx_n_s__A)); __Pyx_XDECREF(__pyx_v_tc); __pyx_v_tc = ((PyObject *)__pyx_n_s__A); goto __pyx_L8; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1408 * tc = "A" * else: * tc = "Z" # <<<<<<<<<<<<<< * elif op[1].__class__ == int: * tc = "i" */ __Pyx_INCREF(((PyObject *)__pyx_n_s__Z)); __Pyx_XDECREF(__pyx_v_tc); __pyx_v_tc = ((PyObject *)__pyx_n_s__Z); } __pyx_L8:; goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1409 * else: * tc = "Z" * elif op[1].__class__ == int: # <<<<<<<<<<<<<< * tc = "i" * elif op[1].__class__ == float: */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_op, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____class__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)((PyObject*)(&PyInt_Type))), Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1410 * tc = "Z" * elif op[1].__class__ == int: * tc = "i" # <<<<<<<<<<<<<< * elif op[1].__class__ == float: * tc = "j" */ __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); __Pyx_XDECREF(__pyx_v_tc); __pyx_v_tc = ((PyObject *)__pyx_n_s__i); goto __pyx_L7; } /* "HTSeq/_HTSeq.pyx":1411 * elif op[1].__class__ == int: * tc = "i" * elif op[1].__class__ == float: # <<<<<<<<<<<<<< * tc = "j" * else: */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_op, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____class__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)((PyObject*)(&PyFloat_Type))), Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* "HTSeq/_HTSeq.pyx":1412 * tc = "i" * elif op[1].__class__ == float: * tc = "j" # <<<<<<<<<<<<<< * else: * tc = "H" */ __Pyx_INCREF(((PyObject *)__pyx_n_s__j)); __Pyx_XDECREF(__pyx_v_tc); __pyx_v_tc = ((PyObject *)__pyx_n_s__j); goto __pyx_L7; } /*else*/ { /* "HTSeq/_HTSeq.pyx":1414 * tc = "j" * else: * tc = "H" # <<<<<<<<<<<<<< * res.append( ":".join( [ op[0], tc, str(op[1]) ] ) ) * return res */ __Pyx_INCREF(((PyObject *)__pyx_n_s__H)); __Pyx_XDECREF(__pyx_v_tc); __pyx_v_tc = ((PyObject *)__pyx_n_s__H); } __pyx_L7:; /* "HTSeq/_HTSeq.pyx":1415 * else: * tc = "H" * res.append( ":".join( [ op[0], tc, str(op[1]) ] ) ) # <<<<<<<<<<<<<< * return res */ if (unlikely(((PyObject *)__pyx_v_res) == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_87), __pyx_n_s__join); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_op, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_op, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_tc); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_v_tc); __Pyx_GIVEREF(__pyx_v_tc); PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_8)); __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_t_9 = PyList_Append(__pyx_v_res, __pyx_t_8); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":1416 * tc = "H" * res.append( ":".join( [ op[0], tc, str(op[1]) ] ) ) * return res # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_res)); __pyx_r = ((PyObject *)__pyx_v_res); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.raw_optional_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_res); __Pyx_XDECREF(__pyx_v_op); __Pyx_XDECREF(__pyx_v_tc); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":51 * * cdef class SAM_Alignment( AlignmentWithSequenceReversal ): * cdef public list cigar # <<<<<<<<<<<<<< * cdef public int aQual * cdef public GenomicPosition mate_start */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.cigar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->cigar = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":52 * cdef class SAM_Alignment( AlignmentWithSequenceReversal ): * cdef public list cigar * cdef public int aQual # <<<<<<<<<<<<<< * cdef public GenomicPosition mate_start * cdef public str pe_which */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->aQual); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.aQual.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->aQual = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.aQual.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":53 * cdef public list cigar * cdef public int aQual * cdef public GenomicPosition mate_start # <<<<<<<<<<<<<< * cdef public str pe_which * cdef public int inferred_insert_size */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.mate_start.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":54 * cdef public int aQual * cdef public GenomicPosition mate_start * cdef public str pe_which # <<<<<<<<<<<<<< * cdef public int inferred_insert_size * cdef public bint proper_pair */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyString_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.pe_which.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pe_which = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":55 * cdef public GenomicPosition mate_start * cdef public str pe_which * cdef public int inferred_insert_size # <<<<<<<<<<<<<< * cdef public bint proper_pair * cdef public bint not_primary_alignment */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->inferred_insert_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.inferred_insert_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->inferred_insert_size = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.inferred_insert_size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":56 * cdef public str pe_which * cdef public int inferred_insert_size * cdef public bint proper_pair # <<<<<<<<<<<<<< * cdef public bint not_primary_alignment * cdef public bint failed_platform_qc */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->proper_pair); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.proper_pair.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->proper_pair = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.proper_pair.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":57 * cdef public int inferred_insert_size * cdef public bint proper_pair * cdef public bint not_primary_alignment # <<<<<<<<<<<<<< * cdef public bint failed_platform_qc * cdef public bint pcr_or_optical_duplicate */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->not_primary_alignment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.not_primary_alignment.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->not_primary_alignment = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.not_primary_alignment.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":58 * cdef public bint proper_pair * cdef public bint not_primary_alignment * cdef public bint failed_platform_qc # <<<<<<<<<<<<<< * cdef public bint pcr_or_optical_duplicate * cdef readonly str original_sam_line */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->failed_platform_qc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.failed_platform_qc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->failed_platform_qc = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.failed_platform_qc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":59 * cdef public bint not_primary_alignment * cdef public bint failed_platform_qc * cdef public bint pcr_or_optical_duplicate # <<<<<<<<<<<<<< * cdef readonly str original_sam_line * cdef int _flag */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pcr_or_optical_duplicate); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.pcr_or_optical_duplicate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->pcr_or_optical_duplicate = __pyx_t_1; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.pcr_or_optical_duplicate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":60 * cdef public bint failed_platform_qc * cdef public bint pcr_or_optical_duplicate * cdef readonly str original_sam_line # <<<<<<<<<<<<<< * cdef int _flag * cdef public list optional_fields */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_17original_sam_line___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_17original_sam_line___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->original_sam_line)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->original_sam_line); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "HTSeq/_HTSeq.pxd":62 * cdef readonly str original_sam_line * cdef int _flag * cdef public list optional_fields # <<<<<<<<<<<<<< * */ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields___get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields___get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__"); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields)); __pyx_r = ((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields); goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__"); if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields = ((PyObject*)__pyx_v_value); __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("HTSeq._HTSeq.SAM_Alignment.optional_fields.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_2__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_2__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__"); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields); __Pyx_DECREF(((PyObject *)((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields)); ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)__pyx_v_self)->optional_fields = ((PyObject*)Py_None); __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":190 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fullfill the PEP. */ static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_v_hasfields; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; char *__pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getbuffer__"); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "numpy.pxd":196 * # of flags * * if info == NULL: return # <<<<<<<<<<<<<< * * cdef int copy_shape, i, ndim */ __pyx_t_1 = (__pyx_v_info == NULL); if (__pyx_t_1) { __pyx_r = 0; goto __pyx_L0; goto __pyx_L5; } __pyx_L5:; /* "numpy.pxd":199 * * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "numpy.pxd":200 * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "numpy.pxd":202 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_ndim = PyArray_NDIM(((PyArrayObject *)__pyx_v_self)); /* "numpy.pxd":204 * ndim = PyArray_NDIM(self) * * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * copy_shape = 1 * else: */ __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t))); if (__pyx_t_1) { /* "numpy.pxd":205 * * if sizeof(npy_intp) != sizeof(Py_ssize_t): * copy_shape = 1 # <<<<<<<<<<<<<< * else: * copy_shape = 0 */ __pyx_v_copy_shape = 1; goto __pyx_L6; } /*else*/ { /* "numpy.pxd":207 * copy_shape = 1 * else: * copy_shape = 0 # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_copy_shape = 0; } __pyx_L6:; /* "numpy.pxd":209 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS); if (__pyx_t_1) { /* "numpy.pxd":210 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = (!PyArray_CHKFLAGS(((PyArrayObject *)__pyx_v_self), NPY_C_CONTIGUOUS)); __pyx_t_3 = __pyx_t_2; } else { __pyx_t_3 = __pyx_t_1; } if (__pyx_t_3) { /* "numpy.pxd":211 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_115), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L7; } __pyx_L7:; /* "numpy.pxd":213 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_3 = ((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS); if (__pyx_t_3) { /* "numpy.pxd":214 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_1 = (!PyArray_CHKFLAGS(((PyArrayObject *)__pyx_v_self), NPY_F_CONTIGUOUS)); __pyx_t_2 = __pyx_t_1; } else { __pyx_t_2 = __pyx_t_3; } if (__pyx_t_2) { /* "numpy.pxd":215 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_117), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L8; } __pyx_L8:; /* "numpy.pxd":217 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if copy_shape: */ __pyx_v_info->buf = PyArray_DATA(((PyArrayObject *)__pyx_v_self)); /* "numpy.pxd":218 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if copy_shape: * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "numpy.pxd":219 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if copy_shape: # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ if (__pyx_v_copy_shape) { /* "numpy.pxd":222 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); /* "numpy.pxd":223 * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "numpy.pxd":224 * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_5 = __pyx_v_ndim; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "numpy.pxd":225 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(((PyArrayObject *)__pyx_v_self))[__pyx_v_i]); /* "numpy.pxd":226 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(((PyArrayObject *)__pyx_v_self))[__pyx_v_i]); } goto __pyx_L9; } /*else*/ { /* "numpy.pxd":228 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(((PyArrayObject *)__pyx_v_self))); /* "numpy.pxd":229 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(((PyArrayObject *)__pyx_v_self))); } __pyx_L9:; /* "numpy.pxd":230 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "numpy.pxd":231 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(((PyArrayObject *)__pyx_v_self)); /* "numpy.pxd":232 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!PyArray_ISWRITEABLE(((PyArrayObject *)__pyx_v_self))); /* "numpy.pxd":235 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = self.descr * cdef list stack */ __pyx_v_f = NULL; /* "numpy.pxd":236 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< * cdef list stack * cdef int offset */ __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_self)->descr)); __pyx_v_descr = ((PyArrayObject *)__pyx_v_self)->descr; /* "numpy.pxd":240 * cdef int offset * * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< * * if not hasfields and not copy_shape: */ __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); /* "numpy.pxd":242 * cdef bint hasfields = PyDataType_HASFIELDS(descr) * * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< * # do not call releasebuffer * info.obj = None */ __pyx_t_2 = (!__pyx_v_hasfields); if (__pyx_t_2) { __pyx_t_3 = (!__pyx_v_copy_shape); __pyx_t_1 = __pyx_t_3; } else { __pyx_t_1 = __pyx_t_2; } if (__pyx_t_1) { /* "numpy.pxd":244 * if not hasfields and not copy_shape: * # do not call releasebuffer * info.obj = None # <<<<<<<<<<<<<< * else: * # need to call releasebuffer */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = Py_None; goto __pyx_L12; } /*else*/ { /* "numpy.pxd":247 * else: * # need to call releasebuffer * info.obj = self # <<<<<<<<<<<<<< * * if not hasfields: */ __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = __pyx_v_self; } __pyx_L12:; /* "numpy.pxd":249 * info.obj = self * * if not hasfields: # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == '>' and little_endian) or */ __pyx_t_1 = (!__pyx_v_hasfields); if (__pyx_t_1) { /* "numpy.pxd":250 * * if not hasfields: * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == '>' and little_endian) or * (descr.byteorder == '<' and not little_endian)): */ __pyx_v_t = __pyx_v_descr->type_num; /* "numpy.pxd":251 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == '>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_1 = (__pyx_v_descr->byteorder == '>'); if (__pyx_t_1) { __pyx_t_2 = __pyx_v_little_endian; } else { __pyx_t_2 = __pyx_t_1; } if (!__pyx_t_2) { /* "numpy.pxd":252 * t = descr.type_num * if ((descr.byteorder == '>' and little_endian) or * (descr.byteorder == '<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_1 = (__pyx_v_descr->byteorder == '<'); if (__pyx_t_1) { __pyx_t_3 = (!__pyx_v_little_endian); __pyx_t_7 = __pyx_t_3; } else { __pyx_t_7 = __pyx_t_1; } __pyx_t_1 = __pyx_t_7; } else { __pyx_t_1 = __pyx_t_2; } if (__pyx_t_1) { /* "numpy.pxd":253 * if ((descr.byteorder == '>' and little_endian) or * (descr.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_119), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L14; } __pyx_L14:; /* "numpy.pxd":254 * (descr.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ __pyx_t_1 = (__pyx_v_t == NPY_BYTE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__b; goto __pyx_L15; } /* "numpy.pxd":255 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ __pyx_t_1 = (__pyx_v_t == NPY_UBYTE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__B; goto __pyx_L15; } /* "numpy.pxd":256 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ __pyx_t_1 = (__pyx_v_t == NPY_SHORT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__h; goto __pyx_L15; } /* "numpy.pxd":257 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ __pyx_t_1 = (__pyx_v_t == NPY_USHORT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__H; goto __pyx_L15; } /* "numpy.pxd":258 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ __pyx_t_1 = (__pyx_v_t == NPY_INT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__i; goto __pyx_L15; } /* "numpy.pxd":259 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ __pyx_t_1 = (__pyx_v_t == NPY_UINT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__I; goto __pyx_L15; } /* "numpy.pxd":260 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ __pyx_t_1 = (__pyx_v_t == NPY_LONG); if (__pyx_t_1) { __pyx_v_f = __pyx_k__l; goto __pyx_L15; } /* "numpy.pxd":261 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ __pyx_t_1 = (__pyx_v_t == NPY_ULONG); if (__pyx_t_1) { __pyx_v_f = __pyx_k__L; goto __pyx_L15; } /* "numpy.pxd":262 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ __pyx_t_1 = (__pyx_v_t == NPY_LONGLONG); if (__pyx_t_1) { __pyx_v_f = __pyx_k__q; goto __pyx_L15; } /* "numpy.pxd":263 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ __pyx_t_1 = (__pyx_v_t == NPY_ULONGLONG); if (__pyx_t_1) { __pyx_v_f = __pyx_k__Q; goto __pyx_L15; } /* "numpy.pxd":264 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ __pyx_t_1 = (__pyx_v_t == NPY_FLOAT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__f; goto __pyx_L15; } /* "numpy.pxd":265 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ __pyx_t_1 = (__pyx_v_t == NPY_DOUBLE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__d; goto __pyx_L15; } /* "numpy.pxd":266 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ __pyx_t_1 = (__pyx_v_t == NPY_LONGDOUBLE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__g; goto __pyx_L15; } /* "numpy.pxd":267 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ __pyx_t_1 = (__pyx_v_t == NPY_CFLOAT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__Zf; goto __pyx_L15; } /* "numpy.pxd":268 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ __pyx_t_1 = (__pyx_v_t == NPY_CDOUBLE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__Zd; goto __pyx_L15; } /* "numpy.pxd":269 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ __pyx_t_1 = (__pyx_v_t == NPY_CLONGDOUBLE); if (__pyx_t_1) { __pyx_v_f = __pyx_k__Zg; goto __pyx_L15; } /* "numpy.pxd":270 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_1 = (__pyx_v_t == NPY_OBJECT); if (__pyx_t_1) { __pyx_v_f = __pyx_k__O; goto __pyx_L15; } /*else*/ { /* "numpy.pxd":272 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_4 = PyInt_FromLong(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_120), __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_8)); __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; __pyx_t_8 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L15:; /* "numpy.pxd":273 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "numpy.pxd":274 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = stdlib.malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; goto __pyx_L13; } /*else*/ { /* "numpy.pxd":276 * return * else: * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = '^' # Native data types, manual alignment * offset = 0 */ __pyx_v_info->format = ((char *)malloc(255)); /* "numpy.pxd":277 * else: * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = '^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "numpy.pxd":278 * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = '^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "numpy.pxd":281 * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, * &offset) # <<<<<<<<<<<<<< * f[0] = 0 # Terminate format string * */ __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_f = __pyx_t_9; /* "numpy.pxd":282 * info.format + _buffer_format_string_len, * &offset) * f[0] = 0 # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = 0; } __pyx_L13:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":284 * f[0] = 0 # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * stdlib.free(info.format) */ static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__"); /* "numpy.pxd":285 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = PyArray_HASFIELDS(((PyArrayObject *)__pyx_v_self)); if (__pyx_t_1) { /* "numpy.pxd":286 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * stdlib.free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) */ free(__pyx_v_info->format); goto __pyx_L5; } __pyx_L5:; /* "numpy.pxd":287 * if PyArray_HASFIELDS(self): * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * stdlib.free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t))); if (__pyx_t_1) { /* "numpy.pxd":288 * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ free(__pyx_v_info->strides); goto __pyx_L6; } __pyx_L6:; __Pyx_RefNannyFinishContext(); } /* "numpy.pxd":764 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1"); /* "numpy.pxd":765 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":767 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2"); /* "numpy.pxd":768 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":770 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3"); /* "numpy.pxd":771 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":773 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4"); /* "numpy.pxd":774 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":776 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5"); /* "numpy.pxd":777 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":779 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; long __pyx_t_10; char *__pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_util_dtypestring"); /* "numpy.pxd":786 * cdef int delta_offset * cdef tuple i * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "numpy.pxd":787 * cdef tuple i * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "numpy.pxd":790 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(((PyObject *)__pyx_v_descr->names) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_1 = ((PyObject *)__pyx_v_descr->names); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; __Pyx_XDECREF(__pyx_v_childname); __pyx_v_childname = __pyx_t_3; __pyx_t_3 = 0; /* "numpy.pxd":791 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ __pyx_t_3 = PyObject_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(((PyObject *)__pyx_v_fields)); __pyx_v_fields = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "numpy.pxd":792 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(PyTuple_CheckExact(((PyObject *)__pyx_v_fields)))) { PyObject* sequence = ((PyObject *)__pyx_v_fields); if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); } else { __Pyx_UnpackTupleError(((PyObject *)__pyx_v_fields), 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(((PyObject *)__pyx_v_child)); __pyx_v_child = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_v_new_offset); __pyx_v_new_offset = __pyx_t_4; __pyx_t_4 = 0; /* "numpy.pxd":794 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = PyInt_FromLong((__pyx_v_end - __pyx_v_f)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_int_15, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { /* "numpy.pxd":795 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == '>' and little_endian) or */ __pyx_t_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_122), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L5; } __pyx_L5:; /* "numpy.pxd":797 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == '>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_6 = (__pyx_v_child->byteorder == '>'); if (__pyx_t_6) { __pyx_t_7 = __pyx_v_little_endian; } else { __pyx_t_7 = __pyx_t_6; } if (!__pyx_t_7) { /* "numpy.pxd":798 * * if ((child.byteorder == '>' and little_endian) or * (child.byteorder == '<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_6 = (__pyx_v_child->byteorder == '<'); if (__pyx_t_6) { __pyx_t_8 = (!__pyx_v_little_endian); __pyx_t_9 = __pyx_t_8; } else { __pyx_t_9 = __pyx_t_6; } __pyx_t_6 = __pyx_t_9; } else { __pyx_t_6 = __pyx_t_7; } if (__pyx_t_6) { /* "numpy.pxd":799 * if ((child.byteorder == '>' and little_endian) or * (child.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_123), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L6; } __pyx_L6:; /* "numpy.pxd":809 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_5 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_v_new_offset, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_6) break; /* "numpy.pxd":810 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 120; /* "numpy.pxd":811 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "numpy.pxd":812 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_10 = 0; (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + 1); } /* "numpy.pxd":814 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_10 = 0; (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + __pyx_v_child->elsize); /* "numpy.pxd":816 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = (!PyDataType_HASFIELDS(__pyx_v_child)); if (__pyx_t_6) { /* "numpy.pxd":817 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_3 = PyInt_FromLong(__pyx_v_child->type_num); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF(__pyx_v_t); __pyx_v_t = __pyx_t_3; __pyx_t_3 = 0; /* "numpy.pxd":818 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = ((__pyx_v_end - __pyx_v_f) < 5); if (__pyx_t_6) { /* "numpy.pxd":819 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_125), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L10; } __pyx_L10:; /* "numpy.pxd":822 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_3 = PyInt_FromLong(NPY_BYTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L11; } /* "numpy.pxd":823 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_5 = PyInt_FromLong(NPY_UBYTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L11; } /* "numpy.pxd":824 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_3 = PyInt_FromLong(NPY_SHORT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 104; goto __pyx_L11; } /* "numpy.pxd":825 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_5 = PyInt_FromLong(NPY_USHORT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L11; } /* "numpy.pxd":826 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_3 = PyInt_FromLong(NPY_INT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 105; goto __pyx_L11; } /* "numpy.pxd":827 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_5 = PyInt_FromLong(NPY_UINT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L11; } /* "numpy.pxd":828 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_3 = PyInt_FromLong(NPY_LONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 108; goto __pyx_L11; } /* "numpy.pxd":829 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_5 = PyInt_FromLong(NPY_ULONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L11; } /* "numpy.pxd":830 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_3 = PyInt_FromLong(NPY_LONGLONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 113; goto __pyx_L11; } /* "numpy.pxd":831 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_5 = PyInt_FromLong(NPY_ULONGLONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L11; } /* "numpy.pxd":832 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_3 = PyInt_FromLong(NPY_FLOAT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 102; goto __pyx_L11; } /* "numpy.pxd":833 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_5 = PyInt_FromLong(NPY_DOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 100; goto __pyx_L11; } /* "numpy.pxd":834 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_3 = PyInt_FromLong(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 103; goto __pyx_L11; } /* "numpy.pxd":835 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_5 = PyInt_FromLong(NPY_CFLOAT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 102; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L11; } /* "numpy.pxd":836 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_3 = PyInt_FromLong(NPY_CDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 100; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L11; } /* "numpy.pxd":837 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_5 = PyInt_FromLong(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 103; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L11; } /* "numpy.pxd":838 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_3 = PyInt_FromLong(NPY_OBJECT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 79; goto __pyx_L11; } /*else*/ { /* "numpy.pxd":840 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_120), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L11:; /* "numpy.pxd":841 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L9; } /*else*/ { /* "numpy.pxd":845 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ __pyx_t_11 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_f = __pyx_t_11; } __pyx_L9:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "numpy.pxd":846 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "numpy.pxd":961 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * cdef PyObject* baseptr * if base is None: */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { PyObject *__pyx_v_baseptr; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("set_array_base"); /* "numpy.pxd":963 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< * baseptr = NULL * else: */ __pyx_t_1 = (__pyx_v_base == Py_None); if (__pyx_t_1) { /* "numpy.pxd":964 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< * else: * Py_INCREF(base) # important to do this before decref below! */ __pyx_v_baseptr = NULL; goto __pyx_L3; } /*else*/ { /* "numpy.pxd":966 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< * baseptr = base * Py_XDECREF(arr.base) */ Py_INCREF(__pyx_v_base); /* "numpy.pxd":967 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< * Py_XDECREF(arr.base) * arr.base = baseptr */ __pyx_v_baseptr = ((PyObject *)__pyx_v_base); } __pyx_L3:; /* "numpy.pxd":968 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< * arr.base = baseptr * */ Py_XDECREF(__pyx_v_arr->base); /* "numpy.pxd":969 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ __pyx_v_arr->base = __pyx_v_baseptr; __Pyx_RefNannyFinishContext(); } /* "numpy.pxd":971 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base"); /* "numpy.pxd":972 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< * return None * else: */ __pyx_t_1 = (__pyx_v_arr->base == NULL); if (__pyx_t_1) { /* "numpy.pxd":973 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< * else: * return arr.base */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; goto __pyx_L3; } /*else*/ { /* "numpy.pxd":975 * return None * else: * return arr.base # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); __pyx_r = ((PyObject *)__pyx_v_arr->base); goto __pyx_L0; } __pyx_L3:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval __pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_GenomicInterval(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)o); p->__pyx_vtab = __pyx_vtabptr_5HTSeq_6_HTSeq_GenomicInterval; p->chrom = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_strand = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_GenomicInterval(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)o; Py_XDECREF(((PyObject *)p->chrom)); Py_XDECREF(((PyObject *)p->_strand)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_GenomicInterval(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)o; if (p->chrom) { e = (*v)(p->chrom, a); if (e) return e; } if (p->_strand) { e = (*v)(p->_strand, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_GenomicInterval(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)o; PyObject* tmp; tmp = ((PyObject*)p->chrom); p->chrom = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_strand); p->_strand = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_strand(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand_1__get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_strand(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6strand___set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_length(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_length(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6length_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7start_d_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_d(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5end_d___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_as_pos(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12start_as_pos___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_as_pos(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10end_as_pos___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d_as_pos(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_14start_d_as_pos___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_d_as_pos(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12end_d_as_pos___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_chrom(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_chrom(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5chrom_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_start(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5start_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_end(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3end_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_GenomicInterval[] = { {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_1__reduce__, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_2__copy__, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("is_contained_in"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in, METH_O, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_7is_contained_in)}, {__Pyx_NAMESTR("contains"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_8contains, METH_O, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_8contains)}, {__Pyx_NAMESTR("overlaps"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps, METH_O, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_9overlaps)}, {__Pyx_NAMESTR("xrange"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_10xrange, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_10xrange)}, {__Pyx_NAMESTR("xrange_d"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_11xrange_d, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_11xrange_d)}, {__Pyx_NAMESTR("extend_to_include"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include, METH_O, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval_12extend_to_include)}, {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_13copy, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_GenomicInterval[] = { {(char *)"strand", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_strand, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_strand, 0, 0}, {(char *)"length", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_length, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_length, __Pyx_DOCSTR(__pyx_k_126), 0}, {(char *)"start_d", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d, __Pyx_DOCSTR(__pyx_k_127), 0}, {(char *)"end_d", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_d, 0, 0, 0}, {(char *)"start_as_pos", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_as_pos, 0, 0, 0}, {(char *)"end_as_pos", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_as_pos, 0, 0, 0}, {(char *)"start_d_as_pos", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start_d_as_pos, 0, 0, 0}, {(char *)"end_d_as_pos", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end_d_as_pos, 0, 0, 0}, {(char *)"chrom", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_chrom, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_chrom, 0, 0}, {(char *)"start", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_start, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_start, 0, 0}, {(char *)"end", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicInterval_end, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicInterval_end, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_GenomicInterval = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_GenomicInterval = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_GenomicInterval = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_GenomicInterval = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_GenomicInterval = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.GenomicInterval"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_GenomicInterval, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_3__repr__, /*tp_repr*/ &__pyx_tp_as_number_GenomicInterval, /*tp_as_number*/ &__pyx_tp_as_sequence_GenomicInterval, /*tp_as_sequence*/ &__pyx_tp_as_mapping_GenomicInterval, /*tp_as_mapping*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_6__hash__, /*tp_hash*/ 0, /*tp_call*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_4__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_GenomicInterval, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("A GenomicInterval specifies an interval (i.e., a range of \n consecutive positions) on a reference genome.\n \n A GenomicInterval object has the following slots, some of which \n are calculated from the other:\n \n chrom: The name of a sequence (i.e., chromosome, contig, or \n the like). \n start: The start of the interval. Even on the reverse strand,\n this is always the smaller of the two values 'start' and 'end'.\n Note that all positions should be given as 0-based value!\n end: The end of the interval. Following Python convention for \n ranges, this in one more than the coordinate of the last base\n that is considered part of the sequence.\n strand: The strand, as a single character, '+' or '-'. '.' indicates\n that the strand is irrelavant. (Alternatively, pass a Strand object.)\n length: The length of the interval, i.e., end - start\n start_d: The \"directional start\" position. This is the position of the\n first base of the interval, taking the strand into account. Hence, \n this is the same as 'start' except when strand == '-', in which \n case it is end-1.\n end_d: The \"directional end\": Usually, the same as 'end', but for \n strand=='-1', it is start-1.\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_GenomicInterval, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_GenomicInterval, /*tp_clear*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval_5__richcmp__, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_GenomicInterval, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_GenomicInterval, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicInterval___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_GenomicInterval, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicPosition __pyx_vtable_5HTSeq_6_HTSeq_GenomicPosition; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_GenomicPosition(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *p; PyObject *o = __pyx_tp_new_5HTSeq_6_HTSeq_GenomicInterval(t, a, k); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5HTSeq_6_HTSeq_GenomicInterval*)__pyx_vtabptr_5HTSeq_6_HTSeq_GenomicPosition; return o; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_pos(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15GenomicPosition_pos(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3pos_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_end(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3end___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_length(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_6length___get__(o); } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_GenomicPosition[] = { {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_3__reduce__, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_4copy, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_GenomicPosition[] = { {(char *)"pos", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_pos, __pyx_setprop_5HTSeq_6_HTSeq_15GenomicPosition_pos, __Pyx_DOCSTR(__pyx_k_128), 0}, {(char *)"end", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_end, 0, 0, 0}, {(char *)"length", __pyx_getprop_5HTSeq_6_HTSeq_15GenomicPosition_length, 0, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_GenomicPosition = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_GenomicPosition = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_GenomicPosition = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_GenomicPosition = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_GenomicPosition = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.GenomicPosition"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_GenomicInterval, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_1__repr__, /*tp_repr*/ &__pyx_tp_as_number_GenomicPosition, /*tp_as_number*/ &__pyx_tp_as_sequence_GenomicPosition, /*tp_as_sequence*/ &__pyx_tp_as_mapping_GenomicPosition, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition_2__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_GenomicPosition, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("A GenomicPosition specifies the position of a nucleotide or\n base pair on a reference genome.\n \n It has the following slots:\n chrom: The name of a sequence (i.e., chromosome, contig, or \n the like). \n pos: The position on the sequence specified by seqname.\n The position should always be given as 0-based value!\n strand: The strand, as a single character, '+' or '-'. '.' indicates\n that the strand is irrelavant.\n\n The GenomicPosition class is derived from GenomicInterval. Hence,\n a GenomicPosition is always a GenomicInterval of length 1. Do not tinker\n with the exposed GenomeInterval slots.\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_GenomicInterval, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_GenomicInterval, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_GenomicPosition, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_GenomicPosition, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_15GenomicPosition___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_GenomicPosition, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence __pyx_vtable_5HTSeq_6_HTSeq_Sequence; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_Sequence(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)o); p->__pyx_vtab = __pyx_vtabptr_5HTSeq_6_HTSeq_Sequence; p->seq = ((PyObject*)Py_None); Py_INCREF(Py_None); p->name = ((PyObject*)Py_None); Py_INCREF(Py_None); p->descr = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_Sequence(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)o; Py_XDECREF(((PyObject *)p->seq)); Py_XDECREF(((PyObject *)p->name)); Py_XDECREF(((PyObject *)p->descr)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_Sequence(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)o; if (p->seq) { e = (*v)(p->seq, a); if (e) return e; } if (p->name) { e = (*v)(p->name, a); if (e) return e; } if (p->descr) { e = (*v)(p->descr, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_Sequence(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *)o; PyObject* tmp; tmp = ((PyObject*)p->seq); p->seq = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->name); p->name = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->descr); p->descr = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_sq_item_5HTSeq_6_HTSeq_Sequence(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_8Sequence_seq(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_seq(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3seq_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_8Sequence_name(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_name(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4name_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_8Sequence_descr(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_descr(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5descr_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_Sequence[] = { {__Pyx_NAMESTR("get_reverse_complement"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8Sequence_1get_reverse_complement, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("write_to_fasta_file"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8Sequence_6write_to_fasta_file, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("add_bases_to_count_array"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8Sequence_7add_bases_to_count_array, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("trim_left_end"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8Sequence_8trim_left_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("trim_right_end"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_8Sequence_9trim_right_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_Sequence[] = { {(char *)"seq", __pyx_getprop_5HTSeq_6_HTSeq_8Sequence_seq, __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_seq, 0, 0}, {(char *)"name", __pyx_getprop_5HTSeq_6_HTSeq_8Sequence_name, __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_name, 0, 0}, {(char *)"descr", __pyx_getprop_5HTSeq_6_HTSeq_8Sequence_descr, __pyx_setprop_5HTSeq_6_HTSeq_8Sequence_descr, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_Sequence = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_Sequence = { __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4__len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_5HTSeq_6_HTSeq_Sequence, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_Sequence = { __pyx_pf_5HTSeq_6_HTSeq_8Sequence_4__len__, /*mp_length*/ __pyx_pf_5HTSeq_6_HTSeq_8Sequence_5__getitem__, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_Sequence = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_Sequence = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.Sequence"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_Sequence, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_8Sequence_3__repr__, /*tp_repr*/ &__pyx_tp_as_number_Sequence, /*tp_as_number*/ &__pyx_tp_as_sequence_Sequence, /*tp_as_sequence*/ &__pyx_tp_as_mapping_Sequence, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pf_5HTSeq_6_HTSeq_8Sequence_2__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_Sequence, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("A Sequence, typically of DNA, with a name.\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_Sequence, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_Sequence, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_Sequence, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_Sequence, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_8Sequence___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_Sequence, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static struct __pyx_vtabstruct_5HTSeq_6_HTSeq_SequenceWithQualities __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_SequenceWithQualities(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *p; PyObject *o = __pyx_tp_new_5HTSeq_6_HTSeq_Sequence(t, a, k); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5HTSeq_6_HTSeq_Sequence*)__pyx_vtabptr_5HTSeq_6_HTSeq_SequenceWithQualities; p->_qualstr = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_qualstr_phred = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_qualscale = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_qualarr = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_SequenceWithQualities(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)o; Py_XDECREF(((PyObject *)p->_qualstr)); Py_XDECREF(((PyObject *)p->_qualstr_phred)); Py_XDECREF(((PyObject *)p->_qualscale)); Py_XDECREF(p->_qualarr); __pyx_tp_dealloc_5HTSeq_6_HTSeq_Sequence(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_SequenceWithQualities(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)o; e = __pyx_tp_traverse_5HTSeq_6_HTSeq_Sequence(o, v, a); if (e) return e; if (p->_qualstr) { e = (*v)(p->_qualstr, a); if (e) return e; } if (p->_qualstr_phred) { e = (*v)(p->_qualstr_phred, a); if (e) return e; } if (p->_qualscale) { e = (*v)(p->_qualscale, a); if (e) return e; } if (p->_qualarr) { e = (*v)(p->_qualarr, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_SequenceWithQualities(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)o; PyObject* tmp; __pyx_tp_clear_5HTSeq_6_HTSeq_Sequence(o); tmp = ((PyObject*)p->_qualstr); p->_qualstr = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_qualstr_phred); p->_qualstr_phred = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_qualscale); p->_qualscale = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_qualarr); p->_qualarr = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_sq_item_5HTSeq_6_HTSeq_SequenceWithQualities(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities_qual(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_21SequenceWithQualities_qual(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4qual_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualstr(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualstr___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualstr_phred(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_14_qualstr_phred___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualscale(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_10_qualscale___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualarr(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8_qualarr___get__(o); } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_SequenceWithQualities[] = { {__Pyx_NAMESTR("qualstr"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_3qualstr, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("write_to_fastq_file"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_4write_to_fastq_file, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("get_fastq_str"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_5get_fastq_str, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("get_reverse_complement"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_6get_reverse_complement, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("add_qual_to_count_array"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_7add_qual_to_count_array, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("trim_left_end_with_quals"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_8trim_left_end_with_quals, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("trim_right_end_with_quals"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_9trim_right_end_with_quals, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_SequenceWithQualities[] = { {(char *)"qual", __pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities_qual, __pyx_setprop_5HTSeq_6_HTSeq_21SequenceWithQualities_qual, 0, 0}, {(char *)"_qualstr", __pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualstr, 0, 0, 0}, {(char *)"_qualstr_phred", __pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualstr_phred, 0, 0, 0}, {(char *)"_qualscale", __pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualscale, 0, 0, 0}, {(char *)"_qualarr", __pyx_getprop_5HTSeq_6_HTSeq_21SequenceWithQualities__qualarr, 0, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_SequenceWithQualities = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_SequenceWithQualities = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_5HTSeq_6_HTSeq_SequenceWithQualities, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_SequenceWithQualities = { 0, /*mp_length*/ __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_2__getitem__, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_SequenceWithQualities = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.SequenceWithQualities"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities_1__repr__, /*tp_repr*/ &__pyx_tp_as_number_SequenceWithQualities, /*tp_as_number*/ &__pyx_tp_as_sequence_SequenceWithQualities, /*tp_as_sequence*/ &__pyx_tp_as_mapping_SequenceWithQualities, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_SequenceWithQualities, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("A Sequence with base-call quality scores.\n It now has property 'qual', an integer NumPy array of Sanger/Phred \n quality scores of the base calls.\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_21SequenceWithQualities___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_SequenceWithQualities, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_Alignment(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)o); p->_read = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); p->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_Alignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)o; Py_XDECREF(((PyObject *)p->_read)); Py_XDECREF(((PyObject *)p->iv)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_Alignment(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)o; if (p->_read) { e = (*v)(((PyObject*)p->_read), a); if (e) return e; } if (p->iv) { e = (*v)(((PyObject*)p->iv), a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_Alignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_Alignment *)o; PyObject* tmp; tmp = ((PyObject*)p->_read); p->_read = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->iv); p->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_9Alignment__read(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_9Alignment__read(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_5_read_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_9Alignment_iv(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_9Alignment_iv(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2iv_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_Alignment[] = { {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_9Alignment_1read, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("paired_end"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_9Alignment_3paired_end, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("aligned"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_9Alignment_4aligned, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_9Alignment_4aligned)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_Alignment[] = { {(char *)"_read", __pyx_getprop_5HTSeq_6_HTSeq_9Alignment__read, __pyx_setprop_5HTSeq_6_HTSeq_9Alignment__read, 0, 0}, {(char *)"iv", __pyx_getprop_5HTSeq_6_HTSeq_9Alignment_iv, __pyx_setprop_5HTSeq_6_HTSeq_9Alignment_iv, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_Alignment = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_Alignment = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_Alignment = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_Alignment = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_Alignment = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.Alignment"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_Alignment), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_Alignment, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_9Alignment_2__repr__, /*tp_repr*/ &__pyx_tp_as_number_Alignment, /*tp_as_number*/ &__pyx_tp_as_sequence_Alignment, /*tp_as_sequence*/ &__pyx_tp_as_mapping_Alignment, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_Alignment, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("Alignment base type:\n\n An alignment object can be defined in different ways but will always\n provide these attributes:\n read: a SequenceWithQualities object with the read\n aligned: whether the read is aligned\n iv: a GenomicInterval object with the alignment position \n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_Alignment, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_Alignment, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_Alignment, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_Alignment, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_9Alignment___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_Alignment, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *p; PyObject *o = __pyx_tp_new_5HTSeq_6_HTSeq_Alignment(t, a, k); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)o); p->read_as_aligned = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); p->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *p = (struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)o; Py_XDECREF(((PyObject *)p->read_as_aligned)); Py_XDECREF(((PyObject *)p->_read_as_sequenced)); __pyx_tp_dealloc_5HTSeq_6_HTSeq_Alignment(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *p = (struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)o; e = __pyx_tp_traverse_5HTSeq_6_HTSeq_Alignment(o, v, a); if (e) return e; if (p->read_as_aligned) { e = (*v)(((PyObject*)p->read_as_aligned), a); if (e) return e; } if (p->_read_as_sequenced) { e = (*v)(((PyObject*)p->_read_as_sequenced), a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *p = (struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal *)o; PyObject* tmp; __pyx_tp_clear_5HTSeq_6_HTSeq_Alignment(o); tmp = ((PyObject*)p->read_as_aligned); p->read_as_aligned = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_read_as_sequenced); p->_read_as_sequenced = ((struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_4read___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read_as_aligned(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read_as_aligned(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_15read_as_aligned_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal__read_as_sequenced(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal__read_as_sequenced(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_18_read_as_sequenced_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal[] = { {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal[] = { {(char *)"read", __pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read, 0, 0, 0}, {(char *)"read_as_aligned", __pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read_as_aligned, __pyx_setprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal_read_as_aligned, 0, 0}, {(char *)"_read_as_sequenced", __pyx_getprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal__read_as_sequenced, __pyx_setprop_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal__read_as_sequenced, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_AlignmentWithSequenceReversal = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_AlignmentWithSequenceReversal = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_AlignmentWithSequenceReversal = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_AlignmentWithSequenceReversal = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.AlignmentWithSequenceReversal"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number_AlignmentWithSequenceReversal, /*tp_as_number*/ &__pyx_tp_as_sequence_AlignmentWithSequenceReversal, /*tp_as_sequence*/ &__pyx_tp_as_mapping_AlignmentWithSequenceReversal, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_AlignmentWithSequenceReversal, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("Many aligners report the read's sequence in reverse-complemented form\n when it was mapped to the reverse strand. For such alignments, a \n daughter class of this one should be used.\n \n Then, the read is stored as aligned in the 'read_as_aligned' field,\n and get reverse-complemented back to the sequenced form when the 'read'\n attribute is sequenced.\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_29AlignmentWithSequenceReversal___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_SAM_Alignment(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *p; PyObject *o = __pyx_tp_new_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(t, a, k); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)o); p->cigar = ((PyObject*)Py_None); Py_INCREF(Py_None); p->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)Py_None); Py_INCREF(Py_None); p->pe_which = ((PyObject*)Py_None); Py_INCREF(Py_None); p->original_sam_line = ((PyObject*)Py_None); Py_INCREF(Py_None); p->optional_fields = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_SAM_Alignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)o; Py_XDECREF(((PyObject *)p->cigar)); Py_XDECREF(((PyObject *)p->mate_start)); Py_XDECREF(((PyObject *)p->pe_which)); Py_XDECREF(((PyObject *)p->original_sam_line)); Py_XDECREF(((PyObject *)p->optional_fields)); __pyx_tp_dealloc_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_SAM_Alignment(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)o; e = __pyx_tp_traverse_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o, v, a); if (e) return e; if (p->cigar) { e = (*v)(p->cigar, a); if (e) return e; } if (p->mate_start) { e = (*v)(((PyObject*)p->mate_start), a); if (e) return e; } if (p->pe_which) { e = (*v)(p->pe_which, a); if (e) return e; } if (p->original_sam_line) { e = (*v)(p->original_sam_line, a); if (e) return e; } if (p->optional_fields) { e = (*v)(p->optional_fields, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_SAM_Alignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment *)o; PyObject* tmp; __pyx_tp_clear_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o); tmp = ((PyObject*)p->cigar); p->cigar = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->mate_start); p->mate_start = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicPosition *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->pe_which); p->pe_which = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->original_sam_line); p->original_sam_line = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->optional_fields); p->optional_fields = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_flag(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_flag(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4flag_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_cigar(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_cigar(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5cigar_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_aQual(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_aQual(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5aQual_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_mate_start(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_mate_start(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_10mate_start_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_pe_which(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_pe_which(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_8pe_which_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_inferred_insert_size(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_inferred_insert_size(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_20inferred_insert_size_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_proper_pair(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_proper_pair(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_11proper_pair_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_not_primary_alignment(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_not_primary_alignment(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_21not_primary_alignment_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_failed_platform_qc(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_failed_platform_qc(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_18failed_platform_qc_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_pcr_or_optical_duplicate(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_pcr_or_optical_duplicate(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_24pcr_or_optical_duplicate_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_original_sam_line(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_17original_sam_line___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_optional_fields(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_optional_fields(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_15optional_fields_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_SAM_Alignment[] = { {__Pyx_NAMESTR("to_pysam_AlignedRead"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_to_pysam_AlignedRead, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("from_pysam_AlignedRead"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_1from_pysam_AlignedRead, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("from_SAM_line"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_2from_SAM_line, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("paired_end"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_3paired_end, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("mate_aligned"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_4mate_aligned, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("get_sam_line"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_5get_sam_line, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("optional_field"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_6optional_field, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("raw_optional_fields"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_13SAM_Alignment_7raw_optional_fields, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_SAM_Alignment[] = { {(char *)"flag", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_flag, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_flag, 0, 0}, {(char *)"cigar", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_cigar, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_cigar, 0, 0}, {(char *)"aQual", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_aQual, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_aQual, 0, 0}, {(char *)"mate_start", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_mate_start, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_mate_start, 0, 0}, {(char *)"pe_which", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_pe_which, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_pe_which, 0, 0}, {(char *)"inferred_insert_size", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_inferred_insert_size, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_inferred_insert_size, 0, 0}, {(char *)"proper_pair", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_proper_pair, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_proper_pair, 0, 0}, {(char *)"not_primary_alignment", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_not_primary_alignment, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_not_primary_alignment, 0, 0}, {(char *)"failed_platform_qc", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_failed_platform_qc, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_failed_platform_qc, 0, 0}, {(char *)"pcr_or_optical_duplicate", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_pcr_or_optical_duplicate, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_pcr_or_optical_duplicate, 0, 0}, {(char *)"original_sam_line", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_original_sam_line, 0, 0, 0}, {(char *)"optional_fields", __pyx_getprop_5HTSeq_6_HTSeq_13SAM_Alignment_optional_fields, __pyx_setprop_5HTSeq_6_HTSeq_13SAM_Alignment_optional_fields, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_SAM_Alignment = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_SAM_Alignment = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_SAM_Alignment = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_SAM_Alignment = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_SAM_Alignment = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.SAM_Alignment"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_SAM_Alignment), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number_SAM_Alignment, /*tp_as_number*/ &__pyx_tp_as_sequence_SAM_Alignment, /*tp_as_sequence*/ &__pyx_tp_as_mapping_SAM_Alignment, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_SAM_Alignment, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("When reading in a SAM file, objects of the class SAM_Alignment\n are returned. In addition to the 'read', 'iv' and 'aligned' fields (see \n Alignment class), the following fields are provided:\n - aQual: the alignment quality score\n - cigar: a list of CigarOperatio objects, describing the alignment\n - tags: the extra information tags [not yet implemented]\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_SAM_Alignment, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_ChromVector(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)o); p->array = Py_None; Py_INCREF(Py_None); p->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); p->_storage = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_ChromVector(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *p = (struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)o; Py_XDECREF(p->array); Py_XDECREF(((PyObject *)p->iv)); Py_XDECREF(((PyObject *)p->_storage)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_ChromVector(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *p = (struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)o; if (p->array) { e = (*v)(p->array, a); if (e) return e; } if (p->iv) { e = (*v)(((PyObject*)p->iv), a); if (e) return e; } if (p->_storage) { e = (*v)(p->_storage, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_ChromVector(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *p = (struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector *)o; PyObject* tmp; tmp = ((PyObject*)p->array); p->array = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->iv); p->iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_storage); p->_storage = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_sq_item_5HTSeq_6_HTSeq_ChromVector(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_5HTSeq_6_HTSeq_ChromVector(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_3__setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_array(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_array(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5array_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_iv(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_iv(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2iv_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_offset(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_offset(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6offset_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_is_vector_of_sets(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_is_vector_of_sets(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_17is_vector_of_sets_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_11ChromVector__storage(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector__storage(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8_storage_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_ChromVector[] = { {__Pyx_NAMESTR("create"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("_create_view"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_1_create_view, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_6values, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("steps"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_7steps, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("apply"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_8apply, METH_O, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_11ChromVector_10__reduce__, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_ChromVector[] = { {(char *)"array", __pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_array, __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_array, 0, 0}, {(char *)"iv", __pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_iv, __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_iv, 0, 0}, {(char *)"offset", __pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_offset, __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_offset, 0, 0}, {(char *)"is_vector_of_sets", __pyx_getprop_5HTSeq_6_HTSeq_11ChromVector_is_vector_of_sets, __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector_is_vector_of_sets, 0, 0}, {(char *)"_storage", __pyx_getprop_5HTSeq_6_HTSeq_11ChromVector__storage, __pyx_setprop_5HTSeq_6_HTSeq_11ChromVector__storage, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_ChromVector = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_4__iadd__, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_ChromVector = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_5HTSeq_6_HTSeq_ChromVector, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_ChromVector = { 0, /*mp_length*/ __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_2__getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_5HTSeq_6_HTSeq_ChromVector, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_ChromVector = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_ChromVector = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.ChromVector"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_ChromVector), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_ChromVector, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_9__repr__, /*tp_repr*/ &__pyx_tp_as_number_ChromVector, /*tp_as_number*/ &__pyx_tp_as_sequence_ChromVector, /*tp_as_sequence*/ &__pyx_tp_as_mapping_ChromVector, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_ChromVector, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_ChromVector, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_ChromVector, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ __pyx_pf_5HTSeq_6_HTSeq_11ChromVector_5__iter__, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_ChromVector, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_ChromVector, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_ChromVector, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_GenomicArray(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)o); p->chrom_vectors = ((PyObject*)Py_None); Py_INCREF(Py_None); p->typecode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->storage = ((PyObject*)Py_None); Py_INCREF(Py_None); p->memmap_dir = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_GenomicArray(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)o; Py_XDECREF(((PyObject *)p->chrom_vectors)); Py_XDECREF(((PyObject *)p->typecode)); Py_XDECREF(((PyObject *)p->storage)); Py_XDECREF(((PyObject *)p->memmap_dir)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_GenomicArray(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)o; if (p->chrom_vectors) { e = (*v)(p->chrom_vectors, a); if (e) return e; } if (p->typecode) { e = (*v)(p->typecode, a); if (e) return e; } if (p->storage) { e = (*v)(p->storage, a); if (e) return e; } if (p->memmap_dir) { e = (*v)(p->memmap_dir, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_GenomicArray(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *p = (struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray *)o; PyObject* tmp; tmp = ((PyObject*)p->chrom_vectors); p->chrom_vectors = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->typecode); p->typecode = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->storage); p->storage = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->memmap_dir); p->memmap_dir = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_sq_item_5HTSeq_6_HTSeq_GenomicArray(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_5HTSeq_6_HTSeq_GenomicArray(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_2__setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_chrom_vectors(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_12GenomicArray_chrom_vectors(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_13chrom_vectors_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_stranded(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8stranded___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_typecode(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_8typecode___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_auto_add_chroms(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_12GenomicArray_auto_add_chroms(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_15auto_add_chroms_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_storage(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_7storage___get__(o); } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_memmap_dir(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_10memmap_dir___get__(o); } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_GenomicArray[] = { {__Pyx_NAMESTR("add_chrom"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_3add_chrom, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_4__reduce__, METH_NOARGS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("write_bedgraph_file"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_5write_bedgraph_file, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("steps"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_6steps, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_GenomicArray[] = { {(char *)"chrom_vectors", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_chrom_vectors, __pyx_setprop_5HTSeq_6_HTSeq_12GenomicArray_chrom_vectors, 0, 0}, {(char *)"stranded", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_stranded, 0, 0, 0}, {(char *)"typecode", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_typecode, 0, 0, 0}, {(char *)"auto_add_chroms", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_auto_add_chroms, __pyx_setprop_5HTSeq_6_HTSeq_12GenomicArray_auto_add_chroms, 0, 0}, {(char *)"storage", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_storage, 0, 0, 0}, {(char *)"memmap_dir", __pyx_getprop_5HTSeq_6_HTSeq_12GenomicArray_memmap_dir, 0, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_GenomicArray = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_GenomicArray = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_5HTSeq_6_HTSeq_GenomicArray, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_GenomicArray = { 0, /*mp_length*/ __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray_1__getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_5HTSeq_6_HTSeq_GenomicArray, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_GenomicArray = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_GenomicArray = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.GenomicArray"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicArray), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_GenomicArray, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number_GenomicArray, /*tp_as_number*/ &__pyx_tp_as_sequence_GenomicArray, /*tp_as_sequence*/ &__pyx_tp_as_mapping_GenomicArray, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_GenomicArray, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_GenomicArray, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_GenomicArray, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_GenomicArray, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_GenomicArray, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_12GenomicArray___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_GenomicArray, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_BowtieAlignment(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *p; PyObject *o = __pyx_tp_new_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(t, a, k); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)o); p->reserved = ((PyObject*)Py_None); Py_INCREF(Py_None); p->substitutions = ((PyObject*)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_BowtieAlignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)o; Py_XDECREF(((PyObject *)p->reserved)); Py_XDECREF(((PyObject *)p->substitutions)); __pyx_tp_dealloc_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_BowtieAlignment(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)o; e = __pyx_tp_traverse_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o, v, a); if (e) return e; if (p->reserved) { e = (*v)(p->reserved, a); if (e) return e; } if (p->substitutions) { e = (*v)(p->substitutions, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_BowtieAlignment(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *p = (struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment *)o; PyObject* tmp; __pyx_tp_clear_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal(o); tmp = ((PyObject*)p->reserved); p->reserved = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->substitutions); p->substitutions = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15BowtieAlignment_reserved(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15BowtieAlignment_reserved(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_8reserved_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_15BowtieAlignment_substitutions(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_15BowtieAlignment_substitutions(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment_13substitutions_2__del__(o); } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_BowtieAlignment[] = { {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_BowtieAlignment[] = { {(char *)"reserved", __pyx_getprop_5HTSeq_6_HTSeq_15BowtieAlignment_reserved, __pyx_setprop_5HTSeq_6_HTSeq_15BowtieAlignment_reserved, 0, 0}, {(char *)"substitutions", __pyx_getprop_5HTSeq_6_HTSeq_15BowtieAlignment_substitutions, __pyx_setprop_5HTSeq_6_HTSeq_15BowtieAlignment_substitutions, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_BowtieAlignment = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_BowtieAlignment = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_BowtieAlignment = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_BowtieAlignment = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_BowtieAlignment = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.BowtieAlignment"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_BowtieAlignment), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number_BowtieAlignment, /*tp_as_number*/ &__pyx_tp_as_sequence_BowtieAlignment, /*tp_as_sequence*/ &__pyx_tp_as_mapping_BowtieAlignment, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_BowtieAlignment, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ __Pyx_DOCSTR("When reading in a Bowtie file, objects of the class BowtieAlignment\n are returned. In addition to the 'read' and 'iv' fields (see Alignment\n class), the fields 'reserved' and 'substitutions' are provided. These \n contain the content of the respective columns of the Bowtie output \n \n [A parser for the substitutions field will be added soon.]\n "), /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_15BowtieAlignment___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_BowtieAlignment, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq_CigarOperation(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)o); p->type = ((PyObject*)Py_None); Py_INCREF(Py_None); p->ref_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq_CigarOperation(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *p = (struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)o; Py_XDECREF(((PyObject *)p->type)); Py_XDECREF(((PyObject *)p->ref_iv)); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq_CigarOperation(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *p = (struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)o; if (p->type) { e = (*v)(p->type, a); if (e) return e; } if (p->ref_iv) { e = (*v)(((PyObject*)p->ref_iv), a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq_CigarOperation(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *p = (struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation *)o; PyObject* tmp; tmp = ((PyObject*)p->type); p->type = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->ref_iv); p->ref_iv = ((struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_type(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_type(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4type_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_size(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_size(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_4size_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_ref_iv(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_ref_iv(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_1__set__(o, v); } else { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_6ref_iv_2__del__(o); } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_query_from(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_query_from(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_10query_from_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_query_to(PyObject *o, void *x) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to___get__(o); } static int __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_query_to(PyObject *o, PyObject *v, void *x) { if (v) { return __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_8query_to_1__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq_CigarOperation[] = { {__Pyx_NAMESTR("check"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_2check, METH_NOARGS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_5HTSeq_6_HTSeq_CigarOperation[] = { {(char *)"type", __pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_type, __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_type, 0, 0}, {(char *)"size", __pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_size, __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_size, 0, 0}, {(char *)"ref_iv", __pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_ref_iv, __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_ref_iv, 0, 0}, {(char *)"query_from", __pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_query_from, __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_query_from, 0, 0}, {(char *)"query_to", __pyx_getprop_5HTSeq_6_HTSeq_14CigarOperation_query_to, __pyx_setprop_5HTSeq_6_HTSeq_14CigarOperation_query_to, 0, 0}, {0, 0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_CigarOperation = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence_CigarOperation = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_CigarOperation = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_CigarOperation = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq_CigarOperation = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.CigarOperation"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq_CigarOperation), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq_CigarOperation, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation_1__repr__, /*tp_repr*/ &__pyx_tp_as_number_CigarOperation, /*tp_as_number*/ &__pyx_tp_as_sequence_CigarOperation, /*tp_as_sequence*/ &__pyx_tp_as_mapping_CigarOperation, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_CigarOperation, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq_CigarOperation, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq_CigarOperation, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq_CigarOperation, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_5HTSeq_6_HTSeq_CigarOperation, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pf_5HTSeq_6_HTSeq_14CigarOperation___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq_CigarOperation, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyObject *__pyx_tp_new_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *p; PyObject *o = (*t->tp_alloc)(t, 0); if (!o) return 0; p = ((struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)o); p->__pyx_v_value = 0; return o; } static void __pyx_tp_dealloc_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *p = (struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)o; Py_XDECREF(p->__pyx_v_value); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *p = (struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)o; if (p->__pyx_v_value) { e = (*v)(p->__pyx_v_value, a); if (e) return e; } return 0; } static int __pyx_tp_clear_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__(PyObject *o) { struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *p = (struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ *)o; PyObject* tmp; tmp = ((PyObject*)p->__pyx_v_value); p->__pyx_v_value = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__[] = { {0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number___pyx_scope_struct____iadd__ = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_MAJOR_VERSION < 3 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ #if PY_VERSION_HEX >= 0x02050000 0, /*nb_index*/ #endif }; static PySequenceMethods __pyx_tp_as_sequence___pyx_scope_struct____iadd__ = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping___pyx_scope_struct____iadd__ = { 0, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer___pyx_scope_struct____iadd__ = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_getbuffer*/ #endif #if PY_VERSION_HEX >= 0x02060000 0, /*bf_releasebuffer*/ #endif }; static PyTypeObject __pyx_type_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ = { PyVarObject_HEAD_INIT(0, 0) __Pyx_NAMESTR("HTSeq._HTSeq.__pyx_scope_struct____iadd__"), /*tp_name*/ sizeof(struct __pyx_obj_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #else 0, /*reserved*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number___pyx_scope_struct____iadd__, /*tp_as_number*/ &__pyx_tp_as_sequence___pyx_scope_struct____iadd__, /*tp_as_sequence*/ &__pyx_tp_as_mapping___pyx_scope_struct____iadd__, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer___pyx_scope_struct____iadd__, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, /*tp_traverse*/ __pyx_tp_clear_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ #if PY_VERSION_HEX >= 0x02060000 0, /*tp_version_tag*/ #endif }; static PyMethodDef __pyx_methods[] = { {__Pyx_NAMESTR("reverse_complement"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_4reverse_complement, METH_O, __Pyx_DOCSTR(__pyx_doc_5HTSeq_6_HTSeq_4reverse_complement)}, {__Pyx_NAMESTR("parse_cigar"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_5parse_cigar, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {__Pyx_NAMESTR("build_cigar_list"), (PyCFunction)__pyx_pf_5HTSeq_6_HTSeq_6build_cigar_list, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, __Pyx_NAMESTR("_HTSeq"), 0, /* m_doc */ -1, /* m_size */ __pyx_methods /* m_methods */, NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0}, {&__pyx_kp_s_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 0, 1, 0}, {&__pyx_kp_s_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 0, 1, 0}, {&__pyx_kp_s_104, __pyx_k_104, sizeof(__pyx_k_104), 0, 0, 1, 0}, {&__pyx_kp_s_105, __pyx_k_105, sizeof(__pyx_k_105), 0, 0, 1, 0}, {&__pyx_kp_s_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 0, 1, 0}, {&__pyx_kp_s_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 0, 1, 0}, {&__pyx_kp_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 0}, {&__pyx_kp_s_112, __pyx_k_112, sizeof(__pyx_k_112), 0, 0, 1, 0}, {&__pyx_kp_s_113, __pyx_k_113, sizeof(__pyx_k_113), 0, 0, 1, 0}, {&__pyx_kp_u_114, __pyx_k_114, sizeof(__pyx_k_114), 0, 1, 0, 0}, {&__pyx_kp_u_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 1, 0, 0}, {&__pyx_kp_u_118, __pyx_k_118, sizeof(__pyx_k_118), 0, 1, 0, 0}, {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0}, {&__pyx_kp_u_120, __pyx_k_120, sizeof(__pyx_k_120), 0, 1, 0, 0}, {&__pyx_kp_u_121, __pyx_k_121, sizeof(__pyx_k_121), 0, 1, 0, 0}, {&__pyx_kp_u_124, __pyx_k_124, sizeof(__pyx_k_124), 0, 1, 0, 0}, {&__pyx_n_s_129, __pyx_k_129, sizeof(__pyx_k_129), 0, 0, 1, 1}, {&__pyx_kp_s_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 0, 1, 0}, {&__pyx_n_s_130, __pyx_k_130, sizeof(__pyx_k_130), 0, 0, 1, 1}, {&__pyx_kp_s_131, __pyx_k_131, sizeof(__pyx_k_131), 0, 0, 1, 0}, {&__pyx_kp_s_132, __pyx_k_132, sizeof(__pyx_k_132), 0, 0, 1, 0}, {&__pyx_kp_s_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 0, 1, 0}, {&__pyx_n_s_135, __pyx_k_135, sizeof(__pyx_k_135), 0, 0, 1, 1}, {&__pyx_kp_b_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 0, 0}, {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0}, {&__pyx_kp_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 0}, {&__pyx_kp_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 0}, {&__pyx_kp_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 0}, {&__pyx_kp_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 0}, {&__pyx_kp_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 0}, {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0}, {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0}, {&__pyx_kp_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 0}, {&__pyx_kp_s_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 0, 1, 0}, {&__pyx_kp_s_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 0, 1, 0}, {&__pyx_kp_s_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 0, 1, 0}, {&__pyx_kp_s_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 1, 0}, {&__pyx_kp_s_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 0, 1, 0}, {&__pyx_n_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 1}, {&__pyx_kp_s_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 0, 1, 0}, {&__pyx_n_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 1}, {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0}, {&__pyx_kp_s_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 0, 1, 0}, {&__pyx_kp_s_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 0, 1, 0}, {&__pyx_kp_s_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 1, 0}, {&__pyx_kp_s_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 1, 0}, {&__pyx_kp_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 0}, {&__pyx_kp_s_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 1, 0}, {&__pyx_kp_s_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 0, 1, 0}, {&__pyx_n_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 1}, {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0}, {&__pyx_kp_s_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 1, 0}, {&__pyx_kp_s_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 0, 1, 0}, {&__pyx_kp_s_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 0, 1, 0}, {&__pyx_kp_s_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 0, 1, 0}, {&__pyx_kp_s_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 0, 1, 0}, {&__pyx_n_s_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 0, 1, 1}, {&__pyx_kp_s_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 0, 1, 0}, {&__pyx_kp_s_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 0, 1, 0}, {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0}, {&__pyx_kp_s_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 0, 1, 0}, {&__pyx_kp_s_51, __pyx_k_51, sizeof(__pyx_k_51), 0, 0, 1, 0}, {&__pyx_kp_s_52, __pyx_k_52, sizeof(__pyx_k_52), 0, 0, 1, 0}, {&__pyx_n_s_53, __pyx_k_53, sizeof(__pyx_k_53), 0, 0, 1, 1}, {&__pyx_kp_s_54, __pyx_k_54, sizeof(__pyx_k_54), 0, 0, 1, 0}, {&__pyx_kp_s_55, __pyx_k_55, sizeof(__pyx_k_55), 0, 0, 1, 0}, {&__pyx_kp_s_56, __pyx_k_56, sizeof(__pyx_k_56), 0, 0, 1, 0}, {&__pyx_kp_s_57, __pyx_k_57, sizeof(__pyx_k_57), 0, 0, 1, 0}, {&__pyx_kp_s_58, __pyx_k_58, sizeof(__pyx_k_58), 0, 0, 1, 0}, {&__pyx_kp_s_59, __pyx_k_59, sizeof(__pyx_k_59), 0, 0, 1, 0}, {&__pyx_n_s_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 0, 1, 1}, {&__pyx_kp_s_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 0, 1, 0}, {&__pyx_kp_s_61, __pyx_k_61, sizeof(__pyx_k_61), 0, 0, 1, 0}, {&__pyx_kp_s_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 0, 1, 0}, {&__pyx_kp_s_63, __pyx_k_63, sizeof(__pyx_k_63), 0, 0, 1, 0}, {&__pyx_kp_s_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 0, 1, 0}, {&__pyx_kp_s_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 0, 1, 0}, {&__pyx_kp_s_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 0, 1, 0}, {&__pyx_kp_s_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 0, 1, 0}, {&__pyx_kp_s_68, __pyx_k_68, sizeof(__pyx_k_68), 0, 0, 1, 0}, {&__pyx_kp_s_69, __pyx_k_69, sizeof(__pyx_k_69), 0, 0, 1, 0}, {&__pyx_n_s_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 0, 1, 1}, {&__pyx_n_s_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 0, 1, 1}, {&__pyx_kp_s_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 0, 1, 0}, {&__pyx_n_s_75, __pyx_k_75, sizeof(__pyx_k_75), 0, 0, 1, 1}, {&__pyx_n_s_76, __pyx_k_76, sizeof(__pyx_k_76), 0, 0, 1, 1}, {&__pyx_kp_s_77, __pyx_k_77, sizeof(__pyx_k_77), 0, 0, 1, 0}, {&__pyx_kp_s_78, __pyx_k_78, sizeof(__pyx_k_78), 0, 0, 1, 0}, {&__pyx_kp_s_79, __pyx_k_79, sizeof(__pyx_k_79), 0, 0, 1, 0}, {&__pyx_kp_s_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 1, 0}, {&__pyx_kp_s_80, __pyx_k_80, sizeof(__pyx_k_80), 0, 0, 1, 0}, {&__pyx_kp_s_82, __pyx_k_82, sizeof(__pyx_k_82), 0, 0, 1, 0}, {&__pyx_kp_s_83, __pyx_k_83, sizeof(__pyx_k_83), 0, 0, 1, 0}, {&__pyx_n_s_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 0, 1, 1}, {&__pyx_kp_s_85, __pyx_k_85, sizeof(__pyx_k_85), 0, 0, 1, 0}, {&__pyx_kp_s_86, __pyx_k_86, sizeof(__pyx_k_86), 0, 0, 1, 0}, {&__pyx_kp_s_87, __pyx_k_87, sizeof(__pyx_k_87), 0, 0, 1, 0}, {&__pyx_kp_s_88, __pyx_k_88, sizeof(__pyx_k_88), 0, 0, 1, 0}, {&__pyx_kp_s_89, __pyx_k_89, sizeof(__pyx_k_89), 0, 0, 1, 0}, {&__pyx_kp_s_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 0, 1, 0}, {&__pyx_kp_s_90, __pyx_k_90, sizeof(__pyx_k_90), 0, 0, 1, 0}, {&__pyx_n_s_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 0, 1, 1}, {&__pyx_kp_s_93, __pyx_k_93, sizeof(__pyx_k_93), 0, 0, 1, 0}, {&__pyx_n_s_94, __pyx_k_94, sizeof(__pyx_k_94), 0, 0, 1, 1}, {&__pyx_kp_s_96, __pyx_k_96, sizeof(__pyx_k_96), 0, 0, 1, 0}, {&__pyx_kp_s_97, __pyx_k_97, sizeof(__pyx_k_97), 0, 0, 1, 0}, {&__pyx_kp_s_99, __pyx_k_99, sizeof(__pyx_k_99), 0, 0, 1, 0}, {&__pyx_n_s__A, __pyx_k__A, sizeof(__pyx_k__A), 0, 0, 1, 1}, {&__pyx_n_s__AlignedRead, __pyx_k__AlignedRead, sizeof(__pyx_k__AlignedRead), 0, 0, 1, 1}, {&__pyx_n_s__C, __pyx_k__C, sizeof(__pyx_k__C), 0, 0, 1, 1}, {&__pyx_n_s__ChromVector_steps, __pyx_k__ChromVector_steps, sizeof(__pyx_k__ChromVector_steps), 0, 0, 1, 1}, {&__pyx_n_s__D, __pyx_k__D, sizeof(__pyx_k__D), 0, 0, 1, 1}, {&__pyx_n_s__G, __pyx_k__G, sizeof(__pyx_k__G), 0, 0, 1, 1}, {&__pyx_n_s__GenomicArray_steps, __pyx_k__GenomicArray_steps, sizeof(__pyx_k__GenomicArray_steps), 0, 0, 1, 1}, {&__pyx_n_s__H, __pyx_k__H, sizeof(__pyx_k__H), 0, 0, 1, 1}, {&__pyx_n_s__I, __pyx_k__I, sizeof(__pyx_k__I), 0, 0, 1, 1}, {&__pyx_n_s__ImportError, __pyx_k__ImportError, sizeof(__pyx_k__ImportError), 0, 0, 1, 1}, {&__pyx_n_s__IndexError, __pyx_k__IndexError, sizeof(__pyx_k__IndexError), 0, 0, 1, 1}, {&__pyx_n_s__Inf, __pyx_k__Inf, sizeof(__pyx_k__Inf), 0, 0, 1, 1}, {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1}, {&__pyx_n_s__M, __pyx_k__M, sizeof(__pyx_k__M), 0, 0, 1, 1}, {&__pyx_n_s__N, __pyx_k__N, sizeof(__pyx_k__N), 0, 0, 1, 1}, {&__pyx_n_s__NotImplementedError, __pyx_k__NotImplementedError, sizeof(__pyx_k__NotImplementedError), 0, 0, 1, 1}, {&__pyx_n_s__O, __pyx_k__O, sizeof(__pyx_k__O), 0, 0, 1, 1}, {&__pyx_n_s__P, __pyx_k__P, sizeof(__pyx_k__P), 0, 0, 1, 1}, {&__pyx_n_s__Read, __pyx_k__Read, sizeof(__pyx_k__Read), 0, 0, 1, 1}, {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s__S, __pyx_k__S, sizeof(__pyx_k__S), 0, 0, 1, 1}, {&__pyx_n_s__StepVector, __pyx_k__StepVector, sizeof(__pyx_k__StepVector), 0, 0, 1, 1}, {&__pyx_n_s__StringIO, __pyx_k__StringIO, sizeof(__pyx_k__StringIO), 0, 0, 1, 1}, {&__pyx_n_s__T, __pyx_k__T, sizeof(__pyx_k__T), 0, 0, 1, 1}, {&__pyx_n_s__TypeError, __pyx_k__TypeError, sizeof(__pyx_k__TypeError), 0, 0, 1, 1}, {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, {&__pyx_n_s__X, __pyx_k__X, sizeof(__pyx_k__X), 0, 0, 1, 1}, {&__pyx_n_s__Z, __pyx_k__Z, sizeof(__pyx_k__Z), 0, 0, 1, 1}, {&__pyx_n_s___HTSeq_internal, __pyx_k___HTSeq_internal, sizeof(__pyx_k___HTSeq_internal), 0, 0, 1, 1}, {&__pyx_n_s____class__, __pyx_k____class__, sizeof(__pyx_k____class__), 0, 0, 1, 1}, {&__pyx_n_s____iadd__, __pyx_k____iadd__, sizeof(__pyx_k____iadd__), 0, 0, 1, 1}, {&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1}, {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, {&__pyx_n_s____name__, __pyx_k____name__, sizeof(__pyx_k____name__), 0, 0, 1, 1}, {&__pyx_n_s____reduce__, __pyx_k____reduce__, sizeof(__pyx_k____reduce__), 0, 0, 1, 1}, {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, {&__pyx_n_s___create_view, __pyx_k___create_view, sizeof(__pyx_k___create_view), 0, 0, 1, 1}, {&__pyx_n_s___qualarr, __pyx_k___qualarr, sizeof(__pyx_k___qualarr), 0, 0, 1, 1}, {&__pyx_n_s___qualscale, __pyx_k___qualscale, sizeof(__pyx_k___qualscale), 0, 0, 1, 1}, {&__pyx_n_s___qualstr, __pyx_k___qualstr, sizeof(__pyx_k___qualstr), 0, 0, 1, 1}, {&__pyx_n_s___re_cigar_codes, __pyx_k___re_cigar_codes, sizeof(__pyx_k___re_cigar_codes), 0, 0, 1, 1}, {&__pyx_n_s___storage, __pyx_k___storage, sizeof(__pyx_k___storage), 0, 0, 1, 1}, {&__pyx_n_s__a, __pyx_k__a, sizeof(__pyx_k__a), 0, 0, 1, 1}, {&__pyx_n_s__add, __pyx_k__add, sizeof(__pyx_k__add), 0, 0, 1, 1}, {&__pyx_n_s__add_chrom, __pyx_k__add_chrom, sizeof(__pyx_k__add_chrom), 0, 0, 1, 1}, {&__pyx_n_s__aend, __pyx_k__aend, sizeof(__pyx_k__aend), 0, 0, 1, 1}, {&__pyx_n_s__aligned, __pyx_k__aligned, sizeof(__pyx_k__aligned), 0, 0, 1, 1}, {&__pyx_n_s__apply, __pyx_k__apply, sizeof(__pyx_k__apply), 0, 0, 1, 1}, {&__pyx_n_s__array, __pyx_k__array, sizeof(__pyx_k__array), 0, 0, 1, 1}, {&__pyx_n_s__auto, __pyx_k__auto, sizeof(__pyx_k__auto), 0, 0, 1, 1}, {&__pyx_n_s__base_to_column, __pyx_k__base_to_column, sizeof(__pyx_k__base_to_column), 0, 0, 1, 1}, {&__pyx_n_s__bowtie_line, __pyx_k__bowtie_line, sizeof(__pyx_k__bowtie_line), 0, 0, 1, 1}, {&__pyx_n_s__c, __pyx_k__c, sizeof(__pyx_k__c), 0, 0, 1, 1}, {&__pyx_n_s__cStringIO, __pyx_k__cStringIO, sizeof(__pyx_k__cStringIO), 0, 0, 1, 1}, {&__pyx_n_s__check, __pyx_k__check, sizeof(__pyx_k__check), 0, 0, 1, 1}, {&__pyx_n_s__chr, __pyx_k__chr, sizeof(__pyx_k__chr), 0, 0, 1, 1}, {&__pyx_n_s__chrom, __pyx_k__chrom, sizeof(__pyx_k__chrom), 0, 0, 1, 1}, {&__pyx_n_s__chrom_vectors, __pyx_k__chrom_vectors, sizeof(__pyx_k__chrom_vectors), 0, 0, 1, 1}, {&__pyx_n_s__chroms, __pyx_k__chroms, sizeof(__pyx_k__chroms), 0, 0, 1, 1}, {&__pyx_n_s__cigar, __pyx_k__cigar, sizeof(__pyx_k__cigar), 0, 0, 1, 1}, {&__pyx_n_s__cigar_pairs, __pyx_k__cigar_pairs, sizeof(__pyx_k__cigar_pairs), 0, 0, 1, 1}, {&__pyx_n_s__cigar_string, __pyx_k__cigar_string, sizeof(__pyx_k__cigar_string), 0, 0, 1, 1}, {&__pyx_n_s__close, __pyx_k__close, sizeof(__pyx_k__close), 0, 0, 1, 1}, {&__pyx_n_s__collections, __pyx_k__collections, sizeof(__pyx_k__collections), 0, 0, 1, 1}, {&__pyx_n_s__compile, __pyx_k__compile, sizeof(__pyx_k__compile), 0, 0, 1, 1}, {&__pyx_n_s__contains, __pyx_k__contains, sizeof(__pyx_k__contains), 0, 0, 1, 1}, {&__pyx_n_s__convert_to_phred, __pyx_k__convert_to_phred, sizeof(__pyx_k__convert_to_phred), 0, 0, 1, 1}, {&__pyx_n_s__copy, __pyx_k__copy, sizeof(__pyx_k__copy), 0, 0, 1, 1}, {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1}, {&__pyx_n_s__create, __pyx_k__create, sizeof(__pyx_k__create), 0, 0, 1, 1}, {&__pyx_n_s__csv, __pyx_k__csv, sizeof(__pyx_k__csv), 0, 0, 1, 1}, {&__pyx_n_s__d, __pyx_k__d, sizeof(__pyx_k__d), 0, 0, 1, 1}, {&__pyx_n_s__deleted, __pyx_k__deleted, sizeof(__pyx_k__deleted), 0, 0, 1, 1}, {&__pyx_n_s__descr, __pyx_k__descr, sizeof(__pyx_k__descr), 0, 0, 1, 1}, {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1}, {&__pyx_n_s__empty, __pyx_k__empty, sizeof(__pyx_k__empty), 0, 0, 1, 1}, {&__pyx_n_s__end, __pyx_k__end, sizeof(__pyx_k__end), 0, 0, 1, 1}, {&__pyx_n_s__end_d, __pyx_k__end_d, sizeof(__pyx_k__end_d), 0, 0, 1, 1}, {&__pyx_n_s__enumerate, __pyx_k__enumerate, sizeof(__pyx_k__enumerate), 0, 0, 1, 1}, {&__pyx_n_s__extend_to_include, __pyx_k__extend_to_include, sizeof(__pyx_k__extend_to_include), 0, 0, 1, 1}, {&__pyx_n_s__f, __pyx_k__f, sizeof(__pyx_k__f), 0, 0, 1, 1}, {&__pyx_n_s__file_or_filename, __pyx_k__file_or_filename, sizeof(__pyx_k__file_or_filename), 0, 0, 1, 1}, {&__pyx_n_s__filename, __pyx_k__filename, sizeof(__pyx_k__filename), 0, 0, 1, 1}, {&__pyx_n_s__first, __pyx_k__first, sizeof(__pyx_k__first), 0, 0, 1, 1}, {&__pyx_n_s__flag, __pyx_k__flag, sizeof(__pyx_k__flag), 0, 0, 1, 1}, {&__pyx_n_s__from_SAM_line, __pyx_k__from_SAM_line, sizeof(__pyx_k__from_SAM_line), 0, 0, 1, 1}, {&__pyx_n_s__g, __pyx_k__g, sizeof(__pyx_k__g), 0, 0, 1, 1}, {&__pyx_n_s__getrname, __pyx_k__getrname, sizeof(__pyx_k__getrname), 0, 0, 1, 1}, {&__pyx_n_s__gettid, __pyx_k__gettid, sizeof(__pyx_k__gettid), 0, 0, 1, 1}, {&__pyx_n_s__getvalue, __pyx_k__getvalue, sizeof(__pyx_k__getvalue), 0, 0, 1, 1}, {&__pyx_n_s__gzip, __pyx_k__gzip, sizeof(__pyx_k__gzip), 0, 0, 1, 1}, {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1}, {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1}, {&__pyx_n_s__inserted, __pyx_k__inserted, sizeof(__pyx_k__inserted), 0, 0, 1, 1}, {&__pyx_n_s__int, __pyx_k__int, sizeof(__pyx_k__int), 0, 0, 1, 1}, {&__pyx_n_s__is_contained_in, __pyx_k__is_contained_in, sizeof(__pyx_k__is_contained_in), 0, 0, 1, 1}, {&__pyx_n_s__is_duplicate, __pyx_k__is_duplicate, sizeof(__pyx_k__is_duplicate), 0, 0, 1, 1}, {&__pyx_n_s__is_paired, __pyx_k__is_paired, sizeof(__pyx_k__is_paired), 0, 0, 1, 1}, {&__pyx_n_s__is_proper_pair, __pyx_k__is_proper_pair, sizeof(__pyx_k__is_proper_pair), 0, 0, 1, 1}, {&__pyx_n_s__is_qcfail, __pyx_k__is_qcfail, sizeof(__pyx_k__is_qcfail), 0, 0, 1, 1}, {&__pyx_n_s__is_read1, __pyx_k__is_read1, sizeof(__pyx_k__is_read1), 0, 0, 1, 1}, {&__pyx_n_s__is_read2, __pyx_k__is_read2, sizeof(__pyx_k__is_read2), 0, 0, 1, 1}, {&__pyx_n_s__is_reverse, __pyx_k__is_reverse, sizeof(__pyx_k__is_reverse), 0, 0, 1, 1}, {&__pyx_n_s__is_secondary, __pyx_k__is_secondary, sizeof(__pyx_k__is_secondary), 0, 0, 1, 1}, {&__pyx_n_s__is_unmapped, __pyx_k__is_unmapped, sizeof(__pyx_k__is_unmapped), 0, 0, 1, 1}, {&__pyx_n_s__is_vector_of_sets, __pyx_k__is_vector_of_sets, sizeof(__pyx_k__is_vector_of_sets), 0, 0, 1, 1}, {&__pyx_n_s__isize, __pyx_k__isize, sizeof(__pyx_k__isize), 0, 0, 1, 1}, {&__pyx_n_s__itertools, __pyx_k__itertools, sizeof(__pyx_k__itertools), 0, 0, 1, 1}, {&__pyx_n_s__iv, __pyx_k__iv, sizeof(__pyx_k__iv), 0, 0, 1, 1}, {&__pyx_n_s__j, __pyx_k__j, sizeof(__pyx_k__j), 0, 0, 1, 1}, {&__pyx_n_s__join, __pyx_k__join, sizeof(__pyx_k__join), 0, 0, 1, 1}, {&__pyx_n_s__length, __pyx_k__length, sizeof(__pyx_k__length), 0, 0, 1, 1}, {&__pyx_n_s__log10, __pyx_k__log10, sizeof(__pyx_k__log10), 0, 0, 1, 1}, {&__pyx_n_s__mapq, __pyx_k__mapq, sizeof(__pyx_k__mapq), 0, 0, 1, 1}, {&__pyx_n_s__matched, __pyx_k__matched, sizeof(__pyx_k__matched), 0, 0, 1, 1}, {&__pyx_n_s__mate_aligned, __pyx_k__mate_aligned, sizeof(__pyx_k__mate_aligned), 0, 0, 1, 1}, {&__pyx_n_s__mate_is_reverse, __pyx_k__mate_is_reverse, sizeof(__pyx_k__mate_is_reverse), 0, 0, 1, 1}, {&__pyx_n_s__math, __pyx_k__math, sizeof(__pyx_k__math), 0, 0, 1, 1}, {&__pyx_n_s__max_mm_qual, __pyx_k__max_mm_qual, sizeof(__pyx_k__max_mm_qual), 0, 0, 1, 1}, {&__pyx_n_s__maxint, __pyx_k__maxint, sizeof(__pyx_k__maxint), 0, 0, 1, 1}, {&__pyx_n_s__memmap, __pyx_k__memmap, sizeof(__pyx_k__memmap), 0, 0, 1, 1}, {&__pyx_n_s__memmap_dir, __pyx_k__memmap_dir, sizeof(__pyx_k__memmap_dir), 0, 0, 1, 1}, {&__pyx_n_s__mismatch_prop, __pyx_k__mismatch_prop, sizeof(__pyx_k__mismatch_prop), 0, 0, 1, 1}, {&__pyx_n_s__missing, __pyx_k__missing, sizeof(__pyx_k__missing), 0, 0, 1, 1}, {&__pyx_n_s__mode, __pyx_k__mode, sizeof(__pyx_k__mode), 0, 0, 1, 1}, {&__pyx_n_s__mpos, __pyx_k__mpos, sizeof(__pyx_k__mpos), 0, 0, 1, 1}, {&__pyx_n_s__mrnm, __pyx_k__mrnm, sizeof(__pyx_k__mrnm), 0, 0, 1, 1}, {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1}, {&__pyx_n_s__ndarray, __pyx_k__ndarray, sizeof(__pyx_k__ndarray), 0, 0, 1, 1}, {&__pyx_n_s__none, __pyx_k__none, sizeof(__pyx_k__none), 0, 0, 1, 1}, {&__pyx_n_s__noquals, __pyx_k__noquals, sizeof(__pyx_k__noquals), 0, 0, 1, 1}, {&__pyx_n_s__not_paired_end, __pyx_k__not_paired_end, sizeof(__pyx_k__not_paired_end), 0, 0, 1, 1}, {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1}, {&__pyx_n_s__offset, __pyx_k__offset, sizeof(__pyx_k__offset), 0, 0, 1, 1}, {&__pyx_n_s__open, __pyx_k__open, sizeof(__pyx_k__open), 0, 0, 1, 1}, {&__pyx_n_s__ord, __pyx_k__ord, sizeof(__pyx_k__ord), 0, 0, 1, 1}, {&__pyx_n_s__os, __pyx_k__os, sizeof(__pyx_k__os), 0, 0, 1, 1}, {&__pyx_n_s__overlaps, __pyx_k__overlaps, sizeof(__pyx_k__overlaps), 0, 0, 1, 1}, {&__pyx_n_s__padded, __pyx_k__padded, sizeof(__pyx_k__padded), 0, 0, 1, 1}, {&__pyx_n_s__paired_end, __pyx_k__paired_end, sizeof(__pyx_k__paired_end), 0, 0, 1, 1}, {&__pyx_n_s__path, __pyx_k__path, sizeof(__pyx_k__path), 0, 0, 1, 1}, {&__pyx_n_s__pattern, __pyx_k__pattern, sizeof(__pyx_k__pattern), 0, 0, 1, 1}, {&__pyx_n_s__phred, __pyx_k__phred, sizeof(__pyx_k__phred), 0, 0, 1, 1}, {&__pyx_n_s__pos, __pyx_k__pos, sizeof(__pyx_k__pos), 0, 0, 1, 1}, {&__pyx_n_s__property, __pyx_k__property, sizeof(__pyx_k__property), 0, 0, 1, 1}, {&__pyx_n_s__pysam, __pyx_k__pysam, sizeof(__pyx_k__pysam), 0, 0, 1, 1}, {&__pyx_n_s__qfrom, __pyx_k__qfrom, sizeof(__pyx_k__qfrom), 0, 0, 1, 1}, {&__pyx_n_s__qname, __pyx_k__qname, sizeof(__pyx_k__qname), 0, 0, 1, 1}, {&__pyx_n_s__qto, __pyx_k__qto, sizeof(__pyx_k__qto), 0, 0, 1, 1}, {&__pyx_n_s__qual, __pyx_k__qual, sizeof(__pyx_k__qual), 0, 0, 1, 1}, {&__pyx_n_s__qualscale, __pyx_k__qualscale, sizeof(__pyx_k__qualscale), 0, 0, 1, 1}, {&__pyx_n_s__qualstr, __pyx_k__qualstr, sizeof(__pyx_k__qualstr), 0, 0, 1, 1}, {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1}, {&__pyx_n_s__raw_optional_fields, __pyx_k__raw_optional_fields, sizeof(__pyx_k__raw_optional_fields), 0, 0, 1, 1}, {&__pyx_n_s__re, __pyx_k__re, sizeof(__pyx_k__re), 0, 0, 1, 1}, {&__pyx_n_s__read, __pyx_k__read, sizeof(__pyx_k__read), 0, 0, 1, 1}, {&__pyx_n_s__read_as_aligned, __pyx_k__read_as_aligned, sizeof(__pyx_k__read_as_aligned), 0, 0, 1, 1}, {&__pyx_n_s__ref_iv, __pyx_k__ref_iv, sizeof(__pyx_k__ref_iv), 0, 0, 1, 1}, {&__pyx_n_s__ref_left, __pyx_k__ref_left, sizeof(__pyx_k__ref_left), 0, 0, 1, 1}, {&__pyx_n_s__revcomp_of_, __pyx_k__revcomp_of_, sizeof(__pyx_k__revcomp_of_), 0, 0, 1, 1}, {&__pyx_n_s__rfrom, __pyx_k__rfrom, sizeof(__pyx_k__rfrom), 0, 0, 1, 1}, {&__pyx_n_s__rstrip, __pyx_k__rstrip, sizeof(__pyx_k__rstrip), 0, 0, 1, 1}, {&__pyx_n_s__rto, __pyx_k__rto, sizeof(__pyx_k__rto), 0, 0, 1, 1}, {&__pyx_n_s__samfile, __pyx_k__samfile, sizeof(__pyx_k__samfile), 0, 0, 1, 1}, {&__pyx_n_s__se, __pyx_k__se, sizeof(__pyx_k__se), 0, 0, 1, 1}, {&__pyx_n_s__second, __pyx_k__second, sizeof(__pyx_k__second), 0, 0, 1, 1}, {&__pyx_n_s__seq, __pyx_k__seq, sizeof(__pyx_k__seq), 0, 0, 1, 1}, {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1}, {&__pyx_n_s__size, __pyx_k__size, sizeof(__pyx_k__size), 0, 0, 1, 1}, {&__pyx_n_s__skipped, __pyx_k__skipped, sizeof(__pyx_k__skipped), 0, 0, 1, 1}, {&__pyx_n_s__solexa, __pyx_k__solexa, sizeof(__pyx_k__solexa), 0, 0, 1, 1}, {&__pyx_n_s__split, __pyx_k__split, sizeof(__pyx_k__split), 0, 0, 1, 1}, {&__pyx_n_s__start, __pyx_k__start, sizeof(__pyx_k__start), 0, 0, 1, 1}, {&__pyx_n_s__start_d, __pyx_k__start_d, sizeof(__pyx_k__start_d), 0, 0, 1, 1}, {&__pyx_n_s__start_index, __pyx_k__start_index, sizeof(__pyx_k__start_index), 0, 0, 1, 1}, {&__pyx_n_s__stderr, __pyx_k__stderr, sizeof(__pyx_k__stderr), 0, 0, 1, 1}, {&__pyx_n_s__step, __pyx_k__step, sizeof(__pyx_k__step), 0, 0, 1, 1}, {&__pyx_n_s__steps, __pyx_k__steps, sizeof(__pyx_k__steps), 0, 0, 1, 1}, {&__pyx_n_s__stop, __pyx_k__stop, sizeof(__pyx_k__stop), 0, 0, 1, 1}, {&__pyx_n_s__storage, __pyx_k__storage, sizeof(__pyx_k__storage), 0, 0, 1, 1}, {&__pyx_n_s__strand, __pyx_k__strand, sizeof(__pyx_k__strand), 0, 0, 1, 1}, {&__pyx_n_s__stranded, __pyx_k__stranded, sizeof(__pyx_k__stranded), 0, 0, 1, 1}, {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1}, {&__pyx_n_s__t, __pyx_k__t, sizeof(__pyx_k__t), 0, 0, 1, 1}, {&__pyx_n_s__tags, __pyx_k__tags, sizeof(__pyx_k__tags), 0, 0, 1, 1}, {&__pyx_n_s__tid, __pyx_k__tid, sizeof(__pyx_k__tid), 0, 0, 1, 1}, {&__pyx_n_s__track_options, __pyx_k__track_options, sizeof(__pyx_k__track_options), 0, 0, 1, 1}, {&__pyx_n_s__translate, __pyx_k__translate, sizeof(__pyx_k__translate), 0, 0, 1, 1}, {&__pyx_n_s__trim_left_end, __pyx_k__trim_left_end, sizeof(__pyx_k__trim_left_end), 0, 0, 1, 1}, {&__pyx_n_s__trim_right_end, __pyx_k__trim_right_end, sizeof(__pyx_k__trim_right_end), 0, 0, 1, 1}, {&__pyx_n_s__type, __pyx_k__type, sizeof(__pyx_k__type), 0, 0, 1, 1}, {&__pyx_n_s__type_, __pyx_k__type_, sizeof(__pyx_k__type_), 0, 0, 1, 1}, {&__pyx_n_s__typecode, __pyx_k__typecode, sizeof(__pyx_k__typecode), 0, 0, 1, 1}, {&__pyx_n_s__unknown, __pyx_k__unknown, sizeof(__pyx_k__unknown), 0, 0, 1, 1}, {&__pyx_n_s__unnamed, __pyx_k__unnamed, sizeof(__pyx_k__unnamed), 0, 0, 1, 1}, {&__pyx_n_s__upper, __pyx_k__upper, sizeof(__pyx_k__upper), 0, 0, 1, 1}, {&__pyx_n_s__values, __pyx_k__values, sizeof(__pyx_k__values), 0, 0, 1, 1}, {&__pyx_n_s__vec, __pyx_k__vec, sizeof(__pyx_k__vec), 0, 0, 1, 1}, {&__pyx_n_s__w, __pyx_k__w, sizeof(__pyx_k__w), 0, 0, 1, 1}, {&__pyx_n_s__warn, __pyx_k__warn, sizeof(__pyx_k__warn), 0, 0, 1, 1}, {&__pyx_n_s__warnings, __pyx_k__warnings, sizeof(__pyx_k__warnings), 0, 0, 1, 1}, {&__pyx_n_s__write, __pyx_k__write, sizeof(__pyx_k__write), 0, 0, 1, 1}, {&__pyx_n_s__write_to_fastq_file, __pyx_k__write_to_fastq_file, sizeof(__pyx_k__write_to_fastq_file), 0, 0, 1, 1}, {&__pyx_n_s__x, __pyx_k__x, sizeof(__pyx_k__x), 0, 0, 1, 1}, {&__pyx_n_s__xrange, __pyx_k__xrange, sizeof(__pyx_k__xrange), 0, 0, 1, 1}, {&__pyx_n_s__zeros, __pyx_k__zeros, sizeof(__pyx_k__zeros), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_n_s__property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_NotImplementedError = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_open = __Pyx_GetName(__pyx_b, __pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if PY_MAJOR_VERSION >= 3 __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif __pyx_builtin_chr = __Pyx_GetName(__pyx_b, __pyx_n_s__chr); if (!__pyx_builtin_chr) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_ord = __Pyx_GetName(__pyx_b, __pyx_n_s__ord); if (!__pyx_builtin_ord) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_ImportError = __Pyx_GetName(__pyx_b, __pyx_n_s__ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; __pyx_L1_error:; return -1; } static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants"); /* "HTSeq/_HTSeq.pyx":585 * f = open( file_or_filename, "w" ) * if track_options == "": * f.write( "track type=bedGraph\n" ) # <<<<<<<<<<<<<< * else: * f.write( "track type=bedGraph %s\n" % track_options ) */ __pyx_k_tuple_43 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_43)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_43)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_42)); PyTuple_SET_ITEM(__pyx_k_tuple_43, 0, ((PyObject *)__pyx_kp_s_42)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_42)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_43)); /* "HTSeq/_HTSeq.pyx":630 * work with extended IUPAC nucleotide letters or RNA.""" * * return seq[ ::-1 ].translate( _translation_table_for_complementation ) # <<<<<<<<<<<<<< * * base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } */ __pyx_k_slice_46 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_46)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_46); __Pyx_GIVEREF(__pyx_k_slice_46); /* "HTSeq/_HTSeq.pyx":857 * fastq_file.write( "@%s\n" % self.name ) * fastq_file.write( self.seq + "\n" ) * fastq_file.write( "+\n" ) # <<<<<<<<<<<<<< * fastq_file.write( self.qualstr + "\n" ) * */ __pyx_k_tuple_70 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_70)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_69)); PyTuple_SET_ITEM(__pyx_k_tuple_70, 0, ((PyObject *)__pyx_kp_s_69)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_69)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_70)); /* "HTSeq/_HTSeq.pyx":870 * reverse_complement( self.seq ), * "revcomp_of_" + self.name, * self._qualstr[::-1], # <<<<<<<<<<<<<< * self._qualscale ) * if self._qualarr is not None: */ __pyx_k_slice_71 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_71)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_71); __Pyx_GIVEREF(__pyx_k_slice_71); /* "HTSeq/_HTSeq.pyx":873 * self._qualscale ) * if self._qualarr is not None: * res._qualarr = self._qualarr[::-1] # <<<<<<<<<<<<<< * return res * */ __pyx_k_slice_72 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_72)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_72); __Pyx_GIVEREF(__pyx_k_slice_72); /* "HTSeq/_HTSeq.pyx":1051 * cdef int positionint * (readId, strand, chrom, position, read, qual, * self.reserved, self.substitutions) = bowtie_line.split( '\t' ) # <<<<<<<<<<<<<< * positionint = int( position ) * AlignmentWithSequenceReversal.__init__( self, */ __pyx_k_tuple_81 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_81)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_80)); PyTuple_SET_ITEM(__pyx_k_tuple_81, 0, ((PyObject *)__pyx_kp_s_80)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_80)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_81)); /* "HTSeq/_HTSeq.pyx":1199 * import pysam * except ImportError: * sys.stderr.write( "Please Install PySam to use this functionality (http://code.google.com/p/pysam/)" ) # <<<<<<<<<<<<<< * raise * */ __pyx_k_tuple_91 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_91)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_90)); PyTuple_SET_ITEM(__pyx_k_tuple_91, 0, ((PyObject *)__pyx_kp_s_90)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_90)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_91)); /* "HTSeq/_HTSeq.pyx":1272 * cdef SequenceWithQualities swq * * fields = line.rstrip().split( "\t" ) # <<<<<<<<<<<<<< * if len( fields ) < 10: * raise ValueError, "SAM line does not contain at least 11 tab-delimited fields." */ __pyx_k_tuple_95 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_95)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_80)); PyTuple_SET_ITEM(__pyx_k_tuple_95, 0, ((PyObject *)__pyx_kp_s_80)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_80)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_95)); /* "HTSeq/_HTSeq.pyx":1279 * optional_fields = fields[ 11: ] * * if seq.count( "=" ) > 0: # <<<<<<<<<<<<<< * raise ValueError, "Sequence in SAM file contains '=', which is not supported." * if seq.count( "." ) > 0: */ __pyx_k_tuple_98 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_98)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_97)); PyTuple_SET_ITEM(__pyx_k_tuple_98, 0, ((PyObject *)__pyx_kp_s_97)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_97)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_98)); /* "HTSeq/_HTSeq.pyx":1281 * if seq.count( "=" ) > 0: * raise ValueError, "Sequence in SAM file contains '=', which is not supported." * if seq.count( "." ) > 0: # <<<<<<<<<<<<<< * raise ValueError, "Sequence in SAM file contains '.', which is not supported." * flagint = int( flag ) */ __pyx_k_tuple_100 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_100)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_11)); PyTuple_SET_ITEM(__pyx_k_tuple_100, 0, ((PyObject *)__pyx_kp_s_11)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_11)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_100)); /* "HTSeq/_HTSeq.pyx":1289 * cigarlist = None * if rname != "*": # flag "query sequence is unmapped" * warnings.warn( "Malformed SAM line: RNAME != '*' although flag bit &0x0004 set" ) # <<<<<<<<<<<<<< * else: * if rname == "*": */ __pyx_k_tuple_103 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_103)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_102)); PyTuple_SET_ITEM(__pyx_k_tuple_103, 0, ((PyObject *)__pyx_kp_s_102)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_102)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103)); /* "HTSeq/_HTSeq.pyx":1317 * if flagint & 0x0008: # flag "mate is unmapped" * if mrnm != "*": * warnings.warn( "Malformed SAM line: MRNM != '*' although flag bit &0x0008 set" ) # <<<<<<<<<<<<<< * alnmt.mate_start = None * else: */ __pyx_k_tuple_106 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_106)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_105)); PyTuple_SET_ITEM(__pyx_k_tuple_106, 0, ((PyObject *)__pyx_kp_s_105)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_105)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_106)); /* "HTSeq/_HTSeq.pyx":1332 * alnmt.mate_start.chrom = alnmt.iv.chrom * else: * warnings.warn( "Malformed SAM line: MRNM == '=' although read is not aligned." ) # <<<<<<<<<<<<<< * if flagint & 0x0040: * alnmt.pe_which = intern( "first" ) */ __pyx_k_tuple_109 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_109)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_108)); PyTuple_SET_ITEM(__pyx_k_tuple_109, 0, ((PyObject *)__pyx_kp_s_108)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_108)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_109)); /* "HTSeq/_HTSeq.pyx":1372 * query_start = self.iv * else: * query_start = GenomicPosition( "*", -1 ) # <<<<<<<<<<<<<< * * if self.mate_start is not None: */ __pyx_k_tuple_110 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_110)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_93)); PyTuple_SET_ITEM(__pyx_k_tuple_110, 0, ((PyObject *)__pyx_kp_s_93)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_93)); __Pyx_INCREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_k_tuple_110, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_110)); /* "HTSeq/_HTSeq.pyx":1377 * mate_start = self.mate_start * else: * mate_start = GenomicPosition( "*", -1 ) # <<<<<<<<<<<<<< * * if self.cigar is not None: */ __pyx_k_tuple_111 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_111)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_93)); PyTuple_SET_ITEM(__pyx_k_tuple_111, 0, ((PyObject *)__pyx_kp_s_93)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_93)); __Pyx_INCREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_k_tuple_111, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_111)); /* "numpy.pxd":211 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_k_tuple_115 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_115)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_115)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_114)); PyTuple_SET_ITEM(__pyx_k_tuple_115, 0, ((PyObject *)__pyx_kp_u_114)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_114)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_115)); /* "numpy.pxd":215 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_k_tuple_117 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_117)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_117)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_116)); PyTuple_SET_ITEM(__pyx_k_tuple_117, 0, ((PyObject *)__pyx_kp_u_116)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_116)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_117)); /* "numpy.pxd":253 * if ((descr.byteorder == '>' and little_endian) or * (descr.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_k_tuple_119 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_119)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_119)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_118)); PyTuple_SET_ITEM(__pyx_k_tuple_119, 0, ((PyObject *)__pyx_kp_u_118)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_118)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_119)); /* "numpy.pxd":795 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == '>' and little_endian) or */ __pyx_k_tuple_122 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_122)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_122)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_121)); PyTuple_SET_ITEM(__pyx_k_tuple_122, 0, ((PyObject *)__pyx_kp_u_121)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_121)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_122)); /* "numpy.pxd":799 * if ((child.byteorder == '>' and little_endian) or * (child.byteorder == '<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_k_tuple_123 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_123)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_123)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_118)); PyTuple_SET_ITEM(__pyx_k_tuple_123, 0, ((PyObject *)__pyx_kp_u_118)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_118)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_123)); /* "numpy.pxd":819 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_k_tuple_125 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_125)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_125)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_124)); PyTuple_SET_ITEM(__pyx_k_tuple_125, 0, ((PyObject *)__pyx_kp_u_124)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_124)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_125)); /* "HTSeq/_HTSeq.pyx":1108 * return True * * _re_cigar_codes = re.compile( '([A-Z])' ) # <<<<<<<<<<<<<< * * cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): */ __pyx_k_tuple_134 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_134)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_134)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_133)); PyTuple_SET_ITEM(__pyx_k_tuple_134, 0, ((PyObject *)__pyx_kp_s_133)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_133)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_134)); __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_65 = PyInt_FromLong(65); if (unlikely(!__pyx_int_65)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_67 = PyInt_FromLong(67); if (unlikely(!__pyx_int_67)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_70 = PyInt_FromLong(70); if (unlikely(!__pyx_int_70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_71 = PyInt_FromLong(71); if (unlikely(!__pyx_int_71)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_84 = PyInt_FromLong(84); if (unlikely(!__pyx_int_84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_97 = PyInt_FromLong(97); if (unlikely(!__pyx_int_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_99 = PyInt_FromLong(99); if (unlikely(!__pyx_int_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_103 = PyInt_FromLong(103); if (unlikely(!__pyx_int_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_116 = PyInt_FromLong(116); if (unlikely(!__pyx_int_116)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; return 0; __pyx_L1_error:; return -1; } #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_HTSeq(void); /*proto*/ PyMODINIT_FUNC init_HTSeq(void) #else PyMODINIT_FUNC PyInit__HTSeq(void); /*proto*/ PyMODINIT_FUNC PyInit__HTSeq(void) #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannyDeclarations #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__HTSeq(void)"); if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #ifdef __pyx_binding_PyCFunctionType_USED if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_HTSeq"), __pyx_methods, 0, 0, PYTHON_API_VERSION); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; #if PY_MAJOR_VERSION < 3 Py_INCREF(__pyx_m); #endif __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; /*--- Initialize various global constants etc. ---*/ if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_module_is_main_HTSeq___HTSeq) { if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; } /*--- Builtin init code ---*/ if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Constants init code ---*/ if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Global init code ---*/ __pyx_v_5HTSeq_6_HTSeq_strand_plus = ((PyObject*)Py_None); Py_INCREF(Py_None); __pyx_v_5HTSeq_6_HTSeq_strand_minus = ((PyObject*)Py_None); Py_INCREF(Py_None); __pyx_v_5HTSeq_6_HTSeq_strand_nostrand = ((PyObject*)Py_None); Py_INCREF(Py_None); __pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation = ((PyObject*)Py_None); Py_INCREF(Py_None); /*--- Variable export code ---*/ /*--- Function export code ---*/ /*--- Type init code ---*/ __pyx_vtabptr_5HTSeq_6_HTSeq_GenomicInterval = &__pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval; __pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval.is_contained_in = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_is_contained_in; __pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval.contains = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_contains; __pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval.overlaps = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_overlaps; __pyx_vtable_5HTSeq_6_HTSeq_GenomicInterval.extend_to_include = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, struct __pyx_obj_5HTSeq_6_HTSeq_GenomicInterval *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_15GenomicInterval_extend_to_include; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_GenomicInterval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_5HTSeq_6_HTSeq_GenomicInterval, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_5HTSeq_6_HTSeq_15GenomicInterval___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_5HTSeq_6_HTSeq_15GenomicInterval___init__.doc = __pyx_doc_5HTSeq_6_HTSeq_15GenomicInterval___init__; ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5HTSeq_6_HTSeq_15GenomicInterval___init__; } } if (__Pyx_SetVtable(__pyx_type_5HTSeq_6_HTSeq_GenomicInterval.tp_dict, __pyx_vtabptr_5HTSeq_6_HTSeq_GenomicInterval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "GenomicInterval", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_GenomicInterval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval = &__pyx_type_5HTSeq_6_HTSeq_GenomicInterval; __pyx_vtabptr_5HTSeq_6_HTSeq_GenomicPosition = &__pyx_vtable_5HTSeq_6_HTSeq_GenomicPosition; __pyx_vtable_5HTSeq_6_HTSeq_GenomicPosition.__pyx_base = *__pyx_vtabptr_5HTSeq_6_HTSeq_GenomicInterval; __pyx_type_5HTSeq_6_HTSeq_GenomicPosition.tp_base = __pyx_ptype_5HTSeq_6_HTSeq_GenomicInterval; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_GenomicPosition) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetVtable(__pyx_type_5HTSeq_6_HTSeq_GenomicPosition.tp_dict, __pyx_vtabptr_5HTSeq_6_HTSeq_GenomicPosition) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "GenomicPosition", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_GenomicPosition) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_GenomicPosition = &__pyx_type_5HTSeq_6_HTSeq_GenomicPosition; __pyx_vtabptr_5HTSeq_6_HTSeq_Sequence = &__pyx_vtable_5HTSeq_6_HTSeq_Sequence; __pyx_vtable_5HTSeq_6_HTSeq_Sequence.get_reverse_complement = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_8Sequence_get_reverse_complement; __pyx_vtable_5HTSeq_6_HTSeq_Sequence.add_bases_to_count_array = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, PyArrayObject *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_8Sequence_add_bases_to_count_array; __pyx_vtable_5HTSeq_6_HTSeq_Sequence.trim_left_end = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_left_end *__pyx_optional_args))__pyx_f_5HTSeq_6_HTSeq_8Sequence_trim_left_end; __pyx_vtable_5HTSeq_6_HTSeq_Sequence.trim_right_end = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_8Sequence_trim_right_end *__pyx_optional_args))__pyx_f_5HTSeq_6_HTSeq_8Sequence_trim_right_end; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_Sequence) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetVtable(__pyx_type_5HTSeq_6_HTSeq_Sequence.tp_dict, __pyx_vtabptr_5HTSeq_6_HTSeq_Sequence) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "Sequence", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_Sequence) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_Sequence = &__pyx_type_5HTSeq_6_HTSeq_Sequence; __pyx_vtabptr_5HTSeq_6_HTSeq_SequenceWithQualities = &__pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.__pyx_base = *__pyx_vtabptr_5HTSeq_6_HTSeq_Sequence; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.__pyx_base.get_reverse_complement = (struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_get_reverse_complement__pyx_wrap_1; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities._fill_qual_arr = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities__fill_qual_arr; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.add_qual_to_count_array = (PyObject *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, PyArrayObject *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_add_qual_to_count_array; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.trim_left_end_with_quals = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals *__pyx_optional_args))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_left_end_with_quals; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.trim_right_end_with_quals = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *, struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch, struct __pyx_opt_args_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals *__pyx_optional_args))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_trim_right_end_with_quals; __pyx_vtable_5HTSeq_6_HTSeq_SequenceWithQualities.get_reverse_complement = (struct __pyx_obj_5HTSeq_6_HTSeq_SequenceWithQualities *(*)(struct __pyx_obj_5HTSeq_6_HTSeq_Sequence *, int __pyx_skip_dispatch))__pyx_f_5HTSeq_6_HTSeq_21SequenceWithQualities_get_reverse_complement; __pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities.tp_base = __pyx_ptype_5HTSeq_6_HTSeq_Sequence; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_5HTSeq_6_HTSeq_21SequenceWithQualities___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_5HTSeq_6_HTSeq_21SequenceWithQualities___init__.doc = __pyx_doc_5HTSeq_6_HTSeq_21SequenceWithQualities___init__; ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5HTSeq_6_HTSeq_21SequenceWithQualities___init__; } } if (__Pyx_SetVtable(__pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities.tp_dict, __pyx_vtabptr_5HTSeq_6_HTSeq_SequenceWithQualities) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "SequenceWithQualities", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities = &__pyx_type_5HTSeq_6_HTSeq_SequenceWithQualities; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_Alignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "Alignment", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_Alignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_Alignment = &__pyx_type_5HTSeq_6_HTSeq_Alignment; __pyx_type_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal.tp_base = __pyx_ptype_5HTSeq_6_HTSeq_Alignment; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "AlignmentWithSequenceReversal", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal = &__pyx_type_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal; __pyx_type_5HTSeq_6_HTSeq_SAM_Alignment.tp_base = __pyx_ptype_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_SAM_Alignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "SAM_Alignment", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_SAM_Alignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment = &__pyx_type_5HTSeq_6_HTSeq_SAM_Alignment; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_ChromVector) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "ChromVector", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_ChromVector) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_ChromVector = &__pyx_type_5HTSeq_6_HTSeq_ChromVector; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_GenomicArray) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "GenomicArray", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_GenomicArray) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_GenomicArray = &__pyx_type_5HTSeq_6_HTSeq_GenomicArray; __pyx_type_5HTSeq_6_HTSeq_BowtieAlignment.tp_base = __pyx_ptype_5HTSeq_6_HTSeq_AlignmentWithSequenceReversal; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_BowtieAlignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "BowtieAlignment", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_BowtieAlignment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_BowtieAlignment = &__pyx_type_5HTSeq_6_HTSeq_BowtieAlignment; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq_CigarOperation) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "CigarOperation", (PyObject *)&__pyx_type_5HTSeq_6_HTSeq_CigarOperation) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq_CigarOperation = &__pyx_type_5HTSeq_6_HTSeq_CigarOperation; if (PyType_Ready(&__pyx_type_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__ = &__pyx_type_5HTSeq_6_HTSeq___pyx_scope_struct____iadd__; /*--- Type import code ---*/ __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Variable import code ---*/ /*--- Function import code ---*/ /*--- Execution code ---*/ /* "HTSeq/_HTSeq.pyx":1 * import sys # <<<<<<<<<<<<<< * import os * import math */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__sys, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":2 * import sys * import os # <<<<<<<<<<<<<< * import math * import re */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__os), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":3 * import sys * import os * import math # <<<<<<<<<<<<<< * import re * import csv */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__math), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__math, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":4 * import os * import math * import re # <<<<<<<<<<<<<< * import csv * import gzip */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__re), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__re, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":5 * import math * import re * import csv # <<<<<<<<<<<<<< * import gzip * import itertools */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__csv), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__csv, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":6 * import re * import csv * import gzip # <<<<<<<<<<<<<< * import itertools * import collections */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__gzip), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gzip, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":7 * import csv * import gzip * import itertools # <<<<<<<<<<<<<< * import collections * import cStringIO */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__itertools), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__itertools, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":8 * import gzip * import itertools * import collections # <<<<<<<<<<<<<< * import cStringIO * import warnings */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__collections), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__collections, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":9 * import itertools * import collections * import cStringIO # <<<<<<<<<<<<<< * import warnings * import numpy */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__cStringIO), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cStringIO, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":10 * import collections * import cStringIO * import warnings # <<<<<<<<<<<<<< * import numpy * cimport numpy */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__warnings, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":11 * import cStringIO * import warnings * import numpy # <<<<<<<<<<<<<< * cimport numpy * */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numpy, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":14 * cimport numpy * * import StepVector # <<<<<<<<<<<<<< * import _HTSeq_internal * */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__StepVector), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__StepVector, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":15 * * import StepVector * import _HTSeq_internal # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s___HTSeq_internal), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s___HTSeq_internal, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":22 * ########################### * * cdef str strand_plus = intern( "+" ) # <<<<<<<<<<<<<< * cdef str strand_minus = intern( "-" ) * cdef str strand_nostrand = intern( "." ) */ __pyx_t_1 = ((PyObject *)__pyx_kp_s_37); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XGOTREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus)); __Pyx_DECREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_plus)); __Pyx_GIVEREF(__pyx_t_2); __pyx_v_5HTSeq_6_HTSeq_strand_plus = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":23 * * cdef str strand_plus = intern( "+" ) * cdef str strand_minus = intern( "-" ) # <<<<<<<<<<<<<< * cdef str strand_nostrand = intern( "." ) * */ __pyx_t_2 = ((PyObject *)__pyx_kp_s_38); __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __Pyx_Intern(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XGOTREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus)); __Pyx_DECREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_minus)); __Pyx_GIVEREF(__pyx_t_1); __pyx_v_5HTSeq_6_HTSeq_strand_minus = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":24 * cdef str strand_plus = intern( "+" ) * cdef str strand_minus = intern( "-" ) * cdef str strand_nostrand = intern( "." ) # <<<<<<<<<<<<<< * * cdef class GenomicInterval: */ __pyx_t_1 = ((PyObject *)__pyx_kp_s_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XGOTREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_DECREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __Pyx_GIVEREF(__pyx_t_2); __pyx_v_5HTSeq_6_HTSeq_strand_nostrand = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":54 * * def __init__( GenomicInterval self, str chrom, long start, long end, * str strand = strand_nostrand ): # <<<<<<<<<<<<<< * """See the class docstring for the meaning of the slots. Note that * there is also a factory function, 'from_directional', to be used if */ __Pyx_INCREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq_strand_nostrand)); __pyx_k_1 = __pyx_v_5HTSeq_6_HTSeq_strand_nostrand; __Pyx_GIVEREF(__pyx_v_5HTSeq_6_HTSeq_strand_nostrand); /* "HTSeq/_HTSeq.pyx":249 * * * def GenomicInterval_from_directional( str chrom, long int start_d, long int length, str strand="." ): # <<<<<<<<<<<<<< * strand = intern( strand ) * if strand.se is not strand_minus: */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5HTSeq_6_HTSeq_GenomicInterval_from_directional, NULL, __pyx_n_s_27); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_m, __pyx_n_s_129, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":323 * * @classmethod * def create( cls, GenomicInterval iv, str typecode, str storage, str memmap_dir = "" ): # <<<<<<<<<<<<<< * ncv = cls() * ncv.iv = iv */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector, __pyx_n_s__create); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector->tp_dict, __pyx_n_s__create, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_ChromVector); /* "HTSeq/_HTSeq.pyx":346 * * @classmethod * def _create_view( cls, ChromVector vec, GenomicInterval iv ): # <<<<<<<<<<<<<< * if iv.length == 0: * raise IndexError, "Cannot subset to zero-length interval." */ __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector, __pyx_n_s___create_view); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_ChromVector->tp_dict, __pyx_n_s___create_view, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_ChromVector); /* "HTSeq/_HTSeq.pyx":469 * ( self.array, self.iv, self.offset, self.is_vector_of_sets, self._storage ) ) * * def _ChromVector_unpickle( array, iv, offset, is_vector_of_sets, _storage ): # <<<<<<<<<<<<<< * cv = ChromVector() * cv.array = array */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5HTSeq_6_HTSeq_1_ChromVector_unpickle, NULL, __pyx_n_s_27); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_m, __pyx_n_s_29, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":553 * raise TypeError, "Illegal index type." * * def add_chrom( self, chrom, length = sys.maxint, start_index = 0 ): # <<<<<<<<<<<<<< * cdef GenomicInterval iv * if length == sys.maxint: */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__maxint); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_36 = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":600 * * * def _GenomicArray_unpickle( stranded, typecode, chrom_vectors ): # <<<<<<<<<<<<<< * ga = GenomicArray( {}, stranded, typecode ) * ga.chrom_vectors = chrom_vectors */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5HTSeq_6_HTSeq_2_GenomicArray_unpickle, NULL, __pyx_n_s_27); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s_39, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":612 * * * def _make_translation_table_for_complementation( ): # <<<<<<<<<<<<<< * t = [ chr(i) for i in xrange(256) ] * t[ ord('A') ] = 'T' */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5HTSeq_6_HTSeq_3_make_translation_table_for_complementation, NULL, __pyx_n_s_27); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s_130, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "HTSeq/_HTSeq.pyx":624 * return ''.join( t ) * * cdef bytes _translation_table_for_complementation = _make_translation_table_for_complementation( ) # <<<<<<<<<<<<<< * * cpdef bytes reverse_complement( bytes seq ): */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_130); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XGOTREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation)); __Pyx_DECREF(((PyObject *)__pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation)); __Pyx_GIVEREF(__pyx_t_2); __pyx_v_5HTSeq_6_HTSeq__translation_table_for_complementation = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":632 * return seq[ ::-1 ].translate( _translation_table_for_complementation ) * * base_to_column = { 'A': 0, 'C': 1, 'G': 2, 'T': 3, 'N': 4 } # <<<<<<<<<<<<<< * * cdef class Sequence( object ): */ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__A), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__C), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__G), __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__T), __pyx_int_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__N), __pyx_int_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyObject_SetAttr(__pyx_m, __pyx_n_s__base_to_column, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":829 * * @property * def qualstr( self ): # <<<<<<<<<<<<<< * cdef int seqlen * cdef char * qualstr_phred_cstr = self._qualstr_phred */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities, __pyx_n_s__qualstr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities->tp_dict, __pyx_n_s__qualstr, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_SequenceWithQualities); /* "HTSeq/_HTSeq.pyx":977 * * @property * def read( self ): # <<<<<<<<<<<<<< * return self._read * */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment->tp_dict, __pyx_n_s__read, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_Alignment); /* "HTSeq/_HTSeq.pyx":994 * * @property * def paired_end( self ): # <<<<<<<<<<<<<< * return False * */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment, __pyx_n_s__paired_end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment->tp_dict, __pyx_n_s__paired_end, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_Alignment); /* "HTSeq/_HTSeq.pyx":998 * * @property * def aligned( self ): # <<<<<<<<<<<<<< * """Returns True unless self.iv is None. The latter indicates that * this record decribes a read for which no alignment was found. */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment, __pyx_n_s__aligned); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_Alignment->tp_dict, __pyx_n_s__aligned, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_Alignment); /* "HTSeq/_HTSeq.pyx":1058 * * * cigar_operation_names = { # <<<<<<<<<<<<<< * 'M': 'matched', * 'I': 'inserted', */ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__M), ((PyObject *)__pyx_n_s__matched)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__I), ((PyObject *)__pyx_n_s__inserted)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__D), ((PyObject *)__pyx_n_s__deleted)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__N), ((PyObject *)__pyx_n_s__skipped)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__S), ((PyObject *)__pyx_kp_s_131)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__H), ((PyObject *)__pyx_kp_s_132)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__P), ((PyObject *)__pyx_n_s__padded)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyObject_SetAttr(__pyx_m, __pyx_n_s_84, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1108 * return True * * _re_cigar_codes = re.compile( '([A-Z])' ) # <<<<<<<<<<<<<< * * cpdef list parse_cigar( str cigar_string, int ref_left = 0, str chrom = "", str strand = "." ): */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__re); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_134), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_s___re_cigar_codes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1182 * raise ValueError, "SAM optional field with illegal type letter '%s'" % field[2] * * cigar_operation_codes = [ 'M', 'I', 'D', 'N', 'S', 'H', 'P', '=', 'X'] # <<<<<<<<<<<<<< * cigar_operation_code_dict = dict( [ (x,i) for i,x in enumerate( cigar_operation_codes ) ] ) * */ __pyx_t_2 = PyList_New(9); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(((PyObject *)__pyx_n_s__M)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__M)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__M)); __Pyx_INCREF(((PyObject *)__pyx_n_s__I)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s__I)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__I)); __Pyx_INCREF(((PyObject *)__pyx_n_s__D)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_n_s__D)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__D)); __Pyx_INCREF(((PyObject *)__pyx_n_s__N)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_n_s__N)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__N)); __Pyx_INCREF(((PyObject *)__pyx_n_s__S)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_n_s__S)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__S)); __Pyx_INCREF(((PyObject *)__pyx_n_s__H)); PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_n_s__H)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__H)); __Pyx_INCREF(((PyObject *)__pyx_n_s__P)); PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_n_s__P)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__P)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_97)); PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_kp_s_97)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_97)); __Pyx_INCREF(((PyObject *)__pyx_n_s__X)); PyList_SET_ITEM(__pyx_t_2, 8, ((PyObject *)__pyx_n_s__X)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X)); if (PyObject_SetAttr(__pyx_m, __pyx_n_s_94, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1183 * * cigar_operation_codes = [ 'M', 'I', 'D', 'N', 'S', 'H', 'P', '=', 'X'] * cigar_operation_code_dict = dict( [ (x,i) for i,x in enumerate( cigar_operation_codes ) ] ) # <<<<<<<<<<<<<< * * cdef class SAM_Alignment( AlignmentWithSequenceReversal ): */ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_int_0); __pyx_t_1 = __pyx_int_0; __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_94); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (PyList_CheckExact(__pyx_t_4)) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; } else if (PyTuple_CheckExact(__pyx_t_4)) { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; } else { __pyx_t_3 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_3)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_3); } if (PyObject_SetAttr(__pyx_m, __pyx_n_s__x, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_s__i, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__x); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__i); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_3 = 0; __pyx_t_7 = 0; if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2)); __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_s_92, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "HTSeq/_HTSeq.pyx":1226 * * @classmethod * def from_pysam_AlignedRead( cls, read, samfile ): # <<<<<<<<<<<<<< * strand = "-" if read.is_reverse else "+" * if not read.is_unmapped: */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment, __pyx_n_s_135); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment->tp_dict, __pyx_n_s_135, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment); /* "HTSeq/_HTSeq.pyx":1263 * * @classmethod * def from_SAM_line( cls, line ): # <<<<<<<<<<<<<< * cdef str qname, flag, rname, pos, mapq, cigar, * cdef str mrnm, mpos, isize, seq, qual */ __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment, __pyx_n_s__from_SAM_line); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment->tp_dict, __pyx_n_s__from_SAM_line, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment); /* "HTSeq/_HTSeq.pyx":1357 * * @property * def paired_end( self ): # <<<<<<<<<<<<<< * return self.pe_which != "not_paired_end" * */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment, __pyx_n_s__paired_end); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment->tp_dict, __pyx_n_s__paired_end, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment); /* "HTSeq/_HTSeq.pyx":1361 * * @property * def mate_aligned( self ): # <<<<<<<<<<<<<< * return self.mate_start is not None * */ __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment, __pyx_n_s__mate_aligned); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment->tp_dict, __pyx_n_s__mate_aligned, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_5HTSeq_6_HTSeq_SAM_Alignment); /* "HTSeq/_HTSeq.pyx":1 * import sys # <<<<<<<<<<<<<< * import os * import math */ __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "numpy.pxd":971 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__pyx_m) { __Pyx_AddTraceback("init HTSeq._HTSeq", __pyx_clineno, __pyx_lineno, __pyx_filename); Py_DECREF(__pyx_m); __pyx_m = 0; } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init HTSeq._HTSeq"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if PY_MAJOR_VERSION < 3 return; #else return __pyx_m; #endif } /* Runtime support code */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule((char *)modname); if (!m) goto end; p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* CYTHON_REFNANNY */ static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { PyObject *result; result = PyObject_GetAttr(dict, name); if (!result) { if (dict != __pyx_b) { PyErr_Clear(); result = PyObject_GetAttr(__pyx_b, name); } if (!result) { PyErr_SetObject(PyExc_NameError, name); } } return result; } static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AS_STRING(kw_name)); #endif } static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; } else { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) { #else if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) { #endif goto invalid_keyword_type; } else { for (name = first_kw_arg; *name; name++) { #if PY_MAJOR_VERSION >= 3 if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && PyUnicode_Compare(**name, key) == 0) break; #else if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && _PyString_Eq(**name, key)) break; #endif } if (*name) { values[name-argnames] = value; } else { /* unexpected keyword found */ for (name=argnames; name != first_kw_arg; name++) { if (**name == key) goto arg_passed_twice; #if PY_MAJOR_VERSION >= 3 if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice; #else if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && _PyString_Eq(**name, key)) goto arg_passed_twice; #endif } if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } } } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, **name); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%s() got an unexpected keyword argument '%s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) { if (!type) { PyErr_Format(PyExc_SystemError, "Missing type object"); return 0; } if (none_allowed && obj == Py_None) return 1; else if (exact) { if (Py_TYPE(obj) == type) return 1; } else { if (PyObject_TypeCheck(obj, type)) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%s' has incorrect type (expected %s, got %s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyThreadState *tstate = PyThreadState_GET(); tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { PyThreadState *tstate = PyThreadState_GET(); *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { /* cause is unused */ Py_XINCREF(type); Py_XINCREF(value); Py_XINCREF(tb); /* First, check the traceback argument, replacing None with NULL. */ if (tb == Py_None) { Py_DECREF(tb); tb = 0; } else if (tb != NULL && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } /* Next, replace a missing value with None */ if (value == NULL) { value = Py_None; Py_INCREF(value); } #if PY_VERSION_HEX < 0x02050000 if (!PyClass_Check(type)) #else if (!PyType_Check(type)) #endif { /* Raising an instance. The value should be a dummy. */ if (value != Py_None) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } /* Normalize to raise , */ Py_DECREF(value); value = type; #if PY_VERSION_HEX < 0x02050000 if (PyInstance_Check(type)) { type = (PyObject*) ((PyInstanceObject*)type)->in_class; Py_INCREF(type); } else { type = 0; PyErr_SetString(PyExc_TypeError, "raise: exception must be an old-style class or instance"); goto raise_error; } #else type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } #endif } __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else /* Python 3+ */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (!PyExceptionClass_Check(type)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } if (!value) { value = PyObject_CallObject(type, NULL); } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { PyThreadState *tstate = PyThreadState_GET(); PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } } bad: return; } #endif static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack", index, (index == 1) ? "" : "s"); } static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected); } static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; } static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_Format(PyExc_SystemError, "Missing type object"); return 0; } if (likely(PyObject_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) { PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname); } static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is unsubscriptable"); } static int __Pyx_PyUnicode_Tailmatch(PyObject* s, PyObject* substr, Py_ssize_t start, Py_ssize_t end, int direction) { if (unlikely(PyTuple_Check(substr))) { int result; Py_ssize_t i; for (i = 0; i < PyTuple_GET_SIZE(substr); i++) { result = PyUnicode_Tailmatch(s, PyTuple_GET_ITEM(substr, i), start, end, direction); if (result) { return result; } } return 0; } return PyUnicode_Tailmatch(s, substr, start, end, direction); } static int __Pyx_PyBytes_SingleTailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction) { const char* self_ptr = PyBytes_AS_STRING(self); Py_ssize_t self_len = PyBytes_GET_SIZE(self); const char* sub_ptr; Py_ssize_t sub_len; int retval; #if PY_VERSION_HEX >= 0x02060000 Py_buffer view; view.obj = NULL; #endif if ( PyBytes_Check(arg) ) { sub_ptr = PyBytes_AS_STRING(arg); sub_len = PyBytes_GET_SIZE(arg); } #if PY_MAJOR_VERSION < 3 // Python 2.x allows mixing unicode and str else if ( PyUnicode_Check(arg) ) { return PyUnicode_Tailmatch(self, arg, start, end, direction); } #endif else { #if PY_VERSION_HEX < 0x02060000 if (unlikely(PyObject_AsCharBuffer(arg, &sub_ptr, &sub_len))) return -1; #else if (unlikely(PyObject_GetBuffer(self, &view, PyBUF_SIMPLE) == -1)) return -1; sub_ptr = (const char*) view.buf; sub_len = view.len; #endif } if (end > self_len) end = self_len; else if (end < 0) end += self_len; if (end < 0) end = 0; if (start < 0) start += self_len; if (start < 0) start = 0; if (direction > 0) { /* endswith */ if (end-sub_len > start) start = end - sub_len; } if (start + sub_len <= end) retval = !memcmp(self_ptr+start, sub_ptr, sub_len); else retval = 0; #if PY_VERSION_HEX >= 0x02060000 if (view.obj) PyBuffer_Release(&view); #endif return retval; } static int __Pyx_PyBytes_Tailmatch(PyObject* self, PyObject* substr, Py_ssize_t start, Py_ssize_t end, int direction) { if (unlikely(PyTuple_Check(substr))) { int result; Py_ssize_t i; for (i = 0; i < PyTuple_GET_SIZE(substr); i++) { result = __Pyx_PyBytes_SingleTailmatch(self, PyTuple_GET_ITEM(substr, i), start, end, direction); if (result) { return result; } } return 0; } return __Pyx_PyBytes_SingleTailmatch(self, substr, start, end, direction); } static CYTHON_INLINE int __Pyx_PyStr_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction) { if (PY_MAJOR_VERSION < 3) return __Pyx_PyBytes_Tailmatch(self, arg, start, end, direction); else return __Pyx_PyUnicode_Tailmatch(self, arg, start, end, direction); } static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { unsigned int n = 1; return *(unsigned char*)(&n) != 0; } typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; int is_complex; char enc_type; char new_packmode; char enc_packmode; } __Pyx_BufFmt_Context; static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t < '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'b': return "'char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'h': case 'i': case 'l': case 'q': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset; if (ctx->enc_type == 0) return 0; group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { /* special case -- treat as struct rather than complex number */ size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } __Pyx_BufFmt_RaiseExpected(ctx); return -1; } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %"PY_FORMAT_SIZE_T"d but %"PY_FORMAT_SIZE_T"d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; --ctx->enc_count; /* Consume from buffer string */ /* Done checking, move to next field, pushing or popping struct stack if needed */ while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; /* breaks both loops as ctx->enc_count == 0 */ } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; /* empty struct */ field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case 10: case 13: ++ts; break; case '<': if (!__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': /* substruct */ { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; } break; case '}': /* end of substruct; either repeat or move on */ ++ts; return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } /* fall through */ case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { /* Continue pooling same type */ ctx->enc_count += ctx->new_count; } else { /* New type */ if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; } ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; default: { int number = __Pyx_BufFmt_ParseNumber(&ts); if (number == -1) { /* First char was not a digit */ PyErr_Format(PyExc_ValueError, "Does not understand character buffer dtype format string ('%c')", *ts); return NULL; } ctx->new_count = (size_t)number; } } } } static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->buf = NULL; buf->obj = NULL; buf->strides = __Pyx_zeros; buf->shape = __Pyx_zeros; buf->suboffsets = __Pyx_minusones; } static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { if (obj == Py_None || obj == NULL) { __Pyx_ZeroBuffer(buf); return 0; } buf->buf = NULL; if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; if (buf->ndim != nd) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", nd, buf->ndim); goto fail; } if (!cast) { __Pyx_BufFmt_Context ctx; __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned)buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%"PY_FORMAT_SIZE_T"d byte%s) does not match size of '%s' (%"PY_FORMAT_SIZE_T"d byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; return 0; fail:; __Pyx_ZeroBuffer(buf); return -1; } static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { if (info->buf == NULL) return; if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; __Pyx_ReleaseBuffer(info); } static void __Pyx_RaiseBufferIndexError(int axis) { PyErr_Format(PyExc_IndexError, "Out of bounds on buffer access (axis %d)", axis); } static void __Pyx_RaiseBufferFallbackError(void) { PyErr_Format(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); } static CYTHON_INLINE Py_ssize_t __Pyx_mod_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t r = a % b; r += ((r != 0) & ((r ^ b) < 0)) * b; return r; } static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { PyObject *local_type, *local_value, *local_tb; PyObject *tmp_type, *tmp_value, *tmp_tb; PyThreadState *tstate = PyThreadState_GET(); local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; PyErr_NormalizeException(&local_type, &local_value, &local_tb); if (unlikely(tstate->curexc_type)) goto bad; #if PY_MAJOR_VERSION >= 3 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; #endif *type = local_type; *value = local_value; *tb = local_tb; Py_INCREF(local_type); Py_INCREF(local_value); Py_INCREF(local_tb); tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; /* Make sure tstate is in a consistent state when we XDECREF these objects (XDECREF may run arbitrary code). */ Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } static double __Pyx__PyObject_AsDouble(PyObject* obj) { PyObject* float_value; if (Py_TYPE(obj)->tp_as_number && Py_TYPE(obj)->tp_as_number->nb_float) { return PyFloat_AsDouble(obj); } else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) { #if PY_MAJOR_VERSION >= 3 float_value = PyFloat_FromString(obj); #else float_value = PyFloat_FromString(obj, 0); #endif } else { PyObject* args = PyTuple_New(1); if (unlikely(!args)) goto bad; PyTuple_SET_ITEM(args, 0, obj); float_value = PyObject_Call((PyObject*)&PyFloat_Type, args, 0); PyTuple_SET_ITEM(args, 0, 0); Py_DECREF(args); } if (likely(float_value)) { double value = PyFloat_AS_DOUBLE(float_value); Py_DECREF(float_value); return value; } bad: return (double)-1; } static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) { PyThreadState *tstate = PyThreadState_GET(); *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyThreadState *tstate = PyThreadState_GET(); tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { #if PY_VERSION_HEX >= 0x02060000 if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); #endif if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pf_5numpy_7ndarray___getbuffer__(obj, view, flags); else { PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject* obj = view->obj; if (obj) { #if PY_VERSION_HEX >= 0x02060000 if (PyObject_CheckBuffer(obj)) {PyBuffer_Release(view); return;} #endif if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); Py_DECREF(obj); view->obj = NULL; } } #endif static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) { PyObject *py_import = 0; PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; py_import = __Pyx_GetAttrString(__pyx_b, "__import__"); if (!py_import) goto bad; if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; #if PY_VERSION_HEX >= 0x02050000 { PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); } #else if (level>0) { PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4."); goto bad; } module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, NULL); #endif bad: Py_XDECREF(empty_list); Py_XDECREF(py_import); Py_XDECREF(empty_dict); return module; } static PyObject* __Pyx_Intern(PyObject* s) { if (!(likely(PyString_CheckExact(s)))) { PyErr_Format(PyExc_TypeError, "Expected str, got %s", Py_TYPE(s)->tp_name); return 0; } Py_INCREF(s); #if PY_MAJOR_VERSION >= 3 PyUnicode_InternInPlace(&s); #else PyString_InternInPlace(&s); #endif return s; } static PyObject* __Pyx_Method_ClassMethod(PyObject *method) { /* It appears that PyMethodDescr_Type is not anywhere exposed in the Python/C API */ static PyTypeObject *methoddescr_type = NULL; if (methoddescr_type == NULL) { PyObject *meth = __Pyx_GetAttrString((PyObject*)&PyList_Type, "append"); if (!meth) return NULL; methoddescr_type = Py_TYPE(meth); Py_DECREF(meth); } if (PyObject_TypeCheck(method, methoddescr_type)) { /* cdef classes */ PyMethodDescrObject *descr = (PyMethodDescrObject *)method; #if PY_VERSION_HEX < 0x03020000 PyTypeObject *d_type = descr->d_type; #else PyTypeObject *d_type = descr->d_common.d_type; #endif return PyDescr_NewClassMethod(d_type, descr->d_method); } else if (PyMethod_Check(method)) { /* python classes */ return PyClassMethod_New(PyMethod_GET_FUNCTION(method)); } else if (PyCFunction_Check(method)) { return PyClassMethod_New(method); } #ifdef __pyx_binding_PyCFunctionType_USED else if (PyObject_TypeCheck(method, __pyx_binding_PyCFunctionType)) { /* binded CFunction */ return PyClassMethod_New(method); } #endif PyErr_Format(PyExc_TypeError, "Class-level classmethod() can only be called on " "a method_descriptor or instance method."); return NULL; } static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { if (s1 == s2) { /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */ return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { if (PyBytes_GET_SIZE(s1) != PyBytes_GET_SIZE(s2)) { return (equals == Py_NE); } else if (PyBytes_GET_SIZE(s1) == 1) { if (equals == Py_EQ) return (PyBytes_AS_STRING(s1)[0] == PyBytes_AS_STRING(s2)[0]); else return (PyBytes_AS_STRING(s1)[0] != PyBytes_AS_STRING(s2)[0]); } else { int result = memcmp(PyBytes_AS_STRING(s1), PyBytes_AS_STRING(s2), (size_t)PyBytes_GET_SIZE(s1)); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } } static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { if (s1 == s2) { /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */ return (equals == Py_EQ); } else if (PyUnicode_CheckExact(s1) & PyUnicode_CheckExact(s2)) { if (PyUnicode_GET_SIZE(s1) != PyUnicode_GET_SIZE(s2)) { return (equals == Py_NE); } else if (PyUnicode_GET_SIZE(s1) == 1) { if (equals == Py_EQ) return (PyUnicode_AS_UNICODE(s1)[0] == PyUnicode_AS_UNICODE(s2)[0]); else return (PyUnicode_AS_UNICODE(s1)[0] != PyUnicode_AS_UNICODE(s2)[0]); } else { int result = PyUnicode_Compare(s1, s2); if ((result == -1) && unlikely(PyErr_Occurred())) return -1; return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyUnicode_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyUnicode_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } } static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) { __pyx_binding_PyCFunctionType_object *op = PyObject_GC_New(__pyx_binding_PyCFunctionType_object, __pyx_binding_PyCFunctionType); if (op == NULL) return NULL; op->func.m_ml = ml; Py_XINCREF(self); op->func.m_self = self; Py_XINCREF(module); op->func.m_module = module; PyObject_GC_Track(op); return (PyObject *)op; } static void __pyx_binding_PyCFunctionType_dealloc(__pyx_binding_PyCFunctionType_object *m) { PyObject_GC_UnTrack(m); Py_XDECREF(m->func.m_self); Py_XDECREF(m->func.m_module); PyObject_GC_Del(m); } static PyObject *__pyx_binding_PyCFunctionType_descr_get(PyObject *func, PyObject *obj, PyObject *type) { if (obj == Py_None) obj = NULL; return PyMethod_New(func, obj, type); } static int __pyx_binding_PyCFunctionType_init(void) { __pyx_binding_PyCFunctionType_type = PyCFunction_Type; __pyx_binding_PyCFunctionType_type.tp_name = __Pyx_NAMESTR("cython_binding_builtin_function_or_method"); __pyx_binding_PyCFunctionType_type.tp_dealloc = (destructor)__pyx_binding_PyCFunctionType_dealloc; __pyx_binding_PyCFunctionType_type.tp_descr_get = __pyx_binding_PyCFunctionType_descr_get; if (PyType_Ready(&__pyx_binding_PyCFunctionType_type) < 0) { return -1; } __pyx_binding_PyCFunctionType = &__pyx_binding_PyCFunctionType_type; return 0; } static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_from_py_Py_intptr_t(PyObject* x) { const Py_intptr_t neg_one = (Py_intptr_t)-1, const_zero = (Py_intptr_t)0; const int is_unsigned = const_zero < neg_one; if (sizeof(Py_intptr_t) == sizeof(char)) { if (is_unsigned) return (Py_intptr_t)__Pyx_PyInt_AsUnsignedChar(x); else return (Py_intptr_t)__Pyx_PyInt_AsSignedChar(x); } else if (sizeof(Py_intptr_t) == sizeof(short)) { if (is_unsigned) return (Py_intptr_t)__Pyx_PyInt_AsUnsignedShort(x); else return (Py_intptr_t)__Pyx_PyInt_AsSignedShort(x); } else if (sizeof(Py_intptr_t) == sizeof(int)) { if (is_unsigned) return (Py_intptr_t)__Pyx_PyInt_AsUnsignedInt(x); else return (Py_intptr_t)__Pyx_PyInt_AsSignedInt(x); } else if (sizeof(Py_intptr_t) == sizeof(long)) { if (is_unsigned) return (Py_intptr_t)__Pyx_PyInt_AsUnsignedLong(x); else return (Py_intptr_t)__Pyx_PyInt_AsSignedLong(x); } else if (sizeof(Py_intptr_t) == sizeof(PY_LONG_LONG)) { if (is_unsigned) return (Py_intptr_t)__Pyx_PyInt_AsUnsignedLongLong(x); else return (Py_intptr_t)__Pyx_PyInt_AsSignedLongLong(x); } else { Py_intptr_t val; PyObject *v = __Pyx_PyNumber_Int(x); #if PY_VERSION_HEX < 0x03000000 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } return (Py_intptr_t)-1; } } static CYTHON_INLINE long __Pyx_pow_long(long b, long e) { long t = b; switch (e) { case 3: t *= b; case 2: t *= b; case 1: return t; case 0: return 1; } if (unlikely(e<0)) return 0; t = 1; while (likely(e)) { t *= (b * (e&1)) | ((~e)&1); /* 1 or b */ b *= b; e >>= 1; } return t; } static CYTHON_INLINE npy_long __Pyx_PyInt_from_py_npy_long(PyObject* x) { const npy_long neg_one = (npy_long)-1, const_zero = (npy_long)0; const int is_unsigned = const_zero < neg_one; if (sizeof(npy_long) == sizeof(char)) { if (is_unsigned) return (npy_long)__Pyx_PyInt_AsUnsignedChar(x); else return (npy_long)__Pyx_PyInt_AsSignedChar(x); } else if (sizeof(npy_long) == sizeof(short)) { if (is_unsigned) return (npy_long)__Pyx_PyInt_AsUnsignedShort(x); else return (npy_long)__Pyx_PyInt_AsSignedShort(x); } else if (sizeof(npy_long) == sizeof(int)) { if (is_unsigned) return (npy_long)__Pyx_PyInt_AsUnsignedInt(x); else return (npy_long)__Pyx_PyInt_AsSignedInt(x); } else if (sizeof(npy_long) == sizeof(long)) { if (is_unsigned) return (npy_long)__Pyx_PyInt_AsUnsignedLong(x); else return (npy_long)__Pyx_PyInt_AsSignedLong(x); } else if (sizeof(npy_long) == sizeof(PY_LONG_LONG)) { if (is_unsigned) return (npy_long)__Pyx_PyInt_AsUnsignedLongLong(x); else return (npy_long)__Pyx_PyInt_AsSignedLongLong(x); } else { npy_long val; PyObject *v = __Pyx_PyNumber_Int(x); #if PY_VERSION_HEX < 0x03000000 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } return (npy_long)-1; } } static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_Py_intptr_t(Py_intptr_t val) { const Py_intptr_t neg_one = (Py_intptr_t)-1, const_zero = (Py_intptr_t)0; const int is_unsigned = const_zero < neg_one; if ((sizeof(Py_intptr_t) == sizeof(char)) || (sizeof(Py_intptr_t) == sizeof(short))) { return PyInt_FromLong((long)val); } else if ((sizeof(Py_intptr_t) == sizeof(int)) || (sizeof(Py_intptr_t) == sizeof(long))) { if (is_unsigned) return PyLong_FromUnsignedLong((unsigned long)val); else return PyInt_FromLong((long)val); } else if (sizeof(Py_intptr_t) == sizeof(PY_LONG_LONG)) { if (is_unsigned) return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val); else return PyLong_FromLongLong((PY_LONG_LONG)val); } else { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; return _PyLong_FromByteArray(bytes, sizeof(Py_intptr_t), little, !is_unsigned); } } #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(a, a); case 3: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, a); case 4: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_absf(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(a, a); case 3: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, a); case 4: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_abs(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { const unsigned char neg_one = (unsigned char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned char" : "value too large to convert to unsigned char"); } return (unsigned char)-1; } return (unsigned char)val; } return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { const unsigned short neg_one = (unsigned short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned short" : "value too large to convert to unsigned short"); } return (unsigned short)-1; } return (unsigned short)val; } return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { const unsigned int neg_one = (unsigned int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned int" : "value too large to convert to unsigned int"); } return (unsigned int)-1; } return (unsigned int)val; } return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { const char neg_one = (char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to char" : "value too large to convert to char"); } return (char)-1; } return (char)val; } return (char)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { const short neg_one = (short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to short" : "value too large to convert to short"); } return (short)-1; } return (short)val; } return (short)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { const signed char neg_one = (signed char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed char" : "value too large to convert to signed char"); } return (signed char)-1; } return (signed char)val; } return (signed char)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { const signed short neg_one = (signed short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed short" : "value too large to convert to signed short"); } return (signed short)-1; } return (signed short)val; } return (signed short)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { const signed int neg_one = (signed int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed int" : "value too large to convert to signed int"); } return (signed int)-1; } return (signed int)val; } return (signed int)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { const unsigned long neg_one = (unsigned long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)PyLong_AsUnsignedLong(x); } else { return (unsigned long)PyLong_AsLong(x); } } else { unsigned long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned long)-1; val = __Pyx_PyInt_AsUnsignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); } } else { unsigned PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned PY_LONG_LONG)-1; val = __Pyx_PyInt_AsUnsignedLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { const long neg_one = (long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)PyLong_AsUnsignedLong(x); } else { return (long)PyLong_AsLong(x); } } else { long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (long)-1; val = __Pyx_PyInt_AsLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (PY_LONG_LONG)PyLong_AsLongLong(x); } } else { PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1; val = __Pyx_PyInt_AsLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { const signed long neg_one = (signed long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)PyLong_AsUnsignedLong(x); } else { return (signed long)PyLong_AsLong(x); } } else { signed long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed long)-1; val = __Pyx_PyInt_AsSignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (signed PY_LONG_LONG)PyLong_AsLongLong(x); } } else { signed PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed PY_LONG_LONG)-1; val = __Pyx_PyInt_AsSignedLongLong(tmp); Py_DECREF(tmp); return val; } } static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); #if PY_VERSION_HEX < 0x02050000 return PyErr_Warn(NULL, message); #else return PyErr_WarnEx(NULL, message, 1); #endif } return 0; } static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) { PyObject *py_module = 0; PyObject *result = 0; PyObject *py_name = 0; char warning[200]; py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; #if PY_MAJOR_VERSION < 3 py_name = PyString_FromString(class_name); #else py_name = PyUnicode_FromString(class_name); #endif if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); Py_DECREF(py_name); py_name = 0; Py_DECREF(py_module); py_module = 0; if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%s.%s is not a type object", module_name, class_name); goto bad; } if (!strict && ((PyTypeObject *)result)->tp_basicsize > (Py_ssize_t)size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility", module_name, class_name); #if PY_VERSION_HEX < 0x02050000 if (PyErr_Warn(NULL, warning) < 0) goto bad; #else if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; #endif } else if (((PyTypeObject *)result)->tp_basicsize != (Py_ssize_t)size) { PyErr_Format(PyExc_ValueError, "%s.%s has the wrong size, try recompiling", module_name, class_name); goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(py_module); Py_XDECREF(result); return NULL; } #endif #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; #if PY_MAJOR_VERSION < 3 py_name = PyString_FromString(name); #else py_name = PyUnicode_FromString(name); #endif if (!py_name) goto bad; py_module = PyImport_Import(py_name); Py_DECREF(py_name); return py_module; bad: Py_XDECREF(py_name); return 0; } #endif #include "compile.h" #include "frameobject.h" #include "traceback.h" static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, int __pyx_lineno, const char *__pyx_filename) { PyObject *py_srcfile = 0; PyObject *py_funcname = 0; PyObject *py_globals = 0; PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(__pyx_filename); #else py_srcfile = PyUnicode_FromString(__pyx_filename); #endif if (!py_srcfile) goto bad; if (__pyx_clineno) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_globals = PyModule_GetDict(__pyx_m); if (!py_globals) goto bad; py_code = PyCode_New( 0, /*int argcount,*/ #if PY_MAJOR_VERSION >= 3 0, /*int kwonlyargcount,*/ #endif 0, /*int nlocals,*/ 0, /*int stacksize,*/ 0, /*int flags,*/ __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ __pyx_lineno, /*int firstlineno,*/ __pyx_empty_bytes /*PyObject *lnotab*/ ); if (!py_code) goto bad; py_frame = PyFrame_New( PyThreadState_GET(), /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ py_globals, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; py_frame->f_lineno = __pyx_lineno; PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); Py_XDECREF(py_code); Py_XDECREF(py_frame); } static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else /* Python 3+ has unicode identifiers */ if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; ++t; } return 0; } /* Type Conversion Functions */ static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { PyNumberMethods *m; const char *name = NULL; PyObject *res = NULL; #if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(x) || PyLong_Check(x)) #else if (PyLong_Check(x)) #endif return Py_INCREF(x), x; m = Py_TYPE(x)->tp_as_number; #if PY_VERSION_HEX < 0x03000000 if (m && m->nb_int) { name = "int"; res = PyNumber_Int(x); } else if (m && m->nb_long) { name = "long"; res = PyNumber_Long(x); } #else if (m && m->nb_int) { name = "int"; res = PyNumber_Long(x); } #endif if (res) { #if PY_VERSION_HEX < 0x03000000 if (!PyInt_Check(res) && !PyLong_Check(res)) { #else if (!PyLong_Check(res)) { #endif PyErr_Format(PyExc_TypeError, "__%s__ returned non-%s (type %.200s)", name, name, Py_TYPE(res)->tp_name); Py_DECREF(res); return NULL; } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject* x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { #if PY_VERSION_HEX < 0x02050000 if (ival <= LONG_MAX) return PyInt_FromLong((long)ival); else { unsigned char *bytes = (unsigned char *) &ival; int one = 1; int little = (int)*(unsigned char*)&one; return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); } #else return PyInt_FromSize_t(ival); #endif } static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { return (size_t)-1; } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t)-1; } return (size_t)val; } #endif /* Py_PYTHON_H */ HTSeq-0.5.4p3/src/step_vector.h0000664000175000017500000001145112110432433017013 0ustar andersanders00000000000000#ifndef _STEP_VECTOR_H_ #define _STEP_VECTOR_H_ #include #include #include #include //for now only template< class T > class step_vector { protected: std::map< long int, T > m; public: static const long int min_index; static const long int max_index; typedef typename std::map< long int, T >::const_iterator const_iterator; step_vector( ); const T operator[]( long int i ) const; void set_value( long int from, long int to, T value ); void add_value( long int from, long int to, T value ); void apply_to_values( long int from, long int to, void (*func)( T & val ) ); const_iterator get_values( long int from ) const; const_iterator begin( ) const; const_iterator end( ) const; }; template< class T > const long int step_vector::min_index = LONG_MIN; template< class T > const long int step_vector::max_index = LONG_MAX; template< class T > step_vector::step_vector( ) { m[ min_index ] = T(); } template< class T > const T step_vector::operator[]( long int i ) const { const_iterator it = m.upper_bound( i ); it--; return it->second; } template< class T > void step_vector::set_value( long int from, long int to, T value ) { if( from > to ) throw std::out_of_range( "Indices reversed in step_vector." ); // Unless the new step extends to the end, we need to insert a new // value afterwards unless the step to the right has the same value if( to < max_index ) { T next_value = (*this)[to+1]; if( !( next_value == value ) ) m[ to + 1 ] = next_value; } // Find the left step, i.e., the step whose start is smaller or equal // to 'from': typename std::map< long int, T>::iterator left = m.upper_bound( from ); left--; assert( left->first <= from ); // Get rid of the steps present between from and to typename std::map< long int, T>::iterator it = m.lower_bound( from ); if( it->first == from ) it++; assert( it->first > from ); if( it->first <= to ) { m.erase( it, m.upper_bound( to ) ); } if( ! (left->second == value ) ) { if( left->first != from ) // Insert a new step m[ from ] = value; else { // We have from == left->first, so the step is already present. // Would changing m[from] to value make it equal to its left // neighbor? if( left == m.begin() ) // no, there is no left neighbor m[ from ] = value; else { typename std::map< long int, T>::iterator leftleft = left; leftleft--; if( ! ( leftleft->second == value ) ) // ok, change the value m[ from ] = value; else // no, rather delete the step m.erase( left ); } } } } template< class T > void step_vector::add_value( long int from, long int to, T value ) { if( from > to ) throw std::out_of_range( "Indices reversed in step_vector." ); if( to < max_index ) { T next_value = (*this)[to+1]; m[ to + 1 ] = next_value; } typename std::map< long int, T>::iterator it = m.upper_bound( from ); it--; bool need_to_insert_step_at_from = it->first < from; T old_val_at_from; if( need_to_insert_step_at_from ) { old_val_at_from = it->second; it++; } // Now, it points to the first element with it->first >= from for( ; it != m.end() && it->first <= to; it++ ) it->second += value; if( need_to_insert_step_at_from ) m[ from ] = old_val_at_from + value; } template< class T > void step_vector::apply_to_values( long int from, long int to, void (*func)( T & val ) ) { if( from > to ) throw std::out_of_range( "Indices reversed in step_vector." ); if( to < max_index ) { T next_value = (*this)[to+1]; m[ to + 1 ] = next_value; } typename std::map< long int, T>::iterator it = m.upper_bound( from ); it--; bool need_to_insert_step_at_from = it->first < from; T old_val_at_from; if( need_to_insert_step_at_from ) { old_val_at_from = it->second; it++; } // Now, it points to the first element with it->first >= from for( ; it != m.end() && it->first <= to; it++ ) func( it->second ); if( need_to_insert_step_at_from ) { func( old_val_at_from ); m[ from ] = old_val_at_from; } } template< class T > typename step_vector::const_iterator step_vector::get_values( long int from ) const { return --m.upper_bound( from ); } template< class T > typename step_vector::const_iterator step_vector::begin( ) const { return m.begin(); } template< class T > typename step_vector::const_iterator step_vector::end( ) const { return m.end(); } #endif //_STEP_VECTOR_H_ HTSeq-0.5.4p3/src/StepVector_wrap.cxx0000664000175000017500000066134412110432535020177 0ustar andersanders00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 2.0.4 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Check(name) PyBytes_Check(name) #define PyString_FromString(x) PyUnicode_FromString(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #define PyString_AsString(str) PyBytes_AsString(str) #define PyString_Size(str) PyBytes_Size(str) #define PyString_InternFromString(key) PyUnicode_InternFromString(key) #define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE #define PyString_AS_STRING(x) PyUnicode_AS_STRING(x) #define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *cstr; char *newstr; Py_ssize_t len; str = PyUnicode_AsUTF8String(str); PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN typedef inquiry lenfunc; typedef intargfunc ssizeargfunc; typedef intintargfunc ssizessizeargfunc; typedef intobjargproc ssizeobjargproc; typedef intintobjargproc ssizessizeobjargproc; typedef getreadbufferproc readbufferproc; typedef getwritebufferproc writebufferproc; typedef getsegcountproc segcountproc; typedef getcharbufferproc charbufferproc; static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc)) { long result = 0; PyObject *i = PyNumber_Int(x); if (i) { result = PyInt_AsLong(i); Py_DECREF(i); } return result; } #endif #if PY_VERSION_HEX < 0x02040000 #define Py_VISIT(op) \ do { \ if (op) { \ int vret = visit((op), arg); \ if (vret) \ return vret; \ } \ } while (0) #endif #if PY_VERSION_HEX < 0x02030000 typedef struct { PyTypeObject type; PyNumberMethods as_number; PyMappingMethods as_mapping; PySequenceMethods as_sequence; PyBufferProcs as_buffer; PyObject *name, *slots; } PyHeapTypeObject; #endif #if PY_VERSION_HEX < 0x02030000 typedef destructor freefunc; #endif #if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \ (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \ (PY_MAJOR_VERSION > 3)) # define SWIGPY_USE_CAPSULE # define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME) #endif #if PY_VERSION_HEX < 0x03020000 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ #if PY_VERSION_HEX >= 0x03000000 SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) { return PyInstanceMethod_New(func); } #else SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func)) { return NULL; } #endif #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #ifdef SWIGPYTHON_BUILTIN #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags) #else #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) #endif #define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ #if defined(SWIGPYTHON_BUILTIN) SWIGINTERN void SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) { PyObject *s = PyString_InternFromString(key); PyList_Append(seq, s); Py_DECREF(s); } SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char *)name, obj); Py_DECREF(obj); if (public_interface) SwigPyBuiltin_AddPublicSymbol(public_interface, name); } #else SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char *)name, obj); Py_DECREF(obj); } #endif /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { if (min <= 1 && max >= 1) { register int i; objs[0] = args; for (i = 1; i < max; ++i) { objs[i] = 0; } return 2; } PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2) #define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN) #ifdef __cplusplus extern "C" { #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; PyTypeObject *pytype; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; data->pytype = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData *data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; #ifdef SWIGPYTHON_BUILTIN PyObject *dict; #endif } SwigPyObject; SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS SwigPyObject_repr(SwigPyObject *v) #else SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", name, (void *)v); if (v->next) { # ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); # else PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); # endif # if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; # else PyString_ConcatAndDel(&repr,nrep); # endif } return repr; } SWIGRUNTIME int SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *str; #ifdef METH_NOARGS PyObject *repr = SwigPyObject_repr(v); #else PyObject *repr = SwigPyObject_repr(v, NULL); #endif if (repr) { str = SWIG_Python_str_AsChar(repr); fputs(str, fp); SWIG_Python_str_DelForPy3(str); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * SwigPyObject_str(SwigPyObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? SWIG_Python_str_FromChar(result) : 0; } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0); return res; } SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void); #ifdef SWIGPYTHON_BUILTIN static swig_type_info *SwigPyObject_stype = 0; SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { SwigPyClientData *cd; assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; assert(cd); assert(cd->pytype); return cd->pytype; } #else SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce(); return type; } #endif SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { #ifdef SWIGPYTHON_BUILTIN PyTypeObject *target_tp = SwigPyObject_type(); if (PyType_IsSubtype(op->ob_type, target_tp)) return 1; return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0); #else return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); #endif } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!SwigPyObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS SwigPyObject_next(PyObject* v) #else SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_disown(PyObject *v) #else SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_acquire(PyObject *v) #else SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v); } else { SwigPyObject_disown(v); } #else if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * SwigPyObject_getattr(SwigPyObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ (printfunc)SwigPyObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpyobject_type = tmp; type_init = 1; #if PY_VERSION_HEX < 0x02020000 swigpyobject_type.ob_type = &PyType_Type; #else if (PyType_Ready(&swigpyobject_type) < 0) return NULL; #endif } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME int SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == SwigPyPacked_TypeOnce()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ (printfunc)SwigPyPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpypacked_type = tmp; type_init = 1; #if PY_VERSION_HEX < 0x02020000 swigpypacked_type.ob_type = &PyType_Type; #else if (PyType_Ready(&swigpypacked_type) < 0) return NULL; #endif } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return SWIG_Python_str_FromChar("this"); } static PyObject *swig_this = NULL; SWIGRUNTIME PyObject * SWIG_This(void) { if (swig_this == NULL) swig_this = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { PyObject *obj; if (SwigPyObject_Check(pyobj)) return (SwigPyObject *) pyobj; #ifdef SWIGPYTHON_BUILTIN (void)obj; # ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { pyobj = PyWeakref_GET_OBJECT(pyobj); if (pyobj && SwigPyObject_Check(pyobj)) return (SwigPyObject*) pyobj; } # endif return NULL; #else obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; #endif } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { int res; SwigPyObject *sobj; if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } res = SWIG_ERROR; sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } res = SWIG_OK; } else { if (flags & SWIG_POINTER_IMPLICIT_CONV) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } } return res; } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; #else PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) { SwigPyClientData *clientdata; PyObject * robj; int own; if (!ptr) return SWIG_Py_Void(); clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; if (clientdata && clientdata->pytype) { SwigPyObject *newobj; if (flags & SWIG_BUILTIN_TP_INIT) { newobj = (SwigPyObject*) self; if (newobj->ptr) { PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0); while (newobj->next) newobj = (SwigPyObject *) newobj->next; newobj->next = next_self; newobj = (SwigPyObject *)next_self; } } else { newobj = PyObject_New(SwigPyObject, clientdata->pytype); } if (newobj) { newobj->ptr = ptr; newobj->ty = type; newobj->own = own; newobj->next = 0; #ifdef SWIGPYTHON_BUILTIN newobj->dict = 0; #endif return (PyObject*) newobj; } return SWIG_Py_Void(); } assert(!(flags & SWIG_BUILTIN_TP_INIT)); robj = SwigPyObject_New(ptr, type, own); if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else # ifdef SWIGPY_USE_CAPSULE type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0); # else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); # endif if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void #ifdef SWIGPY_USE_CAPSULE SWIG_Python_DestroyModule(PyObject *obj) #else SWIG_Python_DestroyModule(void *vptr) #endif { #ifdef SWIGPY_USE_CAPSULE swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME); #else swig_module_info *swig_module = (swig_module_info *) vptr; #endif swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); swig_this = NULL; } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); #else static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */ PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif #ifdef SWIGPY_USE_CAPSULE PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } #else PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } #endif } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { #ifdef SWIGPY_USE_CAPSULE descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL); #else descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); #endif } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { #ifdef SWIGPY_USE_CAPSULE obj = PyCapsule_New((void*) descriptor, NULL, NULL); #else obj = PyCObject_FromVoidPtr(descriptor, NULL); #endif PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); } else { PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } SWIGRUNTIME int SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { PyTypeObject *tp = obj->ob_type; PyObject *descr; PyObject *encoded_name; descrsetfunc f; int res; #ifdef Py_USING_UNICODE if (PyString_Check(name)) { name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL); if (!name) return -1; } else if (!PyUnicode_Check(name)) #else if (!PyString_Check(name)) #endif { PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name); return -1; } else { Py_INCREF(name); } if (!tp->tp_dict) { if (PyType_Ready(tp) < 0) goto done; } res = -1; descr = _PyType_Lookup(tp, name); f = NULL; if (descr != NULL) f = descr->ob_type->tp_descr_set; if (!f) { if (PyString_Check(name)) { encoded_name = name; Py_INCREF(name); } else { encoded_name = PyUnicode_AsUTF8String(name); } PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name)); Py_DECREF(encoded_name); } else { res = f(descr, obj, value); } done: Py_DECREF(name); return res; } #ifdef __cplusplus } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_AutoPyObjPtr swig_types[0] #define SWIGTYPE_p_char swig_types[1] #define SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t swig_types[2] #define SWIGTYPE_p_std__pairT_long_bool_t swig_types[3] #define SWIGTYPE_p_std__pairT_long_double_t swig_types[4] #define SWIGTYPE_p_std__pairT_long_int_t swig_types[5] #define SWIGTYPE_p_step_vectorT_AutoPyObjPtr_t__const_iterator swig_types[6] #define SWIGTYPE_p_step_vectorT_bool_t__const_iterator swig_types[7] #define SWIGTYPE_p_step_vectorT_double_t__const_iterator swig_types[8] #define SWIGTYPE_p_step_vectorT_int_t__const_iterator swig_types[9] #define SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t swig_types[10] #define SWIGTYPE_p_step_vector_for_pythonT_bool_t swig_types[11] #define SWIGTYPE_p_step_vector_for_pythonT_double_t swig_types[12] #define SWIGTYPE_p_step_vector_for_pythonT_int_t swig_types[13] #define SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t swig_types[14] #define SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t swig_types[15] #define SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t swig_types[16] #define SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t swig_types[17] static swig_type_info *swig_types[19]; static swig_module_info swig_module = {swig_types, 18, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _StepVector.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__StepVector #else # define SWIG_init init_StepVector #endif #define SWIG_name "_StepVector" #define SWIGVERSION 0x020004 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { Py_XINCREF(_obj); } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~SwigPtr_PyObject() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } #define AUTOPYOBJPTR_EXTRAOPS struct AutoPyObjPtr { PyObject * obj; AutoPyObjPtr( PyObject * o = Py_None ); AutoPyObjPtr( const AutoPyObjPtr & op ); AutoPyObjPtr & operator= ( const AutoPyObjPtr & po ); bool operator== ( const AutoPyObjPtr & po ) const; ~AutoPyObjPtr( ); #ifdef AUTOPYOBJPTR_EXTRAOPS AutoPyObjPtr & operator+=( const AutoPyObjPtr & po ); AutoPyObjPtr & operator+( const AutoPyObjPtr & po ); #endif }; AutoPyObjPtr::AutoPyObjPtr( PyObject * o ) : obj( o ) { Py_XINCREF( obj ); } AutoPyObjPtr::AutoPyObjPtr( const AutoPyObjPtr & op ) : obj( op.obj ) { Py_XINCREF( obj ); } AutoPyObjPtr & AutoPyObjPtr::operator= ( const AutoPyObjPtr & po ) { Py_XDECREF( obj ); obj = po.obj; Py_XINCREF( obj ); return *this; } bool AutoPyObjPtr::operator== ( const AutoPyObjPtr & po ) const { int res = PyObject_RichCompareBool( obj, po.obj, Py_EQ ); assert( res == 0 || res == 1 ); return res; } AutoPyObjPtr::~AutoPyObjPtr( ) { Py_XDECREF( obj ); } #ifdef AUTOPYOBJPTR_EXTRAOPS class type_error_non_arith {}; AutoPyObjPtr & AutoPyObjPtr::operator+= ( const AutoPyObjPtr & po ) { throw type_error_non_arith(); } AutoPyObjPtr & AutoPyObjPtr::operator+ ( const AutoPyObjPtr & po ) { throw type_error_non_arith(); } #endif #include "step_vector.h" class pystyle_stopiteration {}; template< class T > class step_vector_pystyle_iterator { typename step_vector::const_iterator current; typename step_vector::const_iterator last; public: step_vector_pystyle_iterator( typename step_vector::const_iterator first, typename step_vector::const_iterator last_ ); std::pair< long int, T > next( ); step_vector_pystyle_iterator * __iter__( ); }; template< class T > class step_vector_for_python : public step_vector { public: step_vector_pystyle_iterator get_all_values_pystyle( ) const; step_vector_pystyle_iterator get_values_pystyle( long int from ) const; int num_values( ) const; }; template< class T > step_vector_pystyle_iterator::step_vector_pystyle_iterator( typename step_vector::const_iterator first, typename step_vector::const_iterator last_ ) : current( first ), last( last_ ) { } template< class T > step_vector_pystyle_iterator step_vector_for_python::get_all_values_pystyle( ) const { return step_vector_pystyle_iterator( this->begin(), this->end() ); } template< class T > step_vector_pystyle_iterator step_vector_for_python::get_values_pystyle( long int from ) const { return step_vector_pystyle_iterator( this->get_values( from ), this->end() ); } template< class T > int step_vector_for_python::num_values( ) const { return this->m.size(); } template< class T > std::pair< long int, T > step_vector_pystyle_iterator::next( ) { if( current == last ) throw pystyle_stopiteration (); else { return *current++; } } template< class T > step_vector_pystyle_iterator * step_vector_pystyle_iterator::__iter__( ) { return this; } SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } #define SWIG_From_long PyInt_FromLong #define SWIG_From_double PyFloat_FromDouble SWIGINTERNINLINE PyObject * SWIG_From_int (int value) { return SWIG_From_long (value); } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERN int SWIG_AsVal_bool (PyObject *obj, bool *val) { int r = PyObject_IsTrue(obj); if (r == -1) return SWIG_ERROR; if (val) *val = r ? true : false; return SWIG_OK; } SWIGINTERNINLINE PyObject* SWIG_From_bool (bool value) { return PyBool_FromLong(value ? 1 : 0); } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap__Pair_int_float_first_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,double > *arg1 = (std::pair< long,double > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_float_first_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_float_first_set" "', argument " "1"" of type '" "std::pair< long,double > *""'"); } arg1 = reinterpret_cast< std::pair< long,double > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_float_first_set" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); if (arg1) (arg1)->first = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_float_first_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,double > *arg1 = (std::pair< long,double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_float_first_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_float_first_get" "', argument " "1"" of type '" "std::pair< long,double > *""'"); } arg1 = reinterpret_cast< std::pair< long,double > * >(argp1); result = (long) ((arg1)->first); resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_float_second_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,double > *arg1 = (std::pair< long,double > *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_float_second_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_float_second_set" "', argument " "1"" of type '" "std::pair< long,double > *""'"); } arg1 = reinterpret_cast< std::pair< long,double > * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_float_second_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->second = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_float_second_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,double > *arg1 = (std::pair< long,double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_float_second_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_float_second_get" "', argument " "1"" of type '" "std::pair< long,double > *""'"); } arg1 = reinterpret_cast< std::pair< long,double > * >(argp1); result = (double) ((arg1)->second); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__Pair_int_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; long arg1 ; double arg2 ; long val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; std::pair< long,double > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__Pair_int_float",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_long(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new__Pair_int_float" "', argument " "1"" of type '" "long""'"); } arg1 = static_cast< long >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new__Pair_int_float" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); result = (std::pair< long,double > *)new std::pair< long,double >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairT_long_double_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__Pair_int_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,double > *arg1 = (std::pair< long,double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__Pair_int_float",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_double_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__Pair_int_float" "', argument " "1"" of type '" "std::pair< long,double > *""'"); } arg1 = reinterpret_cast< std::pair< long,double > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_Pair_int_float_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__pairT_long_double_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new__StepVector_Iterator_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector< double >::const_iterator arg1 ; step_vector< double >::const_iterator arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; step_vector_pystyle_iterator< double > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__StepVector_Iterator_float",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_step_vectorT_double_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new__StepVector_Iterator_float" "', argument " "1"" of type '" "step_vector< double >::const_iterator""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_float" "', argument " "1"" of type '" "step_vector< double >::const_iterator""'"); } else { step_vector< double >::const_iterator * temp = reinterpret_cast< step_vector< double >::const_iterator * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_step_vectorT_double_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new__StepVector_Iterator_float" "', argument " "2"" of type '" "step_vector< double >::const_iterator""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_float" "', argument " "2"" of type '" "step_vector< double >::const_iterator""'"); } else { step_vector< double >::const_iterator * temp = reinterpret_cast< step_vector< double >::const_iterator * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } result = (step_vector_pystyle_iterator< double > *)new step_vector_pystyle_iterator< double >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_float_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< double > *arg1 = (step_vector_pystyle_iterator< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< std::pair< long,double > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_float_next",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_float_next" "', argument " "1"" of type '" "step_vector_pystyle_iterator< double > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< double > * >(argp1); { try { result = (arg1)->next(); } catch (pystyle_stopiteration &e) { PyErr_SetString( PyExc_StopIteration, "" ); return NULL; } } resultobj = SWIG_NewPointerObj((new std::pair< long,double >(static_cast< const std::pair< long,double >& >(result))), SWIGTYPE_p_std__pairT_long_double_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_float___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< double > *arg1 = (step_vector_pystyle_iterator< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; step_vector_pystyle_iterator< double > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_float___iter__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_float___iter__" "', argument " "1"" of type '" "step_vector_pystyle_iterator< double > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< double > * >(argp1); result = (step_vector_pystyle_iterator< double > *)(arg1)->__iter__(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_Iterator_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< double > *arg1 = (step_vector_pystyle_iterator< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_Iterator_float",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_Iterator_float" "', argument " "1"" of type '" "step_vector_pystyle_iterator< double > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< double > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_Iterator_float_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN int Swig_var__StepVector_float_min_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_float_min_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_float_min_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< double >::min_index)); return pyobj; } SWIGINTERN int Swig_var__StepVector_float_max_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_float_max_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_float_max_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< double >::max_index)); return pyobj; } SWIGINTERN PyObject *_wrap_new__StepVector_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__StepVector_float")) SWIG_fail; result = (step_vector_for_python< double > *)new step_vector_for_python< double >(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_for_pythonT_double_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_float_set_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; long arg2 ; long arg3 ; double arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_float_set_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_float_set_value" "', argument " "1"" of type '" "step_vector_for_python< double > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_float_set_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_float_set_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_float_set_value" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); { try { (arg1)->set_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_float_add_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; long arg2 ; long arg3 ; double arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_float_add_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_float_add_value" "', argument " "1"" of type '" "step_vector_for_python< double > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_float_add_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_float_add_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_float_add_value" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); { try { (arg1)->add_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_float_get_all_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< double > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_float_get_all_values_pystyle",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_float_get_all_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< double > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); result = ((step_vector_for_python< double > const *)arg1)->get_all_values_pystyle(); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< double >(static_cast< const step_vector_pystyle_iterator< double >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_float_get_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< double > > result; if (!PyArg_ParseTuple(args,(char *)"OO:_StepVector_float_get_values_pystyle",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_float_get_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< double > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_float_get_values_pystyle" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); result = ((step_vector_for_python< double > const *)arg1)->get_values_pystyle(arg2); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< double >(static_cast< const step_vector_pystyle_iterator< double >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_double_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_float_num_values(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_float_num_values",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_float_num_values" "', argument " "1"" of type '" "step_vector_for_python< double > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); result = (int)((step_vector_for_python< double > const *)arg1)->num_values(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< double > *arg1 = (step_vector_for_python< double > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_float",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_double_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_float" "', argument " "1"" of type '" "step_vector_for_python< double > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< double > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_float_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_for_pythonT_double_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__Pair_int_int_first_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,int > *arg1 = (std::pair< long,int > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_int_first_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_int_first_set" "', argument " "1"" of type '" "std::pair< long,int > *""'"); } arg1 = reinterpret_cast< std::pair< long,int > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_int_first_set" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); if (arg1) (arg1)->first = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_int_first_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,int > *arg1 = (std::pair< long,int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_int_first_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_int_first_get" "', argument " "1"" of type '" "std::pair< long,int > *""'"); } arg1 = reinterpret_cast< std::pair< long,int > * >(argp1); result = (long) ((arg1)->first); resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_int_second_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,int > *arg1 = (std::pair< long,int > *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_int_second_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_int_second_set" "', argument " "1"" of type '" "std::pair< long,int > *""'"); } arg1 = reinterpret_cast< std::pair< long,int > * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_int_second_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->second = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_int_second_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,int > *arg1 = (std::pair< long,int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_int_second_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_int_second_get" "', argument " "1"" of type '" "std::pair< long,int > *""'"); } arg1 = reinterpret_cast< std::pair< long,int > * >(argp1); result = (int) ((arg1)->second); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__Pair_int_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; long arg1 ; int arg2 ; long val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; std::pair< long,int > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__Pair_int_int",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_long(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new__Pair_int_int" "', argument " "1"" of type '" "long""'"); } arg1 = static_cast< long >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new__Pair_int_int" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); result = (std::pair< long,int > *)new std::pair< long,int >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairT_long_int_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__Pair_int_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,int > *arg1 = (std::pair< long,int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__Pair_int_int",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_int_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__Pair_int_int" "', argument " "1"" of type '" "std::pair< long,int > *""'"); } arg1 = reinterpret_cast< std::pair< long,int > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_Pair_int_int_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__pairT_long_int_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new__StepVector_Iterator_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector< int >::const_iterator arg1 ; step_vector< int >::const_iterator arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; step_vector_pystyle_iterator< int > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__StepVector_Iterator_int",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_step_vectorT_int_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new__StepVector_Iterator_int" "', argument " "1"" of type '" "step_vector< int >::const_iterator""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_int" "', argument " "1"" of type '" "step_vector< int >::const_iterator""'"); } else { step_vector< int >::const_iterator * temp = reinterpret_cast< step_vector< int >::const_iterator * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_step_vectorT_int_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new__StepVector_Iterator_int" "', argument " "2"" of type '" "step_vector< int >::const_iterator""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_int" "', argument " "2"" of type '" "step_vector< int >::const_iterator""'"); } else { step_vector< int >::const_iterator * temp = reinterpret_cast< step_vector< int >::const_iterator * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } result = (step_vector_pystyle_iterator< int > *)new step_vector_pystyle_iterator< int >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_int_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< int > *arg1 = (step_vector_pystyle_iterator< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< std::pair< long,int > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_int_next",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_int_next" "', argument " "1"" of type '" "step_vector_pystyle_iterator< int > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< int > * >(argp1); { try { result = (arg1)->next(); } catch (pystyle_stopiteration &e) { PyErr_SetString( PyExc_StopIteration, "" ); return NULL; } } resultobj = SWIG_NewPointerObj((new std::pair< long,int >(static_cast< const std::pair< long,int >& >(result))), SWIGTYPE_p_std__pairT_long_int_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_int___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< int > *arg1 = (step_vector_pystyle_iterator< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; step_vector_pystyle_iterator< int > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_int___iter__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_int___iter__" "', argument " "1"" of type '" "step_vector_pystyle_iterator< int > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< int > * >(argp1); result = (step_vector_pystyle_iterator< int > *)(arg1)->__iter__(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_Iterator_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< int > *arg1 = (step_vector_pystyle_iterator< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_Iterator_int",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_Iterator_int" "', argument " "1"" of type '" "step_vector_pystyle_iterator< int > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< int > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_Iterator_int_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN int Swig_var__StepVector_int_min_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_int_min_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_int_min_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< int >::min_index)); return pyobj; } SWIGINTERN int Swig_var__StepVector_int_max_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_int_max_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_int_max_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< int >::max_index)); return pyobj; } SWIGINTERN PyObject *_wrap_new__StepVector_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__StepVector_int")) SWIG_fail; result = (step_vector_for_python< int > *)new step_vector_for_python< int >(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_for_pythonT_int_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_int_set_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; long arg2 ; long arg3 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_int_set_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_int_set_value" "', argument " "1"" of type '" "step_vector_for_python< int > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_int_set_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_int_set_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_int_set_value" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { try { (arg1)->set_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_int_add_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; long arg2 ; long arg3 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_int_add_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_int_add_value" "', argument " "1"" of type '" "step_vector_for_python< int > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_int_add_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_int_add_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_int_add_value" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { try { (arg1)->add_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_int_get_all_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< int > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_int_get_all_values_pystyle",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_int_get_all_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< int > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); result = ((step_vector_for_python< int > const *)arg1)->get_all_values_pystyle(); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< int >(static_cast< const step_vector_pystyle_iterator< int >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_int_get_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< int > > result; if (!PyArg_ParseTuple(args,(char *)"OO:_StepVector_int_get_values_pystyle",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_int_get_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< int > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_int_get_values_pystyle" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); result = ((step_vector_for_python< int > const *)arg1)->get_values_pystyle(arg2); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< int >(static_cast< const step_vector_pystyle_iterator< int >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_int_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_int_num_values(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_int_num_values",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_int_num_values" "', argument " "1"" of type '" "step_vector_for_python< int > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); result = (int)((step_vector_for_python< int > const *)arg1)->num_values(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_int(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< int > *arg1 = (step_vector_for_python< int > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_int",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_int_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_int" "', argument " "1"" of type '" "step_vector_for_python< int > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< int > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_int_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_for_pythonT_int_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__Pair_int_bool_first_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,bool > *arg1 = (std::pair< long,bool > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_bool_first_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_bool_first_set" "', argument " "1"" of type '" "std::pair< long,bool > *""'"); } arg1 = reinterpret_cast< std::pair< long,bool > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_bool_first_set" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); if (arg1) (arg1)->first = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_bool_first_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,bool > *arg1 = (std::pair< long,bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_bool_first_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_bool_first_get" "', argument " "1"" of type '" "std::pair< long,bool > *""'"); } arg1 = reinterpret_cast< std::pair< long,bool > * >(argp1); result = (long) ((arg1)->first); resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_bool_second_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,bool > *arg1 = (std::pair< long,bool > *) 0 ; bool arg2 ; void *argp1 = 0 ; int res1 = 0 ; bool val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_bool_second_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_bool_second_set" "', argument " "1"" of type '" "std::pair< long,bool > *""'"); } arg1 = reinterpret_cast< std::pair< long,bool > * >(argp1); ecode2 = SWIG_AsVal_bool(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_bool_second_set" "', argument " "2"" of type '" "bool""'"); } arg2 = static_cast< bool >(val2); if (arg1) (arg1)->second = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_bool_second_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,bool > *arg1 = (std::pair< long,bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; bool result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_bool_second_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_bool_second_get" "', argument " "1"" of type '" "std::pair< long,bool > *""'"); } arg1 = reinterpret_cast< std::pair< long,bool > * >(argp1); result = (bool) ((arg1)->second); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__Pair_int_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; long arg1 ; bool arg2 ; long val1 ; int ecode1 = 0 ; bool val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; std::pair< long,bool > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__Pair_int_bool",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_long(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new__Pair_int_bool" "', argument " "1"" of type '" "long""'"); } arg1 = static_cast< long >(val1); ecode2 = SWIG_AsVal_bool(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new__Pair_int_bool" "', argument " "2"" of type '" "bool""'"); } arg2 = static_cast< bool >(val2); result = (std::pair< long,bool > *)new std::pair< long,bool >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairT_long_bool_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__Pair_int_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,bool > *arg1 = (std::pair< long,bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__Pair_int_bool",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_bool_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__Pair_int_bool" "', argument " "1"" of type '" "std::pair< long,bool > *""'"); } arg1 = reinterpret_cast< std::pair< long,bool > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_Pair_int_bool_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__pairT_long_bool_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new__StepVector_Iterator_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector< bool >::const_iterator arg1 ; step_vector< bool >::const_iterator arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; step_vector_pystyle_iterator< bool > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__StepVector_Iterator_bool",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_step_vectorT_bool_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new__StepVector_Iterator_bool" "', argument " "1"" of type '" "step_vector< bool >::const_iterator""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_bool" "', argument " "1"" of type '" "step_vector< bool >::const_iterator""'"); } else { step_vector< bool >::const_iterator * temp = reinterpret_cast< step_vector< bool >::const_iterator * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_step_vectorT_bool_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new__StepVector_Iterator_bool" "', argument " "2"" of type '" "step_vector< bool >::const_iterator""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_bool" "', argument " "2"" of type '" "step_vector< bool >::const_iterator""'"); } else { step_vector< bool >::const_iterator * temp = reinterpret_cast< step_vector< bool >::const_iterator * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } result = (step_vector_pystyle_iterator< bool > *)new step_vector_pystyle_iterator< bool >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_bool_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< bool > *arg1 = (step_vector_pystyle_iterator< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< std::pair< long,bool > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_bool_next",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_bool_next" "', argument " "1"" of type '" "step_vector_pystyle_iterator< bool > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< bool > * >(argp1); { try { result = (arg1)->next(); } catch (pystyle_stopiteration &e) { PyErr_SetString( PyExc_StopIteration, "" ); return NULL; } } resultobj = SWIG_NewPointerObj((new std::pair< long,bool >(static_cast< const std::pair< long,bool >& >(result))), SWIGTYPE_p_std__pairT_long_bool_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_bool___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< bool > *arg1 = (step_vector_pystyle_iterator< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; step_vector_pystyle_iterator< bool > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_bool___iter__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_bool___iter__" "', argument " "1"" of type '" "step_vector_pystyle_iterator< bool > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< bool > * >(argp1); result = (step_vector_pystyle_iterator< bool > *)(arg1)->__iter__(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_Iterator_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< bool > *arg1 = (step_vector_pystyle_iterator< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_Iterator_bool",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_Iterator_bool" "', argument " "1"" of type '" "step_vector_pystyle_iterator< bool > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< bool > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_Iterator_bool_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN int Swig_var__StepVector_bool_min_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_bool_min_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_bool_min_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< bool >::min_index)); return pyobj; } SWIGINTERN int Swig_var__StepVector_bool_max_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_bool_max_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_bool_max_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< bool >::max_index)); return pyobj; } SWIGINTERN PyObject *_wrap_new__StepVector_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__StepVector_bool")) SWIG_fail; result = (step_vector_for_python< bool > *)new step_vector_for_python< bool >(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_for_pythonT_bool_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_bool_set_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; long arg2 ; long arg3 ; bool arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; bool val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_bool_set_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_bool_set_value" "', argument " "1"" of type '" "step_vector_for_python< bool > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_bool_set_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_bool_set_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_bool(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_bool_set_value" "', argument " "4"" of type '" "bool""'"); } arg4 = static_cast< bool >(val4); { try { (arg1)->set_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_bool_add_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; long arg2 ; long arg3 ; bool arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; bool val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_bool_add_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_bool_add_value" "', argument " "1"" of type '" "step_vector_for_python< bool > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_bool_add_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_bool_add_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); ecode4 = SWIG_AsVal_bool(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "_StepVector_bool_add_value" "', argument " "4"" of type '" "bool""'"); } arg4 = static_cast< bool >(val4); { try { (arg1)->add_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_bool_get_all_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< bool > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_bool_get_all_values_pystyle",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_bool_get_all_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< bool > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); result = ((step_vector_for_python< bool > const *)arg1)->get_all_values_pystyle(); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< bool >(static_cast< const step_vector_pystyle_iterator< bool >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_bool_get_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< bool > > result; if (!PyArg_ParseTuple(args,(char *)"OO:_StepVector_bool_get_values_pystyle",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_bool_get_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< bool > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_bool_get_values_pystyle" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); result = ((step_vector_for_python< bool > const *)arg1)->get_values_pystyle(arg2); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< bool >(static_cast< const step_vector_pystyle_iterator< bool >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_bool_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_bool_num_values(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_bool_num_values",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_bool_num_values" "', argument " "1"" of type '" "step_vector_for_python< bool > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); result = (int)((step_vector_for_python< bool > const *)arg1)->num_values(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_bool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< bool > *arg1 = (step_vector_for_python< bool > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_bool",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_bool_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_bool" "', argument " "1"" of type '" "step_vector_for_python< bool > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< bool > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_bool_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_for_pythonT_bool_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__Pair_int_obj_first_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,AutoPyObjPtr > *arg1 = (std::pair< long,AutoPyObjPtr > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_obj_first_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_obj_first_set" "', argument " "1"" of type '" "std::pair< long,AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< std::pair< long,AutoPyObjPtr > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_Pair_int_obj_first_set" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); if (arg1) (arg1)->first = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_obj_first_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,AutoPyObjPtr > *arg1 = (std::pair< long,AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_obj_first_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_obj_first_get" "', argument " "1"" of type '" "std::pair< long,AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< std::pair< long,AutoPyObjPtr > * >(argp1); result = (long) ((arg1)->first); resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_obj_second_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,AutoPyObjPtr > *arg1 = (std::pair< long,AutoPyObjPtr > *) 0 ; AutoPyObjPtr arg2 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_Pair_int_obj_second_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_obj_second_set" "', argument " "1"" of type '" "std::pair< long,AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< std::pair< long,AutoPyObjPtr > * >(argp1); { arg2 = AutoPyObjPtr( obj1 ); } if (arg1) (arg1)->second = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__Pair_int_obj_second_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,AutoPyObjPtr > *arg1 = (std::pair< long,AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; AutoPyObjPtr result; if (!PyArg_ParseTuple(args,(char *)"O:_Pair_int_obj_second_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_Pair_int_obj_second_get" "', argument " "1"" of type '" "std::pair< long,AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< std::pair< long,AutoPyObjPtr > * >(argp1); result = ((arg1)->second); { Py_XINCREF( (&result)->obj ); resultobj = (&result)->obj; } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__Pair_int_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; long arg1 ; AutoPyObjPtr arg2 ; long val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; std::pair< long,AutoPyObjPtr > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__Pair_int_obj",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_long(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new__Pair_int_obj" "', argument " "1"" of type '" "long""'"); } arg1 = static_cast< long >(val1); { arg2 = AutoPyObjPtr( obj1 ); } result = (std::pair< long,AutoPyObjPtr > *)new std::pair< long,AutoPyObjPtr >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__Pair_int_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::pair< long,AutoPyObjPtr > *arg1 = (std::pair< long,AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__Pair_int_obj",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__Pair_int_obj" "', argument " "1"" of type '" "std::pair< long,AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< std::pair< long,AutoPyObjPtr > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_Pair_int_obj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new__StepVector_Iterator_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector< AutoPyObjPtr >::const_iterator arg1 ; step_vector< AutoPyObjPtr >::const_iterator arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; step_vector_pystyle_iterator< AutoPyObjPtr > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new__StepVector_Iterator_obj",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_step_vectorT_AutoPyObjPtr_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new__StepVector_Iterator_obj" "', argument " "1"" of type '" "step_vector< AutoPyObjPtr >::const_iterator""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_obj" "', argument " "1"" of type '" "step_vector< AutoPyObjPtr >::const_iterator""'"); } else { step_vector< AutoPyObjPtr >::const_iterator * temp = reinterpret_cast< step_vector< AutoPyObjPtr >::const_iterator * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_step_vectorT_AutoPyObjPtr_t__const_iterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new__StepVector_Iterator_obj" "', argument " "2"" of type '" "step_vector< AutoPyObjPtr >::const_iterator""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new__StepVector_Iterator_obj" "', argument " "2"" of type '" "step_vector< AutoPyObjPtr >::const_iterator""'"); } else { step_vector< AutoPyObjPtr >::const_iterator * temp = reinterpret_cast< step_vector< AutoPyObjPtr >::const_iterator * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } result = (step_vector_pystyle_iterator< AutoPyObjPtr > *)new step_vector_pystyle_iterator< AutoPyObjPtr >(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_obj_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< AutoPyObjPtr > *arg1 = (step_vector_pystyle_iterator< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< std::pair< long,AutoPyObjPtr > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_obj_next",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_obj_next" "', argument " "1"" of type '" "step_vector_pystyle_iterator< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< AutoPyObjPtr > * >(argp1); { try { result = (arg1)->next(); } catch (pystyle_stopiteration &e) { PyErr_SetString( PyExc_StopIteration, "" ); return NULL; } } resultobj = SWIG_NewPointerObj((new std::pair< long,AutoPyObjPtr >(static_cast< const std::pair< long,AutoPyObjPtr >& >(result))), SWIGTYPE_p_std__pairT_long_AutoPyObjPtr_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_Iterator_obj___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< AutoPyObjPtr > *arg1 = (step_vector_pystyle_iterator< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; step_vector_pystyle_iterator< AutoPyObjPtr > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_Iterator_obj___iter__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_Iterator_obj___iter__" "', argument " "1"" of type '" "step_vector_pystyle_iterator< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< AutoPyObjPtr > * >(argp1); result = (step_vector_pystyle_iterator< AutoPyObjPtr > *)(arg1)->__iter__(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_Iterator_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_pystyle_iterator< AutoPyObjPtr > *arg1 = (step_vector_pystyle_iterator< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_Iterator_obj",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_Iterator_obj" "', argument " "1"" of type '" "step_vector_pystyle_iterator< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_pystyle_iterator< AutoPyObjPtr > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_Iterator_obj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN int Swig_var__StepVector_obj_min_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_obj_min_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_obj_min_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< AutoPyObjPtr >::min_index)); return pyobj; } SWIGINTERN int Swig_var__StepVector_obj_max_index_set(PyObject *) { SWIG_Error(SWIG_AttributeError,"Variable _StepVector_obj_max_index is read-only."); return 1; } SWIGINTERN PyObject *Swig_var__StepVector_obj_max_index_get(void) { PyObject *pyobj = 0; pyobj = SWIG_From_long(static_cast< long >(step_vector_for_python< AutoPyObjPtr >::max_index)); return pyobj; } SWIGINTERN PyObject *_wrap_new__StepVector_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__StepVector_obj")) SWIG_fail; result = (step_vector_for_python< AutoPyObjPtr > *)new step_vector_for_python< AutoPyObjPtr >(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_obj_set_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; long arg2 ; long arg3 ; AutoPyObjPtr arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_obj_set_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_obj_set_value" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_obj_set_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_obj_set_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); { arg4 = AutoPyObjPtr( obj3 ); } { try { (arg1)->set_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_obj_add_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; long arg2 ; long arg3 ; AutoPyObjPtr arg4 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:_StepVector_obj_add_value",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_obj_add_value" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_obj_add_value" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_StepVector_obj_add_value" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); { arg4 = AutoPyObjPtr( obj3 ); } { try { (arg1)->add_value(arg2,arg3,arg4); } catch (std::out_of_range &e) { SWIG_exception(SWIG_IndexError, e.what() ); } catch (type_error_non_arith &e) { SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_obj_get_all_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< AutoPyObjPtr > > result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_obj_get_all_values_pystyle",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_obj_get_all_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); result = ((step_vector_for_python< AutoPyObjPtr > const *)arg1)->get_all_values_pystyle(); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< AutoPyObjPtr >(static_cast< const step_vector_pystyle_iterator< AutoPyObjPtr >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_obj_get_values_pystyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; long arg2 ; void *argp1 = 0 ; int res1 = 0 ; long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SwigValueWrapper< step_vector_pystyle_iterator< AutoPyObjPtr > > result; if (!PyArg_ParseTuple(args,(char *)"OO:_StepVector_obj_get_values_pystyle",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_obj_get_values_pystyle" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); ecode2 = SWIG_AsVal_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_StepVector_obj_get_values_pystyle" "', argument " "2"" of type '" "long""'"); } arg2 = static_cast< long >(val2); result = ((step_vector_for_python< AutoPyObjPtr > const *)arg1)->get_values_pystyle(arg2); resultobj = SWIG_NewPointerObj((new step_vector_pystyle_iterator< AutoPyObjPtr >(static_cast< const step_vector_pystyle_iterator< AutoPyObjPtr >& >(result))), SWIGTYPE_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__StepVector_obj_num_values(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_StepVector_obj_num_values",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_StepVector_obj_num_values" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > const *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); result = (int)((step_vector_for_python< AutoPyObjPtr > const *)arg1)->num_values(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__StepVector_obj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; step_vector_for_python< AutoPyObjPtr > *arg1 = (step_vector_for_python< AutoPyObjPtr > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__StepVector_obj",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__StepVector_obj" "', argument " "1"" of type '" "step_vector_for_python< AutoPyObjPtr > *""'"); } arg1 = reinterpret_cast< step_vector_for_python< AutoPyObjPtr > * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_StepVector_obj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_step_vector_for_pythonT_AutoPyObjPtr_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, { (char *)"_Pair_int_float_first_set", _wrap__Pair_int_float_first_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_float_first_get", _wrap__Pair_int_float_first_get, METH_VARARGS, NULL}, { (char *)"_Pair_int_float_second_set", _wrap__Pair_int_float_second_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_float_second_get", _wrap__Pair_int_float_second_get, METH_VARARGS, NULL}, { (char *)"new__Pair_int_float", _wrap_new__Pair_int_float, METH_VARARGS, NULL}, { (char *)"delete__Pair_int_float", _wrap_delete__Pair_int_float, METH_VARARGS, NULL}, { (char *)"_Pair_int_float_swigregister", _Pair_int_float_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_Iterator_float", _wrap_new__StepVector_Iterator_float, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_float_next", _wrap__StepVector_Iterator_float_next, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_float___iter__", _wrap__StepVector_Iterator_float___iter__, METH_VARARGS, NULL}, { (char *)"delete__StepVector_Iterator_float", _wrap_delete__StepVector_Iterator_float, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_float_swigregister", _StepVector_Iterator_float_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_float", _wrap_new__StepVector_float, METH_VARARGS, NULL}, { (char *)"_StepVector_float_set_value", _wrap__StepVector_float_set_value, METH_VARARGS, NULL}, { (char *)"_StepVector_float_add_value", _wrap__StepVector_float_add_value, METH_VARARGS, NULL}, { (char *)"_StepVector_float_get_all_values_pystyle", _wrap__StepVector_float_get_all_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_float_get_values_pystyle", _wrap__StepVector_float_get_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_float_num_values", _wrap__StepVector_float_num_values, METH_VARARGS, NULL}, { (char *)"delete__StepVector_float", _wrap_delete__StepVector_float, METH_VARARGS, NULL}, { (char *)"_StepVector_float_swigregister", _StepVector_float_swigregister, METH_VARARGS, NULL}, { (char *)"_Pair_int_int_first_set", _wrap__Pair_int_int_first_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_int_first_get", _wrap__Pair_int_int_first_get, METH_VARARGS, NULL}, { (char *)"_Pair_int_int_second_set", _wrap__Pair_int_int_second_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_int_second_get", _wrap__Pair_int_int_second_get, METH_VARARGS, NULL}, { (char *)"new__Pair_int_int", _wrap_new__Pair_int_int, METH_VARARGS, NULL}, { (char *)"delete__Pair_int_int", _wrap_delete__Pair_int_int, METH_VARARGS, NULL}, { (char *)"_Pair_int_int_swigregister", _Pair_int_int_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_Iterator_int", _wrap_new__StepVector_Iterator_int, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_int_next", _wrap__StepVector_Iterator_int_next, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_int___iter__", _wrap__StepVector_Iterator_int___iter__, METH_VARARGS, NULL}, { (char *)"delete__StepVector_Iterator_int", _wrap_delete__StepVector_Iterator_int, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_int_swigregister", _StepVector_Iterator_int_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_int", _wrap_new__StepVector_int, METH_VARARGS, NULL}, { (char *)"_StepVector_int_set_value", _wrap__StepVector_int_set_value, METH_VARARGS, NULL}, { (char *)"_StepVector_int_add_value", _wrap__StepVector_int_add_value, METH_VARARGS, NULL}, { (char *)"_StepVector_int_get_all_values_pystyle", _wrap__StepVector_int_get_all_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_int_get_values_pystyle", _wrap__StepVector_int_get_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_int_num_values", _wrap__StepVector_int_num_values, METH_VARARGS, NULL}, { (char *)"delete__StepVector_int", _wrap_delete__StepVector_int, METH_VARARGS, NULL}, { (char *)"_StepVector_int_swigregister", _StepVector_int_swigregister, METH_VARARGS, NULL}, { (char *)"_Pair_int_bool_first_set", _wrap__Pair_int_bool_first_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_bool_first_get", _wrap__Pair_int_bool_first_get, METH_VARARGS, NULL}, { (char *)"_Pair_int_bool_second_set", _wrap__Pair_int_bool_second_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_bool_second_get", _wrap__Pair_int_bool_second_get, METH_VARARGS, NULL}, { (char *)"new__Pair_int_bool", _wrap_new__Pair_int_bool, METH_VARARGS, NULL}, { (char *)"delete__Pair_int_bool", _wrap_delete__Pair_int_bool, METH_VARARGS, NULL}, { (char *)"_Pair_int_bool_swigregister", _Pair_int_bool_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_Iterator_bool", _wrap_new__StepVector_Iterator_bool, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_bool_next", _wrap__StepVector_Iterator_bool_next, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_bool___iter__", _wrap__StepVector_Iterator_bool___iter__, METH_VARARGS, NULL}, { (char *)"delete__StepVector_Iterator_bool", _wrap_delete__StepVector_Iterator_bool, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_bool_swigregister", _StepVector_Iterator_bool_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_bool", _wrap_new__StepVector_bool, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_set_value", _wrap__StepVector_bool_set_value, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_add_value", _wrap__StepVector_bool_add_value, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_get_all_values_pystyle", _wrap__StepVector_bool_get_all_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_get_values_pystyle", _wrap__StepVector_bool_get_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_num_values", _wrap__StepVector_bool_num_values, METH_VARARGS, NULL}, { (char *)"delete__StepVector_bool", _wrap_delete__StepVector_bool, METH_VARARGS, NULL}, { (char *)"_StepVector_bool_swigregister", _StepVector_bool_swigregister, METH_VARARGS, NULL}, { (char *)"_Pair_int_obj_first_set", _wrap__Pair_int_obj_first_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_obj_first_get", _wrap__Pair_int_obj_first_get, METH_VARARGS, NULL}, { (char *)"_Pair_int_obj_second_set", _wrap__Pair_int_obj_second_set, METH_VARARGS, NULL}, { (char *)"_Pair_int_obj_second_get", _wrap__Pair_int_obj_second_get, METH_VARARGS, NULL}, { (char *)"new__Pair_int_obj", _wrap_new__Pair_int_obj, METH_VARARGS, NULL}, { (char *)"delete__Pair_int_obj", _wrap_delete__Pair_int_obj, METH_VARARGS, NULL}, { (char *)"_Pair_int_obj_swigregister", _Pair_int_obj_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_Iterator_obj", _wrap_new__StepVector_Iterator_obj, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_obj_next", _wrap__StepVector_Iterator_obj_next, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_obj___iter__", _wrap__StepVector_Iterator_obj___iter__, METH_VARARGS, NULL}, { (char *)"delete__StepVector_Iterator_obj", _wrap_delete__StepVector_Iterator_obj, METH_VARARGS, NULL}, { (char *)"_StepVector_Iterator_obj_swigregister", _StepVector_Iterator_obj_swigregister, METH_VARARGS, NULL}, { (char *)"new__StepVector_obj", _wrap_new__StepVector_obj, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_set_value", _wrap__StepVector_obj_set_value, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_add_value", _wrap__StepVector_obj_add_value, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_get_all_values_pystyle", _wrap__StepVector_obj_get_all_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_get_values_pystyle", _wrap__StepVector_obj_get_values_pystyle, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_num_values", _wrap__StepVector_obj_num_values, METH_VARARGS, NULL}, { (char *)"delete__StepVector_obj", _wrap_delete__StepVector_obj, METH_VARARGS, NULL}, { (char *)"_StepVector_obj_swigregister", _StepVector_obj_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_AutoPyObjPtr = {"_p_AutoPyObjPtr", "AutoPyObjPtr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__pairT_long_AutoPyObjPtr_t = {"_p_std__pairT_long_AutoPyObjPtr_t", "std::pair< long,AutoPyObjPtr > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__pairT_long_bool_t = {"_p_std__pairT_long_bool_t", "std::pair< long,bool > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__pairT_long_double_t = {"_p_std__pairT_long_double_t", "std::pair< long,double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__pairT_long_int_t = {"_p_std__pairT_long_int_t", "std::pair< long,int > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vectorT_AutoPyObjPtr_t__const_iterator = {"_p_step_vectorT_AutoPyObjPtr_t__const_iterator", "step_vector< AutoPyObjPtr >::const_iterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vectorT_bool_t__const_iterator = {"_p_step_vectorT_bool_t__const_iterator", "step_vector< bool >::const_iterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vectorT_double_t__const_iterator = {"_p_step_vectorT_double_t__const_iterator", "step_vector< double >::const_iterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vectorT_int_t__const_iterator = {"_p_step_vectorT_int_t__const_iterator", "step_vector< int >::const_iterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_for_pythonT_AutoPyObjPtr_t = {"_p_step_vector_for_pythonT_AutoPyObjPtr_t", "step_vector_for_python< AutoPyObjPtr > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_for_pythonT_bool_t = {"_p_step_vector_for_pythonT_bool_t", "step_vector_for_python< bool > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_for_pythonT_double_t = {"_p_step_vector_for_pythonT_double_t", "step_vector_for_python< double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_for_pythonT_int_t = {"_p_step_vector_for_pythonT_int_t", "step_vector_for_python< int > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t = {"_p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t", "step_vector_pystyle_iterator< AutoPyObjPtr > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_pystyle_iteratorT_bool_t = {"_p_step_vector_pystyle_iteratorT_bool_t", "step_vector_pystyle_iterator< bool > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_pystyle_iteratorT_double_t = {"_p_step_vector_pystyle_iteratorT_double_t", "step_vector_pystyle_iterator< double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_step_vector_pystyle_iteratorT_int_t = {"_p_step_vector_pystyle_iteratorT_int_t", "step_vector_pystyle_iterator< int > *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_AutoPyObjPtr, &_swigt__p_char, &_swigt__p_std__pairT_long_AutoPyObjPtr_t, &_swigt__p_std__pairT_long_bool_t, &_swigt__p_std__pairT_long_double_t, &_swigt__p_std__pairT_long_int_t, &_swigt__p_step_vectorT_AutoPyObjPtr_t__const_iterator, &_swigt__p_step_vectorT_bool_t__const_iterator, &_swigt__p_step_vectorT_double_t__const_iterator, &_swigt__p_step_vectorT_int_t__const_iterator, &_swigt__p_step_vector_for_pythonT_AutoPyObjPtr_t, &_swigt__p_step_vector_for_pythonT_bool_t, &_swigt__p_step_vector_for_pythonT_double_t, &_swigt__p_step_vector_for_pythonT_int_t, &_swigt__p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, &_swigt__p_step_vector_pystyle_iteratorT_bool_t, &_swigt__p_step_vector_pystyle_iteratorT_double_t, &_swigt__p_step_vector_pystyle_iteratorT_int_t, }; static swig_cast_info _swigc__p_AutoPyObjPtr[] = { {&_swigt__p_AutoPyObjPtr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__pairT_long_AutoPyObjPtr_t[] = { {&_swigt__p_std__pairT_long_AutoPyObjPtr_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__pairT_long_bool_t[] = { {&_swigt__p_std__pairT_long_bool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__pairT_long_double_t[] = { {&_swigt__p_std__pairT_long_double_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__pairT_long_int_t[] = { {&_swigt__p_std__pairT_long_int_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vectorT_AutoPyObjPtr_t__const_iterator[] = { {&_swigt__p_step_vectorT_AutoPyObjPtr_t__const_iterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vectorT_bool_t__const_iterator[] = { {&_swigt__p_step_vectorT_bool_t__const_iterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vectorT_double_t__const_iterator[] = { {&_swigt__p_step_vectorT_double_t__const_iterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vectorT_int_t__const_iterator[] = { {&_swigt__p_step_vectorT_int_t__const_iterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_for_pythonT_AutoPyObjPtr_t[] = { {&_swigt__p_step_vector_for_pythonT_AutoPyObjPtr_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_for_pythonT_bool_t[] = { {&_swigt__p_step_vector_for_pythonT_bool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_for_pythonT_double_t[] = { {&_swigt__p_step_vector_for_pythonT_double_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_for_pythonT_int_t[] = { {&_swigt__p_step_vector_for_pythonT_int_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t[] = { {&_swigt__p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_pystyle_iteratorT_bool_t[] = { {&_swigt__p_step_vector_pystyle_iteratorT_bool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_pystyle_iteratorT_double_t[] = { {&_swigt__p_step_vector_pystyle_iteratorT_double_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_step_vector_pystyle_iteratorT_int_t[] = { {&_swigt__p_step_vector_pystyle_iteratorT_int_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_AutoPyObjPtr, _swigc__p_char, _swigc__p_std__pairT_long_AutoPyObjPtr_t, _swigc__p_std__pairT_long_bool_t, _swigc__p_std__pairT_long_double_t, _swigc__p_std__pairT_long_int_t, _swigc__p_step_vectorT_AutoPyObjPtr_t__const_iterator, _swigc__p_step_vectorT_bool_t__const_iterator, _swigc__p_step_vectorT_double_t__const_iterator, _swigc__p_step_vectorT_int_t__const_iterator, _swigc__p_step_vector_for_pythonT_AutoPyObjPtr_t, _swigc__p_step_vector_for_pythonT_bool_t, _swigc__p_step_vector_for_pythonT_double_t, _swigc__p_step_vector_for_pythonT_int_t, _swigc__p_step_vector_pystyle_iteratorT_AutoPyObjPtr_t, _swigc__p_step_vector_pystyle_iteratorT_bool_t, _swigc__p_step_vector_pystyle_iteratorT_double_t, _swigc__p_step_vector_pystyle_iteratorT_int_t, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *tmp; PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"swigvarlink", /* tp_name */ sizeof(swig_varlinkobject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor) swig_varlink_dealloc, /* tp_dealloc */ (printfunc) swig_varlink_print, /* tp_print */ (getattrfunc) swig_varlink_getattr, /* tp_getattr */ (setattrfunc) swig_varlink_setattr, /* tp_setattr */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; type_init = 1; #if PY_VERSION_HEX < 0x02020000 varlink_type.ob_type = &PyType_Type; #else if (PyType_Ready(&varlink_type) < 0) return NULL; #endif } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d, *md; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { # if PY_VERSION_HEX >= 0x03020000 PyModuleDef_HEAD_INIT, # else { PyObject_HEAD_INIT(NULL) NULL, /* m_init */ 0, /* m_index */ NULL, /* m_copy */ }, # endif (char *) SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif #if defined(SWIGPYTHON_BUILTIN) static SwigPyClientData SwigPyObject_clientdata = { 0, 0, 0, 0, 0, 0, 0 }; static PyGetSetDef this_getset_def = { (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL }; static SwigPyGetSet thisown_getset_closure = { (PyCFunction) SwigPyObject_own, (PyCFunction) SwigPyObject_own }; static PyGetSetDef thisown_getset_def = { (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure }; PyObject *metatype_args; PyTypeObject *builtin_pytype; int builtin_base_count; swig_type_info *builtin_basetype; PyObject *tuple; PyGetSetDescrObject *static_getset; PyTypeObject *metatype; SwigPyClientData *cd; PyObject *public_interface, *public_symbol; PyObject *this_descr; PyObject *thisown_descr; int i; (void)builtin_pytype; (void)builtin_base_count; (void)builtin_basetype; (void)tuple; (void)static_getset; /* metatype is used to implement static member variables. */ metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type); assert(metatype_args); metatype = (PyTypeObject *) PyType_Type.tp_call((PyObject *) &PyType_Type, metatype_args, NULL); assert(metatype); Py_DECREF(metatype_args); metatype->tp_setattro = (setattrofunc) &SwigPyObjectType_setattro; assert(PyType_Ready(metatype) >= 0); #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif md = d = PyModule_GetDict(m); SWIG_InitializeModule(0); #ifdef SWIGPYTHON_BUILTIN SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject"); assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; if (!cd) { SwigPyObject_stype->clientdata = &SwigPyObject_clientdata; SwigPyObject_clientdata.pytype = SwigPyObject_TypeOnce(); } else if (SwigPyObject_TypeOnce()->tp_basicsize != cd->pytype->tp_basicsize) { PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules."); # if PY_VERSION_HEX >= 0x03000000 return NULL; # else return; # endif } /* All objects have a 'this' attribute */ this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def); (void)this_descr; /* All objects have a 'thisown' attribute */ thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def); (void)thisown_descr; public_interface = PyList_New(0); public_symbol = 0; (void)public_symbol; PyDict_SetItemString(md, "__all__", public_interface); Py_DECREF(public_interface); for (i = 0; SwigMethods[i].ml_name != NULL; ++i) SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name); for (i = 0; swig_const_table[i].name != 0; ++i) SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name); #endif SWIG_InstallConstants(d,swig_const_table); PyDict_SetItemString(md,(char*)"cvar", SWIG_globals()); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_float_min_index",Swig_var__StepVector_float_min_index_get, Swig_var__StepVector_float_min_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_float_max_index",Swig_var__StepVector_float_max_index_get, Swig_var__StepVector_float_max_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_int_min_index",Swig_var__StepVector_int_min_index_get, Swig_var__StepVector_int_min_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_int_max_index",Swig_var__StepVector_int_max_index_get, Swig_var__StepVector_int_max_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_bool_min_index",Swig_var__StepVector_bool_min_index_get, Swig_var__StepVector_bool_min_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_bool_max_index",Swig_var__StepVector_bool_max_index_get, Swig_var__StepVector_bool_max_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_obj_min_index",Swig_var__StepVector_obj_min_index_get, Swig_var__StepVector_obj_min_index_set); SWIG_addvarlink(SWIG_globals(),(char*)"_StepVector_obj_max_index",Swig_var__StepVector_obj_max_index_get, Swig_var__StepVector_obj_max_index_set); #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } HTSeq-0.5.4p3/src/StepVector.i0000664000175000017500000003343112110432433016557 0ustar andersanders00000000000000%module StepVector %include "exception.i" %{ #define AUTOPYOBJPTR_EXTRAOPS %} %include "AutoPyObjPtr.i" %{ #include "step_vector.h" class pystyle_stopiteration {}; template< class T > class step_vector_pystyle_iterator { typename step_vector::const_iterator current; typename step_vector::const_iterator last; public: step_vector_pystyle_iterator( typename step_vector::const_iterator first, typename step_vector::const_iterator last_ ); std::pair< long int, T > next( ); step_vector_pystyle_iterator * __iter__( ); }; template< class T > class step_vector_for_python : public step_vector { public: step_vector_pystyle_iterator get_all_values_pystyle( ) const; step_vector_pystyle_iterator get_values_pystyle( long int from ) const; int num_values( ) const; }; template< class T > step_vector_pystyle_iterator::step_vector_pystyle_iterator( typename step_vector::const_iterator first, typename step_vector::const_iterator last_ ) : current( first ), last( last_ ) { } template< class T > step_vector_pystyle_iterator step_vector_for_python::get_all_values_pystyle( ) const { return step_vector_pystyle_iterator( this->begin(), this->end() ); } template< class T > step_vector_pystyle_iterator step_vector_for_python::get_values_pystyle( long int from ) const { return step_vector_pystyle_iterator( this->get_values( from ), this->end() ); } template< class T > int step_vector_for_python::num_values( ) const { return this->m.size(); } template< class T > std::pair< long int, T > step_vector_pystyle_iterator::next( ) { if( current == last ) throw pystyle_stopiteration (); else { return *current++; } } template< class T > step_vector_pystyle_iterator * step_vector_pystyle_iterator::__iter__( ) { return this; } %} %exception next { try { $action } catch (pystyle_stopiteration &e) { PyErr_SetString( PyExc_StopIteration, "" ); return NULL; } } template< class T1, class T2 > class std::pair { public: T1 first; T2 second; pair( T1 first_, T2 second_); }; template< class T > class step_vector_pystyle_iterator { public: step_vector_pystyle_iterator( typename step_vector::const_iterator first, typename step_vector::const_iterator last_ ); std::pair< long int, T > next( ); step_vector_pystyle_iterator * __iter__( ); }; #define TRY_CATCH_INDEX \ try { \ $action \ } catch (std::out_of_range &e) { \ SWIG_exception(SWIG_IndexError, e.what() ); \ } catch (type_error_non_arith &e) { \ SWIG_exception(SWIG_TypeError, "Illegal arithmetic operation" ); \ } %exception set_value { TRY_CATCH_INDEX } %exception add_value { TRY_CATCH_INDEX } template< class T > class step_vector_for_python { public: static const long int min_index; static const long int max_index; step_vector_for_python( ); void set_value( long int from, long int to, T value ); void add_value( long int from, long int to, T value ); step_vector_pystyle_iterator get_all_values_pystyle( ) const; step_vector_pystyle_iterator get_values_pystyle( long int from ) const; int num_values( ) const; }; %template( _Pair_int_float ) std::pair< long int, double >; %template( _StepVector_Iterator_float ) step_vector_pystyle_iterator< double >; %template( _StepVector_float ) step_vector_for_python< double >; %template( _Pair_int_int ) std::pair< long int, int >; %template( _StepVector_Iterator_int ) step_vector_pystyle_iterator< int >; %template( _StepVector_int ) step_vector_for_python< int >; %template( _Pair_int_bool ) std::pair< long int, bool >; %template( _StepVector_Iterator_bool ) step_vector_pystyle_iterator< bool >; %template( _StepVector_bool ) step_vector_for_python< bool >; %template( _Pair_int_obj ) std::pair< long int, AutoPyObjPtr >; %template( _StepVector_Iterator_obj ) step_vector_pystyle_iterator< AutoPyObjPtr >; %template( _StepVector_obj ) step_vector_for_python< AutoPyObjPtr >; %pythoncode %{ import sys class StepVector( object ): """A step vector is a vector with integer indices that is able to store data efficiently if it is piece-wise constant, i.e., if the values change in "steps". So, if a number of adjacent vectort elements have the same value, this values will be stored only once. The data can be either one of a number of elementary types, or any object. Usage example: >>> sv = StepVector.StepVector( 20 ) >>> sv[5:17] = 13 >>> sv[12] 13.0 >>> list( sv ) [0.0, 0.0, 0.0, 0.0, 0.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 0.0, 0.0, 0.0] >>> list( sv.get_steps() ) [(0, 5, 0.0), (5, 17, 13.0), (17, 20, 0.0)] """ @classmethod def create( cls, length = sys.maxint, typecode = 'd', start_index = 0 ): """Construct a StepVector of the given length, with indices starting at the given start_index and counting up to (but not including) start_index + length. The typecode may be: 'd' for float values (C type 'double'), 'i' for int values, 'b' for Boolean values, 'O' for arbitrary Python objects as value. The vector is initialized with the value zero (or, for typecode 'O', with None). """ if typecode == 'd': swigclass = _StepVector_float elif typecode == 'i': swigclass = _StepVector_int elif typecode == 'b': swigclass = _StepVector_bool elif typecode == 'O': swigclass = _StepVector_obj else: raise ValueError, "unsupported typecode" obj = cls() obj._typecode = typecode obj._swigobj = swigclass( ) obj.start = start_index obj.stop = start_index + length return obj def __setitem__( self, index, value ): """To set element i of StepVector sv to the value v, write sv[i] = v If you want to set a whole step, say, all values from i to j (not including j), write sv[i:j] = v Note that the StepVector class will only notice that all the values from i to j are equal if you assign them in this fashion. Assigning each item individually in a loop from i to j will result in the value v being stored many times. """ if isinstance( value, StepVector ): if self._swigobj is value._swigobj and \ value.start == index.start and value.stop == index.stop: return else: raise NotImplemented, "Stepvector-to-Stepvector assignment still missing" if isinstance( index, slice ): if index.step is not None and index.step != 1: raise ValueError, "Striding slices (i.e., step != 1) are not supported" if index.start is None: start = self.start else: if index.start < self.start: raise IndexError, "start too small" start = index.start if index.stop is None: stop = self.stop else: if index.stop > self.stop: raise IndexError, "stop too large" stop = index.stop self._swigobj.set_value( start, stop-1, value ) # Note the "-1": The C++ object uses closed intervals, but we follow # Python convention here and use half-open ones. else: self._swigobj.set_value( index, index, value ) def get_steps( self, values_only = False, merge_steps=True ): """To get a succinct representation of the StepVector's content, call the 'get_steps' method. It returns an iterator that generates triples of values. Each triple contains one step, giving first the start index of the step, then the stop index (i.e., one more than the index of the last element), and as third element the value of the step. If you want to see only a part of the StepVector, use the 'start' and 'stop' parameters of 'get_steps' to specify a window. Sometimes, one might only be interested in the values, not the step boundaries. Then, set 'values_only' to true, and the iterator generates only the values insted of the triples. """ startvals = self._swigobj.get_values_pystyle( self.start ) prevstart = self.start prevval = startvals.next().second for pair in startvals: stepstart, value = pair.first, pair.second if merge_steps and value == prevval: continue if self.stop is not None and stepstart >= self.stop: if not values_only: yield prevstart, self.stop, prevval else: yield prevval return if not values_only: yield prevstart, stepstart, prevval else: yield prevval prevstart, prevval = stepstart, value else: if not values_only: yield prevstart, min( self.stop, self._swigobj.max_index+1), prevval else: yield prevval def __getitem__( self, index ): """Given a StepVector sv, writing sv[i] returns sv's element i (where i is an integer). If you use a slice, i.e., 'sv[i:j]', you get a view on the StepVector, i.e., the same data, but changed boundaries. """ if isinstance( index, slice ): if index.step is not None and index.step != 1: raise ValueError, "Striding slices (i.e., step != 1) are not supported" if index.start is None: start = self.start else: if index.start < self.start: raise IndexError, "start too small" start = index.start if index.stop is None: stop = self.stop else: if index.stop > self.stop: raise IndexError, "stop too large" stop = index.stop res = self.__class__() res._typecode = self.typecode res._swigobj = self._swigobj res.start = start res.stop = stop return res else: return self._swigobj.get_values_pystyle( index ).next().second def __iter__( self ): """When asked to provide an iterator, a StepVector will yield all its value, repeating each value according to the length of the step. Hence, calling, e.g., 'list( sv )' will transform the StepVector 'sv' into an ordinary list. """ for start, stop, value in self.get_steps(): for i in xrange( start, stop ): yield value def __repr__( self ): if self.start == -sys.maxint - 1: start_s = "-inf" else: start_s = str( self.start ) if self.stop == sys.maxint: stop_s = "inf" else: stop_s = str( self.stop ) return "<%s object, type '%s', index range %s:%s, %d step(s)>" % ( self.__class__.__name__, self.typecode(), start_s, stop_s, self.num_steps() ) def typecode( self ): "Returns the typecode." return self._typecode def __len__( self ): """The length of a StepVector is defined by its index range, not by the number of steps. """ return self.stop - self.start def num_steps( self ): """Returns the number of steps, i.e., the number of triples that get_steps returns. """ return self._swigobj.num_values() def __eq__( self, other ): """StepVectors can be compared for equality. This is conceptually done element for element, but, for performance, taking steps in one go. """ if self.start_index() != other.start_index() or len(self) != len(other) or \ self.typecode() != other.typecode(): print "Mark A" return False selfsteps = self.get_steps() othrsteps = other.get_steps() selfstart, selfstop, selfval = selfsteps.next() othrstart, othrstop, othrval = othrsteps.next() while selfstop < self.start_index() + len(self) and \ othrstop < other.start_index() + len(other): assert selfstart < othrstop and othrstart < selfstop if not( selfval == othrval ): return False if selfstop < othrstop: selfstart, selfstop, selfval = selfsteps.next() elif othrstop < selfstop: othrstart, othrstop, othrval = othrsteps.next() else: selfstart, selfstop, selfval = selfsteps.next() othrstart, othrstop, othrval = othrsteps.next() return True def __neq__( self, other ): return not ( self == other ) def __reduce__( self ): if self.__class__ is not StepVector: raise NotImplemented, "Attempting to pickle a subclass of StepVector without redefined __reduce__." return ( _StepVector_unpickle, ( self.stop - self.start, self._typecode, self.start ), None, None, ( ( slice( start, stop ), val ) for start, stop, val in self.get_steps() ) ) def __iadd__( self, value ): self._swigobj.add_value( self.start, self.stop-1, value ) return self def apply( self, func, start = None, stop = None ): # TODO: check! for stepstart, stepstop, value in self.get_steps( start, stop ): self[ stepstart : stepstop ] = func( value ) def _StepVector_unpickle( length, typecode, start ): return StepVector.create( length, typecode, start ) %} HTSeq-0.5.4p3/src/Makefile0000664000175000017500000000061512110432433015745 0ustar andersanders00000000000000CYTHON=cython SWIG=swig all: StepVector_wrap.cxx ../HTSeq/StepVector.py _HTSeq.c clean: rm -f StepVector_wrap.cxx ../HTSeq/StepVector.py _HTSeq.c _HTSeq.c: HTSeq/_HTSeq.pyx HTSeq/_HTSeq.pxd $(CYTHON) HTSeq/_HTSeq.pyx -o _HTSeq.c StepVector_wrap.cxx ../HTSeq/StepVector.py: StepVector.i AutoPyObjPtr.i step_vector.h $(SWIG) -Wall -c++ -python StepVector.i mv StepVector.py ../HTSeq