From bc6ece1317bb6dc9cc1ab55e68ad224213e19574 Mon Sep 17 00:00:00 2001 From: Mikko Nieminen Date: Mon, 23 Jan 2023 15:05:07 +0100 Subject: [PATCH] update igv session generating (#1585) --- CHANGELOG.rst | 1 + samplesheets/studyapps/utils.py | 21 ++------------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index db5ec38f..d34c7899 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -46,6 +46,7 @@ Changed - **Samplesheets** - Upgrade critical Vue app dependencies (#1527, #1571) - Remove redundant node UUIDs from render tables (#708) + - Improve IGV session file XML generating (#1585) Fixed ----- diff --git a/samplesheets/studyapps/utils.py b/samplesheets/studyapps/utils.py index 27723e71..36cc8639 100644 --- a/samplesheets/studyapps/utils.py +++ b/samplesheets/studyapps/utils.py @@ -77,9 +77,8 @@ def get_igv_session_url(source, app_name, merge=False): file_url = reverse( '{}:igv'.format(app_name), kwargs={'genericmaterial': source.sodar_uuid} ) - return '{}/load?{}merge={}&file={}{}.xml'.format( + return '{}/load?merge={}&file={}{}.xml'.format( IGV_URL_BASE, - 'genome=b37&' if not merge else '', str(merge).lower(), file_prefix, file_url, @@ -121,18 +120,14 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'version': '8', }, ) - # Resources xml_resources = ET.SubElement(xml_session, 'Resources') - # VCF resource for vcf_name, vcf_url in vcf_urls.items(): ET.SubElement(xml_resources, 'Resource', attrib={'path': vcf_url}) - # BAM resources for bam_name, bam_url in bam_urls.items(): ET.SubElement(xml_resources, 'Resource', attrib={'path': bam_url}) - # VCF panel (under Session) for vcf_name, vcf_url in vcf_urls.items(): xml_vcf_panel = ET.SubElement( @@ -165,7 +160,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'windowFunction': 'count', }, ) - # BAM panels for bam_name, bam_url in bam_urls.items(): # Generating unique panel name with hashlib @@ -179,7 +173,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'width': '1129', }, ) - xml_bam_panel_track_coverage = ET.SubElement( xml_bam_panel, 'Track', @@ -198,7 +191,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'visible': 'true', }, ) - # xml_bam_panel_track_datarange ET.SubElement( xml_bam_panel_track_coverage, @@ -212,7 +204,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'type': 'LINEAR', }, ) - xml_bam_panel_track = ET.SubElement( xml_bam_panel, 'Track', @@ -229,7 +220,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'visible': 'true', }, ) - # xml_bam_panel_track_renderoptions ET.SubElement( xml_bam_panel_track, @@ -247,13 +237,11 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'sortByTag': '', }, ) - xml_feature_panel = ET.SubElement( xml_session, 'Panel', attrib={'height': '40', 'name': 'FeaturePanel', 'width': '1129'}, ) - # xml_feature_panel_track ET.SubElement( xml_feature_panel, @@ -271,7 +259,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'visible': 'true', }, ) - xml_feature_panel_track2 = ET.SubElement( xml_feature_panel, 'Track', @@ -284,7 +271,7 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'displayMode': 'COLLAPSED', 'featureVisibilityWindow': '-1', 'fontSize': '10', - 'id': 'b37_genes', + 'id': 'genes', 'name': 'Gene', 'renderer': 'BASIC_FEATURE', 'sortable': 'false', @@ -292,7 +279,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'windowFunction': 'count', }, ) - # xml_feature_panel_track2_datarange ET.SubElement( xml_feature_panel_track2, @@ -306,7 +292,6 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): 'type': 'LINEAR', }, ) - # xml_panel_layout ET.SubElement( xml_session, @@ -316,12 +301,10 @@ def get_igv_xml(bam_urls, vcf_urls, vcf_title, request): '0.6595744680851063,0.9273049645390071' }, ) - xml_hidden_attrs = ET.SubElement(xml_session, 'HiddenAttributes') ET.SubElement(xml_hidden_attrs, 'Attribute', attrib={'name': 'DATA FILE'}) ET.SubElement(xml_hidden_attrs, 'Attribute', attrib={'name': 'DATA TYPE'}) ET.SubElement(xml_hidden_attrs, 'Attribute', attrib={'name': 'NAME'}) - xml_str = ET.tostring( xml_session, encoding='utf-8',