Merge remote-tracking branch 'upstream/release_17.09' into dev

This commit is contained in:
Dannon Baker
2018-01-08 09:21:16 -05:00
3 changed files with 64 additions and 47 deletions
@@ -119,7 +119,7 @@ var View = Backbone.View.extend({
input.help = input.step_linked ? `${input.help}, ` : "";
input.help += `Output dataset '${connection.output_name}' from step ${parseInt(i) + 1}`;
input.step_linked = input.step_linked || [];
input.step_linked.push(step);
input.step_linked.push({ index: step.index, step_type: step.step_type });
}
});
});
@@ -314,31 +314,34 @@ var View = Backbone.View.extend({
/** Render job caching option */
_renderUseCachedJob: function() {
var extra_user_preferences = {};
if (Galaxy.user.attributes.preferences && 'extra_user_preferences' in Galaxy.user.attributes.preferences){
extra_user_preferences = JSON.parse(Galaxy.user.attributes.preferences.extra_user_preferences);
}
var display_use_cached_job_checkbox = 'use_cached_job|use_cached_job_checkbox' in extra_user_preferences ? extra_user_preferences['use_cached_job|use_cached_job_checkbox'] : false ;
this.display_use_cached_job_checkbox = display_use_cached_job_checkbox === 'true';
if (this.display_use_cached_job_checkbox){
var extra_user_preferences = {};
if (Galaxy.user.attributes.preferences && "extra_user_preferences" in Galaxy.user.attributes.preferences) {
extra_user_preferences = JSON.parse(Galaxy.user.attributes.preferences.extra_user_preferences);
}
var display_use_cached_job_checkbox =
"use_cached_job|use_cached_job_checkbox" in extra_user_preferences
? extra_user_preferences["use_cached_job|use_cached_job_checkbox"]
: false;
this.display_use_cached_job_checkbox = display_use_cached_job_checkbox === "true";
if (this.display_use_cached_job_checkbox) {
this.job_options_form = new Form({
cls: "ui-portlet-narrow",
title: "<b>Job re-use Options</b>",
inputs: [
{
type: "conditional",
name: "use_cached_job",
test_param: {
name: "check",
label: "BETA: Attempt to reuse jobs with identical parameters?",
type: "boolean",
value: "false",
help: "This may skip executing jobs that you have already run."
},
}
]
});
this._append(this.$steps, this.job_options_form.$el);
{
type: "conditional",
name: "use_cached_job",
test_param: {
name: "check",
label: "BETA: Attempt to reuse jobs with identical parameters?",
type: "boolean",
value: "false",
help: "This may skip executing jobs that you have already run."
}
}
]
});
this._append(this.$steps, this.job_options_form.$el);
}
},
@@ -542,8 +545,8 @@ var View = Backbone.View.extend({
batch: true
};
if (this.display_use_cached_job_checkbox) {
job_def['use_cached_job'] = this.job_options_form.data.create()["use_cached_job|check"] === 'true';
}
job_def["use_cached_job"] = this.job_options_form.data.create()["use_cached_job|check"] === "true";
}
var validated = true;
for (var i in this.forms) {
var form = this.forms[i];
@@ -179,13 +179,19 @@ var Node = Backbone.Model.extend({
// Remove active class
$(element).removeClass("toolForm-active");
},
set_tool_version: function() {
if (this.config_form) {
this.tool_version = this.config_form.version;
this.content_id = this.config_form.id;
}
},
init_field_data: function(data) {
if (data.type) {
this.type = data.type;
}
this.name = data.name;
this.config_form = data.config_form;
this.tool_version = this.config_form && this.config_form.version;
this.set_tool_version();
this.tool_state = data.tool_state;
this.errors = data.errors;
this.tooltip = data.tooltip ? data.tooltip : "";
@@ -263,7 +269,7 @@ var Node = Backbone.Model.extend({
});
this.tool_state = data.tool_state;
this.config_form = data.config_form;
this.tool_version = this.config_form && this.config_form.version;
this.set_tool_version();
this.errors = data.errors;
this.annotation = data.annotation;
this.label = data.label;
+29 -21
View File
@@ -327,27 +327,35 @@ class Bam(Binary):
def get_chunk(self, trans, dataset, offset=0, ck_size=None):
index_file = dataset.metadata.bam_index
with pysam.AlignmentFile(dataset.file_name, "rb", index_filename=index_file.file_name) as bamfile:
ck_size = 300 # 300 lines
ck_data = ""
header_line_count = 0
if offset == 0:
ck_data = bamfile.text.replace('\t', ' ')
header_line_count = bamfile.text.count('\n')
else:
bamfile.seek(offset)
for line_number, alignment in enumerate(bamfile) :
# return only Header lines if 'header_line_count' exceeds 'ck_size'
# FIXME: Can be problematic if bam has million lines of header
offset = bamfile.tell()
if (line_number + header_line_count) > ck_size:
break
else:
bamline = alignment.tostring(bamfile)
# Galaxy display each tag as separate column because 'tostring()' funcition put tabs in between each tag of tags column.
# Below code will remove spaces between each tag.
bamline_modified = ('\t').join(bamline.split()[:11] + [(' ').join(bamline.split()[11:])])
ck_data = "%s\n%s" % (ck_data, bamline_modified)
if not offset == -1:
try:
with pysam.AlignmentFile(dataset.file_name, "rb", index_filename=index_file.file_name) as bamfile:
ck_size = 300 # 300 lines
ck_data = ""
header_line_count = 0
if offset == 0:
ck_data = bamfile.text.replace('\t', ' ')
header_line_count = bamfile.text.count('\n')
else:
bamfile.seek(offset)
for line_number, alignment in enumerate(bamfile) :
# return only Header lines if 'header_line_count' exceeds 'ck_size'
# FIXME: Can be problematic if bam has million lines of header
offset = bamfile.tell()
if (line_number + header_line_count) > ck_size:
break
else:
bamline = alignment.tostring(bamfile)
# Galaxy display each tag as separate column because 'tostring()' funcition put tabs in between each tag of tags column.
# Below code will remove spaces between each tag.
bamline_modified = ('\t').join(bamline.split()[:11] + [(' ').join(bamline.split()[11:])])
ck_data = "%s\n%s" % (ck_data, bamline_modified)
except Exception as e:
offset = -1
ck_data = "Could not display BAM file, error was:\n%s" % e.message
else:
ck_data = ''
offset = -1
return dumps({'ck_data': util.unicodify(ck_data),
'offset': offset})