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
"""
from __future__ import division
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
for line in open(input_fname, "r"):
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)
index.write(open(output_fname, "w"))
if __name__ == "__main__":
main()