Merge 17.09 -> dev.

This commit is contained in:
Dannon Baker
2018-01-08 09:29:27 -05:00
8 changed files with 88 additions and 68 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];
+20 -17
View File
@@ -149,23 +149,26 @@ var View = Backbone.View.extend({
});
}
// Job Re-use Options
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 use_cached_job = 'use_cached_job|use_cached_job_checkbox' in extra_user_preferences ? extra_user_preferences['use_cached_job|use_cached_job_checkbox'] : false ;
if (use_cached_job === 'true'){
options.inputs.push({
label: "BETA: Attempt to re-use jobs with identical parameters ?",
help: "This may skip executing jobs that you have already run",
name: "use_cached_job",
type: "select",
display: "radio",
ignore: "__ignore__",
value: "__ignore__",
options: [["No", false], ["Yes", true]],
});
// Job Re-use Options
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 use_cached_job =
"use_cached_job|use_cached_job_checkbox" in extra_user_preferences
? extra_user_preferences["use_cached_job|use_cached_job_checkbox"]
: false;
if (use_cached_job === "true") {
options.inputs.push({
label: "BETA: Attempt to re-use jobs with identical parameters ?",
help: "This may skip executing jobs that you have already run",
name: "use_cached_job",
type: "select",
display: "radio",
ignore: "__ignore__",
value: "__ignore__",
options: [["No", false], ["Yes", true]]
});
}
},
@@ -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})
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long