Source code for ALLCools.sandbox.igv.BaseClass

"""
See IGV doc about xml, but this doc is actually out-of-date...
https://software.broadinstitute.org/software/igv/Sessions

I learn this by save IGV session xml file from IGV 2.17.2
These session file is not in a stable API, use it cross IGV version do cause problems...
"""

from xml.etree.ElementTree import Element
from .defaults import *


[docs]class Resources(Element): def __init__(self): _tag = "Resources" super().__init__(_tag, attrib={})
[docs]class Resource(Element): def __init__(self, path): _tag = "Resource" _attrib = {"path": path} super().__init__(_tag, attrib=_attrib)
[docs]class Panel(Element): def __init__(self, **kwargs): _tag = "Panel" super().__init__(_tag, attrib=kwargs)
[docs]class Track(Element): def __init__(self, **kwargs): _tag = "Track" for k in TRACK_REQUIRED_KEYS: if k not in kwargs: raise KeyError(f"Track missing argument {k}") # Default track parameters super().__init__(_tag, attrib=kwargs)
[docs]class DataRange(Element): def __init__(self, **kwargs): _tag = "DataRange" # Default DataRange parameters _attrib = DATARANGE_DEFAULT.copy() _attrib.update(kwargs) super().__init__(_tag, attrib=_attrib)
[docs]class PanelLayout(Element): def __init__(self, dividerFractions=0.9): _tag = "PanelLayout" # Default track parameters _attrib = dict(dividerFractions=str(dividerFractions)) super().__init__(_tag, attrib=_attrib)
[docs]class HiddenAttributes(Element): def __init__(self): _tag = "HiddenAttributes" super().__init__(_tag) # I don't know what IGV is doing here, but seems only stable lines so just copy here self.append(Element("Attribute", name="DATA FILE")) self.append(Element("Attribute", name="DATA TYPE")) self.append(Element("Attribute", name="NAME"))