mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge 17.09 -> dev.
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user