From 29c9521010022b51374be4849e8a0804a326c0e0 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 8 Nov 2007 20:14:20 +0000 Subject: [PATCH] Fixes and enhancements for displaying interval/bed files at UCSC. --- lib/galaxy/datatypes/interval.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 6b1df41370b..51d74a1c7b9 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -99,8 +99,8 @@ class Interval( Tabular ): """Return a chrom, start, stop tuple for viewing a file.""" if dataset.has_data() and dataset.state == dataset.states.OK: try: - c, s, e, t = dataset.metadata.chromCol, dataset.metadata.startCol, dataset.metadata.endCol, dataset.metadata.strandCol - c, s, e, t = int(c)-1, int(s)-1, int(e)-1, int(t)-1 + c, s, e = dataset.metadata.chromCol, dataset.metadata.startCol, dataset.metadata.endCol + c, s, e = int(c)-1, int(s)-1, int(e)-1 peek = [] for idx, line in enumerate(file(dataset.file_name)): @@ -125,13 +125,21 @@ class Interval( Tabular ): def as_ucsc_display_file( self, dataset, **kwd ): """Returns file contents with only the bed data""" fd, temp_name = tempfile.mkstemp() - c, s, e, t = dataset.metadata.chromCol, dataset.metadata.startCol, dataset.metadata.endCol, dataset.metadata.strandCol - c, s, e, t = int(c)-1, int(s)-1, int(e)-1, int(t)-1 + c, s, e, t, n = dataset.metadata.chromCol, dataset.metadata.startCol, dataset.metadata.endCol, dataset.metadata.strandCol or 0, dataset.metadata.nameCol or 0 + c, s, e, t, n = int(c)-1, int(s)-1, int(e)-1, int(t)-1, int(n)-1 if t >= 0: # strand column (should) exists - for elems in util.file_iter(dataset.file_name): + for i, elems in enumerate( util.file_iter(dataset.file_name) ): strand = "+" + name = "region_%i" % i + if n >= 0 and n < len( elems ): name = elems[n] if t= 0: # name column (should) exists + for i, elems in enumerate( util.file_iter(dataset.file_name) ): + name = "region_%i" % i + if n >= 0 and n < len( elems ): name = elems[n] + tmp = [ elems[c], elems[s], elems[e], name ] os.write(fd, '%s\n' % '\t'.join(tmp) ) else: for elems in util.file_iter(dataset.file_name):