bx.intervals.io module
Support for reading and writing genomic intervals from delimited text files.
- class bx.intervals.io.BitsetSafeReaderWrapper(reader, lens=None)
Bases:
NiceReaderWrapper
- exception bx.intervals.io.FieldFormatError(*args, **kwargs)
Bases:
ParseError
- class bx.intervals.io.GenomicInterval(reader, fields, chrom_col, start_col, end_col, strand_col, default_strand, fix_strand=False)
Bases:
TableRow
A genomic interval stored in a set of fields (a row of a table)
- copy()
- class bx.intervals.io.GenomicIntervalReader(input, chrom_col=0, start_col=1, end_col=2, strand_col=5, default_strand='+', return_header=True, return_comments=True, force_header=None, fix_strand=False, comment_lines_startswith=None, allow_spaces=False)
Bases:
TableReader
Reader for iterating a set of intervals in a tab separated file. Can also parse header and comment lines if requested.
>>> from bx.tabular.io import Comment, Header >>> r = GenomicIntervalReader( [ "#chrom\tname\tstart\tend\textra", ... "chr1\tfoo\t1\t100\txxx", ... "chr2\tbar\t20\t300\txxx", ... "#I am a comment", ... "chr2\tbar\t20\t300\txxx" ], start_col=2, end_col=3 ) >>> header = next(r) >>> elements = list(r) >>> elements.insert(0, header) >>> assert isinstance(elements[0], Header) >>> str(elements[0]) '#chrom\tname\tstart\tend\textra' >>> assert isinstance(elements[1], GenomicInterval) >>> print(elements[1].start, elements[1].end) 1 100 >>> str(elements[1]) 'chr1\tfoo\t1\t100\txxx' >>> elements[1].start = 30 >>> print(elements[1].start, elements[1].end) 30 100 >>> str(elements[1]) 'chr1\tfoo\t30\t100\txxx' >>> assert isinstance(elements[2], GenomicInterval) >>> assert isinstance(elements[3], Comment) >>> assert isinstance(elements[4], GenomicInterval)
- binned_bitsets(upstream_pad=0, downstream_pad=0, lens=None)
- parse_row(line)
- exception bx.intervals.io.MissingFieldError(*args, **kwargs)
Bases:
ParseError
- class bx.intervals.io.NiceReaderWrapper(reader, **kwargs)
Bases:
GenomicIntervalReader
>>> from bx.tabular.io import Header >>> r = NiceReaderWrapper(["#chrom\tname\tstart\tend\textra", ... "chr1\tfoo\t1\t100\txxx", ... "chr2\tbar\t20\t300\txxx", ... "#I am a comment", ... "chr2\tbar\t20\t300\txxx" ], start_col=2, end_col=3 ) >>> assert isinstance(next(r), Header) >>> assert r.current_line == '#chrom\tname\tstart\tend\textra', r.current_line >>> assert len([_ for _ in r]) == 4
- iterwrapper()
- exception bx.intervals.io.StrandFormatError(*args, **kwargs)
Bases:
ParseError