Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.datatypes.converters.gff_to_interval_index_converter
#!/usr/bin/env python
"""
Convert from GFF file to interval index file.
usage:
python gff_to_interval_index_converter.py [input] [output]
"""
from __future__ import division
import fileinput
import sys
from bx.interval_index_file import Indexes
from galaxy.datatypes.util.gff_util import convert_gff_coords_to_bed, GenomicInterval, GFFReaderWrapper
[docs]def main():
# Arguments
input_fname, out_fname = sys.argv[1:]
# Do conversion.
index = Indexes()
offset = 0
reader_wrapper = GFFReaderWrapper(fileinput.FileInput(input_fname), fix_strand=True)
for feature in list(reader_wrapper):
# Add feature; index expects BED coordinates.
if isinstance(feature, GenomicInterval):
convert_gff_coords_to_bed(feature)
index.add(feature.chrom, feature.start, feature.end, offset)
# Always increment offset, even if feature is not an interval and hence
# not included in the index.
offset += feature.raw_size
index.write(open(out_fname, "wb"))
if __name__ == "__main__":
main()