Warning
This document is for an old release 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.interval_to_interval_index_converter
#!/usr/bin/env python
"""
Convert from interval file to interval index file.
usage: %prog <options> in_file out_file
-c, --chr-col: chromosome column, default=1
-s, --start-col: start column, default=2
-e, --end-col: end column, default=3
"""
import optparse
from bx.interval_index_file import Indexes
[docs]def main():
# Read options, args.
parser = optparse.OptionParser()
parser.add_option("-c", "--chr-col", type="int", dest="chrom_col", default=1)
parser.add_option("-s", "--start-col", type="int", dest="start_col", default=2)
parser.add_option("-e", "--end-col", type="int", dest="end_col", default=3)
(options, args) = parser.parse_args()
input_fname, output_fname = args
# Make column indices 0-based.
options.chrom_col -= 1
options.start_col -= 1
options.end_col -= 1
# Do conversion.
index = Indexes()
offset = 0
with open(input_fname) as in_fh:
for line in in_fh:
feature = line.strip().split()
if not feature or feature[0].startswith("track") or feature[0].startswith("#"):
offset += len(line)
continue
chrom = feature[options.chrom_col]
chrom_start = int(feature[options.start_col])
chrom_end = int(feature[options.end_col])
index.add(chrom, chrom_start, chrom_end, offset)
offset += len(line)
with open(output_fname, "wb") as out:
index.write(out)
if __name__ == "__main__":
main()