diff --git a/client/galaxy/scripts/onload.js b/client/galaxy/scripts/onload.js index 232fc87c0ab..e58f49db2e7 100644 --- a/client/galaxy/scripts/onload.js +++ b/client/galaxy/scripts/onload.js @@ -179,18 +179,20 @@ $(document).ready(() => { function onloadWebhooks() { if (Galaxy.root !== undefined) { - // Load all webhooks with the type 'onload' - Webhooks.load({ - type: "onload", - callback: function(webhooks) { - webhooks.each(model => { - var webhook = model.toJSON(); - if (webhook.activate && webhook.script) { - Utils.appendScriptStyle(webhook); - } - }); - } - }); + if (Galaxy.config.enable_webhooks) { + // Load all webhooks with the type 'onload' + Webhooks.load({ + type: "onload", + callback: function(webhooks) { + webhooks.each(model => { + var webhook = model.toJSON(); + if (webhook.activate && webhook.script) { + Utils.appendScriptStyle(webhook); + } + }); + } + }); + } } else { setTimeout(onloadWebhooks, 100); } diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index cfdd41a0f10..e4149248368 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -12,6 +12,7 @@ import sys import tarfile import tempfile import zipfile +from collections import OrderedDict from json import dumps import h5py @@ -234,10 +235,10 @@ class BamNative(Binary): # TODO: Reference names, lengths, read_groups and headers can become very large, truncate when necessary dataset.metadata.reference_names = list(bam_file.references) dataset.metadata.reference_lengths = list(bam_file.lengths) - dataset.metadata.bam_header = bam_file.header + dataset.metadata.bam_header = OrderedDict((k, v) for k, v in bam_file.header.items()) dataset.metadata.read_groups = [read_group['ID'] for read_group in dataset.metadata.bam_header.get('RG', []) if 'ID' in read_group] - dataset.metadata.sort_order = bam_file.header.get('HD', {}).get('SO', None) - dataset.metadata.bam_version = bam_file.header.get('HD', {}).get('VN', None) + dataset.metadata.sort_order = dataset.metadata.bam_header.get('HD', {}).get('SO', None) + dataset.metadata.bam_version = dataset.metadata.bam_header.get('HD', {}).get('VN', None) except Exception: # Per Dan, don't log here because doing so will cause datasets that # fail metadata to end in the error state @@ -383,25 +384,12 @@ class Bam(BamNative): def set_meta(self, dataset, overwrite=True, **kwd): # These metadata values are not accessible by users, always overwrite + super(Bam, self).set_meta(dataset=dataset, overwrite=overwrite, **kwd) index_file = dataset.metadata.bam_index if not index_file: index_file = dataset.metadata.spec['bam_index'].param.new_file(dataset=dataset) pysam.index(dataset.file_name, index_file.file_name) dataset.metadata.bam_index = index_file - # Now use pysam with BAI index to determine additional metadata - try: - bam_file = pysam.AlignmentFile(dataset.file_name, mode='rb', index_filename=index_file.file_name) - # TODO: Reference names, lengths, read_groups and headers can become very large, truncate when necessary - dataset.metadata.reference_names = list(bam_file.references) - dataset.metadata.reference_lengths = list(bam_file.lengths) - dataset.metadata.bam_header = bam_file.header - dataset.metadata.read_groups = [read_group['ID'] for read_group in dataset.metadata.bam_header.get('RG', []) if 'ID' in read_group] - dataset.metadata.sort_order = bam_file.header.get('HD', {}).get('SO', None) - dataset.metadata.bam_version = bam_file.header.get('HD', {}).get('VN', None) - except Exception: - # Per Dan, don't log here because doing so will cause datasets that - # fail metadata to end in the error state - pass def sniff(self, file_name): return super(Bam, self).sniff(file_name) and not self.dataset_content_needs_grooming(file_name) diff --git a/lib/galaxy/datatypes/converters/bam_native_to_bam_converter.xml b/lib/galaxy/datatypes/converters/bam_native_to_bam_converter.xml index 8ac1dd7b633..ea5bf341bb5 100644 --- a/lib/galaxy/datatypes/converters/bam_native_to_bam_converter.xml +++ b/lib/galaxy/datatypes/converters/bam_native_to_bam_converter.xml @@ -1,4 +1,4 @@ -