galaxy-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 15302 discussions
commit/galaxy-central: jmchilton: Add example tool with task splitting to tool functional framework tests.
by commits-noreply@bitbucket.org 28 Jan '14
by commits-noreply@bitbucket.org 28 Jan '14
28 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/0ab0eb81d982/
Changeset: 0ab0eb81d982
User: jmchilton
Date: 2014-01-28 21:34:26
Summary: Add example tool with task splitting to tool functional framework tests.
Enable task splitting in functional tests to test this. Specify tool_dir in samples tool_conf.xml so it doesn't need to be explicitly set in scripts/functional_tests.py.
Affected #: 3 files
diff -r 377e35b0263867f25e757f423a8735f1409fa9c4 -r 0ab0eb81d9828b0527d68f404a36acc64359f5f8 scripts/functional_tests.py
--- a/scripts/functional_tests.py
+++ b/scripts/functional_tests.py
@@ -223,8 +223,6 @@
tool_conf = os.path.join( framework_tool_dir, 'samples_tool_conf.xml' )
datatypes_conf_override = os.path.join( framework_tool_dir, 'sample_datatypes_conf.xml' )
test_dir = os.path.join( framework_tool_dir, 'test-data')
-
- tool_path = framework_tool_dir
else:
# Use tool_conf.xml toolbox.
tool_conf = 'tool_conf.xml'
@@ -373,6 +371,7 @@
use_heartbeat=False,
user_library_import_dir=user_library_import_dir,
master_api_key=master_api_key,
+ use_tasked_jobs=True,
)
if install_database_connection is not None:
kwargs[ 'install_database_connection' ] = install_database_connection
diff -r 377e35b0263867f25e757f423a8735f1409fa9c4 -r 0ab0eb81d9828b0527d68f404a36acc64359f5f8 test/functional/tools/parallelism.xml
--- /dev/null
+++ b/test/functional/tools/parallelism.xml
@@ -0,0 +1,20 @@
+<tool id="parallelism" name="Split file line-by-line and rebuild dataset">
+ <parallelism method="multi" split_inputs="input1" split_mode="to_size" split_size="1" merge_outputs="out_file1" />
+ <command>
+ cat $input1 > $out_file1
+ </command>
+ <inputs>
+ <param name="input1" type="data" label="Dataset"/>
+ </inputs>
+ <outputs>
+ <data name="out_file1" format="txt" />
+ </outputs>
+ <tests>
+ <test>
+ <param name="input1" value="simple_line_x2.txt"/>
+ <output name="out_file1" file="simple_line_x2.txt" />
+ </test>
+ </tests>
+ <help>
+ </help>
+</tool>
diff -r 377e35b0263867f25e757f423a8735f1409fa9c4 -r 0ab0eb81d9828b0527d68f404a36acc64359f5f8 test/functional/tools/samples_tool_conf.xml
--- a/test/functional/tools/samples_tool_conf.xml
+++ b/test/functional/tools/samples_tool_conf.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<toolbox>
+<toolbox tool_path="test/functional/tools"><tool file="upload.xml"/><tool file="simple_constructs.xml" /><tool file="composite.xml" />
@@ -13,6 +13,7 @@
<tool file="output_order.xml" /><tool file="disambiguate_repeats.xml" /><tool file="min_repeat.xml" />
+ <tool file="parallelism.xml" /><tool file="implicit_default_conds.xml" /><tool file="multi_data_param.xml" /></toolbox>
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: BjoernGruening: Add missing requirement tags.
by commits-noreply@bitbucket.org 28 Jan '14
by commits-noreply@bitbucket.org 28 Jan '14
28 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/44538b70d174/
Changeset: 44538b70d174
Branch: next-stable
User: BjoernGruening
Date: 2014-01-21 18:58:25
Summary: Add missing requirement tags.
Affected #: 1 file
diff -r 683e4bc2f85e0570ba0121858ed06b702943c9fd -r 44538b70d174dd36836a88123a865e1147c016b5 lib/galaxy/datatypes/converters/sam_to_bam.xml
--- a/lib/galaxy/datatypes/converters/sam_to_bam.xml
+++ b/lib/galaxy/datatypes/converters/sam_to_bam.xml
@@ -5,6 +5,9 @@
To fix this: (a) merge sam_to_bam tool in tools with this conversion (like fasta_to_len
conversion); and (b) define a datatype-specific way to set converter parameters.
-->
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements><command interpreter="python">sam_to_bam.py $input1 $output</command><inputs><param name="input1" type="data" format="sam" label="SAM file"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/584e7c70df72/
Changeset: 584e7c70df72
Branch: requirements
User: BjoernGruening
Date: 2014-01-21 18:57:47
Summary: Add missing requirement tags.
Affected #: 1 file
diff -r f04a1c3c060ed6bd4febfdd9e86ed3cc74cb810e -r 584e7c70df722b0c8217f71d441c942a4ae46d8c lib/galaxy/datatypes/converters/bam_to_bai.xml
--- a/lib/galaxy/datatypes/converters/bam_to_bai.xml
+++ b/lib/galaxy/datatypes/converters/bam_to_bai.xml
@@ -1,4 +1,7 @@
<tool id="CONVERTER_Bam_Bai_0" name="Bam to Bai" hidden="true">
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements><command>samtools index $input1 $output1</command><inputs><page>
@@ -10,4 +13,4 @@
</outputs><help></help>
-</tool>
\ No newline at end of file
+</tool>
https://bitbucket.org/galaxy/galaxy-central/commits/9a814bde0256/
Changeset: 9a814bde0256
Branch: requirements
User: BjoernGruening
Date: 2014-01-21 18:58:25
Summary: Add missing requirement tags.
Affected #: 1 file
diff -r 584e7c70df722b0c8217f71d441c942a4ae46d8c -r 9a814bde0256bb4bef40015c043dbc13cfba5975 lib/galaxy/datatypes/converters/sam_to_bam.xml
--- a/lib/galaxy/datatypes/converters/sam_to_bam.xml
+++ b/lib/galaxy/datatypes/converters/sam_to_bam.xml
@@ -5,6 +5,9 @@
To fix this: (a) merge sam_to_bam tool in tools with this conversion (like fasta_to_len
conversion); and (b) define a datatype-specific way to set converter parameters.
-->
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements><command interpreter="python">sam_to_bam.py $input1 $output</command><inputs><param name="input1" type="data" format="sam" label="SAM file"/>
https://bitbucket.org/galaxy/galaxy-central/commits/377e35b02638/
Changeset: 377e35b02638
User: natefoo
Date: 2014-01-28 21:39:53
Summary: Merged in BjoernGruening/galaxy-central-bgruening/requirements (pull request #304)
Add missing requirement tags.
Affected #: 2 files
diff -r 75fe55290794da839956effcfb4af6f7e6464b71 -r 377e35b0263867f25e757f423a8735f1409fa9c4 lib/galaxy/datatypes/converters/bam_to_bai.xml
--- a/lib/galaxy/datatypes/converters/bam_to_bai.xml
+++ b/lib/galaxy/datatypes/converters/bam_to_bai.xml
@@ -1,4 +1,7 @@
<tool id="CONVERTER_Bam_Bai_0" name="Bam to Bai" hidden="true">
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements><command>samtools index $input1 $output1</command><inputs><page>
@@ -10,4 +13,4 @@
</outputs><help></help>
-</tool>
\ No newline at end of file
+</tool>
diff -r 75fe55290794da839956effcfb4af6f7e6464b71 -r 377e35b0263867f25e757f423a8735f1409fa9c4 lib/galaxy/datatypes/converters/sam_to_bam.xml
--- a/lib/galaxy/datatypes/converters/sam_to_bam.xml
+++ b/lib/galaxy/datatypes/converters/sam_to_bam.xml
@@ -5,6 +5,9 @@
To fix this: (a) merge sam_to_bam tool in tools with this conversion (like fasta_to_len
conversion); and (b) define a datatype-specific way to set converter parameters.
-->
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements><command interpreter="python">sam_to_bam.py $input1 $output</command><inputs><param name="input1" type="data" format="sam" label="SAM file"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/3d4606e32372/
Changeset: 3d4606e32372
User: jmchilton
Date: 2014-01-28 17:35:54
Summary: Merge next-stable.
Affected #: 3 files
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 3d4606e3237245d09c235ac544b4632993934ef4 lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -926,10 +926,10 @@
query = query.order_by( HistoryDatasetAssociation.table.c.hid.asc() )
deleted = galaxy.util.string_as_bool_or_none( kwds.get( 'deleted', None ) )
if deleted is not None:
- query = query.filter( HistoryDatasetAssociation.deleted == bool( kwds['deleted'] ) )
+ query = query.filter( HistoryDatasetAssociation.deleted == deleted )
visible = galaxy.util.string_as_bool_or_none( kwds.get( 'visible', None ) )
if visible is not None:
- query = query.filter( HistoryDatasetAssociation.visible == bool( kwds['visible'] ) )
+ query = query.filter( HistoryDatasetAssociation.visible == visible )
if 'ids' in kwds:
ids = kwds['ids']
max_in_filter_length = kwds.get('max_in_filter_length', MAX_IN_FILTER_LENGTH)
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 3d4606e3237245d09c235ac544b4632993934ef4 static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1566,13 +1566,13 @@
.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.workflow-invocation-complete{border:solid 1px #6A6;border-left-width:5px;margin:10px 0;padding-left:5px}
-.icon-btn{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;border-radius:3px;border:1px solid rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.05);color:#555;cursor:pointer}
+.icon-btn{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}
.icon-btn:hover{background-color:white;color:maroon}
-.icon-btn.disabled{background-color:transparent;color:rgba(0,0,0,0.05)}
+.icon-btn.disabled{background-color:transparent;color:#f2f2f2}
.search-input .search-query{width:100%;padding-right:24px}
.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-23px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}
.search-input .search-clear:hover{color:#303030}
-#history-refresh-button,#history-options-button{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;padding:0px}
+#history-refresh-button,#history-options-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0px}
.history-panel [class$="messagesmall"]{margin:0px}
.history-panel .editable-text{border:solid transparent 1px}
.history-panel .editable-text:hover{cursor:pointer;border:1px dotted #999999}
@@ -1586,12 +1586,12 @@
.history-panel .history-controls .history-size{float:left}
.history-panel .history-controls .history-secondary-actions{float:right}.history-panel .history-controls .history-secondary-actions .icon-btn{margin-left:2px}
.history-panel .history-controls .quota-message{display:none;margin:8px 0px 5px 0px}
-.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;color:#555}
.history-panel .history-controls .tags-display label:after,.history-panel .history-controls .annotation-display label:after{content:':'}
.history-panel .history-controls .tags-display .select2-container{min-width:0px}.history-panel .history-controls .tags-display .select2-container .select2-choices{border-radius:3px}
.history-panel .history-controls .tags-display input{border-radius:3px}
.history-panel .history-controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-line}
-.history-panel .history-controls .annotation-display .annotation:empty{height:20px}
+.history-panel .history-controls .annotation-display .annotation:empty{height:22px}
.history-panel .history-controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.history-panel .history-controls .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.history-panel .history-controls .history-dataset-actions{display:none}.history-panel .history-controls .history-dataset-actions:before,.history-panel .history-controls .history-dataset-actions:after{content:" ";display:table;}
@@ -1608,28 +1608,33 @@
.dataset .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}
.dataset .dataset-padding{padding:6px 10px 6px 8px}
.dataset [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}
-.dataset .help-text{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .help-text{font-weight:normal;color:#555}
.dataset .dataset-selector{float:left;display:none;width:0px;margin:0 0 -6px 0;padding:5px 0 2px 8px;cursor:pointer;vertical-align:middle}
-.dataset .dataset-title-bar{cursor:pointer;padding:6px 10px 6px 8px}
+.dataset .dataset-title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}
.dataset .dataset-title-bar .dataset-title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}
-.dataset .dataset-primary-actions{float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
-.dataset .dataset-body{display:none;background-color:rgba(255,255,255,0.30000000000000004);padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
+.dataset .dataset-primary-actions{display:inline-block;float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-primary-actions .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-primary-actions .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
+.dataset .dataset-body{display:none;padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
.dataset .dataset-body label{margin:0px;padding:0px;font-weight:normal}
-.dataset .dataset-body .prompt{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .prompt{font-weight:normal;color:#555}
.dataset .dataset-body .prompt:after{content:':'}
.dataset .dataset-body .dataset-summary{margin-bottom:8px}.dataset .dataset-body .dataset-summary .dataset-blurb{margin-bottom:2px}
.dataset .dataset-body .dataset-summary .dataset-datatype,.dataset .dataset-body .dataset-summary .dataset-dbkey{display:inline}.dataset .dataset-body .dataset-summary .dataset-datatype .value,.dataset .dataset-body .dataset-summary .dataset-dbkey .value{font-weight:bold}
-.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;color:#555}
.dataset .dataset-body .dataset-summary .dataset-dbkey:after{content:' ';display:block;margin-bottom:8px}
.dataset .dataset-body .dataset-summary .dataset-info{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}.dataset .dataset-body .dataset-summary .dataset-info .value{white-space:pre-line}
.dataset .dataset-body .dataset-summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;overflow:auto;white-space:pre}
-.dataset .dataset-body .dataset-actions .left{float:left}.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
-.dataset .dataset-body .dataset-actions .left .icon-btn-group{margin-right:2px}.dataset .dataset-body .dataset-actions .left .icon-btn-group .icon-btn{margin-right:0}
+.dataset .dataset-body .dataset-actions .left{display:inline-block;float:left}.dataset .dataset-body .dataset-actions .left .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-body .dataset-actions .left .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-body .dataset-actions .left .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
.dataset .dataset-body .dataset-actions .left:not(:empty){margin-bottom:8px}
.dataset .dataset-body .dataset-actions .right{float:right}.dataset .dataset-body .dataset-actions .right .icon-btn{margin-left:2px}
.dataset .dataset-body .tags-display{display:none;margin-bottom:8px}.dataset .dataset-body .tags-display .select2-container{min-width:0px}.dataset .dataset-body .tags-display .select2-container .select2-choices{border-radius:3px}
.dataset .dataset-body .annotation-display{display:none;margin-bottom:8px}.dataset .dataset-body .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;white-space:pre-line}
-.dataset .dataset-body .annotation-display .annotation:empty{height:20px}
+.dataset .dataset-body .annotation-display .annotation:empty{height:22px}
.dataset .dataset-body .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.dataset .dataset-body .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.dataset .dataset-body .dataset-display-applications .display-application:last-child{margin-bottom:8px}
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 3d4606e3237245d09c235ac544b4632993934ef4 static/style/src/less/history.less
--- a/static/style/src/less/history.less
+++ b/static/style/src/less/history.less
@@ -20,12 +20,12 @@
//@icon-btn-border: transparent;
// big & dark style
-@icon-btn-size: 20px;
+@icon-btn-size: 22px;
@icon-btn-margin: 2px;
-@icon-btn-color: #555;
+@icon-btn-color: @btn-default-color;
//@icon-btn-bg: transparent;
-@icon-btn-bg: rgba( 0, 0, 0, 0.05 );
-@icon-btn-border: rgba( 0, 0, 0, 0.1 );
+@icon-btn-bg: @btn-default-bg;
+@icon-btn-border: @btn-default-border;
.icon-btn {
display : inline-block;
@@ -178,8 +178,6 @@
margin: 0px;
padding: 0px;
font-weight: normal;
- font-style: italic;
- font-size: 90%;
color: #555;
}
label:after {
@@ -300,8 +298,8 @@
.help-text {
font-weight: normal;
- font-style: italic;
- font-size: 90%;
+ // font-style: italic;
+ // font-size: 90%;
color: #555;
}
@@ -320,6 +318,7 @@
.dataset-title-bar {
cursor: pointer;
+ outline: none;
.dataset-padding;
.dataset-state-icon {
@@ -335,6 +334,7 @@
}
.dataset-primary-actions {
+ .icon-btn-group();
float: right;
margin: @spacing-top @spacing-right 0;
.icon-btn {
@@ -344,7 +344,7 @@
.dataset-body {
display: none;
- background-color: fadeout( white, 70% );
+ // background-color: fadeout( white, 70% );
.dataset-padding;
[class$=messagesmall] {
@@ -401,16 +401,17 @@
.dataset-actions {
.left {
+ .icon-btn-group();
float: left;
.icon-btn {
margin-right: @icon-btn-margin;
}
- .icon-btn-group {
- margin-right: @icon-btn-margin;
- .icon-btn {
- margin-right: 0;
- }
- }
+ //.icon-btn-group {
+ // margin-right: @icon-btn-margin;
+ // .icon-btn {
+ // margin-right: 0;
+ // }
+ //}
&:not(:empty) {
// can't use :empty on dataset-actions - will always have left & right, so
// add gap to left (more likely to have children)
https://bitbucket.org/galaxy/galaxy-central/commits/75fe55290794/
Changeset: 75fe55290794
User: jmchilton
Date: 2014-01-28 17:36:28
Summary: Merge.
Affected #: 7 files
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 lib/galaxy/web/framework/helpers/grids.py
--- a/lib/galaxy/web/framework/helpers/grids.py
+++ b/lib/galaxy/web/framework/helpers/grids.py
@@ -24,6 +24,7 @@
template = "grid_base.mako"
async_template = "grid_base_async.mako"
use_async = False
+ use_hide_message = True
global_actions = []
columns = []
operations = []
@@ -286,6 +287,7 @@
status = status,
message = message,
use_panels=self.use_panels,
+ use_hide_message=self.use_hide_message,
advanced_search=self.advanced_search,
show_item_checkboxes = ( self.show_item_checkboxes or
kwargs.get( 'show_item_checkboxes', '' ) in [ 'True', 'true' ] ),
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 lib/tool_shed/grids/admin_grids.py
--- a/lib/tool_shed/grids/admin_grids.py
+++ b/lib/tool_shed/grids/admin_grids.py
@@ -508,6 +508,7 @@
model_class = model.RepositoryMetadata
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
IdColumn( "Id",
visible=False,
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 lib/tool_shed/grids/repository_grids.py
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -236,6 +236,7 @@
model_class = model.Repository
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
NameColumn( "Name",
key="name",
@@ -344,6 +345,7 @@
model_class = model.RepositoryMetadata
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "Repository.name"
+ use_hide_message = False
columns = [
NameColumn( "Repository name",
link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ),
@@ -652,7 +654,7 @@
columns = [ col for col in RepositoriesMissingToolTestComponentsGrid.columns ]
operations = []
use_paging = False
-
+
def build_initial_query( self, trans, **kwd ):
# First get all repositories that the current user is authorized to update.
username = trans.user.username
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 lib/tool_shed/grids/repository_review_grids.py
--- a/lib/tool_shed/grids/repository_review_grids.py
+++ b/lib/tool_shed/grids/repository_review_grids.py
@@ -36,6 +36,7 @@
model_class = model.Component
template='/webapps/tool_shed/repository_review/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
NameColumn( "Name",
key="Component.name",
@@ -333,6 +334,7 @@
model_class = model.RepositoryReview
template='/webapps/tool_shed/repository_review/grid.mako'
default_sort_key = 'repository_id'
+ use_hide_message = False
columns = [
RepositoryNameColumn( "Repository Name",
model_class=model.Repository,
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 static/scripts/galaxy.grids.js
--- a/static/scripts/galaxy.grids.js
+++ b/static/scripts/galaxy.grids.js
@@ -194,7 +194,9 @@
// update message
if (options.message) {
$('#grid-message').html(this.template_message(options));
- setTimeout( function() { $('#grid-message').html(''); }, 5000);
+ if (options.use_hide_message) {
+ setTimeout( function() { $('#grid-message').html(''); }, 5000);
+ }
}
// configure elements
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 static/scripts/packed/galaxy.grids.js
--- a/static/scripts/packed/galaxy.grids.js
+++ b/static/scripts/packed/galaxy.grids.js
@@ -1,1 +1,1 @@
-jQuery.ajaxSettings.traditional=true;define(["mvc/ui"],function(){var a=Backbone.Model.extend({defaults:{url_base:"",async:false,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:false,advanced_search:false,cur_page:1,num_pages:1,operation:undefined,item_ids:undefined},can_async_op:function(c){return _.indexOf(this.attributes.async_ops,c)!==-1},add_filter:function(g,h,d){if(d){var e=this.attributes.filters[g],c;if(e===null||e===undefined){c=h}else{if(typeof(e)=="string"){if(e=="All"){c=h}else{var f=[];f[0]=e;f[1]=h;c=f}}else{c=e;c.push(h)}}this.attributes.filters[g]=c}else{this.attributes.filters[g]=h}},remove_filter:function(d,g){var c=this.attributes.filters[d];if(c===null||c===undefined){return false}var f=true;if(typeof(c)==="string"){if(c=="All"){f=false}else{delete this.attributes.filters[d]}}else{var e=_.indexOf(c,g);if(e!==-1){c.splice(e,1)}else{f=false}}return f},get_url_data:function(){var c={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};if(this.attributes.operation){c.operation=this.attributes.operation}if(this.attributes.item_ids){c.id=this.attributes.item_ids}var d=this;_.each(_.pairs(d.attributes.filters),function(e){c["f-"+e[0]]=e[1]});return c},get_url:function(c){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(c)}});var b=Backbone.View.extend({grid:null,initialize:function(c){this.init_grid(c);this.init_grid_controls();$("input[type=text]").each(function(){$(this).click(function(){$(this).select()}).keyup(function(){$(this).css("font-style","normal")})})},handle_refresh:function(c){if(c){if($.inArray("history",c)>-1){if(top.Galaxy&&top.Galaxy.currHistoryPanel){top.Galaxy.currHistoryPanel.loadCurrentHistory()}}}},init_grid:function(e){this.grid=new a(e);var d=this.grid.attributes;this.handle_refresh(d.refresh_frames);var c=this.grid.get("url_base");c=c.replace(/^.*\/\/[^\/]+/,"");this.grid.set("url_base",c);$("#grid-table-body").html(this.template_body(d));$("#grid-table-footer").html(this.template_footer(d));if(d.message){$("#grid-message").html(this.template_message(d));setTimeout(function(){$("#grid-message").html("")},5000)}this.init_grid_elements();init_refresh_on_change()},init_grid_controls:function(){$(".submit-image").each(function(){$(this).mousedown(function(){$(this).addClass("gray-background")});$(this).mouseup(function(){$(this).removeClass("gray-background")})});var c=this;$(".sort-link").each(function(){$(this).click(function(){c.set_sort_condition($(this).attr("sort_key"));return false})});$(".categorical-filter > a").each(function(){$(this).click(function(){c.set_categorical_filter($(this).attr("filter_key"),$(this).attr("filter_val"));return false})});$(".text-filter-form").each(function(){$(this).submit(function(){var g=$(this).attr("column_key");var f=$("#input-"+g+"-filter");var h=f.val();f.val("");c.add_filter_condition(g,h);return false})});var d=$("#input-tags-filter");if(d.length){d.autocomplete(this.grid.history_tag_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}var e=$("#input-name-filter");if(e.length){e.autocomplete(this.grid.history_name_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}$(".advanced-search-toggle").each(function(){$(this).click(function(){$("#standard-search").slideToggle("fast");$("#advanced-search").slideToggle("fast");return false})})},init_grid_elements:function(){$(".grid").each(function(){var s=$(this).find("input.grid-row-select-checkbox");var r=$(this).find("span.grid-selected-count");var t=function(){r.text($(s).filter(":checked").length)};$(s).each(function(){$(this).change(t)});t()});if($(".community_rating_star").length!==0){$(".community_rating_star").rating({})}var q=this.grid.attributes;var p=this;$(".page-link > a").each(function(){$(this).click(function(){p.set_page($(this).attr("page_num"));return false})});$(".use-inbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href"),inbound:true});return false})});$(".use-outbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href")});return false})});var f=q.items.length;if(f==0){return}for(var k in q.items){var o=q.items[k];var l=$("#grid-"+k+"-popup");l.off();var d=new PopupMenu(l);for(var h in q.operations){var e=q.operations[h];var m=e.label;var c=o.operation_config[m];var g=o.encode_id;if(c.allowed&&e.allow_popup){var n={html:e.label,href:c.url_args,target:c.target,confirmation_text:e.confirm,inbound:e.inbound};n.func=function(t){t.preventDefault();var s=$(t.target).html();var r=this.findItemByHtml(s);p.execute(r)};d.addItem(n)}}}},add_filter_condition:function(e,g){if(g===""){return false}this.grid.add_filter(e,g,true);var f=$("<span>"+g+"<a href='javascript:void(0);'><span class='delete-search-icon' /></span></a>");f.addClass("text-filter-val");var d=this;f.click(function(){d.grid.remove_filter(e,g);$(this).remove();d.go_page_one();d.execute()});var c=$("#"+e+"-filtering-criteria");c.append(f);this.go_page_one();this.execute()},set_sort_condition:function(h){var g=this.grid.get("sort_key");var f=h;if(g.indexOf(h)!==-1){if(g.substring(0,1)!=="-"){f="-"+h}else{}}$(".sort-arrow").remove();var e=(f.substring(0,1)=="-")?"↑":"↓";var c=$("<span>"+e+"</span>").addClass("sort-arrow");var d=$("#"+h+"-header");d.append(c);this.grid.set("sort_key",f);this.go_page_one();this.execute()},set_categorical_filter:function(e,g){var d=this.grid.get("categorical_filters")[e],f=this.grid.get("filters")[e];var c=this;$("."+e+"-filter").each(function(){var m=$.trim($(this).text());var k=d[m];var l=k[e];if(l==g){$(this).empty();$(this).addClass("current-filter");$(this).append(m)}else{if(l==f){$(this).empty();var h=$("<a href='#'>"+m+"</a>");h.click(function(){c.set_categorical_filter(e,l)});$(this).removeClass("current-filter");$(this).append(h)}}});this.grid.add_filter(e,g);this.go_page_one();this.execute()},set_page:function(c){var d=this;$(".page-link").each(function(){var k=$(this).attr("id"),g=parseInt(k.split("-")[2],10),e=d.grid.get("cur_page"),h;if(g===c){h=$(this).children().text();$(this).empty();$(this).addClass("inactive-link");$(this).text(h)}else{if(g===e){h=$(this).text();$(this).empty();$(this).removeClass("inactive-link");var f=$("<a href='#'>"+h+"</a>");f.click(function(){d.set_page(g)});$(this).append(f)}}});if(c==="all"){this.grid.set("cur_page",c)}else{this.grid.set("cur_page",parseInt(c,10))}this.execute()},submit_operation:function(f,g){var e=$('input[name="id"]:checked').length;if(!e>0){return false}var d=$(f).val();var c=[];$("input[name=id]:checked").each(function(){c.push($(this).val())});this.execute({operation:d,id:c,confirmation_text:g});return true},execute:function(n){var f=null;var e=null;var g=null;var c=null;var m=null;if(n){e=n.href;g=n.operation;f=n.id;c=n.confirmation_text;m=n.inbound;if(e!==undefined&&e.indexOf("operation=")!=-1){var l=e.split("?");if(l.length>1){var k=l[1];var d=k.split("&");for(var h=0;h<d.length;h++){if(d[h].indexOf("operation")!=-1){g=d[h].split("=")[1];g=g.replace(/\+/g," ")}else{if(d[h].indexOf("id")!=-1){f=d[h].split("=")[1]}}}}}}if(g&&f){if(c&&c!=""&&c!="None"&&c!="null"){if(!confirm(c)){return false}}g=g.toLowerCase();this.grid.set({operation:g,item_ids:f});if(this.grid.can_async_op(g)){this.update_grid()}else{this.go_to(m,"")}return false}if(e){this.go_to(m,e);return false}if(this.grid.get("async")){this.update_grid()}else{this.go_to(m,"")}return false},go_to:function(f,d){var e=this.grid.get("async");this.grid.set("async",false);advanced_search=$("#advanced-search").is(":visible");this.grid.set("advanced_search",advanced_search);if(!d){d=this.grid.get("url_base")+"?"+$.param(this.grid.get_url_data())}this.grid.set({operation:undefined,item_ids:undefined,async:e});if(f){var c=$(".grid-header").closest(".inbound");if(c.length!==0){c.load(d);return}}window.location=d},update_grid:function(){var d=(this.grid.get("operation")?"POST":"GET");$(".loading-elt-overlay").show();var c=this;$.ajax({type:d,url:c.grid.get("url_base"),data:c.grid.get_url_data(),error:function(e){alert("Grid refresh failed")},success:function(e){c.init_grid($.parseJSON(e));$(".loading-elt-overlay").hide()},complete:function(){c.grid.set({operation:undefined,item_ids:undefined})}})},check_all_items:function(){var c=document.getElementById("check_all"),d=document.getElementsByTagName("input"),f=0,e;if(c.checked===true){for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=true;f++}}}else{for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=false}}}this.init_grid_elements()},go_page_one:function(){var c=this.grid.get("cur_page");if(c!==null&&c!==undefined&&c!=="all"){this.grid.set("cur_page",1)}},template_body:function(t){var m="";var u=0;var g=t.items.length;if(g==0){m+='<tr><td colspan="100"><em>No Items</em></td></tr>';u=1}for(var h in t.items){var r=t.items[h];var c=r.encode_id;var k="grid-"+h+"-popup";m+="<tr ";if(t.current_item_id==r.id){m+='class="current"'}m+=">";if(t.show_item_checkboxes){m+='<td style="width: 1.5em;"><input type="checkbox" name="id" value="'+c+'" id="'+c+'" class="grid-row-select-checkbox" /></td>'}for(j in t.columns){var f=t.columns[j];if(f.visible){var e="";if(f.nowrap){e='style="white-space:nowrap;"'}var s=r.column_config[f.label];var l=s.link;var n=s.value;var q=s.inbound;if(jQuery.type(n)==="string"){n=n.replace(/\/\//g,"/")}var d="";var p="";if(f.attach_popup){d="grid-"+h+"-popup";p="menubutton";if(l!=""){p+=" split"}p+=" popup"}m+="<td "+e+">";if(l){if(t.operations.length!=0){m+='<div id="'+d+'" class="'+p+'" style="float: left;">'}var o="";if(q){o="use-inbound"}else{o="use-outbound"}m+='<a class="label '+o+'" href="'+l+'" onclick="return false;">'+n+"</a>";if(t.operations.length!=0){m+="</div>"}}else{m+='<div id="'+d+'" class="'+p+'"><label id="'+f.label_id_prefix+c+'" for="'+c+'">'+n+"</label></div>"}m+="</td>"}}m+="</tr>";u++}return m},template_footer:function(q){var m="";if(q.use_paging&&q.num_pages>1){var o=q.num_page_links;var c=q.cur_page_num;var p=q.num_pages;var l=o/2;var k=c-l;var g=0;if(k==0){k=1;g=l-(c-k)}var f=l+g;var e=c+f;if(e<=p){max_offset=0}else{e=p;max_offset=f-(e+1-c)}if(max_offset!=0){k-=max_offset;if(k<1){k=1}}m+='<tr id="page-links-row">';if(q.show_item_checkboxes){m+="<td></td>"}m+='<td colspan="100"><span id="page-link-container">Page:';if(k>1){m+='<span class="page-link" id="page-link-1"><a href="'+this.grid.get_url({page:n})+'" page_num="1" onclick="return false;">1</a></span> ...'}for(var n=k;n<e+1;n++){if(n==q.cur_page_num){m+='<span class="page-link inactive-link" id="page-link-'+n+'">'+n+"</span>"}else{m+='<span class="page-link" id="page-link-'+n+'"><a href="'+this.grid.get_url({page:n})+'" onclick="return false;" page_num="'+n+'">'+n+"</a></span>"}}if(e<p){m+='...<span class="page-link" id="page-link-'+p+'"><a href="'+this.grid.get_url({page:p})+'" onclick="return false;" page_num="'+p+'">'+p+"</a></span>"}m+="</span>";m+='<span class="page-link" id="show-all-link-span"> | <a href="'+this.grid.get_url({page:"all"})+'" onclick="return false;" page_num="all">Show All</a></span></td></tr>'}if(q.show_item_checkboxes){m+='<tr><input type="hidden" id="operation" name="operation" value=""><td></td><td colspan="100">For <span class="grid-selected-count"></span> selected '+q.get_class_plural+": ";for(i in q.operations){var d=q.operations[i];if(d.allow_multiple){m+='<input type="button" value="'+d.label+'" class="action-button" onclick="gridView.submit_operation(this, \''+d.confirm+"')\"> "}}m+="</td></tr>"}var h=false;for(i in q.operations){if(q.operations[i].global_operation){h=true;break}}if(h){m+='<tr><td colspan="100">';for(i in q.operations){var d=q.operations[i];if(d.global_operation){m+='<a class="action-button" href="'+d.global_operation+'">'+d.label+"</a>"}}m+="</td></tr>"}if(q.legend){m+='<tr><td colspan="100">'+q.legend+"</td></tr>"}return m},template_message:function(c){return'<p><div class="'+c.status+'message transient-message">'+c.message+'</div><div style="clear: both"></div></p>'}});return{Grid:a,GridView:b}});
\ No newline at end of file
+jQuery.ajaxSettings.traditional=true;define(["mvc/ui"],function(){var a=Backbone.Model.extend({defaults:{url_base:"",async:false,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:false,advanced_search:false,cur_page:1,num_pages:1,operation:undefined,item_ids:undefined},can_async_op:function(c){return _.indexOf(this.attributes.async_ops,c)!==-1},add_filter:function(g,h,d){if(d){var e=this.attributes.filters[g],c;if(e===null||e===undefined){c=h}else{if(typeof(e)=="string"){if(e=="All"){c=h}else{var f=[];f[0]=e;f[1]=h;c=f}}else{c=e;c.push(h)}}this.attributes.filters[g]=c}else{this.attributes.filters[g]=h}},remove_filter:function(d,g){var c=this.attributes.filters[d];if(c===null||c===undefined){return false}var f=true;if(typeof(c)==="string"){if(c=="All"){f=false}else{delete this.attributes.filters[d]}}else{var e=_.indexOf(c,g);if(e!==-1){c.splice(e,1)}else{f=false}}return f},get_url_data:function(){var c={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};if(this.attributes.operation){c.operation=this.attributes.operation}if(this.attributes.item_ids){c.id=this.attributes.item_ids}var d=this;_.each(_.pairs(d.attributes.filters),function(e){c["f-"+e[0]]=e[1]});return c},get_url:function(c){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(c)}});var b=Backbone.View.extend({grid:null,initialize:function(c){this.init_grid(c);this.init_grid_controls();$("input[type=text]").each(function(){$(this).click(function(){$(this).select()}).keyup(function(){$(this).css("font-style","normal")})})},handle_refresh:function(c){if(c){if($.inArray("history",c)>-1){if(top.Galaxy&&top.Galaxy.currHistoryPanel){top.Galaxy.currHistoryPanel.loadCurrentHistory()}}}},init_grid:function(e){this.grid=new a(e);var d=this.grid.attributes;this.handle_refresh(d.refresh_frames);var c=this.grid.get("url_base");c=c.replace(/^.*\/\/[^\/]+/,"");this.grid.set("url_base",c);$("#grid-table-body").html(this.template_body(d));$("#grid-table-footer").html(this.template_footer(d));if(d.message){$("#grid-message").html(this.template_message(d));if(d.use_hide_message){setTimeout(function(){$("#grid-message").html("")},5000)}}this.init_grid_elements();init_refresh_on_change()},init_grid_controls:function(){$(".submit-image").each(function(){$(this).mousedown(function(){$(this).addClass("gray-background")});$(this).mouseup(function(){$(this).removeClass("gray-background")})});var c=this;$(".sort-link").each(function(){$(this).click(function(){c.set_sort_condition($(this).attr("sort_key"));return false})});$(".categorical-filter > a").each(function(){$(this).click(function(){c.set_categorical_filter($(this).attr("filter_key"),$(this).attr("filter_val"));return false})});$(".text-filter-form").each(function(){$(this).submit(function(){var g=$(this).attr("column_key");var f=$("#input-"+g+"-filter");var h=f.val();f.val("");c.add_filter_condition(g,h);return false})});var d=$("#input-tags-filter");if(d.length){d.autocomplete(this.grid.history_tag_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}var e=$("#input-name-filter");if(e.length){e.autocomplete(this.grid.history_name_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}$(".advanced-search-toggle").each(function(){$(this).click(function(){$("#standard-search").slideToggle("fast");$("#advanced-search").slideToggle("fast");return false})})},init_grid_elements:function(){$(".grid").each(function(){var s=$(this).find("input.grid-row-select-checkbox");var r=$(this).find("span.grid-selected-count");var t=function(){r.text($(s).filter(":checked").length)};$(s).each(function(){$(this).change(t)});t()});if($(".community_rating_star").length!==0){$(".community_rating_star").rating({})}var q=this.grid.attributes;var p=this;$(".page-link > a").each(function(){$(this).click(function(){p.set_page($(this).attr("page_num"));return false})});$(".use-inbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href"),inbound:true});return false})});$(".use-outbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href")});return false})});var f=q.items.length;if(f==0){return}for(var k in q.items){var o=q.items[k];var l=$("#grid-"+k+"-popup");l.off();var d=new PopupMenu(l);for(var h in q.operations){var e=q.operations[h];var m=e.label;var c=o.operation_config[m];var g=o.encode_id;if(c.allowed&&e.allow_popup){var n={html:e.label,href:c.url_args,target:c.target,confirmation_text:e.confirm,inbound:e.inbound};n.func=function(t){t.preventDefault();var s=$(t.target).html();var r=this.findItemByHtml(s);p.execute(r)};d.addItem(n)}}}},add_filter_condition:function(e,g){if(g===""){return false}this.grid.add_filter(e,g,true);var f=$("<span>"+g+"<a href='javascript:void(0);'><span class='delete-search-icon' /></span></a>");f.addClass("text-filter-val");var d=this;f.click(function(){d.grid.remove_filter(e,g);$(this).remove();d.go_page_one();d.execute()});var c=$("#"+e+"-filtering-criteria");c.append(f);this.go_page_one();this.execute()},set_sort_condition:function(h){var g=this.grid.get("sort_key");var f=h;if(g.indexOf(h)!==-1){if(g.substring(0,1)!=="-"){f="-"+h}else{}}$(".sort-arrow").remove();var e=(f.substring(0,1)=="-")?"↑":"↓";var c=$("<span>"+e+"</span>").addClass("sort-arrow");var d=$("#"+h+"-header");d.append(c);this.grid.set("sort_key",f);this.go_page_one();this.execute()},set_categorical_filter:function(e,g){var d=this.grid.get("categorical_filters")[e],f=this.grid.get("filters")[e];var c=this;$("."+e+"-filter").each(function(){var m=$.trim($(this).text());var k=d[m];var l=k[e];if(l==g){$(this).empty();$(this).addClass("current-filter");$(this).append(m)}else{if(l==f){$(this).empty();var h=$("<a href='#'>"+m+"</a>");h.click(function(){c.set_categorical_filter(e,l)});$(this).removeClass("current-filter");$(this).append(h)}}});this.grid.add_filter(e,g);this.go_page_one();this.execute()},set_page:function(c){var d=this;$(".page-link").each(function(){var k=$(this).attr("id"),g=parseInt(k.split("-")[2],10),e=d.grid.get("cur_page"),h;if(g===c){h=$(this).children().text();$(this).empty();$(this).addClass("inactive-link");$(this).text(h)}else{if(g===e){h=$(this).text();$(this).empty();$(this).removeClass("inactive-link");var f=$("<a href='#'>"+h+"</a>");f.click(function(){d.set_page(g)});$(this).append(f)}}});if(c==="all"){this.grid.set("cur_page",c)}else{this.grid.set("cur_page",parseInt(c,10))}this.execute()},submit_operation:function(f,g){var e=$('input[name="id"]:checked').length;if(!e>0){return false}var d=$(f).val();var c=[];$("input[name=id]:checked").each(function(){c.push($(this).val())});this.execute({operation:d,id:c,confirmation_text:g});return true},execute:function(n){var f=null;var e=null;var g=null;var c=null;var m=null;if(n){e=n.href;g=n.operation;f=n.id;c=n.confirmation_text;m=n.inbound;if(e!==undefined&&e.indexOf("operation=")!=-1){var l=e.split("?");if(l.length>1){var k=l[1];var d=k.split("&");for(var h=0;h<d.length;h++){if(d[h].indexOf("operation")!=-1){g=d[h].split("=")[1];g=g.replace(/\+/g," ")}else{if(d[h].indexOf("id")!=-1){f=d[h].split("=")[1]}}}}}}if(g&&f){if(c&&c!=""&&c!="None"&&c!="null"){if(!confirm(c)){return false}}g=g.toLowerCase();this.grid.set({operation:g,item_ids:f});if(this.grid.can_async_op(g)){this.update_grid()}else{this.go_to(m,"")}return false}if(e){this.go_to(m,e);return false}if(this.grid.get("async")){this.update_grid()}else{this.go_to(m,"")}return false},go_to:function(f,d){var e=this.grid.get("async");this.grid.set("async",false);advanced_search=$("#advanced-search").is(":visible");this.grid.set("advanced_search",advanced_search);if(!d){d=this.grid.get("url_base")+"?"+$.param(this.grid.get_url_data())}this.grid.set({operation:undefined,item_ids:undefined,async:e});if(f){var c=$(".grid-header").closest(".inbound");if(c.length!==0){c.load(d);return}}window.location=d},update_grid:function(){var d=(this.grid.get("operation")?"POST":"GET");$(".loading-elt-overlay").show();var c=this;$.ajax({type:d,url:c.grid.get("url_base"),data:c.grid.get_url_data(),error:function(e){alert("Grid refresh failed")},success:function(e){c.init_grid($.parseJSON(e));$(".loading-elt-overlay").hide()},complete:function(){c.grid.set({operation:undefined,item_ids:undefined})}})},check_all_items:function(){var c=document.getElementById("check_all"),d=document.getElementsByTagName("input"),f=0,e;if(c.checked===true){for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=true;f++}}}else{for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=false}}}this.init_grid_elements()},go_page_one:function(){var c=this.grid.get("cur_page");if(c!==null&&c!==undefined&&c!=="all"){this.grid.set("cur_page",1)}},template_body:function(t){var m="";var u=0;var g=t.items.length;if(g==0){m+='<tr><td colspan="100"><em>No Items</em></td></tr>';u=1}for(var h in t.items){var r=t.items[h];var c=r.encode_id;var k="grid-"+h+"-popup";m+="<tr ";if(t.current_item_id==r.id){m+='class="current"'}m+=">";if(t.show_item_checkboxes){m+='<td style="width: 1.5em;"><input type="checkbox" name="id" value="'+c+'" id="'+c+'" class="grid-row-select-checkbox" /></td>'}for(j in t.columns){var f=t.columns[j];if(f.visible){var e="";if(f.nowrap){e='style="white-space:nowrap;"'}var s=r.column_config[f.label];var l=s.link;var n=s.value;var q=s.inbound;if(jQuery.type(n)==="string"){n=n.replace(/\/\//g,"/")}var d="";var p="";if(f.attach_popup){d="grid-"+h+"-popup";p="menubutton";if(l!=""){p+=" split"}p+=" popup"}m+="<td "+e+">";if(l){if(t.operations.length!=0){m+='<div id="'+d+'" class="'+p+'" style="float: left;">'}var o="";if(q){o="use-inbound"}else{o="use-outbound"}m+='<a class="label '+o+'" href="'+l+'" onclick="return false;">'+n+"</a>";if(t.operations.length!=0){m+="</div>"}}else{m+='<div id="'+d+'" class="'+p+'"><label id="'+f.label_id_prefix+c+'" for="'+c+'">'+n+"</label></div>"}m+="</td>"}}m+="</tr>";u++}return m},template_footer:function(q){var m="";if(q.use_paging&&q.num_pages>1){var o=q.num_page_links;var c=q.cur_page_num;var p=q.num_pages;var l=o/2;var k=c-l;var g=0;if(k==0){k=1;g=l-(c-k)}var f=l+g;var e=c+f;if(e<=p){max_offset=0}else{e=p;max_offset=f-(e+1-c)}if(max_offset!=0){k-=max_offset;if(k<1){k=1}}m+='<tr id="page-links-row">';if(q.show_item_checkboxes){m+="<td></td>"}m+='<td colspan="100"><span id="page-link-container">Page:';if(k>1){m+='<span class="page-link" id="page-link-1"><a href="'+this.grid.get_url({page:n})+'" page_num="1" onclick="return false;">1</a></span> ...'}for(var n=k;n<e+1;n++){if(n==q.cur_page_num){m+='<span class="page-link inactive-link" id="page-link-'+n+'">'+n+"</span>"}else{m+='<span class="page-link" id="page-link-'+n+'"><a href="'+this.grid.get_url({page:n})+'" onclick="return false;" page_num="'+n+'">'+n+"</a></span>"}}if(e<p){m+='...<span class="page-link" id="page-link-'+p+'"><a href="'+this.grid.get_url({page:p})+'" onclick="return false;" page_num="'+p+'">'+p+"</a></span>"}m+="</span>";m+='<span class="page-link" id="show-all-link-span"> | <a href="'+this.grid.get_url({page:"all"})+'" onclick="return false;" page_num="all">Show All</a></span></td></tr>'}if(q.show_item_checkboxes){m+='<tr><input type="hidden" id="operation" name="operation" value=""><td></td><td colspan="100">For <span class="grid-selected-count"></span> selected '+q.get_class_plural+": ";for(i in q.operations){var d=q.operations[i];if(d.allow_multiple){m+='<input type="button" value="'+d.label+'" class="action-button" onclick="gridView.submit_operation(this, \''+d.confirm+"')\"> "}}m+="</td></tr>"}var h=false;for(i in q.operations){if(q.operations[i].global_operation){h=true;break}}if(h){m+='<tr><td colspan="100">';for(i in q.operations){var d=q.operations[i];if(d.global_operation){m+='<a class="action-button" href="'+d.global_operation+'">'+d.label+"</a>"}}m+="</td></tr>"}if(q.legend){m+='<tr><td colspan="100">'+q.legend+"</td></tr>"}return m},template_message:function(c){return'<p><div class="'+c.status+'message transient-message">'+c.message+'</div><div style="clear: both"></div></p>'}});return{Grid:a,GridView:b}});
\ No newline at end of file
diff -r 3d4606e3237245d09c235ac544b4632993934ef4 -r 75fe55290794da839956effcfb4af6f7e6464b71 templates/grid_base.mako
--- a/templates/grid_base.mako
+++ b/templates/grid_base.mako
@@ -64,6 +64,7 @@
'legend' : grid.legend,
'current_item_id' : False,
'use_panels' : context.get('use_panels'),
+ 'use_hide_message' : grid.use_hide_message,
'insert' : insert,
'default_filter_dict' : default_filter_dict,
'advanced_search' : advanced_search,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jmchilton: Yet another fix for 714f5b1 (history contents API)...
by commits-noreply@bitbucket.org 28 Jan '14
by commits-noreply@bitbucket.org 28 Jan '14
28 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/683e4bc2f85e/
Changeset: 683e4bc2f85e
Branch: next-stable
User: jmchilton
Date: 2014-01-28 17:34:44
Summary: Yet another fix for 714f5b1 (history contents API)...
Fix history contents API when setting visible and/or deleted.
Affected #: 1 file
diff -r 153caa28d992ef8897b149b25515b4c089a264eb -r 683e4bc2f85e0570ba0121858ed06b702943c9fd lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -926,10 +926,10 @@
query = query.order_by( HistoryDatasetAssociation.table.c.hid.asc() )
deleted = galaxy.util.string_as_bool_or_none( kwds.get( 'deleted', None ) )
if deleted is not None:
- query = query.filter( HistoryDatasetAssociation.deleted == bool( kwds['deleted'] ) )
+ query = query.filter( HistoryDatasetAssociation.deleted == deleted )
visible = galaxy.util.string_as_bool_or_none( kwds.get( 'visible', None ) )
if visible is not None:
- query = query.filter( HistoryDatasetAssociation.visible == bool( kwds['visible'] ) )
+ query = query.filter( HistoryDatasetAssociation.visible == visible )
if 'ids' in kwds:
ids = kwds['ids']
max_in_filter_length = kwds.get('max_in_filter_length', MAX_IN_FILTER_LENGTH)
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: guerler: Grids: Option to pick between persistent and transient messages
by commits-noreply@bitbucket.org 28 Jan '14
by commits-noreply@bitbucket.org 28 Jan '14
28 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/66e81c37bb56/
Changeset: 66e81c37bb56
User: guerler
Date: 2014-01-28 18:26:40
Summary: Grids: Option to pick between persistent and transient messages
Affected #: 7 files
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 lib/galaxy/web/framework/helpers/grids.py
--- a/lib/galaxy/web/framework/helpers/grids.py
+++ b/lib/galaxy/web/framework/helpers/grids.py
@@ -24,6 +24,7 @@
template = "grid_base.mako"
async_template = "grid_base_async.mako"
use_async = False
+ use_hide_message = True
global_actions = []
columns = []
operations = []
@@ -286,6 +287,7 @@
status = status,
message = message,
use_panels=self.use_panels,
+ use_hide_message=self.use_hide_message,
advanced_search=self.advanced_search,
show_item_checkboxes = ( self.show_item_checkboxes or
kwargs.get( 'show_item_checkboxes', '' ) in [ 'True', 'true' ] ),
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 lib/tool_shed/grids/admin_grids.py
--- a/lib/tool_shed/grids/admin_grids.py
+++ b/lib/tool_shed/grids/admin_grids.py
@@ -508,6 +508,7 @@
model_class = model.RepositoryMetadata
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
IdColumn( "Id",
visible=False,
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 lib/tool_shed/grids/repository_grids.py
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -236,6 +236,7 @@
model_class = model.Repository
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
NameColumn( "Name",
key="name",
@@ -344,6 +345,7 @@
model_class = model.RepositoryMetadata
template='/webapps/tool_shed/repository/grid.mako'
default_sort_key = "Repository.name"
+ use_hide_message = False
columns = [
NameColumn( "Repository name",
link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ),
@@ -652,7 +654,7 @@
columns = [ col for col in RepositoriesMissingToolTestComponentsGrid.columns ]
operations = []
use_paging = False
-
+
def build_initial_query( self, trans, **kwd ):
# First get all repositories that the current user is authorized to update.
username = trans.user.username
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 lib/tool_shed/grids/repository_review_grids.py
--- a/lib/tool_shed/grids/repository_review_grids.py
+++ b/lib/tool_shed/grids/repository_review_grids.py
@@ -36,6 +36,7 @@
model_class = model.Component
template='/webapps/tool_shed/repository_review/grid.mako'
default_sort_key = "name"
+ use_hide_message = False
columns = [
NameColumn( "Name",
key="Component.name",
@@ -333,6 +334,7 @@
model_class = model.RepositoryReview
template='/webapps/tool_shed/repository_review/grid.mako'
default_sort_key = 'repository_id'
+ use_hide_message = False
columns = [
RepositoryNameColumn( "Repository Name",
model_class=model.Repository,
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 static/scripts/galaxy.grids.js
--- a/static/scripts/galaxy.grids.js
+++ b/static/scripts/galaxy.grids.js
@@ -194,7 +194,9 @@
// update message
if (options.message) {
$('#grid-message').html(this.template_message(options));
- setTimeout( function() { $('#grid-message').html(''); }, 5000);
+ if (options.use_hide_message) {
+ setTimeout( function() { $('#grid-message').html(''); }, 5000);
+ }
}
// configure elements
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 static/scripts/packed/galaxy.grids.js
--- a/static/scripts/packed/galaxy.grids.js
+++ b/static/scripts/packed/galaxy.grids.js
@@ -1,1 +1,1 @@
-jQuery.ajaxSettings.traditional=true;define(["mvc/ui"],function(){var a=Backbone.Model.extend({defaults:{url_base:"",async:false,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:false,advanced_search:false,cur_page:1,num_pages:1,operation:undefined,item_ids:undefined},can_async_op:function(c){return _.indexOf(this.attributes.async_ops,c)!==-1},add_filter:function(g,h,d){if(d){var e=this.attributes.filters[g],c;if(e===null||e===undefined){c=h}else{if(typeof(e)=="string"){if(e=="All"){c=h}else{var f=[];f[0]=e;f[1]=h;c=f}}else{c=e;c.push(h)}}this.attributes.filters[g]=c}else{this.attributes.filters[g]=h}},remove_filter:function(d,g){var c=this.attributes.filters[d];if(c===null||c===undefined){return false}var f=true;if(typeof(c)==="string"){if(c=="All"){f=false}else{delete this.attributes.filters[d]}}else{var e=_.indexOf(c,g);if(e!==-1){c.splice(e,1)}else{f=false}}return f},get_url_data:function(){var c={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};if(this.attributes.operation){c.operation=this.attributes.operation}if(this.attributes.item_ids){c.id=this.attributes.item_ids}var d=this;_.each(_.pairs(d.attributes.filters),function(e){c["f-"+e[0]]=e[1]});return c},get_url:function(c){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(c)}});var b=Backbone.View.extend({grid:null,initialize:function(c){this.init_grid(c);this.init_grid_controls();$("input[type=text]").each(function(){$(this).click(function(){$(this).select()}).keyup(function(){$(this).css("font-style","normal")})})},handle_refresh:function(c){if(c){if($.inArray("history",c)>-1){if(top.Galaxy&&top.Galaxy.currHistoryPanel){top.Galaxy.currHistoryPanel.loadCurrentHistory()}}}},init_grid:function(e){this.grid=new a(e);var d=this.grid.attributes;this.handle_refresh(d.refresh_frames);var c=this.grid.get("url_base");c=c.replace(/^.*\/\/[^\/]+/,"");this.grid.set("url_base",c);$("#grid-table-body").html(this.template_body(d));$("#grid-table-footer").html(this.template_footer(d));if(d.message){$("#grid-message").html(this.template_message(d));setTimeout(function(){$("#grid-message").html("")},5000)}this.init_grid_elements();init_refresh_on_change()},init_grid_controls:function(){$(".submit-image").each(function(){$(this).mousedown(function(){$(this).addClass("gray-background")});$(this).mouseup(function(){$(this).removeClass("gray-background")})});var c=this;$(".sort-link").each(function(){$(this).click(function(){c.set_sort_condition($(this).attr("sort_key"));return false})});$(".categorical-filter > a").each(function(){$(this).click(function(){c.set_categorical_filter($(this).attr("filter_key"),$(this).attr("filter_val"));return false})});$(".text-filter-form").each(function(){$(this).submit(function(){var g=$(this).attr("column_key");var f=$("#input-"+g+"-filter");var h=f.val();f.val("");c.add_filter_condition(g,h);return false})});var d=$("#input-tags-filter");if(d.length){d.autocomplete(this.grid.history_tag_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}var e=$("#input-name-filter");if(e.length){e.autocomplete(this.grid.history_name_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}$(".advanced-search-toggle").each(function(){$(this).click(function(){$("#standard-search").slideToggle("fast");$("#advanced-search").slideToggle("fast");return false})})},init_grid_elements:function(){$(".grid").each(function(){var s=$(this).find("input.grid-row-select-checkbox");var r=$(this).find("span.grid-selected-count");var t=function(){r.text($(s).filter(":checked").length)};$(s).each(function(){$(this).change(t)});t()});if($(".community_rating_star").length!==0){$(".community_rating_star").rating({})}var q=this.grid.attributes;var p=this;$(".page-link > a").each(function(){$(this).click(function(){p.set_page($(this).attr("page_num"));return false})});$(".use-inbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href"),inbound:true});return false})});$(".use-outbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href")});return false})});var f=q.items.length;if(f==0){return}for(var k in q.items){var o=q.items[k];var l=$("#grid-"+k+"-popup");l.off();var d=new PopupMenu(l);for(var h in q.operations){var e=q.operations[h];var m=e.label;var c=o.operation_config[m];var g=o.encode_id;if(c.allowed&&e.allow_popup){var n={html:e.label,href:c.url_args,target:c.target,confirmation_text:e.confirm,inbound:e.inbound};n.func=function(t){t.preventDefault();var s=$(t.target).html();var r=this.findItemByHtml(s);p.execute(r)};d.addItem(n)}}}},add_filter_condition:function(e,g){if(g===""){return false}this.grid.add_filter(e,g,true);var f=$("<span>"+g+"<a href='javascript:void(0);'><span class='delete-search-icon' /></span></a>");f.addClass("text-filter-val");var d=this;f.click(function(){d.grid.remove_filter(e,g);$(this).remove();d.go_page_one();d.execute()});var c=$("#"+e+"-filtering-criteria");c.append(f);this.go_page_one();this.execute()},set_sort_condition:function(h){var g=this.grid.get("sort_key");var f=h;if(g.indexOf(h)!==-1){if(g.substring(0,1)!=="-"){f="-"+h}else{}}$(".sort-arrow").remove();var e=(f.substring(0,1)=="-")?"↑":"↓";var c=$("<span>"+e+"</span>").addClass("sort-arrow");var d=$("#"+h+"-header");d.append(c);this.grid.set("sort_key",f);this.go_page_one();this.execute()},set_categorical_filter:function(e,g){var d=this.grid.get("categorical_filters")[e],f=this.grid.get("filters")[e];var c=this;$("."+e+"-filter").each(function(){var m=$.trim($(this).text());var k=d[m];var l=k[e];if(l==g){$(this).empty();$(this).addClass("current-filter");$(this).append(m)}else{if(l==f){$(this).empty();var h=$("<a href='#'>"+m+"</a>");h.click(function(){c.set_categorical_filter(e,l)});$(this).removeClass("current-filter");$(this).append(h)}}});this.grid.add_filter(e,g);this.go_page_one();this.execute()},set_page:function(c){var d=this;$(".page-link").each(function(){var k=$(this).attr("id"),g=parseInt(k.split("-")[2],10),e=d.grid.get("cur_page"),h;if(g===c){h=$(this).children().text();$(this).empty();$(this).addClass("inactive-link");$(this).text(h)}else{if(g===e){h=$(this).text();$(this).empty();$(this).removeClass("inactive-link");var f=$("<a href='#'>"+h+"</a>");f.click(function(){d.set_page(g)});$(this).append(f)}}});if(c==="all"){this.grid.set("cur_page",c)}else{this.grid.set("cur_page",parseInt(c,10))}this.execute()},submit_operation:function(f,g){var e=$('input[name="id"]:checked').length;if(!e>0){return false}var d=$(f).val();var c=[];$("input[name=id]:checked").each(function(){c.push($(this).val())});this.execute({operation:d,id:c,confirmation_text:g});return true},execute:function(n){var f=null;var e=null;var g=null;var c=null;var m=null;if(n){e=n.href;g=n.operation;f=n.id;c=n.confirmation_text;m=n.inbound;if(e!==undefined&&e.indexOf("operation=")!=-1){var l=e.split("?");if(l.length>1){var k=l[1];var d=k.split("&");for(var h=0;h<d.length;h++){if(d[h].indexOf("operation")!=-1){g=d[h].split("=")[1];g=g.replace(/\+/g," ")}else{if(d[h].indexOf("id")!=-1){f=d[h].split("=")[1]}}}}}}if(g&&f){if(c&&c!=""&&c!="None"&&c!="null"){if(!confirm(c)){return false}}g=g.toLowerCase();this.grid.set({operation:g,item_ids:f});if(this.grid.can_async_op(g)){this.update_grid()}else{this.go_to(m,"")}return false}if(e){this.go_to(m,e);return false}if(this.grid.get("async")){this.update_grid()}else{this.go_to(m,"")}return false},go_to:function(f,d){var e=this.grid.get("async");this.grid.set("async",false);advanced_search=$("#advanced-search").is(":visible");this.grid.set("advanced_search",advanced_search);if(!d){d=this.grid.get("url_base")+"?"+$.param(this.grid.get_url_data())}this.grid.set({operation:undefined,item_ids:undefined,async:e});if(f){var c=$(".grid-header").closest(".inbound");if(c.length!==0){c.load(d);return}}window.location=d},update_grid:function(){var d=(this.grid.get("operation")?"POST":"GET");$(".loading-elt-overlay").show();var c=this;$.ajax({type:d,url:c.grid.get("url_base"),data:c.grid.get_url_data(),error:function(e){alert("Grid refresh failed")},success:function(e){c.init_grid($.parseJSON(e));$(".loading-elt-overlay").hide()},complete:function(){c.grid.set({operation:undefined,item_ids:undefined})}})},check_all_items:function(){var c=document.getElementById("check_all"),d=document.getElementsByTagName("input"),f=0,e;if(c.checked===true){for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=true;f++}}}else{for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=false}}}this.init_grid_elements()},go_page_one:function(){var c=this.grid.get("cur_page");if(c!==null&&c!==undefined&&c!=="all"){this.grid.set("cur_page",1)}},template_body:function(t){var m="";var u=0;var g=t.items.length;if(g==0){m+='<tr><td colspan="100"><em>No Items</em></td></tr>';u=1}for(var h in t.items){var r=t.items[h];var c=r.encode_id;var k="grid-"+h+"-popup";m+="<tr ";if(t.current_item_id==r.id){m+='class="current"'}m+=">";if(t.show_item_checkboxes){m+='<td style="width: 1.5em;"><input type="checkbox" name="id" value="'+c+'" id="'+c+'" class="grid-row-select-checkbox" /></td>'}for(j in t.columns){var f=t.columns[j];if(f.visible){var e="";if(f.nowrap){e='style="white-space:nowrap;"'}var s=r.column_config[f.label];var l=s.link;var n=s.value;var q=s.inbound;if(jQuery.type(n)==="string"){n=n.replace(/\/\//g,"/")}var d="";var p="";if(f.attach_popup){d="grid-"+h+"-popup";p="menubutton";if(l!=""){p+=" split"}p+=" popup"}m+="<td "+e+">";if(l){if(t.operations.length!=0){m+='<div id="'+d+'" class="'+p+'" style="float: left;">'}var o="";if(q){o="use-inbound"}else{o="use-outbound"}m+='<a class="label '+o+'" href="'+l+'" onclick="return false;">'+n+"</a>";if(t.operations.length!=0){m+="</div>"}}else{m+='<div id="'+d+'" class="'+p+'"><label id="'+f.label_id_prefix+c+'" for="'+c+'">'+n+"</label></div>"}m+="</td>"}}m+="</tr>";u++}return m},template_footer:function(q){var m="";if(q.use_paging&&q.num_pages>1){var o=q.num_page_links;var c=q.cur_page_num;var p=q.num_pages;var l=o/2;var k=c-l;var g=0;if(k==0){k=1;g=l-(c-k)}var f=l+g;var e=c+f;if(e<=p){max_offset=0}else{e=p;max_offset=f-(e+1-c)}if(max_offset!=0){k-=max_offset;if(k<1){k=1}}m+='<tr id="page-links-row">';if(q.show_item_checkboxes){m+="<td></td>"}m+='<td colspan="100"><span id="page-link-container">Page:';if(k>1){m+='<span class="page-link" id="page-link-1"><a href="'+this.grid.get_url({page:n})+'" page_num="1" onclick="return false;">1</a></span> ...'}for(var n=k;n<e+1;n++){if(n==q.cur_page_num){m+='<span class="page-link inactive-link" id="page-link-'+n+'">'+n+"</span>"}else{m+='<span class="page-link" id="page-link-'+n+'"><a href="'+this.grid.get_url({page:n})+'" onclick="return false;" page_num="'+n+'">'+n+"</a></span>"}}if(e<p){m+='...<span class="page-link" id="page-link-'+p+'"><a href="'+this.grid.get_url({page:p})+'" onclick="return false;" page_num="'+p+'">'+p+"</a></span>"}m+="</span>";m+='<span class="page-link" id="show-all-link-span"> | <a href="'+this.grid.get_url({page:"all"})+'" onclick="return false;" page_num="all">Show All</a></span></td></tr>'}if(q.show_item_checkboxes){m+='<tr><input type="hidden" id="operation" name="operation" value=""><td></td><td colspan="100">For <span class="grid-selected-count"></span> selected '+q.get_class_plural+": ";for(i in q.operations){var d=q.operations[i];if(d.allow_multiple){m+='<input type="button" value="'+d.label+'" class="action-button" onclick="gridView.submit_operation(this, \''+d.confirm+"')\"> "}}m+="</td></tr>"}var h=false;for(i in q.operations){if(q.operations[i].global_operation){h=true;break}}if(h){m+='<tr><td colspan="100">';for(i in q.operations){var d=q.operations[i];if(d.global_operation){m+='<a class="action-button" href="'+d.global_operation+'">'+d.label+"</a>"}}m+="</td></tr>"}if(q.legend){m+='<tr><td colspan="100">'+q.legend+"</td></tr>"}return m},template_message:function(c){return'<p><div class="'+c.status+'message transient-message">'+c.message+'</div><div style="clear: both"></div></p>'}});return{Grid:a,GridView:b}});
\ No newline at end of file
+jQuery.ajaxSettings.traditional=true;define(["mvc/ui"],function(){var a=Backbone.Model.extend({defaults:{url_base:"",async:false,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:false,advanced_search:false,cur_page:1,num_pages:1,operation:undefined,item_ids:undefined},can_async_op:function(c){return _.indexOf(this.attributes.async_ops,c)!==-1},add_filter:function(g,h,d){if(d){var e=this.attributes.filters[g],c;if(e===null||e===undefined){c=h}else{if(typeof(e)=="string"){if(e=="All"){c=h}else{var f=[];f[0]=e;f[1]=h;c=f}}else{c=e;c.push(h)}}this.attributes.filters[g]=c}else{this.attributes.filters[g]=h}},remove_filter:function(d,g){var c=this.attributes.filters[d];if(c===null||c===undefined){return false}var f=true;if(typeof(c)==="string"){if(c=="All"){f=false}else{delete this.attributes.filters[d]}}else{var e=_.indexOf(c,g);if(e!==-1){c.splice(e,1)}else{f=false}}return f},get_url_data:function(){var c={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};if(this.attributes.operation){c.operation=this.attributes.operation}if(this.attributes.item_ids){c.id=this.attributes.item_ids}var d=this;_.each(_.pairs(d.attributes.filters),function(e){c["f-"+e[0]]=e[1]});return c},get_url:function(c){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(c)}});var b=Backbone.View.extend({grid:null,initialize:function(c){this.init_grid(c);this.init_grid_controls();$("input[type=text]").each(function(){$(this).click(function(){$(this).select()}).keyup(function(){$(this).css("font-style","normal")})})},handle_refresh:function(c){if(c){if($.inArray("history",c)>-1){if(top.Galaxy&&top.Galaxy.currHistoryPanel){top.Galaxy.currHistoryPanel.loadCurrentHistory()}}}},init_grid:function(e){this.grid=new a(e);var d=this.grid.attributes;this.handle_refresh(d.refresh_frames);var c=this.grid.get("url_base");c=c.replace(/^.*\/\/[^\/]+/,"");this.grid.set("url_base",c);$("#grid-table-body").html(this.template_body(d));$("#grid-table-footer").html(this.template_footer(d));if(d.message){$("#grid-message").html(this.template_message(d));if(d.use_hide_message){setTimeout(function(){$("#grid-message").html("")},5000)}}this.init_grid_elements();init_refresh_on_change()},init_grid_controls:function(){$(".submit-image").each(function(){$(this).mousedown(function(){$(this).addClass("gray-background")});$(this).mouseup(function(){$(this).removeClass("gray-background")})});var c=this;$(".sort-link").each(function(){$(this).click(function(){c.set_sort_condition($(this).attr("sort_key"));return false})});$(".categorical-filter > a").each(function(){$(this).click(function(){c.set_categorical_filter($(this).attr("filter_key"),$(this).attr("filter_val"));return false})});$(".text-filter-form").each(function(){$(this).submit(function(){var g=$(this).attr("column_key");var f=$("#input-"+g+"-filter");var h=f.val();f.val("");c.add_filter_condition(g,h);return false})});var d=$("#input-tags-filter");if(d.length){d.autocomplete(this.grid.history_tag_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}var e=$("#input-name-filter");if(e.length){e.autocomplete(this.grid.history_name_autocomplete_url,{selectFirst:false,autoFill:false,highlight:false,mustMatch:false})}$(".advanced-search-toggle").each(function(){$(this).click(function(){$("#standard-search").slideToggle("fast");$("#advanced-search").slideToggle("fast");return false})})},init_grid_elements:function(){$(".grid").each(function(){var s=$(this).find("input.grid-row-select-checkbox");var r=$(this).find("span.grid-selected-count");var t=function(){r.text($(s).filter(":checked").length)};$(s).each(function(){$(this).change(t)});t()});if($(".community_rating_star").length!==0){$(".community_rating_star").rating({})}var q=this.grid.attributes;var p=this;$(".page-link > a").each(function(){$(this).click(function(){p.set_page($(this).attr("page_num"));return false})});$(".use-inbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href"),inbound:true});return false})});$(".use-outbound").each(function(){$(this).click(function(r){p.execute({href:$(this).attr("href")});return false})});var f=q.items.length;if(f==0){return}for(var k in q.items){var o=q.items[k];var l=$("#grid-"+k+"-popup");l.off();var d=new PopupMenu(l);for(var h in q.operations){var e=q.operations[h];var m=e.label;var c=o.operation_config[m];var g=o.encode_id;if(c.allowed&&e.allow_popup){var n={html:e.label,href:c.url_args,target:c.target,confirmation_text:e.confirm,inbound:e.inbound};n.func=function(t){t.preventDefault();var s=$(t.target).html();var r=this.findItemByHtml(s);p.execute(r)};d.addItem(n)}}}},add_filter_condition:function(e,g){if(g===""){return false}this.grid.add_filter(e,g,true);var f=$("<span>"+g+"<a href='javascript:void(0);'><span class='delete-search-icon' /></span></a>");f.addClass("text-filter-val");var d=this;f.click(function(){d.grid.remove_filter(e,g);$(this).remove();d.go_page_one();d.execute()});var c=$("#"+e+"-filtering-criteria");c.append(f);this.go_page_one();this.execute()},set_sort_condition:function(h){var g=this.grid.get("sort_key");var f=h;if(g.indexOf(h)!==-1){if(g.substring(0,1)!=="-"){f="-"+h}else{}}$(".sort-arrow").remove();var e=(f.substring(0,1)=="-")?"↑":"↓";var c=$("<span>"+e+"</span>").addClass("sort-arrow");var d=$("#"+h+"-header");d.append(c);this.grid.set("sort_key",f);this.go_page_one();this.execute()},set_categorical_filter:function(e,g){var d=this.grid.get("categorical_filters")[e],f=this.grid.get("filters")[e];var c=this;$("."+e+"-filter").each(function(){var m=$.trim($(this).text());var k=d[m];var l=k[e];if(l==g){$(this).empty();$(this).addClass("current-filter");$(this).append(m)}else{if(l==f){$(this).empty();var h=$("<a href='#'>"+m+"</a>");h.click(function(){c.set_categorical_filter(e,l)});$(this).removeClass("current-filter");$(this).append(h)}}});this.grid.add_filter(e,g);this.go_page_one();this.execute()},set_page:function(c){var d=this;$(".page-link").each(function(){var k=$(this).attr("id"),g=parseInt(k.split("-")[2],10),e=d.grid.get("cur_page"),h;if(g===c){h=$(this).children().text();$(this).empty();$(this).addClass("inactive-link");$(this).text(h)}else{if(g===e){h=$(this).text();$(this).empty();$(this).removeClass("inactive-link");var f=$("<a href='#'>"+h+"</a>");f.click(function(){d.set_page(g)});$(this).append(f)}}});if(c==="all"){this.grid.set("cur_page",c)}else{this.grid.set("cur_page",parseInt(c,10))}this.execute()},submit_operation:function(f,g){var e=$('input[name="id"]:checked').length;if(!e>0){return false}var d=$(f).val();var c=[];$("input[name=id]:checked").each(function(){c.push($(this).val())});this.execute({operation:d,id:c,confirmation_text:g});return true},execute:function(n){var f=null;var e=null;var g=null;var c=null;var m=null;if(n){e=n.href;g=n.operation;f=n.id;c=n.confirmation_text;m=n.inbound;if(e!==undefined&&e.indexOf("operation=")!=-1){var l=e.split("?");if(l.length>1){var k=l[1];var d=k.split("&");for(var h=0;h<d.length;h++){if(d[h].indexOf("operation")!=-1){g=d[h].split("=")[1];g=g.replace(/\+/g," ")}else{if(d[h].indexOf("id")!=-1){f=d[h].split("=")[1]}}}}}}if(g&&f){if(c&&c!=""&&c!="None"&&c!="null"){if(!confirm(c)){return false}}g=g.toLowerCase();this.grid.set({operation:g,item_ids:f});if(this.grid.can_async_op(g)){this.update_grid()}else{this.go_to(m,"")}return false}if(e){this.go_to(m,e);return false}if(this.grid.get("async")){this.update_grid()}else{this.go_to(m,"")}return false},go_to:function(f,d){var e=this.grid.get("async");this.grid.set("async",false);advanced_search=$("#advanced-search").is(":visible");this.grid.set("advanced_search",advanced_search);if(!d){d=this.grid.get("url_base")+"?"+$.param(this.grid.get_url_data())}this.grid.set({operation:undefined,item_ids:undefined,async:e});if(f){var c=$(".grid-header").closest(".inbound");if(c.length!==0){c.load(d);return}}window.location=d},update_grid:function(){var d=(this.grid.get("operation")?"POST":"GET");$(".loading-elt-overlay").show();var c=this;$.ajax({type:d,url:c.grid.get("url_base"),data:c.grid.get_url_data(),error:function(e){alert("Grid refresh failed")},success:function(e){c.init_grid($.parseJSON(e));$(".loading-elt-overlay").hide()},complete:function(){c.grid.set({operation:undefined,item_ids:undefined})}})},check_all_items:function(){var c=document.getElementById("check_all"),d=document.getElementsByTagName("input"),f=0,e;if(c.checked===true){for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=true;f++}}}else{for(e=0;e<d.length;e++){if(d[e].name.indexOf("id")!==-1){d[e].checked=false}}}this.init_grid_elements()},go_page_one:function(){var c=this.grid.get("cur_page");if(c!==null&&c!==undefined&&c!=="all"){this.grid.set("cur_page",1)}},template_body:function(t){var m="";var u=0;var g=t.items.length;if(g==0){m+='<tr><td colspan="100"><em>No Items</em></td></tr>';u=1}for(var h in t.items){var r=t.items[h];var c=r.encode_id;var k="grid-"+h+"-popup";m+="<tr ";if(t.current_item_id==r.id){m+='class="current"'}m+=">";if(t.show_item_checkboxes){m+='<td style="width: 1.5em;"><input type="checkbox" name="id" value="'+c+'" id="'+c+'" class="grid-row-select-checkbox" /></td>'}for(j in t.columns){var f=t.columns[j];if(f.visible){var e="";if(f.nowrap){e='style="white-space:nowrap;"'}var s=r.column_config[f.label];var l=s.link;var n=s.value;var q=s.inbound;if(jQuery.type(n)==="string"){n=n.replace(/\/\//g,"/")}var d="";var p="";if(f.attach_popup){d="grid-"+h+"-popup";p="menubutton";if(l!=""){p+=" split"}p+=" popup"}m+="<td "+e+">";if(l){if(t.operations.length!=0){m+='<div id="'+d+'" class="'+p+'" style="float: left;">'}var o="";if(q){o="use-inbound"}else{o="use-outbound"}m+='<a class="label '+o+'" href="'+l+'" onclick="return false;">'+n+"</a>";if(t.operations.length!=0){m+="</div>"}}else{m+='<div id="'+d+'" class="'+p+'"><label id="'+f.label_id_prefix+c+'" for="'+c+'">'+n+"</label></div>"}m+="</td>"}}m+="</tr>";u++}return m},template_footer:function(q){var m="";if(q.use_paging&&q.num_pages>1){var o=q.num_page_links;var c=q.cur_page_num;var p=q.num_pages;var l=o/2;var k=c-l;var g=0;if(k==0){k=1;g=l-(c-k)}var f=l+g;var e=c+f;if(e<=p){max_offset=0}else{e=p;max_offset=f-(e+1-c)}if(max_offset!=0){k-=max_offset;if(k<1){k=1}}m+='<tr id="page-links-row">';if(q.show_item_checkboxes){m+="<td></td>"}m+='<td colspan="100"><span id="page-link-container">Page:';if(k>1){m+='<span class="page-link" id="page-link-1"><a href="'+this.grid.get_url({page:n})+'" page_num="1" onclick="return false;">1</a></span> ...'}for(var n=k;n<e+1;n++){if(n==q.cur_page_num){m+='<span class="page-link inactive-link" id="page-link-'+n+'">'+n+"</span>"}else{m+='<span class="page-link" id="page-link-'+n+'"><a href="'+this.grid.get_url({page:n})+'" onclick="return false;" page_num="'+n+'">'+n+"</a></span>"}}if(e<p){m+='...<span class="page-link" id="page-link-'+p+'"><a href="'+this.grid.get_url({page:p})+'" onclick="return false;" page_num="'+p+'">'+p+"</a></span>"}m+="</span>";m+='<span class="page-link" id="show-all-link-span"> | <a href="'+this.grid.get_url({page:"all"})+'" onclick="return false;" page_num="all">Show All</a></span></td></tr>'}if(q.show_item_checkboxes){m+='<tr><input type="hidden" id="operation" name="operation" value=""><td></td><td colspan="100">For <span class="grid-selected-count"></span> selected '+q.get_class_plural+": ";for(i in q.operations){var d=q.operations[i];if(d.allow_multiple){m+='<input type="button" value="'+d.label+'" class="action-button" onclick="gridView.submit_operation(this, \''+d.confirm+"')\"> "}}m+="</td></tr>"}var h=false;for(i in q.operations){if(q.operations[i].global_operation){h=true;break}}if(h){m+='<tr><td colspan="100">';for(i in q.operations){var d=q.operations[i];if(d.global_operation){m+='<a class="action-button" href="'+d.global_operation+'">'+d.label+"</a>"}}m+="</td></tr>"}if(q.legend){m+='<tr><td colspan="100">'+q.legend+"</td></tr>"}return m},template_message:function(c){return'<p><div class="'+c.status+'message transient-message">'+c.message+'</div><div style="clear: both"></div></p>'}});return{Grid:a,GridView:b}});
\ No newline at end of file
diff -r a6fed0f56ec84682302dc64bb5498333e7dc7666 -r 66e81c37bb56e77e78c4d15f4f1845f383ac62e4 templates/grid_base.mako
--- a/templates/grid_base.mako
+++ b/templates/grid_base.mako
@@ -64,6 +64,7 @@
'legend' : grid.legend,
'current_item_id' : False,
'use_panels' : context.get('use_panels'),
+ 'use_hide_message' : grid.use_hide_message,
'insert' : insert,
'default_filter_dict' : default_filter_dict,
'advanced_search' : advanced_search,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/61239accf3c6/
Changeset: 61239accf3c6
Branch: next-stable
User: james_taylor
Date: 2014-01-27 21:48:54
Summary: style: increase contrast for history buttons, use button groups
Affected #: 2 files
diff -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb -r 61239accf3c65d97c3f3cb63d0dc2fc8582b594d static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1566,13 +1566,13 @@
.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.workflow-invocation-complete{border:solid 1px #6A6;border-left-width:5px;margin:10px 0;padding-left:5px}
-.icon-btn{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;border-radius:3px;border:1px solid rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.05);color:#555;cursor:pointer}
+.icon-btn{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}
.icon-btn:hover{background-color:white;color:maroon}
-.icon-btn.disabled{background-color:transparent;color:rgba(0,0,0,0.05)}
+.icon-btn.disabled{background-color:transparent;color:#f2f2f2}
.search-input .search-query{width:100%;padding-right:24px}
.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-23px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}
.search-input .search-clear:hover{color:#303030}
-#history-refresh-button,#history-options-button{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;padding:0px}
+#history-refresh-button,#history-options-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0px}
.history-panel [class$="messagesmall"]{margin:0px}
.history-panel .editable-text{border:solid transparent 1px}
.history-panel .editable-text:hover{cursor:pointer;border:1px dotted #999999}
@@ -1586,12 +1586,12 @@
.history-panel .history-controls .history-size{float:left}
.history-panel .history-controls .history-secondary-actions{float:right}.history-panel .history-controls .history-secondary-actions .icon-btn{margin-left:2px}
.history-panel .history-controls .quota-message{display:none;margin:8px 0px 5px 0px}
-.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;color:#555}
.history-panel .history-controls .tags-display label:after,.history-panel .history-controls .annotation-display label:after{content:':'}
.history-panel .history-controls .tags-display .select2-container{min-width:0px}.history-panel .history-controls .tags-display .select2-container .select2-choices{border-radius:3px}
.history-panel .history-controls .tags-display input{border-radius:3px}
.history-panel .history-controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-line}
-.history-panel .history-controls .annotation-display .annotation:empty{height:20px}
+.history-panel .history-controls .annotation-display .annotation:empty{height:22px}
.history-panel .history-controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.history-panel .history-controls .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.history-panel .history-controls .history-dataset-actions{display:none}.history-panel .history-controls .history-dataset-actions:before,.history-panel .history-controls .history-dataset-actions:after{content:" ";display:table;}
@@ -1608,28 +1608,33 @@
.dataset .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}
.dataset .dataset-padding{padding:6px 10px 6px 8px}
.dataset [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}
-.dataset .help-text{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .help-text{font-weight:normal;color:#555}
.dataset .dataset-selector{float:left;display:none;width:0px;margin:0 0 -6px 0;padding:5px 0 2px 8px;cursor:pointer;vertical-align:middle}
-.dataset .dataset-title-bar{cursor:pointer;padding:6px 10px 6px 8px}
+.dataset .dataset-title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}
.dataset .dataset-title-bar .dataset-title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}
-.dataset .dataset-primary-actions{float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
-.dataset .dataset-body{display:none;background-color:rgba(255,255,255,0.30000000000000004);padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
+.dataset .dataset-primary-actions{display:inline-block;float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-primary-actions .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-primary-actions .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
+.dataset .dataset-body{display:none;padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
.dataset .dataset-body label{margin:0px;padding:0px;font-weight:normal}
-.dataset .dataset-body .prompt{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .prompt{font-weight:normal;color:#555}
.dataset .dataset-body .prompt:after{content:':'}
.dataset .dataset-body .dataset-summary{margin-bottom:8px}.dataset .dataset-body .dataset-summary .dataset-blurb{margin-bottom:2px}
.dataset .dataset-body .dataset-summary .dataset-datatype,.dataset .dataset-body .dataset-summary .dataset-dbkey{display:inline}.dataset .dataset-body .dataset-summary .dataset-datatype .value,.dataset .dataset-body .dataset-summary .dataset-dbkey .value{font-weight:bold}
-.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;color:#555}
.dataset .dataset-body .dataset-summary .dataset-dbkey:after{content:' ';display:block;margin-bottom:8px}
.dataset .dataset-body .dataset-summary .dataset-info{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}.dataset .dataset-body .dataset-summary .dataset-info .value{white-space:pre-line}
.dataset .dataset-body .dataset-summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;overflow:auto;white-space:pre}
-.dataset .dataset-body .dataset-actions .left{float:left}.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
-.dataset .dataset-body .dataset-actions .left .icon-btn-group{margin-right:2px}.dataset .dataset-body .dataset-actions .left .icon-btn-group .icon-btn{margin-right:0}
+.dataset .dataset-body .dataset-actions .left{display:inline-block;float:left}.dataset .dataset-body .dataset-actions .left .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-body .dataset-actions .left .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-body .dataset-actions .left .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
.dataset .dataset-body .dataset-actions .left:not(:empty){margin-bottom:8px}
.dataset .dataset-body .dataset-actions .right{float:right}.dataset .dataset-body .dataset-actions .right .icon-btn{margin-left:2px}
.dataset .dataset-body .tags-display{display:none;margin-bottom:8px}.dataset .dataset-body .tags-display .select2-container{min-width:0px}.dataset .dataset-body .tags-display .select2-container .select2-choices{border-radius:3px}
.dataset .dataset-body .annotation-display{display:none;margin-bottom:8px}.dataset .dataset-body .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;white-space:pre-line}
-.dataset .dataset-body .annotation-display .annotation:empty{height:20px}
+.dataset .dataset-body .annotation-display .annotation:empty{height:22px}
.dataset .dataset-body .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.dataset .dataset-body .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.dataset .dataset-body .dataset-display-applications .display-application:last-child{margin-bottom:8px}
diff -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb -r 61239accf3c65d97c3f3cb63d0dc2fc8582b594d static/style/src/less/history.less
--- a/static/style/src/less/history.less
+++ b/static/style/src/less/history.less
@@ -20,12 +20,12 @@
//@icon-btn-border: transparent;
// big & dark style
-@icon-btn-size: 20px;
+@icon-btn-size: 22px;
@icon-btn-margin: 2px;
-@icon-btn-color: #555;
+@icon-btn-color: @btn-default-color;
//@icon-btn-bg: transparent;
-@icon-btn-bg: rgba( 0, 0, 0, 0.05 );
-@icon-btn-border: rgba( 0, 0, 0, 0.1 );
+@icon-btn-bg: @btn-default-bg;
+@icon-btn-border: @btn-default-border;
.icon-btn {
display : inline-block;
@@ -178,8 +178,6 @@
margin: 0px;
padding: 0px;
font-weight: normal;
- font-style: italic;
- font-size: 90%;
color: #555;
}
label:after {
@@ -300,8 +298,8 @@
.help-text {
font-weight: normal;
- font-style: italic;
- font-size: 90%;
+ // font-style: italic;
+ // font-size: 90%;
color: #555;
}
@@ -320,6 +318,7 @@
.dataset-title-bar {
cursor: pointer;
+ outline: none;
.dataset-padding;
.dataset-state-icon {
@@ -335,6 +334,7 @@
}
.dataset-primary-actions {
+ .icon-btn-group();
float: right;
margin: @spacing-top @spacing-right 0;
.icon-btn {
@@ -344,7 +344,7 @@
.dataset-body {
display: none;
- background-color: fadeout( white, 70% );
+ // background-color: fadeout( white, 70% );
.dataset-padding;
[class$=messagesmall] {
@@ -401,16 +401,17 @@
.dataset-actions {
.left {
+ .icon-btn-group();
float: left;
.icon-btn {
margin-right: @icon-btn-margin;
}
- .icon-btn-group {
- margin-right: @icon-btn-margin;
- .icon-btn {
- margin-right: 0;
- }
- }
+ //.icon-btn-group {
+ // margin-right: @icon-btn-margin;
+ // .icon-btn {
+ // margin-right: 0;
+ // }
+ //}
&:not(:empty) {
// can't use :empty on dataset-actions - will always have left & right, so
// add gap to left (more likely to have children)
https://bitbucket.org/galaxy/galaxy-central/commits/6d53ec591727/
Changeset: 6d53ec591727
Branch: next-stable
User: james_taylor
Date: 2014-01-27 21:53:12
Summary: merge
Affected #: 2 files
diff -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 -r 6d53ec591727f6ffa8b7c0110429e464452b61b2 static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1566,13 +1566,13 @@
.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.workflow-invocation-complete{border:solid 1px #6A6;border-left-width:5px;margin:10px 0;padding-left:5px}
-.icon-btn{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;border-radius:3px;border:1px solid rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.05);color:#555;cursor:pointer}
+.icon-btn{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}
.icon-btn:hover{background-color:white;color:maroon}
-.icon-btn.disabled{background-color:transparent;color:rgba(0,0,0,0.05)}
+.icon-btn.disabled{background-color:transparent;color:#f2f2f2}
.search-input .search-query{width:100%;padding-right:24px}
.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-23px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}
.search-input .search-clear:hover{color:#303030}
-#history-refresh-button,#history-options-button{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;padding:0px}
+#history-refresh-button,#history-options-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0px}
.history-panel [class$="messagesmall"]{margin:0px}
.history-panel .editable-text{border:solid transparent 1px}
.history-panel .editable-text:hover{cursor:pointer;border:1px dotted #999999}
@@ -1586,12 +1586,12 @@
.history-panel .history-controls .history-size{float:left}
.history-panel .history-controls .history-secondary-actions{float:right}.history-panel .history-controls .history-secondary-actions .icon-btn{margin-left:2px}
.history-panel .history-controls .quota-message{display:none;margin:8px 0px 5px 0px}
-.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;color:#555}
.history-panel .history-controls .tags-display label:after,.history-panel .history-controls .annotation-display label:after{content:':'}
.history-panel .history-controls .tags-display .select2-container{min-width:0px}.history-panel .history-controls .tags-display .select2-container .select2-choices{border-radius:3px}
.history-panel .history-controls .tags-display input{border-radius:3px}
.history-panel .history-controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-line}
-.history-panel .history-controls .annotation-display .annotation:empty{height:20px}
+.history-panel .history-controls .annotation-display .annotation:empty{height:22px}
.history-panel .history-controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.history-panel .history-controls .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.history-panel .history-controls .history-dataset-actions{display:none}.history-panel .history-controls .history-dataset-actions:before,.history-panel .history-controls .history-dataset-actions:after{content:" ";display:table;}
@@ -1608,28 +1608,33 @@
.dataset .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}
.dataset .dataset-padding{padding:6px 10px 6px 8px}
.dataset [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}
-.dataset .help-text{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .help-text{font-weight:normal;color:#555}
.dataset .dataset-selector{float:left;display:none;width:0px;margin:0 0 -6px 0;padding:5px 0 2px 8px;cursor:pointer;vertical-align:middle}
-.dataset .dataset-title-bar{cursor:pointer;padding:6px 10px 6px 8px}
+.dataset .dataset-title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}
.dataset .dataset-title-bar .dataset-title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}
-.dataset .dataset-primary-actions{float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
-.dataset .dataset-body{display:none;background-color:rgba(255,255,255,0.30000000000000004);padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
+.dataset .dataset-primary-actions{display:inline-block;float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-primary-actions .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-primary-actions .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
+.dataset .dataset-body{display:none;padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
.dataset .dataset-body label{margin:0px;padding:0px;font-weight:normal}
-.dataset .dataset-body .prompt{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .prompt{font-weight:normal;color:#555}
.dataset .dataset-body .prompt:after{content:':'}
.dataset .dataset-body .dataset-summary{margin-bottom:8px}.dataset .dataset-body .dataset-summary .dataset-blurb{margin-bottom:2px}
.dataset .dataset-body .dataset-summary .dataset-datatype,.dataset .dataset-body .dataset-summary .dataset-dbkey{display:inline}.dataset .dataset-body .dataset-summary .dataset-datatype .value,.dataset .dataset-body .dataset-summary .dataset-dbkey .value{font-weight:bold}
-.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;color:#555}
.dataset .dataset-body .dataset-summary .dataset-dbkey:after{content:' ';display:block;margin-bottom:8px}
.dataset .dataset-body .dataset-summary .dataset-info{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}.dataset .dataset-body .dataset-summary .dataset-info .value{white-space:pre-line}
.dataset .dataset-body .dataset-summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;overflow:auto;white-space:pre}
-.dataset .dataset-body .dataset-actions .left{float:left}.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
-.dataset .dataset-body .dataset-actions .left .icon-btn-group{margin-right:2px}.dataset .dataset-body .dataset-actions .left .icon-btn-group .icon-btn{margin-right:0}
+.dataset .dataset-body .dataset-actions .left{display:inline-block;float:left}.dataset .dataset-body .dataset-actions .left .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-body .dataset-actions .left .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-body .dataset-actions .left .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
.dataset .dataset-body .dataset-actions .left:not(:empty){margin-bottom:8px}
.dataset .dataset-body .dataset-actions .right{float:right}.dataset .dataset-body .dataset-actions .right .icon-btn{margin-left:2px}
.dataset .dataset-body .tags-display{display:none;margin-bottom:8px}.dataset .dataset-body .tags-display .select2-container{min-width:0px}.dataset .dataset-body .tags-display .select2-container .select2-choices{border-radius:3px}
.dataset .dataset-body .annotation-display{display:none;margin-bottom:8px}.dataset .dataset-body .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;white-space:pre-line}
-.dataset .dataset-body .annotation-display .annotation:empty{height:20px}
+.dataset .dataset-body .annotation-display .annotation:empty{height:22px}
.dataset .dataset-body .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.dataset .dataset-body .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.dataset .dataset-body .dataset-display-applications .display-application:last-child{margin-bottom:8px}
diff -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 -r 6d53ec591727f6ffa8b7c0110429e464452b61b2 static/style/src/less/history.less
--- a/static/style/src/less/history.less
+++ b/static/style/src/less/history.less
@@ -20,12 +20,12 @@
//@icon-btn-border: transparent;
// big & dark style
-@icon-btn-size: 20px;
+@icon-btn-size: 22px;
@icon-btn-margin: 2px;
-@icon-btn-color: #555;
+@icon-btn-color: @btn-default-color;
//@icon-btn-bg: transparent;
-@icon-btn-bg: rgba( 0, 0, 0, 0.05 );
-@icon-btn-border: rgba( 0, 0, 0, 0.1 );
+@icon-btn-bg: @btn-default-bg;
+@icon-btn-border: @btn-default-border;
.icon-btn {
display : inline-block;
@@ -178,8 +178,6 @@
margin: 0px;
padding: 0px;
font-weight: normal;
- font-style: italic;
- font-size: 90%;
color: #555;
}
label:after {
@@ -300,8 +298,8 @@
.help-text {
font-weight: normal;
- font-style: italic;
- font-size: 90%;
+ // font-style: italic;
+ // font-size: 90%;
color: #555;
}
@@ -320,6 +318,7 @@
.dataset-title-bar {
cursor: pointer;
+ outline: none;
.dataset-padding;
.dataset-state-icon {
@@ -335,6 +334,7 @@
}
.dataset-primary-actions {
+ .icon-btn-group();
float: right;
margin: @spacing-top @spacing-right 0;
.icon-btn {
@@ -344,7 +344,7 @@
.dataset-body {
display: none;
- background-color: fadeout( white, 70% );
+ // background-color: fadeout( white, 70% );
.dataset-padding;
[class$=messagesmall] {
@@ -401,16 +401,17 @@
.dataset-actions {
.left {
+ .icon-btn-group();
float: left;
.icon-btn {
margin-right: @icon-btn-margin;
}
- .icon-btn-group {
- margin-right: @icon-btn-margin;
- .icon-btn {
- margin-right: 0;
- }
- }
+ //.icon-btn-group {
+ // margin-right: @icon-btn-margin;
+ // .icon-btn {
+ // margin-right: 0;
+ // }
+ //}
&:not(:empty) {
// can't use :empty on dataset-actions - will always have left & right, so
// add gap to left (more likely to have children)
https://bitbucket.org/galaxy/galaxy-central/commits/153caa28d992/
Changeset: 153caa28d992
Branch: next-stable
User: james_taylor
Date: 2014-01-28 15:57:04
Summary: Merged in james_taylor/galaxy-central-styles/next-stable (pull request #313)
Better contrast for new history buttons
Affected #: 2 files
diff -r 25d75b83632ba45035c28dafd55975a695059797 -r 153caa28d992ef8897b149b25515b4c089a264eb static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1566,13 +1566,13 @@
.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}
.workflow-invocation-complete{border:solid 1px #6A6;border-left-width:5px;margin:10px 0;padding-left:5px}
-.icon-btn{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;border-radius:3px;border:1px solid rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.05);color:#555;cursor:pointer}
+.icon-btn{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}
.icon-btn:hover{background-color:white;color:maroon}
-.icon-btn.disabled{background-color:transparent;color:rgba(0,0,0,0.05)}
+.icon-btn.disabled{background-color:transparent;color:#f2f2f2}
.search-input .search-query{width:100%;padding-right:24px}
.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-23px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}
.search-input .search-clear:hover{color:#303030}
-#history-refresh-button,#history-options-button{display:inline-block;height:20px;width:20px;text-align:center;line-height:17px;font-size:1.2em;padding:0px}
+#history-refresh-button,#history-options-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0px}
.history-panel [class$="messagesmall"]{margin:0px}
.history-panel .editable-text{border:solid transparent 1px}
.history-panel .editable-text:hover{cursor:pointer;border:1px dotted #999999}
@@ -1586,12 +1586,12 @@
.history-panel .history-controls .history-size{float:left}
.history-panel .history-controls .history-secondary-actions{float:right}.history-panel .history-controls .history-secondary-actions .icon-btn{margin-left:2px}
.history-panel .history-controls .quota-message{display:none;margin:8px 0px 5px 0px}
-.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.history-panel .history-controls .tags-display,.history-panel .history-controls .annotation-display{display:none;margin-bottom:8px}.history-panel .history-controls .tags-display label,.history-panel .history-controls .annotation-display label{display:block;margin:0px;padding:0px;font-weight:normal;color:#555}
.history-panel .history-controls .tags-display label:after,.history-panel .history-controls .annotation-display label:after{content:':'}
.history-panel .history-controls .tags-display .select2-container{min-width:0px}.history-panel .history-controls .tags-display .select2-container .select2-choices{border-radius:3px}
.history-panel .history-controls .tags-display input{border-radius:3px}
.history-panel .history-controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-line}
-.history-panel .history-controls .annotation-display .annotation:empty{height:20px}
+.history-panel .history-controls .annotation-display .annotation:empty{height:22px}
.history-panel .history-controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.history-panel .history-controls .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.history-panel .history-controls .history-dataset-actions{display:none}.history-panel .history-controls .history-dataset-actions:before,.history-panel .history-controls .history-dataset-actions:after{content:" ";display:table;}
@@ -1608,28 +1608,33 @@
.dataset .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}
.dataset .dataset-padding{padding:6px 10px 6px 8px}
.dataset [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}
-.dataset .help-text{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .help-text{font-weight:normal;color:#555}
.dataset .dataset-selector{float:left;display:none;width:0px;margin:0 0 -6px 0;padding:5px 0 2px 8px;cursor:pointer;vertical-align:middle}
-.dataset .dataset-title-bar{cursor:pointer;padding:6px 10px 6px 8px}
+.dataset .dataset-title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}
.dataset .dataset-title-bar .dataset-title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}
-.dataset .dataset-primary-actions{float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
-.dataset .dataset-body{display:none;background-color:rgba(255,255,255,0.30000000000000004);padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
+.dataset .dataset-primary-actions{display:inline-block;float:right;margin:6px 10px 0}.dataset .dataset-primary-actions .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-primary-actions .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-primary-actions .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-primary-actions .icon-btn{margin-left:2px}
+.dataset .dataset-body{display:none;padding:6px 10px 6px 8px}.dataset .dataset-body [class$=messagesmall]{margin:0px 0px 8px 0px}
.dataset .dataset-body label{margin:0px;padding:0px;font-weight:normal}
-.dataset .dataset-body .prompt{font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .prompt{font-weight:normal;color:#555}
.dataset .dataset-body .prompt:after{content:':'}
.dataset .dataset-body .dataset-summary{margin-bottom:8px}.dataset .dataset-body .dataset-summary .dataset-blurb{margin-bottom:2px}
.dataset .dataset-body .dataset-summary .dataset-datatype,.dataset .dataset-body .dataset-summary .dataset-dbkey{display:inline}.dataset .dataset-body .dataset-summary .dataset-datatype .value,.dataset .dataset-body .dataset-summary .dataset-dbkey .value{font-weight:bold}
-.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;font-style:italic;font-size:90%;color:#555}
+.dataset .dataset-body .dataset-summary .dataset-datatype .value:after{content:',';font-weight:normal;color:#555}
.dataset .dataset-body .dataset-summary .dataset-dbkey:after{content:' ';display:block;margin-bottom:8px}
.dataset .dataset-body .dataset-summary .dataset-info{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px}.dataset .dataset-body .dataset-summary .dataset-info .value{white-space:pre-line}
.dataset .dataset-body .dataset-summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;overflow:auto;white-space:pre}
-.dataset .dataset-body .dataset-actions .left{float:left}.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
-.dataset .dataset-body .dataset-actions .left .icon-btn-group{margin-right:2px}.dataset .dataset-body .dataset-actions .left .icon-btn-group .icon-btn{margin-right:0}
+.dataset .dataset-body .dataset-actions .left{display:inline-block;float:left}.dataset .dataset-body .dataset-actions .left .icon-btn:not(:last-child){margin:0px;border-radius:0px;border-right:none}
+.dataset .dataset-body .dataset-actions .left .icon-btn:first-child{margin-right:0px;border-top-left-radius:3px;border-bottom-left-radius:3px}
+.dataset .dataset-body .dataset-actions .left .icon-btn:last-child{margin-left:0px;border-radius:0px 3px 3px 0px}
+.dataset .dataset-body .dataset-actions .left .icon-btn{margin-right:2px}
.dataset .dataset-body .dataset-actions .left:not(:empty){margin-bottom:8px}
.dataset .dataset-body .dataset-actions .right{float:right}.dataset .dataset-body .dataset-actions .right .icon-btn{margin-left:2px}
.dataset .dataset-body .tags-display{display:none;margin-bottom:8px}.dataset .dataset-body .tags-display .select2-container{min-width:0px}.dataset .dataset-body .tags-display .select2-container .select2-choices{border-radius:3px}
.dataset .dataset-body .annotation-display{display:none;margin-bottom:8px}.dataset .dataset-body .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.30000000000000004);padding:4px;white-space:pre-line}
-.dataset .dataset-body .annotation-display .annotation:empty{height:20px}
+.dataset .dataset-body .annotation-display .annotation:empty{height:22px}
.dataset .dataset-body .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}
.dataset .dataset-body .annotation-display textarea{margin:0px 0px 2px 0px;display:block;border-radius:3px;width:100%}
.dataset .dataset-body .dataset-display-applications .display-application:last-child{margin-bottom:8px}
diff -r 25d75b83632ba45035c28dafd55975a695059797 -r 153caa28d992ef8897b149b25515b4c089a264eb static/style/src/less/history.less
--- a/static/style/src/less/history.less
+++ b/static/style/src/less/history.less
@@ -20,12 +20,12 @@
//@icon-btn-border: transparent;
// big & dark style
-@icon-btn-size: 20px;
+@icon-btn-size: 22px;
@icon-btn-margin: 2px;
-@icon-btn-color: #555;
+@icon-btn-color: @btn-default-color;
//@icon-btn-bg: transparent;
-@icon-btn-bg: rgba( 0, 0, 0, 0.05 );
-@icon-btn-border: rgba( 0, 0, 0, 0.1 );
+@icon-btn-bg: @btn-default-bg;
+@icon-btn-border: @btn-default-border;
.icon-btn {
display : inline-block;
@@ -178,8 +178,6 @@
margin: 0px;
padding: 0px;
font-weight: normal;
- font-style: italic;
- font-size: 90%;
color: #555;
}
label:after {
@@ -300,8 +298,8 @@
.help-text {
font-weight: normal;
- font-style: italic;
- font-size: 90%;
+ // font-style: italic;
+ // font-size: 90%;
color: #555;
}
@@ -320,6 +318,7 @@
.dataset-title-bar {
cursor: pointer;
+ outline: none;
.dataset-padding;
.dataset-state-icon {
@@ -335,6 +334,7 @@
}
.dataset-primary-actions {
+ .icon-btn-group();
float: right;
margin: @spacing-top @spacing-right 0;
.icon-btn {
@@ -344,7 +344,7 @@
.dataset-body {
display: none;
- background-color: fadeout( white, 70% );
+ // background-color: fadeout( white, 70% );
.dataset-padding;
[class$=messagesmall] {
@@ -401,16 +401,17 @@
.dataset-actions {
.left {
+ .icon-btn-group();
float: left;
.icon-btn {
margin-right: @icon-btn-margin;
}
- .icon-btn-group {
- margin-right: @icon-btn-margin;
- .icon-btn {
- margin-right: 0;
- }
- }
+ //.icon-btn-group {
+ // margin-right: @icon-btn-margin;
+ // .icon-btn {
+ // margin-right: 0;
+ // }
+ //}
&:not(:empty) {
// can't use :empty on dataset-actions - will always have left & right, so
// add gap to left (more likely to have children)
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/25d75b83632b/
Changeset: 25d75b83632b
Branch: next-stable
User: greg
Date: 2014-01-27 22:10:36
Summary: Fixes for searching and page rendering in the tool shed's admin grids.
Affected #: 1 file
diff -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 -r 25d75b83632ba45035c28dafd55975a695059797 lib/tool_shed/grids/admin_grids.py
--- a/lib/tool_shed/grids/admin_grids.py
+++ b/lib/tool_shed/grids/admin_grids.py
@@ -135,9 +135,8 @@
grids.GridColumnFilter( "Purged", args=dict( purged=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
def get_current_item( self, trans, **kwargs ):
return trans.user
@@ -220,7 +219,7 @@
filterable="advanced" )
]
columns.append( grids.MulticolFilterColumn( "Search",
- cols_to_filter=[ columns[0], columns[1], columns[2] ],
+ cols_to_filter=[ columns[0] ],
key="free-text-search",
visible=False,
filterable="standard" ) )
@@ -252,9 +251,8 @@
grids.GridColumnFilter( "Deleted", args=dict( deleted=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
def apply_query_filter( self, trans, query, **kwd ):
return query.filter( model.Role.type != model.Role.types.PRIVATE )
@@ -266,7 +264,7 @@
class NameColumn( grids.TextColumn ):
def get_value( self, trans, grid, group ):
- return group.name
+ return str( group.name )
class StatusColumn( grids.GridColumn ):
@@ -298,6 +296,7 @@
default_sort_key = "name"
columns = [
NameColumn( "Name",
+ key="name",
link=( lambda item: dict( operation="Manage users and roles", id=item.id ) ),
attach_popup=True ),
UsersColumn( "Users", attach_popup=False ),
@@ -310,7 +309,7 @@
filterable="advanced" )
]
columns.append( grids.MulticolFilterColumn( "Search",
- cols_to_filter=[ columns[0], columns[1], columns[2] ],
+ cols_to_filter=[ columns[0] ],
key="free-text-search",
visible=False,
filterable="standard" ) )
@@ -339,9 +338,8 @@
grids.GridColumnFilter( "Deleted", args=dict( deleted=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
class ManageCategoryGrid( CategoryGrid ):
@@ -540,9 +538,7 @@
confirm="Repository metadata records cannot be recovered after they are deleted. Click OK to delete the selected items." ) ]
standard_filters = []
default_filter = {}
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+ use_paging = False
def build_initial_query( self, trans, **kwd ):
return trans.sa_session.query( model.RepositoryMetadata ) \
https://bitbucket.org/galaxy/galaxy-central/commits/a6fed0f56ec8/
Changeset: a6fed0f56ec8
User: greg
Date: 2014-01-27 22:11:00
Summary: Merged from next-stable
Affected #: 1 file
diff -r 8d90711f302d9b51a8fc506461143128f516411a -r a6fed0f56ec84682302dc64bb5498333e7dc7666 lib/tool_shed/grids/admin_grids.py
--- a/lib/tool_shed/grids/admin_grids.py
+++ b/lib/tool_shed/grids/admin_grids.py
@@ -135,9 +135,8 @@
grids.GridColumnFilter( "Purged", args=dict( purged=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
def get_current_item( self, trans, **kwargs ):
return trans.user
@@ -220,7 +219,7 @@
filterable="advanced" )
]
columns.append( grids.MulticolFilterColumn( "Search",
- cols_to_filter=[ columns[0], columns[1], columns[2] ],
+ cols_to_filter=[ columns[0] ],
key="free-text-search",
visible=False,
filterable="standard" ) )
@@ -252,9 +251,8 @@
grids.GridColumnFilter( "Deleted", args=dict( deleted=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
def apply_query_filter( self, trans, query, **kwd ):
return query.filter( model.Role.type != model.Role.types.PRIVATE )
@@ -266,7 +264,7 @@
class NameColumn( grids.TextColumn ):
def get_value( self, trans, grid, group ):
- return group.name
+ return str( group.name )
class StatusColumn( grids.GridColumn ):
@@ -298,6 +296,7 @@
default_sort_key = "name"
columns = [
NameColumn( "Name",
+ key="name",
link=( lambda item: dict( operation="Manage users and roles", id=item.id ) ),
attach_popup=True ),
UsersColumn( "Users", attach_popup=False ),
@@ -310,7 +309,7 @@
filterable="advanced" )
]
columns.append( grids.MulticolFilterColumn( "Search",
- cols_to_filter=[ columns[0], columns[1], columns[2] ],
+ cols_to_filter=[ columns[0] ],
key="free-text-search",
visible=False,
filterable="standard" ) )
@@ -339,9 +338,8 @@
grids.GridColumnFilter( "Deleted", args=dict( deleted=True ) ),
grids.GridColumnFilter( "All", args=dict( deleted='All' ) )
]
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+
+ use_paging = False
class ManageCategoryGrid( CategoryGrid ):
@@ -540,9 +538,7 @@
confirm="Repository metadata records cannot be recovered after they are deleted. Click OK to delete the selected items." ) ]
standard_filters = []
default_filter = {}
- num_rows_per_page = 50
- preserve_state = False
- use_paging = True
+ use_paging = False
def build_initial_query( self, trans, **kwd ):
return trans.sa_session.query( model.RepositoryMetadata ) \
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/31b4f3ee40d6/
Changeset: 31b4f3ee40d6
Branch: next-stable
User: greg
Date: 2014-01-27 21:01:49
Summary: Fix for multi-set email alerts for repository changes in the tool shed.
Affected #: 3 files
diff -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 lib/galaxy/webapps/tool_shed/controllers/repository.py
--- a/lib/galaxy/webapps/tool_shed/controllers/repository.py
+++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py
@@ -2466,6 +2466,10 @@
kwd[ 'message' ] = 'You must be logged in to set email alerts.'
kwd[ 'status' ] = 'error'
del kwd[ 'operation' ]
+ elif operation == "view_or_manage_repository":
+ return trans.response.send_redirect( web.url_for( controller='repository',
+ action='view_or_manage_repository',
+ **kwd ) )
self.email_alerts_repository_grid.title = "Set email alerts for repository changes"
return self.email_alerts_repository_grid( trans, **kwd )
@@ -2766,9 +2770,8 @@
@web.expose
@web.require_login( "set email alerts" )
def set_email_alerts( self, trans, **kwd ):
- # Set email alerts for selected repositories
- # This method is called from multiple grids, so
- # the caller must be passed.
+ """Set email alerts for selected repositories."""
+ # This method is called from multiple grids, so the caller must be passed.
caller = kwd[ 'caller' ]
user = trans.user
if user:
diff -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 lib/tool_shed/grids/repository_grids.py
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -304,7 +304,7 @@
visible=False,
filterable="advanced" )
]
- operations = []
+ operations = [ grids.GridOperation( "Receive email alerts", allow_multiple=True ) ]
global_actions = [
grids.GridAction( "User preferences", dict( controller='user', action='index', cntrller='repository' ) )
]
diff -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb -r 31b4f3ee40d638fd7bd47951e443dec59a99a193 templates/webapps/tool_shed/user/manage_email_alerts.mako
--- a/templates/webapps/tool_shed/user/manage_email_alerts.mako
+++ b/templates/webapps/tool_shed/user/manage_email_alerts.mako
@@ -4,7 +4,7 @@
<br/><br/><ul class="manage-table-actions"><li>
- <a class="action-button" href="${h.url_for( controller='repository', action='multi_select_email_alerts', cntrller='repository' )}">Manage repository alerts</a>
+ <a class="action-button" href="${h.url_for( controller='repository', action='multi_select_email_alerts' )}">Manage repository alerts</a></li><li><a class="action-button" href="${h.url_for( controller='user', action='index', cntrller='repository' )}">User preferences</a>
https://bitbucket.org/galaxy/galaxy-central/commits/8d90711f302d/
Changeset: 8d90711f302d
User: greg
Date: 2014-01-27 21:02:20
Summary: Merged from next-stable
Affected #: 3 files
diff -r 15f845aa98d2fbec19039eb879e481468fbd4cca -r 8d90711f302d9b51a8fc506461143128f516411a lib/galaxy/webapps/tool_shed/controllers/repository.py
--- a/lib/galaxy/webapps/tool_shed/controllers/repository.py
+++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py
@@ -2466,6 +2466,10 @@
kwd[ 'message' ] = 'You must be logged in to set email alerts.'
kwd[ 'status' ] = 'error'
del kwd[ 'operation' ]
+ elif operation == "view_or_manage_repository":
+ return trans.response.send_redirect( web.url_for( controller='repository',
+ action='view_or_manage_repository',
+ **kwd ) )
self.email_alerts_repository_grid.title = "Set email alerts for repository changes"
return self.email_alerts_repository_grid( trans, **kwd )
@@ -2766,9 +2770,8 @@
@web.expose
@web.require_login( "set email alerts" )
def set_email_alerts( self, trans, **kwd ):
- # Set email alerts for selected repositories
- # This method is called from multiple grids, so
- # the caller must be passed.
+ """Set email alerts for selected repositories."""
+ # This method is called from multiple grids, so the caller must be passed.
caller = kwd[ 'caller' ]
user = trans.user
if user:
diff -r 15f845aa98d2fbec19039eb879e481468fbd4cca -r 8d90711f302d9b51a8fc506461143128f516411a lib/tool_shed/grids/repository_grids.py
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -304,7 +304,7 @@
visible=False,
filterable="advanced" )
]
- operations = []
+ operations = [ grids.GridOperation( "Receive email alerts", allow_multiple=True ) ]
global_actions = [
grids.GridAction( "User preferences", dict( controller='user', action='index', cntrller='repository' ) )
]
diff -r 15f845aa98d2fbec19039eb879e481468fbd4cca -r 8d90711f302d9b51a8fc506461143128f516411a templates/webapps/tool_shed/user/manage_email_alerts.mako
--- a/templates/webapps/tool_shed/user/manage_email_alerts.mako
+++ b/templates/webapps/tool_shed/user/manage_email_alerts.mako
@@ -4,7 +4,7 @@
<br/><br/><ul class="manage-table-actions"><li>
- <a class="action-button" href="${h.url_for( controller='repository', action='multi_select_email_alerts', cntrller='repository' )}">Manage repository alerts</a>
+ <a class="action-button" href="${h.url_for( controller='repository', action='multi_select_email_alerts' )}">Manage repository alerts</a></li><li><a class="action-button" href="${h.url_for( controller='user', action='index', cntrller='repository' )}">User preferences</a>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/79d9ae1d8482/
Changeset: 79d9ae1d8482
Branch: next-stable
User: natefoo
Date: 2014-01-27 20:06:23
Summary: One more tool removed in migration 9 that needed to be removed from tool_conf.xml.main.
Affected #: 1 file
diff -r 0c6bf744c5b25377145df3994198f994193ba0bf -r 79d9ae1d84826e5bfa1c3b3ddf57112927f9a7fb tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -184,8 +184,6 @@
<tool file="solid_tools/solid_qual_boxplot.xml" /><label id="generic_fastq" text="Generic FASTQ manipulation" /><label id="fastx_toolkit_fastq" text="FASTX-Toolkit for FASTQ data" />
- <label id="fastq_qc" text="FASTQ QC" />
- <tool file="rgenetics/rgFastQC.xml" /></section><section id="ngs_mapping" name="NGS: Mapping"><label id="illumina" text="Illumina" />
https://bitbucket.org/galaxy/galaxy-central/commits/15f845aa98d2/
Changeset: 15f845aa98d2
User: natefoo
Date: 2014-01-27 20:06:36
Summary: Merge tool removal from next-stable.
Affected #: 1 file
diff -r 8ea87f7bc63a32ee86d07652de0d2705b195d532 -r 15f845aa98d2fbec19039eb879e481468fbd4cca tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -184,8 +184,6 @@
<tool file="solid_tools/solid_qual_boxplot.xml" /><label id="generic_fastq" text="Generic FASTQ manipulation" /><label id="fastx_toolkit_fastq" text="FASTX-Toolkit for FASTQ data" />
- <label id="fastq_qc" text="FASTQ QC" />
- <tool file="rgenetics/rgFastQC.xml" /></section><section id="ngs_mapping" name="NGS: Mapping"><label id="illumina" text="Illumina" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
6 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/c21482ac06f8/
Changeset: c21482ac06f8
Branch: next-stable
User: natefoo
Date: 2014-01-27 19:37:33
Summary: Remove 4 tools from tool_conf.xml.main that were removed in migration 9.
Affected #: 1 file
diff -r 43d7d4a42cd2a3e31e02d86d0cf7d66dc928c631 -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -139,7 +139,6 @@
<tool file="plotting/histogram2.xml" /><tool file="plotting/scatterplot.xml" /><tool file="plotting/boxplot.xml" />
- <tool file="visualization/GMAJ.xml" /><tool file="visualization/build_ucsc_custom_track.xml" /><tool file="maf/vcf_to_maf_customtrack.xml" /><tool file="mutation/visualize.xml" />
@@ -175,9 +174,6 @@
<tool file="hyphy/hyphy_nj_tree_wrapper.xml" /><!-- <tool file="hyphy/hyphy_dnds_wrapper.xml" /> --></section>
- <section id="motifs" name="Motif Tools">
- <tool file="rgenetics/rgWebLogo3.xml" />
- </section><section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
@@ -253,10 +249,6 @@
<tool file="gatk/variant_eval.xml" /><tool file="gatk/variant_combine.xml" /></section>
- <section id="peak_calling" name="NGS: Peak Calling">
- <tool file="peak_calling/macs_wrapper.xml" />
- <tool file="peak_calling/sicer_wrapper.xml" />
- </section><section id="ngs-rna-tools" name="NGS: RNA Analysis"><label id="rna_seq" text="RNA-seq" /><label id="filtering" text="Filtering" />
https://bitbucket.org/galaxy/galaxy-central/commits/401ee23dcf2f/
Changeset: 401ee23dcf2f
Branch: next-stable
User: natefoo
Date: 2014-01-27 19:58:31
Summary: Remove broken and/or obsolete tools.
Affected #: 33 files
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 buildbot_setup.sh
--- a/buildbot_setup.sh
+++ b/buildbot_setup.sh
@@ -4,28 +4,6 @@
: ${HOSTTYPE:=`uname -m`}
-# link to HYPHY is arch-dependent
-case "$OSTYPE" in
- linux-gnu)
- kernel=`uname -r | cut -f1,2 -d.`
- HYPHY="/galaxy/software/linux$kernel-$HOSTTYPE/hyphy"
- ;;
- darwin*)
- this_minor=`uname -r | awk -F. '{print ($1-4)}'`
- machine=`machine`
- for minor in `jot - 3 $this_minor 1`; do
- HYPHY="/galaxy/software/macosx10.$minor-$machine/hyphy"
- [ -d "$HYPHY" ] && break
- done
- [ ! -d "$HYPHY" ] && unset HYPHY
- ;;
- solaris2.10)
- # For the psu-production builder which is Solaris, but jobs run on a
- # Linux cluster
- HYPHY="/galaxy/software/linux2.6-x86_64/hyphy"
- ;;
-esac
-
LINKS="
/galaxy/data/location/add_scores.loc
/galaxy/data/location/all_fasta.loc
@@ -121,12 +99,6 @@
ln -sf $link tool-data
done
- if [ -d "$HYPHY" ]; then
- echo "Linking $HYPHY"
- rm -f tool-data/HYPHY
- ln -sf $HYPHY tool-data/HYPHY
- fi
-
if [ -d "$JARS" ]; then
echo "Linking $JARS"
rm -f tool-data/shared/jars
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 doc/source/lib/galaxy.tools.util.rst
--- a/doc/source/lib/galaxy.tools.util.rst
+++ b/doc/source/lib/galaxy.tools.util.rst
@@ -9,14 +9,6 @@
:undoc-members:
:show-inheritance:
-:mod:`hyphy_util` Module
-------------------------
-
-.. automodule:: galaxy.tools.util.hyphy_util
- :members:
- :undoc-members:
- :show-inheritance:
-
:mod:`maf_utilities` Module
---------------------------
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 lib/galaxy/tools/util/hyphy_util.py
--- a/lib/galaxy/tools/util/hyphy_util.py
+++ /dev/null
@@ -1,1163 +0,0 @@
-#Dan Blankenberg
-#Contains file contents and helper methods for HYPHY configurations
-import tempfile, os
-
-def get_filled_temp_filename(contents):
- fh = tempfile.NamedTemporaryFile('w')
- filename = fh.name
- fh.close()
- fh = open(filename, 'w')
- fh.write(contents)
- fh.close()
- return filename
-
-NJ_tree_shared_ibf = """
-COUNT_GAPS_IN_FREQUENCIES = 0;
-methodIndex = 1;
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function InferTreeTopology(verbFlag)
-{
- distanceMatrix = {ds.species,ds.species};
-
- MESSAGE_LOGGING = 0;
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"chooseDistanceFormula.def");
- InitializeDistances (0);
-
- for (i = 0; i<ds.species; i=i+1)
- {
- for (j = i+1; j<ds.species; j = j+1)
- {
- distanceMatrix[i][j] = ComputeDistanceFormula (i,j);
- }
- }
-
- MESSAGE_LOGGING = 1;
- cladesMade = 1;
-
-
- if (ds.species == 2)
- {
- d1 = distanceMatrix[0][1]/2;
- treeNodes = {{0,1,d1__},
- {1,1,d1__},
- {2,0,0}};
-
- cladesInfo = {{2,0}};
- }
- else
- {
- if (ds.species == 3)
- {
- /* generate least squares estimates here */
-
- d1 = (distanceMatrix[0][1]+distanceMatrix[0][2]-distanceMatrix[1][2])/2;
- d2 = (distanceMatrix[0][1]-distanceMatrix[0][2]+distanceMatrix[1][2])/2;
- d3 = (distanceMatrix[1][2]+distanceMatrix[0][2]-distanceMatrix[0][1])/2;
-
- treeNodes = {{0,1,d1__},
- {1,1,d2__},
- {2,1,d3__}
- {3,0,0}};
-
- cladesInfo = {{3,0}};
- }
- else
- {
- njm = (distanceMatrix > methodIndex)>=ds.species;
-
- treeNodes = {2*(ds.species+1),3};
- cladesInfo = {ds.species-1,2};
-
- for (i=Rows(treeNodes)-1; i>=0; i=i-1)
- {
- treeNodes[i][0] = njm[i][0];
- treeNodes[i][1] = njm[i][1];
- treeNodes[i][2] = njm[i][2];
- }
-
- for (i=Rows(cladesInfo)-1; i>=0; i=i-1)
- {
- cladesInfo[i][0] = njm[i][3];
- cladesInfo[i][1] = njm[i][4];
- }
-
- njm = 0;
- }
- }
- return 1.0;
-}
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function TreeMatrix2TreeString (doLengths)
-{
- treeString = "";
- p = 0;
- k = 0;
- m = treeNodes[0][1];
- n = treeNodes[0][0];
- treeString*(Rows(treeNodes)*25);
-
- while (m)
- {
- if (m>p)
- {
- if (p)
- {
- treeString*",";
- }
- for (j=p;j<m;j=j+1)
- {
- treeString*"(";
- }
- }
- else
- {
- if (m<p)
- {
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
- }
- else
- {
- treeString*",";
- }
- }
- if (n<ds.species)
- {
- GetString (nodeName, ds, n);
- if (doLengths != 1)
- {
- treeString*nodeName;
- }
- else
- {
- treeString*taxonNameMap[nodeName];
- }
- }
- if (doLengths>.5)
- {
- nodeName = ":"+treeNodes[k][2];
- treeString*nodeName;
- }
- k=k+1;
- p=m;
- n=treeNodes[k][0];
- m=treeNodes[k][1];
- }
-
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
-
- treeString*0;
- return treeString;
-}
-"""
-
-def get_NJ_tree (filename):
- return """
-DISTANCE_PROMPTS = 1;
-ExecuteAFile ("%s");
-
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-/* do sequence to branch map */
-
-taxonNameMap = {};
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
-}
-
-DataSetFilter filteredData = CreateFilter (ds,1);
-InferTreeTopology (0);
-treeString = TreeMatrix2TreeString (1);
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, treeString);
-fscanf (stdin, "String", ps_file);
-
-if (Abs(ps_file))
-{
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (ps_file, CLEAR_FILE, drawLetter, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
-}
-""" % (filename)
-
-def get_NJ_treeMF (filename):
- return """
-ExecuteAFile ("%s");
-
-VERBOSITY_LEVEL = -1;
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-_linesIn = Columns (inLines);
-isomorphicTreesBySequenceCount = {};
-
-/*---------------------------------------------------------*/
-
-_currentGene = 1;
-_currentState = 0;
-geneSeqs = "";
-geneSeqs * 128;
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, KEEP_OPEN);
-treeOutFile = LAST_FILE_PATH;
-
-fscanf (stdin,"String", ps_file);
-if (Abs(ps_file))
-{
- fprintf (ps_file, CLEAR_FILE, KEEP_OPEN);
-}
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- if (Abs(geneSeqs))
- {
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- }
-}
-
-fprintf (treeOutFile,CLOSE_FILE);
-if (Abs(ps_file))
-{
- fprintf (ps_file,CLOSE_FILE);
-}
-/*---------------------------------------------------------*/
-
-function _processAGene (_geneID, nwk_file, ps_file)
-{
- if (ds.species == 1)
- {
- fprintf (nwk_file, _geneID-1, "\\tNone \\tNone\\n");
- return 0;
-
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- /* do sequence to branch map */
-
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}});
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- DISTANCE_PROMPTS = (_geneID==1);
-
- InferTreeTopology (0);
- baseTree = TreeMatrix2TreeString (0);
- UseModel (USE_NO_MODEL);
-
- Tree baseTop = baseTree;
-
- /* standardize this top */
-
- for (k=0; k<Abs(isomorphicTreesBySequenceCount[filteredData.species]); k=k+1)
- {
- testString = (isomorphicTreesBySequenceCount[filteredData.species])[k];
- Tree testTree = testString;
- if (testTree == baseTop)
- {
- baseTree = testString;
- break;
- }
- }
- if (k==Abs(isomorphicTreesBySequenceCount[filteredData.species]))
- {
- if (k==0)
- {
- isomorphicTreesBySequenceCount[filteredData.species] = {};
- }
- (isomorphicTreesBySequenceCount[filteredData.species])[k] = baseTree;
- }
-
- fprintf (nwk_file, _geneID-1, "\\t", baseTree, "\\t", TreeMatrix2TreeString (1), "\\n");
- if (Abs(ps_file))
- {
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (stdout, _geneID, ":", givenTree,"\\n");
- fprintf (ps_file, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
- }
- return 0;
-}
-""" % (filename)
-
-BranchLengthsMF = """
-VERBOSITY_LEVEL = -1;
-
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-
-
-_linesIn = Columns (inLines);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-_currentGene = 1;
-
-_currentState = 0;
-
-geneSeqs = "";
-
-geneSeqs * 128;
-
-
-
-for (l=0; l<_linesIn; l=l+1)
-
-{
-
- if (Abs(inLines[l]) == 0)
-
- {
-
- if (_currentState == 1)
-
- {
-
- geneSeqs * 0;
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- geneSeqs * 128;
-
- _currentGene = _currentGene + 1;
-
- }
-
- }
-
- else
-
- {
-
- if (_currentState == 0)
-
- {
-
- _currentState = 1;
-
- }
-
- geneSeqs * inLines[l];
-
- geneSeqs * "\\n";
-
- }
-
-}
-
-
-
-if (_currentState == 1)
-
-{
-
- geneSeqs * 0;
-
- if (Abs(geneSeqs))
-
- {
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- }
-
-}
-
-
-
-fprintf (resultFile,CLOSE_FILE);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-function _processAGene (_geneID)
-
-{
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- if (_currentGene == 1)
-
- {
-
- SelectTemplateModel (filteredData);
-
-
-
- SetDialogPrompt ("Tree file");
-
- fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
- fscanf (stdin, "String", resultFile);
-
-
-
- /* do sequence to branch map */
-
-
-
- validNames = {};
-
- taxonNameMap = {};
-
-
-
- for (k=0; k<TipCount(givenTree); k=k+1)
-
- {
-
- validNames[TipName(givenTree,k)&&1] = 1;
-
- }
-
-
-
- for (k=0; k<BranchCount(givenTree); k=k+1)
-
- {
-
- thisName = BranchName(givenTree,k);
-
- taxonNameMap[thisName&&1] = thisName;
-
- }
-
-
-
- storeValidNames = validNames;
-
- fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Block\\tBranch\\tLength\\tLowerBound\\tUpperBound\\n");
-
- }
-
- else
-
- {
-
- HarvestFrequencies (vectorOfFrequencies, filteredData, 1,1,1);
-
- validNames = storeValidNames;
-
- }
-
-
-
- for (k=0; k<ds.species; k=k+1)
-
- {
-
- GetString (thisName, ds,k);
-
- shortName = (thisName^{{"\\\\..+",""}})&&1;
-
- if (validNames[shortName])
-
- {
-
- taxonNameMap[shortName] = thisName;
-
- validNames - (shortName);
-
- SetParameter (ds,k,shortName);
-
- }
-
- else
-
- {
-
- fprintf (resultFile,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree,"\\n");
-
- return 0;
-
- }
-
- }
-
-
-
- /* */
-
-
-
- LikelihoodFunction lf = (filteredData,givenTree);
-
- Optimize (res,lf);
-
-
-
- timer = Time(0)-timer;
-
-
-
- branchNames = BranchName (givenTree,-1);
-
- branchLengths = BranchLength (givenTree,-1);
-
-
-
-
-
- for (k=0; k<Columns(branchNames)-1; k=k+1)
-
- {
-
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- if (k==0)
-
- {
-
- /* compute a scaling factor */
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
-
- scaleFactor = BranchLength (givenTree,0);
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
-
- }
-
- fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-
- }
-
-
-
- ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-
- global treeScaler = 1;
-
- ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-
- COVARIANCE_PARAMETER = "treeScaler";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- fprintf (resultFile,_geneID,"\\tTotal Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-
- ClearConstraints (givenTree);
-
- return 0;
-
-}
-"""
-
-BranchLengths = """
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-SelectTemplateModel (filteredData);
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-fscanf (stdin, "String", resultFile);
-
-/* do sequence to branch map */
-
-validNames = {};
-taxonNameMap = {};
-
-for (k=0; k<TipCount(givenTree); k=k+1)
-{
- validNames[TipName(givenTree,k)&&1] = 1;
-}
-
-for (k=0; k<BranchCount(givenTree); k=k+1)
-{
- thisName = BranchName(givenTree,k);
- taxonNameMap[thisName&&1] = thisName;
-}
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- if (validNames[shortName])
- {
- taxonNameMap[shortName] = thisName;
- validNames - (shortName);
- SetParameter (ds,k,shortName);
- }
- else
- {
- fprintf (resultFile,CLEAR_FILE,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree);
- return 0;
- }
-}
-
-/* */
-
-LikelihoodFunction lf = (filteredData,givenTree);
-
-Optimize (res,lf);
-
-timer = Time(0)-timer;
-
-branchNames = BranchName (givenTree,-1);
-branchLengths = BranchLength (givenTree,-1);
-
-fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Branch\\tLength\\tLowerBound\\tUpperBound\\n");
-
-for (k=0; k<Columns(branchNames)-1; k=k+1)
-{
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- if (k==0)
- {
- /* compute a scaling factor */
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
- scaleFactor = BranchLength (givenTree,0);
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
- }
- fprintf (resultFile,taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-}
-
-ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-global treeScaler = 1;
-ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-COVARIANCE_PARAMETER = "treeScaler";
-COVARIANCE_PRECISION = 0.95;
-CovarianceMatrix (cmx,lf);
-ClearConstraints (givenTree);
-fprintf (resultFile,"Total Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-fprintf (resultFile,CLOSE_FILE);
-"""
-
-SimpleLocalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "AC";
- _analysisHeaders[7] = "AT";
- _analysisHeaders[8] = "CG";
- _analysisHeaders[9] = "CT";
- _analysisHeaders[10] = "GT";
- _analysisHeaders[11] = "Tree";
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _analysisHeaders [Abs(_analysisHeaders)] = "length("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dS("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dN("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "omega("+branchName+")";
- }
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Local";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = treeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = treeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _returnMe ["length("+branchName+")"] = (_cL["Total"])[_biterator];
- _returnMe ["dS("+branchName+")"] = (_cL["Syn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["S_sites"]);
- _returnMe ["dN("+branchName+")"] = (_cL["NonSyn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["NS_sites"]);
-
- ExecuteCommands ("_lom = _standardizeRatio(codonTree."+treeBranchNames[_biterator]+".nonSynRate,codonTree."+treeBranchNames[_biterator]+".synRate);");
- _returnMe ["omega("+branchName+")"] = _lom;
- }
-
- return _returnMe;
-}
-
-"""
-
-SimpleGlobalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "omega";
- _analysisHeaders[7] = "omega_range";
- _analysisHeaders[8] = "AC";
- _analysisHeaders[9] = "AT";
- _analysisHeaders[10] = "CG";
- _analysisHeaders[11] = "CT";
- _analysisHeaders[12] = "GT";
- _analysisHeaders[13] = "Tree";
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- fprintf (stdout, "[SimpleGlobalFitter.bf on GENE ", myID, "]\\n");
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- _nucSites = filteredData.sites;
-
- if (Abs(treeString))
- {
- givenTreeString = treeString;
- }
- else
- {
- if (_currentGene==1)
- {
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"NJ.bf");
- }
- givenTreeString = InferTreeTopology (0);
- treeString = "";
- }
-
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Global";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = givenTreeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = givenTreeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["Stop_codons"] = (_nucSites-filteredData.sites*3)$3;
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["omega"] = R;
- COVARIANCE_PARAMETER = "R";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- _returnMe ["omega_range"] = ""+cmx[0]+"-"+cmx[2];
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
-
- return _returnMe;
-}
-"""
-
-FastaReader = """
-fscanf (stdin, "String", _coreAnalysis);
-fscanf (stdin, "String", _outputDriver);
-
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"dSdNTreeTools.ibf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"CodonTools.bf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"GrabBag.bf");
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
-treeBranchNames = BranchName (givenTree,-1);
-treeBranchCount = Columns (treeBranchNames)-1;
-treeString = Format (givenTree,1,1);
-
-SetDialogPrompt ("Multiple gene FASTA file");
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-fscanf (stdin, "String", modelSpecString);
-fscanf (stdin, "String", _outPath);
-
-ExecuteAFile (_outputDriver);
-ExecuteAFile (_coreAnalysis);
-
-/*---------------------------------------------------------*/
-
-_linesIn = Columns (inLines);
-_currentGene = 1;
- _currentState = 0;
-/* 0 - waiting for a non-empty line */
-/* 1 - reading files */
-
-geneSeqs = "";
-geneSeqs * 0;
-
-_prepareFileOutput (_outPath);
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
-}
-
-_finishFileOutput (0);
-"""
-
-TabWriter = """
-/*---------------------------------------------------------*/
-function _prepareFileOutput (_outPath)
-{
- _outputFilePath = _outPath;
-
- _returnHeaders = returnResultHeaders(0);
-
- fprintf (_outputFilePath, CLEAR_FILE, KEEP_OPEN, _returnHeaders[0]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",_returnHeaders[_biterator]);
- }
-
-
-
- fprintf (_outputFilePath,"\\n");
- return 0;
-}
-
-/*---------------------------------------------------------*/
-
-function _processAGene (valid, _geneID)
-{
- if (valid)
- {
- returnValue = runAGeneFit (_geneID);
- fprintf (_outputFilePath, returnValue[_returnHeaders[0]]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",returnValue[_returnHeaders[_biterator]]);
- }
- fprintf (_outputFilePath, "\\n");
- }
- /*
- else
- {
- fprintf (_outputFilePath,
- _geneID, ", Incorrect number of sequences\\n");
- }
- */
- _currentState = 0;
- return 0;
-}
-
-/*---------------------------------------------------------*/
-function _finishFileOutput (dummy)
-{
- return 0;
-}
-"""
-
-def get_dnds_config_filename(Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename ):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the DATA READER */
-
-_genomeScreenOptions ["0"] = "%s";
- /* which analysis to run on each gene; */
-_genomeScreenOptions ["1"] = "%s";
- /* what output to produce; */
-_genomeScreenOptions ["2"] = "%s";
- /* genetic code */
-_genomeScreenOptions ["3"] = "%s";
- /* tree file */
-_genomeScreenOptions ["4"] = "%s";
- /* alignment file */
-_genomeScreenOptions ["5"] = "%s";
- /* nucleotide bias string; can define any of the 203 models */
-_genomeScreenOptions ["6"] = "%s";
- /* output csv file */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename )
- return get_filled_temp_filename(contents)
-
-
-def get_branch_lengths_config_filename(input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the NucDataBranchLengths.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "CUSTOM";
- /* use an arbitrary nucleotide model */
-_genomeScreenOptions ["2"] = "%s";
- /* which model to use */
-_genomeScreenOptions ["3"] = "%s";
- /* model options */
-_genomeScreenOptions ["4"] = "Estimated";
- /* rate parameters */
-_genomeScreenOptions ["5"] = "%s";
- /* base frequencies */
-_genomeScreenOptions ["6"] = "%s";
- /* the tree to use; */
-_genomeScreenOptions ["7"] = "%s";
- /* write .csv output to; */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_tree_config_filename(input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTree.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-_genomeScreenOptions ["2"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["3"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_treeMF_config_filename(input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTreeMF.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the multiple alignment file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["2"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-_genomeScreenOptions ["3"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename)
- return get_filled_temp_filename(contents)
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tool-data/shared/ucsc/ucsc_build_sites.txt
--- a/tool-data/shared/ucsc/ucsc_build_sites.txt
+++ b/tool-data/shared/ucsc/ucsc_build_sites.txt
@@ -5,4 +5,3 @@
#Harvested from http://genome-test.cse.ucsc.edu/cgi-bin/das/dsn
test http://genome-test.cse.ucsc.edu/cgi-bin/hgTracks? anoCar1,ce4,ce3,ce2,ce1,loxAfr1,rn2,eschColi_O157H7_1,rn4,droYak1,heliPylo_J99_1,droYak2,dp3,dp2,caeRem2,caeRem1,oryLat1,eschColi_K12_1,homIni13,homIni14,droAna1,droAna2,oryCun1,sacCer1,heliHepa1,droGri1,sc1,dasNov1,choHof1,tupBel1,mm9,mm8,vibrChol1,mm5,mm4,mm7,mm6,mm3,mm2,rn3,venter1,galGal3,galGal2,ornAna1,equCab1,cioSav2,rheMac2,eutHer13,droPer1,droVir2,droVir1,heliPylo_26695_1,euaGli13,calJac1,campJeju1,droSim1,hg13,hg15,hg16,hg17,monDom1,monDom4,droMoj1,petMar1,droMoj2,vibrChol_MO10_1,vibrPara1,gliRes13,vibrVuln_YJ016_1,braFlo1,cioSav1,lauRas13,dm1,canFam1,canFam2,ci1,echTel1,ci2,caePb1,dm3,ponAbe2,falciparum,xenTro1,xenTro2,nonAfr13,fr2,fr1,gasAcu1,dm2,apiMel1,apiMel2,eschColi_O157H7EDL933_1,priPac1,panTro1,hg18,panTro2,campJeju_RM1221_1,canHg12,vibrChol_O395_1,vibrFisc_ES114_1,danRer5,danRer4,danRer3,danRer2,danRer1,tetNig1,afrOth13,bosTau1,eschColi_CFT073_1,bosTau3,bosTau2,bosTau4,rodEnt13,droEre1,priMat13,vibrVuln_CMCP6_1,cb2,cb3,cb1,borEut13,droSec1,felCat3,strPur1,strPur2,otoGar1,catArr1,anoGam1,triCas2
ucla http://epigenomics.mcdb.ucla.edu/cgi-bin/hgTracks? araTha1
-psu bx main http://main.genome-browser.bx.psu.edu/cgi-bin/hgTracks? hg18,hg19,mm8,mm9
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -4,32 +4,19 @@
<tool file="data_source/upload.xml" /><tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/biomart.xml" /><tool file="data_source/gramene_mart.xml" />
- <tool file="data_source/flymine.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -87,7 +74,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="features" name="Extract Features"><tool file="filters/ucsc_gene_bed_to_exon_bed.xml" />
@@ -111,7 +97,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -169,11 +154,6 @@
<tool file="multivariate_stats/kpca.xml" /><tool file="multivariate_stats/kcca.xml" /></section>
- <section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <!-- <tool file="hyphy/hyphy_dnds_wrapper.xml" /> -->
- </section><section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -5,7 +5,6 @@
<tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_test.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/microbial_import.xml" /><tool file="data_source/biomart.xml" />
@@ -13,34 +12,18 @@
<tool file="data_source/cbi_rice_mart.xml" /><tool file="data_source/gramene_mart.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/flymine.xml" />
- <tool file="data_source/flymine_test.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" />
- <tool file="data_source/metabolicmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/wormbase_test.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" />
- <tool file="data_source/epigraph_import_test.xml" /><tool file="data_source/hbvar.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /><tool file="validation/fix_errors.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" />
- <tool file="data_destination/epigraph_test.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -81,7 +64,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="convert" name="Convert Formats"><tool file="filters/axt_to_concat_fasta.xml" />
@@ -124,7 +106,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -189,9 +170,6 @@
<tool file="multivariate_stats/kcca.xml" /></section><section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <tool file="hyphy/hyphy_dnds_wrapper.xml" /><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /></section>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_destination/epigraph.xml
--- a/tools/data_destination/epigraph.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_export">
- <description> and prediction with EpiGRAPH</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_destination/epigraph_test.xml
--- a/tools/data_destination/epigraph_test.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_test_export">
- <description> and prediction with EpiGRAPH Test</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH test website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/bx_browser.xml
--- a/tools/data_source/bx_browser.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="BX" id="bx_browser" tool_type="data_source">
- <description>table browser</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://main.genome-browser.bx.psu.edu/cgi-bin/hgTables" check_values="false" method="get">
- <display>go to BX Browser $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner" />
- <param name="tool_id" type="hidden" value="bx_browser" />
- <param name="sendToGalaxy" type="hidden" value="1" />
- <param name="hgta_compressType" type="hidden" value="none" />
- <param name="hgta_outputType" type="hidden" value="bed" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="org" missing="unknown species" />
- <request_param galaxy_name="table" remote_name="hgta_table" missing="unknown table" />
- <request_param galaxy_name="description" remote_name="hgta_regionType" missing="no description" />
- <request_param galaxy_name="data_type" remote_name="hgta_outputType" missing="tabular" >
- <value_translation>
- <value galaxy_value="tabular" remote_value="primaryTable" />
- <value galaxy_value="tabular" remote_value="selectedFields" />
- <value galaxy_value="wig" remote_value="wigData" />
- <value galaxy_value="interval" remote_value="tab" />
- <value galaxy_value="html" remote_value="hyperlinks" />
- <value galaxy_value="fasta" remote_value="sequence" />
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="tabular" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/encode_db.xml
--- a/tools/data_source/encode_db.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<tool name="EncodeDB" id="encode_db1">
-
- <description>
- at NHGRI
- </description>
-
- <command interpreter="python">
- fetch.py "$url" $output
- </command>
-
- <inputs action="http://research.nhgri.nih.gov/projects/ENCODEdb/cgi-bin/power_query.cgi" target="_top">
-<!-- <inputs action="http://localhost:9000/prepared"> -->
- <display>go to EncodeDB $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/async/encode_db1" />
- </inputs>
-
- <uihints minwidth="800"/>
-
- <outputs>
- <data format="bed" name="output" />
- </outputs>
-
- <options sanitize="False" refresh="True"/>
-
-</tool>
\ No newline at end of file
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/epigraph_import.xml
--- a/tools/data_source/epigraph_import.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import" tool_type="data_source">
- <description> server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/epigraph_import_test.xml
--- a/tools/data_source/epigraph_import_test.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import_test" tool_type="data_source">
- <description> test server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import_test" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/flymine.xml
--- a/tools/data_source/flymine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine" id="flymine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.flymine.org" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/flymine_test.xml
--- a/tools/data_source/flymine_test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine test" id="flymine_test" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://preview.flymine.org/preview/begin.do" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/metabolicmine.xml
--- a/tools/data_source/metabolicmine.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<tool name="metabolicMine" id="metabolicmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.metabolicmine.org/beta/begin.do" check_values="false" method="get">
- <display>go to metabolicMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/modmine.xml
--- a/tools/data_source/modmine.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="modENCODE modMine" id="modmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://intermine.modencode.org/" check_values="false" method="get">
- <display>go to modENCODE modMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/mousemine.xml
--- a/tools/data_source/mousemine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="MouseMine" id="mousemine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.mousemine.org/mousemine/begin.do" check_values="false" method="get">
- <display>go to MouseMine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=mousemine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="MouseMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/ratmine.xml
--- a/tools/data_source/ratmine.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Ratmine" id="ratmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://ratmine.mcw.edu/ratmine/begin.do" check_values="false" method="get">
- <display>go to Ratmine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=ratmine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="Ratmine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/data_source/yeastmine.xml
--- a/tools/data_source/yeastmine.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<tool name="YeastMine" id="yeastmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://yeastmine.yeastgenome.org/yeastmine/begin.do" check_values="false" method="get">
- <display>go to yeastMine server $GALAXY_URL</display>
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/encode/gencode_partition.xml
--- a/tools/encode/gencode_partition.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<tool id="gencode_partition1" name="Gencode Partition">
- <description>an interval file</description>
- <command interpreter="python">split_by_partitions.py ${GALAXY_DATA_INDEX_DIR} $input1 $out_file1 ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Partition"/>
- </inputs>
- <outputs>
- <data name="out_file1" format="bed"/>
- </outputs>
- <tests>
- <test>
- <param name="input1" value="encode_1.bed"/>
- <output name="out_file1" file="gencode_partition_out.bed"/>
- </test>
- </tests>
- <help>
-For detailed information about partitioning, click here_.
-
-.. _here: http://genome.imim.es/gencode/wiki/index.php/Collecting_Feature_Sets_from_A…
-
-Datasets are partitioned according to the protocol below:
-
-A partition scheme has been defined that is similar to what has previously been done with TARs/TRANSFRAGs such that any feature can be classified as falling into one of the following 6 categories:
- 1. **Coding** -- coding exons defined from the GENCODE experimentally verified coding set (coding in any transcript)
- 2. **5UTR** -- 5' UTR exons defined from the GENCODE experimentally verified coding set (5' UTR in some transcript but never coding in any other)
- 3. **3UTR** -- 3' UTR exons defined from the GENCODE experimentally verified coding set (3' UTR in some transcript but never coding in any other)
- 4. **Intronic Proximal** -- intronic and no more than 5kb away from an exon.
- 5. **Intergenic Proximal** -- between genes and no more than 5kb away from an exon.
- 6. **Intronic Distal** -- intronic and greater than 5kb away from an exon.
- 7. **Intergenic Distal** -- between genes and greater than 5kb away from an exon.
-
------
-
-.. class:: infomark
-
-**Note:** Features overlapping more than one partition will take the identity of the lower-numbered partition.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
diff -r c21482ac06f8319cd3879eaebcdb17b6939b0e9e -r 401ee23dcf2f70d4be0e975bb3e00a43ae1dfdd0 tools/encode/random_intervals.xml
--- a/tools/encode/random_intervals.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<tool id="random_intervals1" name="Random Intervals">
-<description>create a random set of intervals</description>
- <command interpreter="python">random_intervals_no_bits.py $regions $input2 $input1 $out_file1 ${input2.metadata.chromCol} ${input2.metadata.startCol} ${input2.metadata.endCol} ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol} $use_mask $strand_overlaps ${GALAXY_DATA_INDEX_DIR}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Mimick">
- <validator type="unspecified_build" message="Unspecified build, this tool works with data from genome builds hg16 or hg17. Click the pencil icon in your history item to set the genome build."/>
- </param>
- <param name="input2" type="data" format="interval" label="Intervals to Mask"/>
- <param name="use_mask" type="select" label="Use mask">
- <option value="no_mask">No</option>
- <option value="use_mask">Yes</option>
- </param>
- <param name="strand_overlaps" type="select" label="Allow overlaps">
- <option value="all">Any</option>
- <option value="strand">Across Strands</option>
- <option value="none">None</option>
- </param>
- <param name="regions" type="select" label="Regions to use">
- <options from_file="regions.loc">
- <column name="name" index="2"/>
- <column name="value" index="1"/>
- <column name="dbkey" index="0"/>
- <filter type="data_meta" ref="input1" key="dbkey" column="0" />
- <validator type="no_options" message="This tool currently only works with ENCODE data from genome builds hg16 or hg17."/>
- </options>
- </param>
- </inputs>
- <outputs>
- <data name="out_file1" format="input"/>
- </outputs>
- <help>
-
-.. class:: warningmark
-
-This tool currently only works with ENCODE data from genome builds hg16 or hg17.
-
------
-
-.. class:: infomark
-
-**Note:** If you do not wish to mask a set of intervals, change the Use Mask option to No, this option will override any Mask files selected.
-
------
-
-**Syntax**
-
-This tool will attempt to create a random set of intervals that mimic those found within your source file. You may also specify a set of intervals to mask.
-
-**Allow overlaps** options
- * **Across Strands** - random regions are allowed to overlap only if they are on different strands.
- * **Any** - all overlaps are allowed.
- * **None** - no overlapping regions are allowed.
-
-**Regions to use** options
- * Bounding region of interest based on the dataset build.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/galaxy/galaxy-central/commits/275a49bb9e1d/
Changeset: 275a49bb9e1d
User: natefoo
Date: 2014-01-27 19:59:03
Summary: Merge tool removal from next-stable.
Affected #: 33 files
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b buildbot_setup.sh
--- a/buildbot_setup.sh
+++ b/buildbot_setup.sh
@@ -4,28 +4,6 @@
: ${HOSTTYPE:=`uname -m`}
-# link to HYPHY is arch-dependent
-case "$OSTYPE" in
- linux-gnu)
- kernel=`uname -r | cut -f1,2 -d.`
- HYPHY="/galaxy/software/linux$kernel-$HOSTTYPE/hyphy"
- ;;
- darwin*)
- this_minor=`uname -r | awk -F. '{print ($1-4)}'`
- machine=`machine`
- for minor in `jot - 3 $this_minor 1`; do
- HYPHY="/galaxy/software/macosx10.$minor-$machine/hyphy"
- [ -d "$HYPHY" ] && break
- done
- [ ! -d "$HYPHY" ] && unset HYPHY
- ;;
- solaris2.10)
- # For the psu-production builder which is Solaris, but jobs run on a
- # Linux cluster
- HYPHY="/galaxy/software/linux2.6-x86_64/hyphy"
- ;;
-esac
-
LINKS="
/galaxy/data/location/add_scores.loc
/galaxy/data/location/all_fasta.loc
@@ -121,12 +99,6 @@
ln -sf $link tool-data
done
- if [ -d "$HYPHY" ]; then
- echo "Linking $HYPHY"
- rm -f tool-data/HYPHY
- ln -sf $HYPHY tool-data/HYPHY
- fi
-
if [ -d "$JARS" ]; then
echo "Linking $JARS"
rm -f tool-data/shared/jars
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b doc/source/lib/galaxy.tools.util.rst
--- a/doc/source/lib/galaxy.tools.util.rst
+++ b/doc/source/lib/galaxy.tools.util.rst
@@ -9,14 +9,6 @@
:undoc-members:
:show-inheritance:
-:mod:`hyphy_util` Module
-------------------------
-
-.. automodule:: galaxy.tools.util.hyphy_util
- :members:
- :undoc-members:
- :show-inheritance:
-
:mod:`maf_utilities` Module
---------------------------
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b lib/galaxy/tools/util/hyphy_util.py
--- a/lib/galaxy/tools/util/hyphy_util.py
+++ /dev/null
@@ -1,1163 +0,0 @@
-#Dan Blankenberg
-#Contains file contents and helper methods for HYPHY configurations
-import tempfile, os
-
-def get_filled_temp_filename(contents):
- fh = tempfile.NamedTemporaryFile('w')
- filename = fh.name
- fh.close()
- fh = open(filename, 'w')
- fh.write(contents)
- fh.close()
- return filename
-
-NJ_tree_shared_ibf = """
-COUNT_GAPS_IN_FREQUENCIES = 0;
-methodIndex = 1;
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function InferTreeTopology(verbFlag)
-{
- distanceMatrix = {ds.species,ds.species};
-
- MESSAGE_LOGGING = 0;
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"chooseDistanceFormula.def");
- InitializeDistances (0);
-
- for (i = 0; i<ds.species; i=i+1)
- {
- for (j = i+1; j<ds.species; j = j+1)
- {
- distanceMatrix[i][j] = ComputeDistanceFormula (i,j);
- }
- }
-
- MESSAGE_LOGGING = 1;
- cladesMade = 1;
-
-
- if (ds.species == 2)
- {
- d1 = distanceMatrix[0][1]/2;
- treeNodes = {{0,1,d1__},
- {1,1,d1__},
- {2,0,0}};
-
- cladesInfo = {{2,0}};
- }
- else
- {
- if (ds.species == 3)
- {
- /* generate least squares estimates here */
-
- d1 = (distanceMatrix[0][1]+distanceMatrix[0][2]-distanceMatrix[1][2])/2;
- d2 = (distanceMatrix[0][1]-distanceMatrix[0][2]+distanceMatrix[1][2])/2;
- d3 = (distanceMatrix[1][2]+distanceMatrix[0][2]-distanceMatrix[0][1])/2;
-
- treeNodes = {{0,1,d1__},
- {1,1,d2__},
- {2,1,d3__}
- {3,0,0}};
-
- cladesInfo = {{3,0}};
- }
- else
- {
- njm = (distanceMatrix > methodIndex)>=ds.species;
-
- treeNodes = {2*(ds.species+1),3};
- cladesInfo = {ds.species-1,2};
-
- for (i=Rows(treeNodes)-1; i>=0; i=i-1)
- {
- treeNodes[i][0] = njm[i][0];
- treeNodes[i][1] = njm[i][1];
- treeNodes[i][2] = njm[i][2];
- }
-
- for (i=Rows(cladesInfo)-1; i>=0; i=i-1)
- {
- cladesInfo[i][0] = njm[i][3];
- cladesInfo[i][1] = njm[i][4];
- }
-
- njm = 0;
- }
- }
- return 1.0;
-}
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function TreeMatrix2TreeString (doLengths)
-{
- treeString = "";
- p = 0;
- k = 0;
- m = treeNodes[0][1];
- n = treeNodes[0][0];
- treeString*(Rows(treeNodes)*25);
-
- while (m)
- {
- if (m>p)
- {
- if (p)
- {
- treeString*",";
- }
- for (j=p;j<m;j=j+1)
- {
- treeString*"(";
- }
- }
- else
- {
- if (m<p)
- {
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
- }
- else
- {
- treeString*",";
- }
- }
- if (n<ds.species)
- {
- GetString (nodeName, ds, n);
- if (doLengths != 1)
- {
- treeString*nodeName;
- }
- else
- {
- treeString*taxonNameMap[nodeName];
- }
- }
- if (doLengths>.5)
- {
- nodeName = ":"+treeNodes[k][2];
- treeString*nodeName;
- }
- k=k+1;
- p=m;
- n=treeNodes[k][0];
- m=treeNodes[k][1];
- }
-
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
-
- treeString*0;
- return treeString;
-}
-"""
-
-def get_NJ_tree (filename):
- return """
-DISTANCE_PROMPTS = 1;
-ExecuteAFile ("%s");
-
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-/* do sequence to branch map */
-
-taxonNameMap = {};
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
-}
-
-DataSetFilter filteredData = CreateFilter (ds,1);
-InferTreeTopology (0);
-treeString = TreeMatrix2TreeString (1);
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, treeString);
-fscanf (stdin, "String", ps_file);
-
-if (Abs(ps_file))
-{
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (ps_file, CLEAR_FILE, drawLetter, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
-}
-""" % (filename)
-
-def get_NJ_treeMF (filename):
- return """
-ExecuteAFile ("%s");
-
-VERBOSITY_LEVEL = -1;
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-_linesIn = Columns (inLines);
-isomorphicTreesBySequenceCount = {};
-
-/*---------------------------------------------------------*/
-
-_currentGene = 1;
-_currentState = 0;
-geneSeqs = "";
-geneSeqs * 128;
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, KEEP_OPEN);
-treeOutFile = LAST_FILE_PATH;
-
-fscanf (stdin,"String", ps_file);
-if (Abs(ps_file))
-{
- fprintf (ps_file, CLEAR_FILE, KEEP_OPEN);
-}
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- if (Abs(geneSeqs))
- {
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- }
-}
-
-fprintf (treeOutFile,CLOSE_FILE);
-if (Abs(ps_file))
-{
- fprintf (ps_file,CLOSE_FILE);
-}
-/*---------------------------------------------------------*/
-
-function _processAGene (_geneID, nwk_file, ps_file)
-{
- if (ds.species == 1)
- {
- fprintf (nwk_file, _geneID-1, "\\tNone \\tNone\\n");
- return 0;
-
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- /* do sequence to branch map */
-
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}});
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- DISTANCE_PROMPTS = (_geneID==1);
-
- InferTreeTopology (0);
- baseTree = TreeMatrix2TreeString (0);
- UseModel (USE_NO_MODEL);
-
- Tree baseTop = baseTree;
-
- /* standardize this top */
-
- for (k=0; k<Abs(isomorphicTreesBySequenceCount[filteredData.species]); k=k+1)
- {
- testString = (isomorphicTreesBySequenceCount[filteredData.species])[k];
- Tree testTree = testString;
- if (testTree == baseTop)
- {
- baseTree = testString;
- break;
- }
- }
- if (k==Abs(isomorphicTreesBySequenceCount[filteredData.species]))
- {
- if (k==0)
- {
- isomorphicTreesBySequenceCount[filteredData.species] = {};
- }
- (isomorphicTreesBySequenceCount[filteredData.species])[k] = baseTree;
- }
-
- fprintf (nwk_file, _geneID-1, "\\t", baseTree, "\\t", TreeMatrix2TreeString (1), "\\n");
- if (Abs(ps_file))
- {
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (stdout, _geneID, ":", givenTree,"\\n");
- fprintf (ps_file, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
- }
- return 0;
-}
-""" % (filename)
-
-BranchLengthsMF = """
-VERBOSITY_LEVEL = -1;
-
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-
-
-_linesIn = Columns (inLines);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-_currentGene = 1;
-
-_currentState = 0;
-
-geneSeqs = "";
-
-geneSeqs * 128;
-
-
-
-for (l=0; l<_linesIn; l=l+1)
-
-{
-
- if (Abs(inLines[l]) == 0)
-
- {
-
- if (_currentState == 1)
-
- {
-
- geneSeqs * 0;
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- geneSeqs * 128;
-
- _currentGene = _currentGene + 1;
-
- }
-
- }
-
- else
-
- {
-
- if (_currentState == 0)
-
- {
-
- _currentState = 1;
-
- }
-
- geneSeqs * inLines[l];
-
- geneSeqs * "\\n";
-
- }
-
-}
-
-
-
-if (_currentState == 1)
-
-{
-
- geneSeqs * 0;
-
- if (Abs(geneSeqs))
-
- {
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- }
-
-}
-
-
-
-fprintf (resultFile,CLOSE_FILE);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-function _processAGene (_geneID)
-
-{
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- if (_currentGene == 1)
-
- {
-
- SelectTemplateModel (filteredData);
-
-
-
- SetDialogPrompt ("Tree file");
-
- fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
- fscanf (stdin, "String", resultFile);
-
-
-
- /* do sequence to branch map */
-
-
-
- validNames = {};
-
- taxonNameMap = {};
-
-
-
- for (k=0; k<TipCount(givenTree); k=k+1)
-
- {
-
- validNames[TipName(givenTree,k)&&1] = 1;
-
- }
-
-
-
- for (k=0; k<BranchCount(givenTree); k=k+1)
-
- {
-
- thisName = BranchName(givenTree,k);
-
- taxonNameMap[thisName&&1] = thisName;
-
- }
-
-
-
- storeValidNames = validNames;
-
- fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Block\\tBranch\\tLength\\tLowerBound\\tUpperBound\\n");
-
- }
-
- else
-
- {
-
- HarvestFrequencies (vectorOfFrequencies, filteredData, 1,1,1);
-
- validNames = storeValidNames;
-
- }
-
-
-
- for (k=0; k<ds.species; k=k+1)
-
- {
-
- GetString (thisName, ds,k);
-
- shortName = (thisName^{{"\\\\..+",""}})&&1;
-
- if (validNames[shortName])
-
- {
-
- taxonNameMap[shortName] = thisName;
-
- validNames - (shortName);
-
- SetParameter (ds,k,shortName);
-
- }
-
- else
-
- {
-
- fprintf (resultFile,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree,"\\n");
-
- return 0;
-
- }
-
- }
-
-
-
- /* */
-
-
-
- LikelihoodFunction lf = (filteredData,givenTree);
-
- Optimize (res,lf);
-
-
-
- timer = Time(0)-timer;
-
-
-
- branchNames = BranchName (givenTree,-1);
-
- branchLengths = BranchLength (givenTree,-1);
-
-
-
-
-
- for (k=0; k<Columns(branchNames)-1; k=k+1)
-
- {
-
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- if (k==0)
-
- {
-
- /* compute a scaling factor */
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
-
- scaleFactor = BranchLength (givenTree,0);
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
-
- }
-
- fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-
- }
-
-
-
- ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-
- global treeScaler = 1;
-
- ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-
- COVARIANCE_PARAMETER = "treeScaler";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- fprintf (resultFile,_geneID,"\\tTotal Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-
- ClearConstraints (givenTree);
-
- return 0;
-
-}
-"""
-
-BranchLengths = """
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-SelectTemplateModel (filteredData);
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-fscanf (stdin, "String", resultFile);
-
-/* do sequence to branch map */
-
-validNames = {};
-taxonNameMap = {};
-
-for (k=0; k<TipCount(givenTree); k=k+1)
-{
- validNames[TipName(givenTree,k)&&1] = 1;
-}
-
-for (k=0; k<BranchCount(givenTree); k=k+1)
-{
- thisName = BranchName(givenTree,k);
- taxonNameMap[thisName&&1] = thisName;
-}
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- if (validNames[shortName])
- {
- taxonNameMap[shortName] = thisName;
- validNames - (shortName);
- SetParameter (ds,k,shortName);
- }
- else
- {
- fprintf (resultFile,CLEAR_FILE,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree);
- return 0;
- }
-}
-
-/* */
-
-LikelihoodFunction lf = (filteredData,givenTree);
-
-Optimize (res,lf);
-
-timer = Time(0)-timer;
-
-branchNames = BranchName (givenTree,-1);
-branchLengths = BranchLength (givenTree,-1);
-
-fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Branch\\tLength\\tLowerBound\\tUpperBound\\n");
-
-for (k=0; k<Columns(branchNames)-1; k=k+1)
-{
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- if (k==0)
- {
- /* compute a scaling factor */
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
- scaleFactor = BranchLength (givenTree,0);
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
- }
- fprintf (resultFile,taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-}
-
-ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-global treeScaler = 1;
-ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-COVARIANCE_PARAMETER = "treeScaler";
-COVARIANCE_PRECISION = 0.95;
-CovarianceMatrix (cmx,lf);
-ClearConstraints (givenTree);
-fprintf (resultFile,"Total Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-fprintf (resultFile,CLOSE_FILE);
-"""
-
-SimpleLocalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "AC";
- _analysisHeaders[7] = "AT";
- _analysisHeaders[8] = "CG";
- _analysisHeaders[9] = "CT";
- _analysisHeaders[10] = "GT";
- _analysisHeaders[11] = "Tree";
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _analysisHeaders [Abs(_analysisHeaders)] = "length("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dS("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dN("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "omega("+branchName+")";
- }
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Local";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = treeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = treeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _returnMe ["length("+branchName+")"] = (_cL["Total"])[_biterator];
- _returnMe ["dS("+branchName+")"] = (_cL["Syn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["S_sites"]);
- _returnMe ["dN("+branchName+")"] = (_cL["NonSyn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["NS_sites"]);
-
- ExecuteCommands ("_lom = _standardizeRatio(codonTree."+treeBranchNames[_biterator]+".nonSynRate,codonTree."+treeBranchNames[_biterator]+".synRate);");
- _returnMe ["omega("+branchName+")"] = _lom;
- }
-
- return _returnMe;
-}
-
-"""
-
-SimpleGlobalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "omega";
- _analysisHeaders[7] = "omega_range";
- _analysisHeaders[8] = "AC";
- _analysisHeaders[9] = "AT";
- _analysisHeaders[10] = "CG";
- _analysisHeaders[11] = "CT";
- _analysisHeaders[12] = "GT";
- _analysisHeaders[13] = "Tree";
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- fprintf (stdout, "[SimpleGlobalFitter.bf on GENE ", myID, "]\\n");
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- _nucSites = filteredData.sites;
-
- if (Abs(treeString))
- {
- givenTreeString = treeString;
- }
- else
- {
- if (_currentGene==1)
- {
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"NJ.bf");
- }
- givenTreeString = InferTreeTopology (0);
- treeString = "";
- }
-
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Global";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = givenTreeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = givenTreeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["Stop_codons"] = (_nucSites-filteredData.sites*3)$3;
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["omega"] = R;
- COVARIANCE_PARAMETER = "R";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- _returnMe ["omega_range"] = ""+cmx[0]+"-"+cmx[2];
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
-
- return _returnMe;
-}
-"""
-
-FastaReader = """
-fscanf (stdin, "String", _coreAnalysis);
-fscanf (stdin, "String", _outputDriver);
-
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"dSdNTreeTools.ibf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"CodonTools.bf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"GrabBag.bf");
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
-treeBranchNames = BranchName (givenTree,-1);
-treeBranchCount = Columns (treeBranchNames)-1;
-treeString = Format (givenTree,1,1);
-
-SetDialogPrompt ("Multiple gene FASTA file");
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-fscanf (stdin, "String", modelSpecString);
-fscanf (stdin, "String", _outPath);
-
-ExecuteAFile (_outputDriver);
-ExecuteAFile (_coreAnalysis);
-
-/*---------------------------------------------------------*/
-
-_linesIn = Columns (inLines);
-_currentGene = 1;
- _currentState = 0;
-/* 0 - waiting for a non-empty line */
-/* 1 - reading files */
-
-geneSeqs = "";
-geneSeqs * 0;
-
-_prepareFileOutput (_outPath);
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
-}
-
-_finishFileOutput (0);
-"""
-
-TabWriter = """
-/*---------------------------------------------------------*/
-function _prepareFileOutput (_outPath)
-{
- _outputFilePath = _outPath;
-
- _returnHeaders = returnResultHeaders(0);
-
- fprintf (_outputFilePath, CLEAR_FILE, KEEP_OPEN, _returnHeaders[0]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",_returnHeaders[_biterator]);
- }
-
-
-
- fprintf (_outputFilePath,"\\n");
- return 0;
-}
-
-/*---------------------------------------------------------*/
-
-function _processAGene (valid, _geneID)
-{
- if (valid)
- {
- returnValue = runAGeneFit (_geneID);
- fprintf (_outputFilePath, returnValue[_returnHeaders[0]]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",returnValue[_returnHeaders[_biterator]]);
- }
- fprintf (_outputFilePath, "\\n");
- }
- /*
- else
- {
- fprintf (_outputFilePath,
- _geneID, ", Incorrect number of sequences\\n");
- }
- */
- _currentState = 0;
- return 0;
-}
-
-/*---------------------------------------------------------*/
-function _finishFileOutput (dummy)
-{
- return 0;
-}
-"""
-
-def get_dnds_config_filename(Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename ):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the DATA READER */
-
-_genomeScreenOptions ["0"] = "%s";
- /* which analysis to run on each gene; */
-_genomeScreenOptions ["1"] = "%s";
- /* what output to produce; */
-_genomeScreenOptions ["2"] = "%s";
- /* genetic code */
-_genomeScreenOptions ["3"] = "%s";
- /* tree file */
-_genomeScreenOptions ["4"] = "%s";
- /* alignment file */
-_genomeScreenOptions ["5"] = "%s";
- /* nucleotide bias string; can define any of the 203 models */
-_genomeScreenOptions ["6"] = "%s";
- /* output csv file */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename )
- return get_filled_temp_filename(contents)
-
-
-def get_branch_lengths_config_filename(input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the NucDataBranchLengths.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "CUSTOM";
- /* use an arbitrary nucleotide model */
-_genomeScreenOptions ["2"] = "%s";
- /* which model to use */
-_genomeScreenOptions ["3"] = "%s";
- /* model options */
-_genomeScreenOptions ["4"] = "Estimated";
- /* rate parameters */
-_genomeScreenOptions ["5"] = "%s";
- /* base frequencies */
-_genomeScreenOptions ["6"] = "%s";
- /* the tree to use; */
-_genomeScreenOptions ["7"] = "%s";
- /* write .csv output to; */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_tree_config_filename(input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTree.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-_genomeScreenOptions ["2"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["3"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_treeMF_config_filename(input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTreeMF.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the multiple alignment file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["2"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-_genomeScreenOptions ["3"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename)
- return get_filled_temp_filename(contents)
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tool-data/shared/ucsc/ucsc_build_sites.txt
--- a/tool-data/shared/ucsc/ucsc_build_sites.txt
+++ b/tool-data/shared/ucsc/ucsc_build_sites.txt
@@ -5,4 +5,3 @@
#Harvested from http://genome-test.cse.ucsc.edu/cgi-bin/das/dsn
test http://genome-test.cse.ucsc.edu/cgi-bin/hgTracks? anoCar1,ce4,ce3,ce2,ce1,loxAfr1,rn2,eschColi_O157H7_1,rn4,droYak1,heliPylo_J99_1,droYak2,dp3,dp2,caeRem2,caeRem1,oryLat1,eschColi_K12_1,homIni13,homIni14,droAna1,droAna2,oryCun1,sacCer1,heliHepa1,droGri1,sc1,dasNov1,choHof1,tupBel1,mm9,mm8,vibrChol1,mm5,mm4,mm7,mm6,mm3,mm2,rn3,venter1,galGal3,galGal2,ornAna1,equCab1,cioSav2,rheMac2,eutHer13,droPer1,droVir2,droVir1,heliPylo_26695_1,euaGli13,calJac1,campJeju1,droSim1,hg13,hg15,hg16,hg17,monDom1,monDom4,droMoj1,petMar1,droMoj2,vibrChol_MO10_1,vibrPara1,gliRes13,vibrVuln_YJ016_1,braFlo1,cioSav1,lauRas13,dm1,canFam1,canFam2,ci1,echTel1,ci2,caePb1,dm3,ponAbe2,falciparum,xenTro1,xenTro2,nonAfr13,fr2,fr1,gasAcu1,dm2,apiMel1,apiMel2,eschColi_O157H7EDL933_1,priPac1,panTro1,hg18,panTro2,campJeju_RM1221_1,canHg12,vibrChol_O395_1,vibrFisc_ES114_1,danRer5,danRer4,danRer3,danRer2,danRer1,tetNig1,afrOth13,bosTau1,eschColi_CFT073_1,bosTau3,bosTau2,bosTau4,rodEnt13,droEre1,priMat13,vibrVuln_CMCP6_1,cb2,cb3,cb1,borEut13,droSec1,felCat3,strPur1,strPur2,otoGar1,catArr1,anoGam1,triCas2
ucla http://epigenomics.mcdb.ucla.edu/cgi-bin/hgTracks? araTha1
-psu bx main http://main.genome-browser.bx.psu.edu/cgi-bin/hgTracks? hg18,hg19,mm8,mm9
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -4,32 +4,19 @@
<tool file="data_source/upload.xml" /><tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/biomart.xml" /><tool file="data_source/gramene_mart.xml" />
- <tool file="data_source/flymine.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -87,7 +74,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="features" name="Extract Features"><tool file="filters/ucsc_gene_bed_to_exon_bed.xml" />
@@ -111,7 +97,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -139,7 +124,6 @@
<tool file="plotting/histogram2.xml" /><tool file="plotting/scatterplot.xml" /><tool file="plotting/boxplot.xml" />
- <tool file="visualization/GMAJ.xml" /><tool file="visualization/build_ucsc_custom_track.xml" /><tool file="maf/vcf_to_maf_customtrack.xml" /><tool file="mutation/visualize.xml" />
@@ -170,14 +154,6 @@
<tool file="multivariate_stats/kpca.xml" /><tool file="multivariate_stats/kcca.xml" /></section>
- <section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <!-- <tool file="hyphy/hyphy_dnds_wrapper.xml" /> -->
- </section>
- <section id="motifs" name="Motif Tools">
- <tool file="rgenetics/rgWebLogo3.xml" />
- </section><section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
@@ -253,10 +229,6 @@
<tool file="gatk/variant_eval.xml" /><tool file="gatk/variant_combine.xml" /></section>
- <section id="peak_calling" name="NGS: Peak Calling">
- <tool file="peak_calling/macs_wrapper.xml" />
- <tool file="peak_calling/sicer_wrapper.xml" />
- </section><section id="ngs-rna-tools" name="NGS: RNA Analysis"><label id="rna_seq" text="RNA-seq" /><label id="filtering" text="Filtering" />
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -5,7 +5,6 @@
<tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_test.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/microbial_import.xml" /><tool file="data_source/biomart.xml" />
@@ -13,34 +12,18 @@
<tool file="data_source/cbi_rice_mart.xml" /><tool file="data_source/gramene_mart.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/flymine.xml" />
- <tool file="data_source/flymine_test.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" />
- <tool file="data_source/metabolicmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/wormbase_test.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" />
- <tool file="data_source/epigraph_import_test.xml" /><tool file="data_source/hbvar.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /><tool file="validation/fix_errors.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" />
- <tool file="data_destination/epigraph_test.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -81,7 +64,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="convert" name="Convert Formats"><tool file="filters/axt_to_concat_fasta.xml" />
@@ -124,7 +106,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -189,9 +170,6 @@
<tool file="multivariate_stats/kcca.xml" /></section><section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <tool file="hyphy/hyphy_dnds_wrapper.xml" /><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /></section>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_destination/epigraph.xml
--- a/tools/data_destination/epigraph.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_export">
- <description> and prediction with EpiGRAPH</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_destination/epigraph_test.xml
--- a/tools/data_destination/epigraph_test.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_test_export">
- <description> and prediction with EpiGRAPH Test</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH test website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/bx_browser.xml
--- a/tools/data_source/bx_browser.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="BX" id="bx_browser" tool_type="data_source">
- <description>table browser</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://main.genome-browser.bx.psu.edu/cgi-bin/hgTables" check_values="false" method="get">
- <display>go to BX Browser $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner" />
- <param name="tool_id" type="hidden" value="bx_browser" />
- <param name="sendToGalaxy" type="hidden" value="1" />
- <param name="hgta_compressType" type="hidden" value="none" />
- <param name="hgta_outputType" type="hidden" value="bed" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="org" missing="unknown species" />
- <request_param galaxy_name="table" remote_name="hgta_table" missing="unknown table" />
- <request_param galaxy_name="description" remote_name="hgta_regionType" missing="no description" />
- <request_param galaxy_name="data_type" remote_name="hgta_outputType" missing="tabular" >
- <value_translation>
- <value galaxy_value="tabular" remote_value="primaryTable" />
- <value galaxy_value="tabular" remote_value="selectedFields" />
- <value galaxy_value="wig" remote_value="wigData" />
- <value galaxy_value="interval" remote_value="tab" />
- <value galaxy_value="html" remote_value="hyperlinks" />
- <value galaxy_value="fasta" remote_value="sequence" />
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="tabular" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/encode_db.xml
--- a/tools/data_source/encode_db.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<tool name="EncodeDB" id="encode_db1">
-
- <description>
- at NHGRI
- </description>
-
- <command interpreter="python">
- fetch.py "$url" $output
- </command>
-
- <inputs action="http://research.nhgri.nih.gov/projects/ENCODEdb/cgi-bin/power_query.cgi" target="_top">
-<!-- <inputs action="http://localhost:9000/prepared"> -->
- <display>go to EncodeDB $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/async/encode_db1" />
- </inputs>
-
- <uihints minwidth="800"/>
-
- <outputs>
- <data format="bed" name="output" />
- </outputs>
-
- <options sanitize="False" refresh="True"/>
-
-</tool>
\ No newline at end of file
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/epigraph_import.xml
--- a/tools/data_source/epigraph_import.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import" tool_type="data_source">
- <description> server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/epigraph_import_test.xml
--- a/tools/data_source/epigraph_import_test.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import_test" tool_type="data_source">
- <description> test server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import_test" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/flymine.xml
--- a/tools/data_source/flymine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine" id="flymine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.flymine.org" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/flymine_test.xml
--- a/tools/data_source/flymine_test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine test" id="flymine_test" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://preview.flymine.org/preview/begin.do" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/metabolicmine.xml
--- a/tools/data_source/metabolicmine.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<tool name="metabolicMine" id="metabolicmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.metabolicmine.org/beta/begin.do" check_values="false" method="get">
- <display>go to metabolicMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/modmine.xml
--- a/tools/data_source/modmine.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="modENCODE modMine" id="modmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://intermine.modencode.org/" check_values="false" method="get">
- <display>go to modENCODE modMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/mousemine.xml
--- a/tools/data_source/mousemine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="MouseMine" id="mousemine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.mousemine.org/mousemine/begin.do" check_values="false" method="get">
- <display>go to MouseMine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=mousemine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="MouseMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/ratmine.xml
--- a/tools/data_source/ratmine.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Ratmine" id="ratmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://ratmine.mcw.edu/ratmine/begin.do" check_values="false" method="get">
- <display>go to Ratmine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=ratmine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="Ratmine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/data_source/yeastmine.xml
--- a/tools/data_source/yeastmine.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<tool name="YeastMine" id="yeastmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://yeastmine.yeastgenome.org/yeastmine/begin.do" check_values="false" method="get">
- <display>go to yeastMine server $GALAXY_URL</display>
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/encode/gencode_partition.xml
--- a/tools/encode/gencode_partition.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<tool id="gencode_partition1" name="Gencode Partition">
- <description>an interval file</description>
- <command interpreter="python">split_by_partitions.py ${GALAXY_DATA_INDEX_DIR} $input1 $out_file1 ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Partition"/>
- </inputs>
- <outputs>
- <data name="out_file1" format="bed"/>
- </outputs>
- <tests>
- <test>
- <param name="input1" value="encode_1.bed"/>
- <output name="out_file1" file="gencode_partition_out.bed"/>
- </test>
- </tests>
- <help>
-For detailed information about partitioning, click here_.
-
-.. _here: http://genome.imim.es/gencode/wiki/index.php/Collecting_Feature_Sets_from_A…
-
-Datasets are partitioned according to the protocol below:
-
-A partition scheme has been defined that is similar to what has previously been done with TARs/TRANSFRAGs such that any feature can be classified as falling into one of the following 6 categories:
- 1. **Coding** -- coding exons defined from the GENCODE experimentally verified coding set (coding in any transcript)
- 2. **5UTR** -- 5' UTR exons defined from the GENCODE experimentally verified coding set (5' UTR in some transcript but never coding in any other)
- 3. **3UTR** -- 3' UTR exons defined from the GENCODE experimentally verified coding set (3' UTR in some transcript but never coding in any other)
- 4. **Intronic Proximal** -- intronic and no more than 5kb away from an exon.
- 5. **Intergenic Proximal** -- between genes and no more than 5kb away from an exon.
- 6. **Intronic Distal** -- intronic and greater than 5kb away from an exon.
- 7. **Intergenic Distal** -- between genes and greater than 5kb away from an exon.
-
------
-
-.. class:: infomark
-
-**Note:** Features overlapping more than one partition will take the identity of the lower-numbered partition.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 275a49bb9e1d1ae9771d1207b96c68334509b72b tools/encode/random_intervals.xml
--- a/tools/encode/random_intervals.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<tool id="random_intervals1" name="Random Intervals">
-<description>create a random set of intervals</description>
- <command interpreter="python">random_intervals_no_bits.py $regions $input2 $input1 $out_file1 ${input2.metadata.chromCol} ${input2.metadata.startCol} ${input2.metadata.endCol} ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol} $use_mask $strand_overlaps ${GALAXY_DATA_INDEX_DIR}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Mimick">
- <validator type="unspecified_build" message="Unspecified build, this tool works with data from genome builds hg16 or hg17. Click the pencil icon in your history item to set the genome build."/>
- </param>
- <param name="input2" type="data" format="interval" label="Intervals to Mask"/>
- <param name="use_mask" type="select" label="Use mask">
- <option value="no_mask">No</option>
- <option value="use_mask">Yes</option>
- </param>
- <param name="strand_overlaps" type="select" label="Allow overlaps">
- <option value="all">Any</option>
- <option value="strand">Across Strands</option>
- <option value="none">None</option>
- </param>
- <param name="regions" type="select" label="Regions to use">
- <options from_file="regions.loc">
- <column name="name" index="2"/>
- <column name="value" index="1"/>
- <column name="dbkey" index="0"/>
- <filter type="data_meta" ref="input1" key="dbkey" column="0" />
- <validator type="no_options" message="This tool currently only works with ENCODE data from genome builds hg16 or hg17."/>
- </options>
- </param>
- </inputs>
- <outputs>
- <data name="out_file1" format="input"/>
- </outputs>
- <help>
-
-.. class:: warningmark
-
-This tool currently only works with ENCODE data from genome builds hg16 or hg17.
-
------
-
-.. class:: infomark
-
-**Note:** If you do not wish to mask a set of intervals, change the Use Mask option to No, this option will override any Mask files selected.
-
------
-
-**Syntax**
-
-This tool will attempt to create a random set of intervals that mimic those found within your source file. You may also specify a set of intervals to mask.
-
-**Allow overlaps** options
- * **Across Strands** - random regions are allowed to overlap only if they are on different strands.
- * **Any** - all overlaps are allowed.
- * **None** - no overlapping regions are allowed.
-
-**Regions to use** options
- * Bounding region of interest based on the dataset build.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/galaxy/galaxy-central/commits/0c6bf744c5b2/
Changeset: 0c6bf744c5b2
Branch: next-stable
User: natefoo
Date: 2014-01-27 20:00:16
Summary: Merge heads on next-stable
Affected #: 33 files
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf buildbot_setup.sh
--- a/buildbot_setup.sh
+++ b/buildbot_setup.sh
@@ -4,28 +4,6 @@
: ${HOSTTYPE:=`uname -m`}
-# link to HYPHY is arch-dependent
-case "$OSTYPE" in
- linux-gnu)
- kernel=`uname -r | cut -f1,2 -d.`
- HYPHY="/galaxy/software/linux$kernel-$HOSTTYPE/hyphy"
- ;;
- darwin*)
- this_minor=`uname -r | awk -F. '{print ($1-4)}'`
- machine=`machine`
- for minor in `jot - 3 $this_minor 1`; do
- HYPHY="/galaxy/software/macosx10.$minor-$machine/hyphy"
- [ -d "$HYPHY" ] && break
- done
- [ ! -d "$HYPHY" ] && unset HYPHY
- ;;
- solaris2.10)
- # For the psu-production builder which is Solaris, but jobs run on a
- # Linux cluster
- HYPHY="/galaxy/software/linux2.6-x86_64/hyphy"
- ;;
-esac
-
LINKS="
/galaxy/data/location/add_scores.loc
/galaxy/data/location/all_fasta.loc
@@ -121,12 +99,6 @@
ln -sf $link tool-data
done
- if [ -d "$HYPHY" ]; then
- echo "Linking $HYPHY"
- rm -f tool-data/HYPHY
- ln -sf $HYPHY tool-data/HYPHY
- fi
-
if [ -d "$JARS" ]; then
echo "Linking $JARS"
rm -f tool-data/shared/jars
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf doc/source/lib/galaxy.tools.util.rst
--- a/doc/source/lib/galaxy.tools.util.rst
+++ b/doc/source/lib/galaxy.tools.util.rst
@@ -9,14 +9,6 @@
:undoc-members:
:show-inheritance:
-:mod:`hyphy_util` Module
-------------------------
-
-.. automodule:: galaxy.tools.util.hyphy_util
- :members:
- :undoc-members:
- :show-inheritance:
-
:mod:`maf_utilities` Module
---------------------------
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf lib/galaxy/tools/util/hyphy_util.py
--- a/lib/galaxy/tools/util/hyphy_util.py
+++ /dev/null
@@ -1,1163 +0,0 @@
-#Dan Blankenberg
-#Contains file contents and helper methods for HYPHY configurations
-import tempfile, os
-
-def get_filled_temp_filename(contents):
- fh = tempfile.NamedTemporaryFile('w')
- filename = fh.name
- fh.close()
- fh = open(filename, 'w')
- fh.write(contents)
- fh.close()
- return filename
-
-NJ_tree_shared_ibf = """
-COUNT_GAPS_IN_FREQUENCIES = 0;
-methodIndex = 1;
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function InferTreeTopology(verbFlag)
-{
- distanceMatrix = {ds.species,ds.species};
-
- MESSAGE_LOGGING = 0;
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"chooseDistanceFormula.def");
- InitializeDistances (0);
-
- for (i = 0; i<ds.species; i=i+1)
- {
- for (j = i+1; j<ds.species; j = j+1)
- {
- distanceMatrix[i][j] = ComputeDistanceFormula (i,j);
- }
- }
-
- MESSAGE_LOGGING = 1;
- cladesMade = 1;
-
-
- if (ds.species == 2)
- {
- d1 = distanceMatrix[0][1]/2;
- treeNodes = {{0,1,d1__},
- {1,1,d1__},
- {2,0,0}};
-
- cladesInfo = {{2,0}};
- }
- else
- {
- if (ds.species == 3)
- {
- /* generate least squares estimates here */
-
- d1 = (distanceMatrix[0][1]+distanceMatrix[0][2]-distanceMatrix[1][2])/2;
- d2 = (distanceMatrix[0][1]-distanceMatrix[0][2]+distanceMatrix[1][2])/2;
- d3 = (distanceMatrix[1][2]+distanceMatrix[0][2]-distanceMatrix[0][1])/2;
-
- treeNodes = {{0,1,d1__},
- {1,1,d2__},
- {2,1,d3__}
- {3,0,0}};
-
- cladesInfo = {{3,0}};
- }
- else
- {
- njm = (distanceMatrix > methodIndex)>=ds.species;
-
- treeNodes = {2*(ds.species+1),3};
- cladesInfo = {ds.species-1,2};
-
- for (i=Rows(treeNodes)-1; i>=0; i=i-1)
- {
- treeNodes[i][0] = njm[i][0];
- treeNodes[i][1] = njm[i][1];
- treeNodes[i][2] = njm[i][2];
- }
-
- for (i=Rows(cladesInfo)-1; i>=0; i=i-1)
- {
- cladesInfo[i][0] = njm[i][3];
- cladesInfo[i][1] = njm[i][4];
- }
-
- njm = 0;
- }
- }
- return 1.0;
-}
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function TreeMatrix2TreeString (doLengths)
-{
- treeString = "";
- p = 0;
- k = 0;
- m = treeNodes[0][1];
- n = treeNodes[0][0];
- treeString*(Rows(treeNodes)*25);
-
- while (m)
- {
- if (m>p)
- {
- if (p)
- {
- treeString*",";
- }
- for (j=p;j<m;j=j+1)
- {
- treeString*"(";
- }
- }
- else
- {
- if (m<p)
- {
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
- }
- else
- {
- treeString*",";
- }
- }
- if (n<ds.species)
- {
- GetString (nodeName, ds, n);
- if (doLengths != 1)
- {
- treeString*nodeName;
- }
- else
- {
- treeString*taxonNameMap[nodeName];
- }
- }
- if (doLengths>.5)
- {
- nodeName = ":"+treeNodes[k][2];
- treeString*nodeName;
- }
- k=k+1;
- p=m;
- n=treeNodes[k][0];
- m=treeNodes[k][1];
- }
-
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
-
- treeString*0;
- return treeString;
-}
-"""
-
-def get_NJ_tree (filename):
- return """
-DISTANCE_PROMPTS = 1;
-ExecuteAFile ("%s");
-
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-/* do sequence to branch map */
-
-taxonNameMap = {};
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
-}
-
-DataSetFilter filteredData = CreateFilter (ds,1);
-InferTreeTopology (0);
-treeString = TreeMatrix2TreeString (1);
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, treeString);
-fscanf (stdin, "String", ps_file);
-
-if (Abs(ps_file))
-{
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (ps_file, CLEAR_FILE, drawLetter, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
-}
-""" % (filename)
-
-def get_NJ_treeMF (filename):
- return """
-ExecuteAFile ("%s");
-
-VERBOSITY_LEVEL = -1;
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-_linesIn = Columns (inLines);
-isomorphicTreesBySequenceCount = {};
-
-/*---------------------------------------------------------*/
-
-_currentGene = 1;
-_currentState = 0;
-geneSeqs = "";
-geneSeqs * 128;
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, KEEP_OPEN);
-treeOutFile = LAST_FILE_PATH;
-
-fscanf (stdin,"String", ps_file);
-if (Abs(ps_file))
-{
- fprintf (ps_file, CLEAR_FILE, KEEP_OPEN);
-}
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- if (Abs(geneSeqs))
- {
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- }
-}
-
-fprintf (treeOutFile,CLOSE_FILE);
-if (Abs(ps_file))
-{
- fprintf (ps_file,CLOSE_FILE);
-}
-/*---------------------------------------------------------*/
-
-function _processAGene (_geneID, nwk_file, ps_file)
-{
- if (ds.species == 1)
- {
- fprintf (nwk_file, _geneID-1, "\\tNone \\tNone\\n");
- return 0;
-
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- /* do sequence to branch map */
-
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}});
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- DISTANCE_PROMPTS = (_geneID==1);
-
- InferTreeTopology (0);
- baseTree = TreeMatrix2TreeString (0);
- UseModel (USE_NO_MODEL);
-
- Tree baseTop = baseTree;
-
- /* standardize this top */
-
- for (k=0; k<Abs(isomorphicTreesBySequenceCount[filteredData.species]); k=k+1)
- {
- testString = (isomorphicTreesBySequenceCount[filteredData.species])[k];
- Tree testTree = testString;
- if (testTree == baseTop)
- {
- baseTree = testString;
- break;
- }
- }
- if (k==Abs(isomorphicTreesBySequenceCount[filteredData.species]))
- {
- if (k==0)
- {
- isomorphicTreesBySequenceCount[filteredData.species] = {};
- }
- (isomorphicTreesBySequenceCount[filteredData.species])[k] = baseTree;
- }
-
- fprintf (nwk_file, _geneID-1, "\\t", baseTree, "\\t", TreeMatrix2TreeString (1), "\\n");
- if (Abs(ps_file))
- {
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (stdout, _geneID, ":", givenTree,"\\n");
- fprintf (ps_file, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
- }
- return 0;
-}
-""" % (filename)
-
-BranchLengthsMF = """
-VERBOSITY_LEVEL = -1;
-
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-
-
-_linesIn = Columns (inLines);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-_currentGene = 1;
-
-_currentState = 0;
-
-geneSeqs = "";
-
-geneSeqs * 128;
-
-
-
-for (l=0; l<_linesIn; l=l+1)
-
-{
-
- if (Abs(inLines[l]) == 0)
-
- {
-
- if (_currentState == 1)
-
- {
-
- geneSeqs * 0;
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- geneSeqs * 128;
-
- _currentGene = _currentGene + 1;
-
- }
-
- }
-
- else
-
- {
-
- if (_currentState == 0)
-
- {
-
- _currentState = 1;
-
- }
-
- geneSeqs * inLines[l];
-
- geneSeqs * "\\n";
-
- }
-
-}
-
-
-
-if (_currentState == 1)
-
-{
-
- geneSeqs * 0;
-
- if (Abs(geneSeqs))
-
- {
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- }
-
-}
-
-
-
-fprintf (resultFile,CLOSE_FILE);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-function _processAGene (_geneID)
-
-{
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- if (_currentGene == 1)
-
- {
-
- SelectTemplateModel (filteredData);
-
-
-
- SetDialogPrompt ("Tree file");
-
- fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
- fscanf (stdin, "String", resultFile);
-
-
-
- /* do sequence to branch map */
-
-
-
- validNames = {};
-
- taxonNameMap = {};
-
-
-
- for (k=0; k<TipCount(givenTree); k=k+1)
-
- {
-
- validNames[TipName(givenTree,k)&&1] = 1;
-
- }
-
-
-
- for (k=0; k<BranchCount(givenTree); k=k+1)
-
- {
-
- thisName = BranchName(givenTree,k);
-
- taxonNameMap[thisName&&1] = thisName;
-
- }
-
-
-
- storeValidNames = validNames;
-
- fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Block\\tBranch\\tLength\\tLowerBound\\tUpperBound\\n");
-
- }
-
- else
-
- {
-
- HarvestFrequencies (vectorOfFrequencies, filteredData, 1,1,1);
-
- validNames = storeValidNames;
-
- }
-
-
-
- for (k=0; k<ds.species; k=k+1)
-
- {
-
- GetString (thisName, ds,k);
-
- shortName = (thisName^{{"\\\\..+",""}})&&1;
-
- if (validNames[shortName])
-
- {
-
- taxonNameMap[shortName] = thisName;
-
- validNames - (shortName);
-
- SetParameter (ds,k,shortName);
-
- }
-
- else
-
- {
-
- fprintf (resultFile,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree,"\\n");
-
- return 0;
-
- }
-
- }
-
-
-
- /* */
-
-
-
- LikelihoodFunction lf = (filteredData,givenTree);
-
- Optimize (res,lf);
-
-
-
- timer = Time(0)-timer;
-
-
-
- branchNames = BranchName (givenTree,-1);
-
- branchLengths = BranchLength (givenTree,-1);
-
-
-
-
-
- for (k=0; k<Columns(branchNames)-1; k=k+1)
-
- {
-
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- if (k==0)
-
- {
-
- /* compute a scaling factor */
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
-
- scaleFactor = BranchLength (givenTree,0);
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
-
- }
-
- fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-
- }
-
-
-
- ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-
- global treeScaler = 1;
-
- ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-
- COVARIANCE_PARAMETER = "treeScaler";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- fprintf (resultFile,_geneID,"\\tTotal Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-
- ClearConstraints (givenTree);
-
- return 0;
-
-}
-"""
-
-BranchLengths = """
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-SelectTemplateModel (filteredData);
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-fscanf (stdin, "String", resultFile);
-
-/* do sequence to branch map */
-
-validNames = {};
-taxonNameMap = {};
-
-for (k=0; k<TipCount(givenTree); k=k+1)
-{
- validNames[TipName(givenTree,k)&&1] = 1;
-}
-
-for (k=0; k<BranchCount(givenTree); k=k+1)
-{
- thisName = BranchName(givenTree,k);
- taxonNameMap[thisName&&1] = thisName;
-}
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- if (validNames[shortName])
- {
- taxonNameMap[shortName] = thisName;
- validNames - (shortName);
- SetParameter (ds,k,shortName);
- }
- else
- {
- fprintf (resultFile,CLEAR_FILE,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree);
- return 0;
- }
-}
-
-/* */
-
-LikelihoodFunction lf = (filteredData,givenTree);
-
-Optimize (res,lf);
-
-timer = Time(0)-timer;
-
-branchNames = BranchName (givenTree,-1);
-branchLengths = BranchLength (givenTree,-1);
-
-fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Branch\\tLength\\tLowerBound\\tUpperBound\\n");
-
-for (k=0; k<Columns(branchNames)-1; k=k+1)
-{
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- if (k==0)
- {
- /* compute a scaling factor */
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
- scaleFactor = BranchLength (givenTree,0);
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
- }
- fprintf (resultFile,taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-}
-
-ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-global treeScaler = 1;
-ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-COVARIANCE_PARAMETER = "treeScaler";
-COVARIANCE_PRECISION = 0.95;
-CovarianceMatrix (cmx,lf);
-ClearConstraints (givenTree);
-fprintf (resultFile,"Total Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-fprintf (resultFile,CLOSE_FILE);
-"""
-
-SimpleLocalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "AC";
- _analysisHeaders[7] = "AT";
- _analysisHeaders[8] = "CG";
- _analysisHeaders[9] = "CT";
- _analysisHeaders[10] = "GT";
- _analysisHeaders[11] = "Tree";
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _analysisHeaders [Abs(_analysisHeaders)] = "length("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dS("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dN("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "omega("+branchName+")";
- }
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Local";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = treeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = treeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _returnMe ["length("+branchName+")"] = (_cL["Total"])[_biterator];
- _returnMe ["dS("+branchName+")"] = (_cL["Syn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["S_sites"]);
- _returnMe ["dN("+branchName+")"] = (_cL["NonSyn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["NS_sites"]);
-
- ExecuteCommands ("_lom = _standardizeRatio(codonTree."+treeBranchNames[_biterator]+".nonSynRate,codonTree."+treeBranchNames[_biterator]+".synRate);");
- _returnMe ["omega("+branchName+")"] = _lom;
- }
-
- return _returnMe;
-}
-
-"""
-
-SimpleGlobalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "omega";
- _analysisHeaders[7] = "omega_range";
- _analysisHeaders[8] = "AC";
- _analysisHeaders[9] = "AT";
- _analysisHeaders[10] = "CG";
- _analysisHeaders[11] = "CT";
- _analysisHeaders[12] = "GT";
- _analysisHeaders[13] = "Tree";
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- fprintf (stdout, "[SimpleGlobalFitter.bf on GENE ", myID, "]\\n");
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- _nucSites = filteredData.sites;
-
- if (Abs(treeString))
- {
- givenTreeString = treeString;
- }
- else
- {
- if (_currentGene==1)
- {
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"NJ.bf");
- }
- givenTreeString = InferTreeTopology (0);
- treeString = "";
- }
-
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Global";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = givenTreeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = givenTreeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["Stop_codons"] = (_nucSites-filteredData.sites*3)$3;
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["omega"] = R;
- COVARIANCE_PARAMETER = "R";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- _returnMe ["omega_range"] = ""+cmx[0]+"-"+cmx[2];
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
-
- return _returnMe;
-}
-"""
-
-FastaReader = """
-fscanf (stdin, "String", _coreAnalysis);
-fscanf (stdin, "String", _outputDriver);
-
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"dSdNTreeTools.ibf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"CodonTools.bf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"GrabBag.bf");
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
-treeBranchNames = BranchName (givenTree,-1);
-treeBranchCount = Columns (treeBranchNames)-1;
-treeString = Format (givenTree,1,1);
-
-SetDialogPrompt ("Multiple gene FASTA file");
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-fscanf (stdin, "String", modelSpecString);
-fscanf (stdin, "String", _outPath);
-
-ExecuteAFile (_outputDriver);
-ExecuteAFile (_coreAnalysis);
-
-/*---------------------------------------------------------*/
-
-_linesIn = Columns (inLines);
-_currentGene = 1;
- _currentState = 0;
-/* 0 - waiting for a non-empty line */
-/* 1 - reading files */
-
-geneSeqs = "";
-geneSeqs * 0;
-
-_prepareFileOutput (_outPath);
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
-}
-
-_finishFileOutput (0);
-"""
-
-TabWriter = """
-/*---------------------------------------------------------*/
-function _prepareFileOutput (_outPath)
-{
- _outputFilePath = _outPath;
-
- _returnHeaders = returnResultHeaders(0);
-
- fprintf (_outputFilePath, CLEAR_FILE, KEEP_OPEN, _returnHeaders[0]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",_returnHeaders[_biterator]);
- }
-
-
-
- fprintf (_outputFilePath,"\\n");
- return 0;
-}
-
-/*---------------------------------------------------------*/
-
-function _processAGene (valid, _geneID)
-{
- if (valid)
- {
- returnValue = runAGeneFit (_geneID);
- fprintf (_outputFilePath, returnValue[_returnHeaders[0]]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",returnValue[_returnHeaders[_biterator]]);
- }
- fprintf (_outputFilePath, "\\n");
- }
- /*
- else
- {
- fprintf (_outputFilePath,
- _geneID, ", Incorrect number of sequences\\n");
- }
- */
- _currentState = 0;
- return 0;
-}
-
-/*---------------------------------------------------------*/
-function _finishFileOutput (dummy)
-{
- return 0;
-}
-"""
-
-def get_dnds_config_filename(Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename ):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the DATA READER */
-
-_genomeScreenOptions ["0"] = "%s";
- /* which analysis to run on each gene; */
-_genomeScreenOptions ["1"] = "%s";
- /* what output to produce; */
-_genomeScreenOptions ["2"] = "%s";
- /* genetic code */
-_genomeScreenOptions ["3"] = "%s";
- /* tree file */
-_genomeScreenOptions ["4"] = "%s";
- /* alignment file */
-_genomeScreenOptions ["5"] = "%s";
- /* nucleotide bias string; can define any of the 203 models */
-_genomeScreenOptions ["6"] = "%s";
- /* output csv file */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename )
- return get_filled_temp_filename(contents)
-
-
-def get_branch_lengths_config_filename(input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the NucDataBranchLengths.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "CUSTOM";
- /* use an arbitrary nucleotide model */
-_genomeScreenOptions ["2"] = "%s";
- /* which model to use */
-_genomeScreenOptions ["3"] = "%s";
- /* model options */
-_genomeScreenOptions ["4"] = "Estimated";
- /* rate parameters */
-_genomeScreenOptions ["5"] = "%s";
- /* base frequencies */
-_genomeScreenOptions ["6"] = "%s";
- /* the tree to use; */
-_genomeScreenOptions ["7"] = "%s";
- /* write .csv output to; */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_tree_config_filename(input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTree.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-_genomeScreenOptions ["2"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["3"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_treeMF_config_filename(input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTreeMF.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the multiple alignment file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["2"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-_genomeScreenOptions ["3"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename)
- return get_filled_temp_filename(contents)
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tool-data/shared/ucsc/ucsc_build_sites.txt
--- a/tool-data/shared/ucsc/ucsc_build_sites.txt
+++ b/tool-data/shared/ucsc/ucsc_build_sites.txt
@@ -5,4 +5,3 @@
#Harvested from http://genome-test.cse.ucsc.edu/cgi-bin/das/dsn
test http://genome-test.cse.ucsc.edu/cgi-bin/hgTracks? anoCar1,ce4,ce3,ce2,ce1,loxAfr1,rn2,eschColi_O157H7_1,rn4,droYak1,heliPylo_J99_1,droYak2,dp3,dp2,caeRem2,caeRem1,oryLat1,eschColi_K12_1,homIni13,homIni14,droAna1,droAna2,oryCun1,sacCer1,heliHepa1,droGri1,sc1,dasNov1,choHof1,tupBel1,mm9,mm8,vibrChol1,mm5,mm4,mm7,mm6,mm3,mm2,rn3,venter1,galGal3,galGal2,ornAna1,equCab1,cioSav2,rheMac2,eutHer13,droPer1,droVir2,droVir1,heliPylo_26695_1,euaGli13,calJac1,campJeju1,droSim1,hg13,hg15,hg16,hg17,monDom1,monDom4,droMoj1,petMar1,droMoj2,vibrChol_MO10_1,vibrPara1,gliRes13,vibrVuln_YJ016_1,braFlo1,cioSav1,lauRas13,dm1,canFam1,canFam2,ci1,echTel1,ci2,caePb1,dm3,ponAbe2,falciparum,xenTro1,xenTro2,nonAfr13,fr2,fr1,gasAcu1,dm2,apiMel1,apiMel2,eschColi_O157H7EDL933_1,priPac1,panTro1,hg18,panTro2,campJeju_RM1221_1,canHg12,vibrChol_O395_1,vibrFisc_ES114_1,danRer5,danRer4,danRer3,danRer2,danRer1,tetNig1,afrOth13,bosTau1,eschColi_CFT073_1,bosTau3,bosTau2,bosTau4,rodEnt13,droEre1,priMat13,vibrVuln_CMCP6_1,cb2,cb3,cb1,borEut13,droSec1,felCat3,strPur1,strPur2,otoGar1,catArr1,anoGam1,triCas2
ucla http://epigenomics.mcdb.ucla.edu/cgi-bin/hgTracks? araTha1
-psu bx main http://main.genome-browser.bx.psu.edu/cgi-bin/hgTracks? hg18,hg19,mm8,mm9
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -4,32 +4,19 @@
<tool file="data_source/upload.xml" /><tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/biomart.xml" /><tool file="data_source/gramene_mart.xml" />
- <tool file="data_source/flymine.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -87,7 +74,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="features" name="Extract Features"><tool file="filters/ucsc_gene_bed_to_exon_bed.xml" />
@@ -111,7 +97,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -139,7 +124,6 @@
<tool file="plotting/histogram2.xml" /><tool file="plotting/scatterplot.xml" /><tool file="plotting/boxplot.xml" />
- <tool file="visualization/GMAJ.xml" /><tool file="visualization/build_ucsc_custom_track.xml" /><tool file="maf/vcf_to_maf_customtrack.xml" /><tool file="mutation/visualize.xml" />
@@ -170,14 +154,6 @@
<tool file="multivariate_stats/kpca.xml" /><tool file="multivariate_stats/kcca.xml" /></section>
- <section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <!-- <tool file="hyphy/hyphy_dnds_wrapper.xml" /> -->
- </section>
- <section id="motifs" name="Motif Tools">
- <tool file="rgenetics/rgWebLogo3.xml" />
- </section><section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
@@ -253,10 +229,6 @@
<tool file="gatk/variant_eval.xml" /><tool file="gatk/variant_combine.xml" /></section>
- <section id="peak_calling" name="NGS: Peak Calling">
- <tool file="peak_calling/macs_wrapper.xml" />
- <tool file="peak_calling/sicer_wrapper.xml" />
- </section><section id="ngs-rna-tools" name="NGS: RNA Analysis"><label id="rna_seq" text="RNA-seq" /><label id="filtering" text="Filtering" />
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -5,7 +5,6 @@
<tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_test.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/microbial_import.xml" /><tool file="data_source/biomart.xml" />
@@ -13,34 +12,18 @@
<tool file="data_source/cbi_rice_mart.xml" /><tool file="data_source/gramene_mart.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/flymine.xml" />
- <tool file="data_source/flymine_test.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" />
- <tool file="data_source/metabolicmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/wormbase_test.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" />
- <tool file="data_source/epigraph_import_test.xml" /><tool file="data_source/hbvar.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /><tool file="validation/fix_errors.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" />
- <tool file="data_destination/epigraph_test.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -81,7 +64,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="convert" name="Convert Formats"><tool file="filters/axt_to_concat_fasta.xml" />
@@ -124,7 +106,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -189,9 +170,6 @@
<tool file="multivariate_stats/kcca.xml" /></section><section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <tool file="hyphy/hyphy_dnds_wrapper.xml" /><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /></section>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_destination/epigraph.xml
--- a/tools/data_destination/epigraph.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_export">
- <description> and prediction with EpiGRAPH</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_destination/epigraph_test.xml
--- a/tools/data_destination/epigraph_test.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_test_export">
- <description> and prediction with EpiGRAPH Test</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH test website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/bx_browser.xml
--- a/tools/data_source/bx_browser.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="BX" id="bx_browser" tool_type="data_source">
- <description>table browser</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://main.genome-browser.bx.psu.edu/cgi-bin/hgTables" check_values="false" method="get">
- <display>go to BX Browser $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner" />
- <param name="tool_id" type="hidden" value="bx_browser" />
- <param name="sendToGalaxy" type="hidden" value="1" />
- <param name="hgta_compressType" type="hidden" value="none" />
- <param name="hgta_outputType" type="hidden" value="bed" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="org" missing="unknown species" />
- <request_param galaxy_name="table" remote_name="hgta_table" missing="unknown table" />
- <request_param galaxy_name="description" remote_name="hgta_regionType" missing="no description" />
- <request_param galaxy_name="data_type" remote_name="hgta_outputType" missing="tabular" >
- <value_translation>
- <value galaxy_value="tabular" remote_value="primaryTable" />
- <value galaxy_value="tabular" remote_value="selectedFields" />
- <value galaxy_value="wig" remote_value="wigData" />
- <value galaxy_value="interval" remote_value="tab" />
- <value galaxy_value="html" remote_value="hyperlinks" />
- <value galaxy_value="fasta" remote_value="sequence" />
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="tabular" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/encode_db.xml
--- a/tools/data_source/encode_db.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<tool name="EncodeDB" id="encode_db1">
-
- <description>
- at NHGRI
- </description>
-
- <command interpreter="python">
- fetch.py "$url" $output
- </command>
-
- <inputs action="http://research.nhgri.nih.gov/projects/ENCODEdb/cgi-bin/power_query.cgi" target="_top">
-<!-- <inputs action="http://localhost:9000/prepared"> -->
- <display>go to EncodeDB $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/async/encode_db1" />
- </inputs>
-
- <uihints minwidth="800"/>
-
- <outputs>
- <data format="bed" name="output" />
- </outputs>
-
- <options sanitize="False" refresh="True"/>
-
-</tool>
\ No newline at end of file
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/epigraph_import.xml
--- a/tools/data_source/epigraph_import.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import" tool_type="data_source">
- <description> server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/epigraph_import_test.xml
--- a/tools/data_source/epigraph_import_test.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import_test" tool_type="data_source">
- <description> test server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import_test" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/flymine.xml
--- a/tools/data_source/flymine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine" id="flymine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.flymine.org" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/flymine_test.xml
--- a/tools/data_source/flymine_test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine test" id="flymine_test" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://preview.flymine.org/preview/begin.do" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/metabolicmine.xml
--- a/tools/data_source/metabolicmine.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<tool name="metabolicMine" id="metabolicmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.metabolicmine.org/beta/begin.do" check_values="false" method="get">
- <display>go to metabolicMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/modmine.xml
--- a/tools/data_source/modmine.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="modENCODE modMine" id="modmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://intermine.modencode.org/" check_values="false" method="get">
- <display>go to modENCODE modMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/mousemine.xml
--- a/tools/data_source/mousemine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="MouseMine" id="mousemine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.mousemine.org/mousemine/begin.do" check_values="false" method="get">
- <display>go to MouseMine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=mousemine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="MouseMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/ratmine.xml
--- a/tools/data_source/ratmine.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Ratmine" id="ratmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://ratmine.mcw.edu/ratmine/begin.do" check_values="false" method="get">
- <display>go to Ratmine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=ratmine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="Ratmine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/data_source/yeastmine.xml
--- a/tools/data_source/yeastmine.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<tool name="YeastMine" id="yeastmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://yeastmine.yeastgenome.org/yeastmine/begin.do" check_values="false" method="get">
- <display>go to yeastMine server $GALAXY_URL</display>
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/encode/gencode_partition.xml
--- a/tools/encode/gencode_partition.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<tool id="gencode_partition1" name="Gencode Partition">
- <description>an interval file</description>
- <command interpreter="python">split_by_partitions.py ${GALAXY_DATA_INDEX_DIR} $input1 $out_file1 ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Partition"/>
- </inputs>
- <outputs>
- <data name="out_file1" format="bed"/>
- </outputs>
- <tests>
- <test>
- <param name="input1" value="encode_1.bed"/>
- <output name="out_file1" file="gencode_partition_out.bed"/>
- </test>
- </tests>
- <help>
-For detailed information about partitioning, click here_.
-
-.. _here: http://genome.imim.es/gencode/wiki/index.php/Collecting_Feature_Sets_from_A…
-
-Datasets are partitioned according to the protocol below:
-
-A partition scheme has been defined that is similar to what has previously been done with TARs/TRANSFRAGs such that any feature can be classified as falling into one of the following 6 categories:
- 1. **Coding** -- coding exons defined from the GENCODE experimentally verified coding set (coding in any transcript)
- 2. **5UTR** -- 5' UTR exons defined from the GENCODE experimentally verified coding set (5' UTR in some transcript but never coding in any other)
- 3. **3UTR** -- 3' UTR exons defined from the GENCODE experimentally verified coding set (3' UTR in some transcript but never coding in any other)
- 4. **Intronic Proximal** -- intronic and no more than 5kb away from an exon.
- 5. **Intergenic Proximal** -- between genes and no more than 5kb away from an exon.
- 6. **Intronic Distal** -- intronic and greater than 5kb away from an exon.
- 7. **Intergenic Distal** -- between genes and greater than 5kb away from an exon.
-
------
-
-.. class:: infomark
-
-**Note:** Features overlapping more than one partition will take the identity of the lower-numbered partition.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
diff -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 -r 0c6bf744c5b25377145df3994198f994193ba0bf tools/encode/random_intervals.xml
--- a/tools/encode/random_intervals.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<tool id="random_intervals1" name="Random Intervals">
-<description>create a random set of intervals</description>
- <command interpreter="python">random_intervals_no_bits.py $regions $input2 $input1 $out_file1 ${input2.metadata.chromCol} ${input2.metadata.startCol} ${input2.metadata.endCol} ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol} $use_mask $strand_overlaps ${GALAXY_DATA_INDEX_DIR}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Mimick">
- <validator type="unspecified_build" message="Unspecified build, this tool works with data from genome builds hg16 or hg17. Click the pencil icon in your history item to set the genome build."/>
- </param>
- <param name="input2" type="data" format="interval" label="Intervals to Mask"/>
- <param name="use_mask" type="select" label="Use mask">
- <option value="no_mask">No</option>
- <option value="use_mask">Yes</option>
- </param>
- <param name="strand_overlaps" type="select" label="Allow overlaps">
- <option value="all">Any</option>
- <option value="strand">Across Strands</option>
- <option value="none">None</option>
- </param>
- <param name="regions" type="select" label="Regions to use">
- <options from_file="regions.loc">
- <column name="name" index="2"/>
- <column name="value" index="1"/>
- <column name="dbkey" index="0"/>
- <filter type="data_meta" ref="input1" key="dbkey" column="0" />
- <validator type="no_options" message="This tool currently only works with ENCODE data from genome builds hg16 or hg17."/>
- </options>
- </param>
- </inputs>
- <outputs>
- <data name="out_file1" format="input"/>
- </outputs>
- <help>
-
-.. class:: warningmark
-
-This tool currently only works with ENCODE data from genome builds hg16 or hg17.
-
------
-
-.. class:: infomark
-
-**Note:** If you do not wish to mask a set of intervals, change the Use Mask option to No, this option will override any Mask files selected.
-
------
-
-**Syntax**
-
-This tool will attempt to create a random set of intervals that mimic those found within your source file. You may also specify a set of intervals to mask.
-
-**Allow overlaps** options
- * **Across Strands** - random regions are allowed to overlap only if they are on different strands.
- * **Any** - all overlaps are allowed.
- * **None** - no overlapping regions are allowed.
-
-**Regions to use** options
- * Bounding region of interest based on the dataset build.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/galaxy/galaxy-central/commits/2210b9de666e/
Changeset: 2210b9de666e
User: natefoo
Date: 2014-01-27 20:00:52
Summary: Merge heads in default.
Affected #: 33 files
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e buildbot_setup.sh
--- a/buildbot_setup.sh
+++ b/buildbot_setup.sh
@@ -4,28 +4,6 @@
: ${HOSTTYPE:=`uname -m`}
-# link to HYPHY is arch-dependent
-case "$OSTYPE" in
- linux-gnu)
- kernel=`uname -r | cut -f1,2 -d.`
- HYPHY="/galaxy/software/linux$kernel-$HOSTTYPE/hyphy"
- ;;
- darwin*)
- this_minor=`uname -r | awk -F. '{print ($1-4)}'`
- machine=`machine`
- for minor in `jot - 3 $this_minor 1`; do
- HYPHY="/galaxy/software/macosx10.$minor-$machine/hyphy"
- [ -d "$HYPHY" ] && break
- done
- [ ! -d "$HYPHY" ] && unset HYPHY
- ;;
- solaris2.10)
- # For the psu-production builder which is Solaris, but jobs run on a
- # Linux cluster
- HYPHY="/galaxy/software/linux2.6-x86_64/hyphy"
- ;;
-esac
-
LINKS="
/galaxy/data/location/add_scores.loc
/galaxy/data/location/all_fasta.loc
@@ -121,12 +99,6 @@
ln -sf $link tool-data
done
- if [ -d "$HYPHY" ]; then
- echo "Linking $HYPHY"
- rm -f tool-data/HYPHY
- ln -sf $HYPHY tool-data/HYPHY
- fi
-
if [ -d "$JARS" ]; then
echo "Linking $JARS"
rm -f tool-data/shared/jars
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e doc/source/lib/galaxy.tools.util.rst
--- a/doc/source/lib/galaxy.tools.util.rst
+++ b/doc/source/lib/galaxy.tools.util.rst
@@ -9,14 +9,6 @@
:undoc-members:
:show-inheritance:
-:mod:`hyphy_util` Module
-------------------------
-
-.. automodule:: galaxy.tools.util.hyphy_util
- :members:
- :undoc-members:
- :show-inheritance:
-
:mod:`maf_utilities` Module
---------------------------
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e lib/galaxy/tools/util/hyphy_util.py
--- a/lib/galaxy/tools/util/hyphy_util.py
+++ /dev/null
@@ -1,1163 +0,0 @@
-#Dan Blankenberg
-#Contains file contents and helper methods for HYPHY configurations
-import tempfile, os
-
-def get_filled_temp_filename(contents):
- fh = tempfile.NamedTemporaryFile('w')
- filename = fh.name
- fh.close()
- fh = open(filename, 'w')
- fh.write(contents)
- fh.close()
- return filename
-
-NJ_tree_shared_ibf = """
-COUNT_GAPS_IN_FREQUENCIES = 0;
-methodIndex = 1;
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function InferTreeTopology(verbFlag)
-{
- distanceMatrix = {ds.species,ds.species};
-
- MESSAGE_LOGGING = 0;
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"chooseDistanceFormula.def");
- InitializeDistances (0);
-
- for (i = 0; i<ds.species; i=i+1)
- {
- for (j = i+1; j<ds.species; j = j+1)
- {
- distanceMatrix[i][j] = ComputeDistanceFormula (i,j);
- }
- }
-
- MESSAGE_LOGGING = 1;
- cladesMade = 1;
-
-
- if (ds.species == 2)
- {
- d1 = distanceMatrix[0][1]/2;
- treeNodes = {{0,1,d1__},
- {1,1,d1__},
- {2,0,0}};
-
- cladesInfo = {{2,0}};
- }
- else
- {
- if (ds.species == 3)
- {
- /* generate least squares estimates here */
-
- d1 = (distanceMatrix[0][1]+distanceMatrix[0][2]-distanceMatrix[1][2])/2;
- d2 = (distanceMatrix[0][1]-distanceMatrix[0][2]+distanceMatrix[1][2])/2;
- d3 = (distanceMatrix[1][2]+distanceMatrix[0][2]-distanceMatrix[0][1])/2;
-
- treeNodes = {{0,1,d1__},
- {1,1,d2__},
- {2,1,d3__}
- {3,0,0}};
-
- cladesInfo = {{3,0}};
- }
- else
- {
- njm = (distanceMatrix > methodIndex)>=ds.species;
-
- treeNodes = {2*(ds.species+1),3};
- cladesInfo = {ds.species-1,2};
-
- for (i=Rows(treeNodes)-1; i>=0; i=i-1)
- {
- treeNodes[i][0] = njm[i][0];
- treeNodes[i][1] = njm[i][1];
- treeNodes[i][2] = njm[i][2];
- }
-
- for (i=Rows(cladesInfo)-1; i>=0; i=i-1)
- {
- cladesInfo[i][0] = njm[i][3];
- cladesInfo[i][1] = njm[i][4];
- }
-
- njm = 0;
- }
- }
- return 1.0;
-}
-
-/*-----------------------------------------------------------------------------------------------------------------------------------------*/
-
-function TreeMatrix2TreeString (doLengths)
-{
- treeString = "";
- p = 0;
- k = 0;
- m = treeNodes[0][1];
- n = treeNodes[0][0];
- treeString*(Rows(treeNodes)*25);
-
- while (m)
- {
- if (m>p)
- {
- if (p)
- {
- treeString*",";
- }
- for (j=p;j<m;j=j+1)
- {
- treeString*"(";
- }
- }
- else
- {
- if (m<p)
- {
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
- }
- else
- {
- treeString*",";
- }
- }
- if (n<ds.species)
- {
- GetString (nodeName, ds, n);
- if (doLengths != 1)
- {
- treeString*nodeName;
- }
- else
- {
- treeString*taxonNameMap[nodeName];
- }
- }
- if (doLengths>.5)
- {
- nodeName = ":"+treeNodes[k][2];
- treeString*nodeName;
- }
- k=k+1;
- p=m;
- n=treeNodes[k][0];
- m=treeNodes[k][1];
- }
-
- for (j=m;j<p;j=j+1)
- {
- treeString*")";
- }
-
- treeString*0;
- return treeString;
-}
-"""
-
-def get_NJ_tree (filename):
- return """
-DISTANCE_PROMPTS = 1;
-ExecuteAFile ("%s");
-
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-/* do sequence to branch map */
-
-taxonNameMap = {};
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
-}
-
-DataSetFilter filteredData = CreateFilter (ds,1);
-InferTreeTopology (0);
-treeString = TreeMatrix2TreeString (1);
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, treeString);
-fscanf (stdin, "String", ps_file);
-
-if (Abs(ps_file))
-{
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (ps_file, CLEAR_FILE, drawLetter, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
-}
-""" % (filename)
-
-def get_NJ_treeMF (filename):
- return """
-ExecuteAFile ("%s");
-
-VERBOSITY_LEVEL = -1;
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-_linesIn = Columns (inLines);
-isomorphicTreesBySequenceCount = {};
-
-/*---------------------------------------------------------*/
-
-_currentGene = 1;
-_currentState = 0;
-geneSeqs = "";
-geneSeqs * 128;
-
-fprintf (PROMPT_FOR_FILE, CLEAR_FILE, KEEP_OPEN);
-treeOutFile = LAST_FILE_PATH;
-
-fscanf (stdin,"String", ps_file);
-if (Abs(ps_file))
-{
- fprintf (ps_file, CLEAR_FILE, KEEP_OPEN);
-}
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- if (Abs(geneSeqs))
- {
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (_currentGene,treeOutFile,ps_file);
- }
-}
-
-fprintf (treeOutFile,CLOSE_FILE);
-if (Abs(ps_file))
-{
- fprintf (ps_file,CLOSE_FILE);
-}
-/*---------------------------------------------------------*/
-
-function _processAGene (_geneID, nwk_file, ps_file)
-{
- if (ds.species == 1)
- {
- fprintf (nwk_file, _geneID-1, "\\tNone \\tNone\\n");
- return 0;
-
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- /* do sequence to branch map */
-
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}});
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- DISTANCE_PROMPTS = (_geneID==1);
-
- InferTreeTopology (0);
- baseTree = TreeMatrix2TreeString (0);
- UseModel (USE_NO_MODEL);
-
- Tree baseTop = baseTree;
-
- /* standardize this top */
-
- for (k=0; k<Abs(isomorphicTreesBySequenceCount[filteredData.species]); k=k+1)
- {
- testString = (isomorphicTreesBySequenceCount[filteredData.species])[k];
- Tree testTree = testString;
- if (testTree == baseTop)
- {
- baseTree = testString;
- break;
- }
- }
- if (k==Abs(isomorphicTreesBySequenceCount[filteredData.species]))
- {
- if (k==0)
- {
- isomorphicTreesBySequenceCount[filteredData.species] = {};
- }
- (isomorphicTreesBySequenceCount[filteredData.species])[k] = baseTree;
- }
-
- fprintf (nwk_file, _geneID-1, "\\t", baseTree, "\\t", TreeMatrix2TreeString (1), "\\n");
- if (Abs(ps_file))
- {
- treeString = TreeMatrix2TreeString (2);
- UseModel (USE_NO_MODEL);
- Tree givenTree = treeString;
- baseHeight = TipCount (givenTree)*28;
- TREE_OUTPUT_OPTIONS = {};
- TREE_OUTPUT_OPTIONS["__FONT_SIZE__"] = 14;
- baseWidth = 0;
- treeAVL = givenTree^0;
- drawLetter = "/drawletter {"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$4+" -"+TREE_OUTPUT_OPTIONS["__FONT_SIZE__"]$2+ " show} def\\n";
- for (k3 = 1; k3 < Abs(treeAVL); k3=k3+1)
- {
- nodeName = (treeAVL[k3])["Name"];
- if(Abs((treeAVL[k3])["Children"]) == 0)
- {
- mySpecs = {};
- mySpecs ["TREE_OUTPUT_BRANCH_LABEL"] = "(" + taxonNameMap[nodeName] + ") drawLetter";
- baseWidth = Max (baseWidth, (treeAVL[k3])["Depth"]);
- }
- }
- baseWidth = 40*baseWidth;
-
- fprintf (stdout, _geneID, ":", givenTree,"\\n");
- fprintf (ps_file, PSTreeString (givenTree, "STRING_SUPPLIED_LENGTHS",{{baseWidth,baseHeight}}));
- }
- return 0;
-}
-""" % (filename)
-
-BranchLengthsMF = """
-VERBOSITY_LEVEL = -1;
-
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-
-
-
-_linesIn = Columns (inLines);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-_currentGene = 1;
-
-_currentState = 0;
-
-geneSeqs = "";
-
-geneSeqs * 128;
-
-
-
-for (l=0; l<_linesIn; l=l+1)
-
-{
-
- if (Abs(inLines[l]) == 0)
-
- {
-
- if (_currentState == 1)
-
- {
-
- geneSeqs * 0;
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- geneSeqs * 128;
-
- _currentGene = _currentGene + 1;
-
- }
-
- }
-
- else
-
- {
-
- if (_currentState == 0)
-
- {
-
- _currentState = 1;
-
- }
-
- geneSeqs * inLines[l];
-
- geneSeqs * "\\n";
-
- }
-
-}
-
-
-
-if (_currentState == 1)
-
-{
-
- geneSeqs * 0;
-
- if (Abs(geneSeqs))
-
- {
-
- DataSet ds = ReadFromString (geneSeqs);
-
- _processAGene (_currentGene);
-
- }
-
-}
-
-
-
-fprintf (resultFile,CLOSE_FILE);
-
-
-
-/*---------------------------------------------------------*/
-
-
-
-function _processAGene (_geneID)
-
-{
-
- DataSetFilter filteredData = CreateFilter (ds,1);
-
- if (_currentGene == 1)
-
- {
-
- SelectTemplateModel (filteredData);
-
-
-
- SetDialogPrompt ("Tree file");
-
- fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
- fscanf (stdin, "String", resultFile);
-
-
-
- /* do sequence to branch map */
-
-
-
- validNames = {};
-
- taxonNameMap = {};
-
-
-
- for (k=0; k<TipCount(givenTree); k=k+1)
-
- {
-
- validNames[TipName(givenTree,k)&&1] = 1;
-
- }
-
-
-
- for (k=0; k<BranchCount(givenTree); k=k+1)
-
- {
-
- thisName = BranchName(givenTree,k);
-
- taxonNameMap[thisName&&1] = thisName;
-
- }
-
-
-
- storeValidNames = validNames;
-
- fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Block\\tBranch\\tLength\\tLowerBound\\tUpperBound\\n");
-
- }
-
- else
-
- {
-
- HarvestFrequencies (vectorOfFrequencies, filteredData, 1,1,1);
-
- validNames = storeValidNames;
-
- }
-
-
-
- for (k=0; k<ds.species; k=k+1)
-
- {
-
- GetString (thisName, ds,k);
-
- shortName = (thisName^{{"\\\\..+",""}})&&1;
-
- if (validNames[shortName])
-
- {
-
- taxonNameMap[shortName] = thisName;
-
- validNames - (shortName);
-
- SetParameter (ds,k,shortName);
-
- }
-
- else
-
- {
-
- fprintf (resultFile,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree,"\\n");
-
- return 0;
-
- }
-
- }
-
-
-
- /* */
-
-
-
- LikelihoodFunction lf = (filteredData,givenTree);
-
- Optimize (res,lf);
-
-
-
- timer = Time(0)-timer;
-
-
-
- branchNames = BranchName (givenTree,-1);
-
- branchLengths = BranchLength (givenTree,-1);
-
-
-
-
-
- for (k=0; k<Columns(branchNames)-1; k=k+1)
-
- {
-
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- if (k==0)
-
- {
-
- /* compute a scaling factor */
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
-
- scaleFactor = BranchLength (givenTree,0);
-
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
-
- }
-
- fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-
- }
-
-
-
- ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-
- global treeScaler = 1;
-
- ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-
- COVARIANCE_PARAMETER = "treeScaler";
-
- COVARIANCE_PRECISION = 0.95;
-
- CovarianceMatrix (cmx,lf);
-
- fprintf (resultFile,_geneID,"\\tTotal Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-
- ClearConstraints (givenTree);
-
- return 0;
-
-}
-"""
-
-BranchLengths = """
-DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
-DataSetFilter filteredData = CreateFilter (ds,1);
-
-SelectTemplateModel (filteredData);
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-fscanf (stdin, "String", resultFile);
-
-/* do sequence to branch map */
-
-validNames = {};
-taxonNameMap = {};
-
-for (k=0; k<TipCount(givenTree); k=k+1)
-{
- validNames[TipName(givenTree,k)&&1] = 1;
-}
-
-for (k=0; k<BranchCount(givenTree); k=k+1)
-{
- thisName = BranchName(givenTree,k);
- taxonNameMap[thisName&&1] = thisName;
-}
-
-for (k=0; k<ds.species; k=k+1)
-{
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- if (validNames[shortName])
- {
- taxonNameMap[shortName] = thisName;
- validNames - (shortName);
- SetParameter (ds,k,shortName);
- }
- else
- {
- fprintf (resultFile,CLEAR_FILE,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree);
- return 0;
- }
-}
-
-/* */
-
-LikelihoodFunction lf = (filteredData,givenTree);
-
-Optimize (res,lf);
-
-timer = Time(0)-timer;
-
-branchNames = BranchName (givenTree,-1);
-branchLengths = BranchLength (givenTree,-1);
-
-fprintf (resultFile,CLEAR_FILE,KEEP_OPEN,"Branch\\tLength\\tLowerBound\\tUpperBound\\n");
-
-for (k=0; k<Columns(branchNames)-1; k=k+1)
-{
- COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- if (k==0)
- {
- /* compute a scaling factor */
- ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
- scaleFactor = BranchLength (givenTree,0);
- ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
- }
- fprintf (resultFile,taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-}
-
-ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
-global treeScaler = 1;
-ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
-COVARIANCE_PARAMETER = "treeScaler";
-COVARIANCE_PRECISION = 0.95;
-CovarianceMatrix (cmx,lf);
-ClearConstraints (givenTree);
-fprintf (resultFile,"Total Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
-fprintf (resultFile,CLOSE_FILE);
-"""
-
-SimpleLocalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "AC";
- _analysisHeaders[7] = "AT";
- _analysisHeaders[8] = "CG";
- _analysisHeaders[9] = "CT";
- _analysisHeaders[10] = "GT";
- _analysisHeaders[11] = "Tree";
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _analysisHeaders [Abs(_analysisHeaders)] = "length("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dS("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "dN("+branchName+")";
- _analysisHeaders [Abs(_analysisHeaders)] = "omega("+branchName+")";
- }
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Local";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = treeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = treeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
- for (_biterator = 0; _biterator < treeBranchCount; _biterator = _biterator + 1)
- {
- branchName = treeBranchNames[_biterator];
-
- _returnMe ["length("+branchName+")"] = (_cL["Total"])[_biterator];
- _returnMe ["dS("+branchName+")"] = (_cL["Syn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["S_sites"]);
- _returnMe ["dN("+branchName+")"] = (_cL["NonSyn"])[_biterator]*(_returnMe ["BP"]/_returnMe ["NS_sites"]);
-
- ExecuteCommands ("_lom = _standardizeRatio(codonTree."+treeBranchNames[_biterator]+".nonSynRate,codonTree."+treeBranchNames[_biterator]+".synRate);");
- _returnMe ["omega("+branchName+")"] = _lom;
- }
-
- return _returnMe;
-}
-
-"""
-
-SimpleGlobalFitter = """
-VERBOSITY_LEVEL = -1;
-COUNT_GAPS_IN_FREQUENCIES = 0;
-
-/*---------------------------------------------------------*/
-
-function returnResultHeaders (dummy)
-{
- _analysisHeaders = {};
- _analysisHeaders[0] = "BLOCK";
- _analysisHeaders[1] = "BP";
- _analysisHeaders[2] = "S_sites";
- _analysisHeaders[3] = "NS_sites";
- _analysisHeaders[4] = "Stop_codons";
- _analysisHeaders[5] = "LogL";
- _analysisHeaders[6] = "omega";
- _analysisHeaders[7] = "omega_range";
- _analysisHeaders[8] = "AC";
- _analysisHeaders[9] = "AT";
- _analysisHeaders[10] = "CG";
- _analysisHeaders[11] = "CT";
- _analysisHeaders[12] = "GT";
- _analysisHeaders[13] = "Tree";
-
- return _analysisHeaders;
-}
-
-/*---------------------------------------------------------*/
-
-function runAGeneFit (myID)
-{
- fprintf (stdout, "[SimpleGlobalFitter.bf on GENE ", myID, "]\\n");
- taxonNameMap = {};
-
- for (k=0; k<ds.species; k=k+1)
- {
- GetString (thisName, ds,k);
- shortName = (thisName^{{"\\\\..+",""}})&&1;
- taxonNameMap[shortName] = thisName;
- SetParameter (ds,k,shortName);
- }
-
- DataSetFilter filteredData = CreateFilter (ds,1);
- _nucSites = filteredData.sites;
-
- if (Abs(treeString))
- {
- givenTreeString = treeString;
- }
- else
- {
- if (_currentGene==1)
- {
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"NJ.bf");
- }
- givenTreeString = InferTreeTopology (0);
- treeString = "";
- }
-
- DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions);
-
- if (_currentGene==1)
- {
- _MG94stdinOverload = {};
- _MG94stdinOverload ["0"] = "Global";
- _MG94stdinOverload ["1"] = modelSpecString;
-
- ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"MG94custom.mdl",
- _MG94stdinOverload);
-
- Tree codonTree = givenTreeString;
- }
- else
- {
- HarvestFrequencies (observedFreq,filteredData,3,1,1);
- MULTIPLY_BY_FREQS = PopulateModelMatrix ("MG94custom", observedFreq);
- vectorOfFrequencies = BuildCodonFrequencies (observedFreq);
- Model MG94customModel = (MG94custom,vectorOfFrequencies,0);
-
- Tree codonTree = givenTreeString;
- }
-
- LikelihoodFunction lf = (filteredData,codonTree);
-
- Optimize (res,lf);
-
- _snsAVL = _computeSNSSites ("filteredData", _Genetic_Code, vectorOfFrequencies, 0);
- _cL = ReturnVectorsOfCodonLengths (ComputeScalingStencils (0), "codonTree");
-
-
- _returnMe = {};
- _returnMe ["BLOCK"] = myID;
- _returnMe ["LogL"] = res[1][0];
- _returnMe ["BP"] = _snsAVL ["Sites"];
- _returnMe ["S_sites"] = _snsAVL ["SSites"];
- _returnMe ["NS_sites"] = _snsAVL ["NSSites"];
- _returnMe ["Stop_codons"] = (_nucSites-filteredData.sites*3)$3;
- _returnMe ["AC"] = AC;
- _returnMe ["AT"] = AT;
- _returnMe ["CG"] = CG;
- _returnMe ["CT"] = CT;
- _returnMe ["GT"] = GT;
- _returnMe ["omega"] = R;
- COVARIANCE_PARAMETER = "R";
- COVARIANCE_PRECISION = 0.95;
- CovarianceMatrix (cmx,lf);
- _returnMe ["omega_range"] = ""+cmx[0]+"-"+cmx[2];
- _returnMe ["Tree"] = Format(codonTree,0,1);
-
-
- return _returnMe;
-}
-"""
-
-FastaReader = """
-fscanf (stdin, "String", _coreAnalysis);
-fscanf (stdin, "String", _outputDriver);
-
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"TemplateModels"+DIRECTORY_SEPARATOR+"chooseGeneticCode.def");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"dSdNTreeTools.ibf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"CodonTools.bf");
-ExecuteAFile (HYPHY_BASE_DIRECTORY+"TemplateBatchFiles"+DIRECTORY_SEPARATOR+"Utility"+DIRECTORY_SEPARATOR+"GrabBag.bf");
-
-SetDialogPrompt ("Tree file");
-fscanf (PROMPT_FOR_FILE, "Tree", givenTree);
-
-treeBranchNames = BranchName (givenTree,-1);
-treeBranchCount = Columns (treeBranchNames)-1;
-treeString = Format (givenTree,1,1);
-
-SetDialogPrompt ("Multiple gene FASTA file");
-fscanf (PROMPT_FOR_FILE, "Lines", inLines);
-fscanf (stdin, "String", modelSpecString);
-fscanf (stdin, "String", _outPath);
-
-ExecuteAFile (_outputDriver);
-ExecuteAFile (_coreAnalysis);
-
-/*---------------------------------------------------------*/
-
-_linesIn = Columns (inLines);
-_currentGene = 1;
- _currentState = 0;
-/* 0 - waiting for a non-empty line */
-/* 1 - reading files */
-
-geneSeqs = "";
-geneSeqs * 0;
-
-_prepareFileOutput (_outPath);
-
-for (l=0; l<_linesIn; l=l+1)
-{
- if (Abs(inLines[l]) == 0)
- {
- if (_currentState == 1)
- {
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
- geneSeqs * 128;
- _currentGene = _currentGene + 1;
- }
- }
- else
- {
- if (_currentState == 0)
- {
- _currentState = 1;
- }
- geneSeqs * inLines[l];
- geneSeqs * "\\n";
- }
-}
-
-if (_currentState == 1)
-{
- geneSeqs * 0;
- DataSet ds = ReadFromString (geneSeqs);
- _processAGene (ds.species == treeBranchCount,_currentGene);
-}
-
-_finishFileOutput (0);
-"""
-
-TabWriter = """
-/*---------------------------------------------------------*/
-function _prepareFileOutput (_outPath)
-{
- _outputFilePath = _outPath;
-
- _returnHeaders = returnResultHeaders(0);
-
- fprintf (_outputFilePath, CLEAR_FILE, KEEP_OPEN, _returnHeaders[0]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",_returnHeaders[_biterator]);
- }
-
-
-
- fprintf (_outputFilePath,"\\n");
- return 0;
-}
-
-/*---------------------------------------------------------*/
-
-function _processAGene (valid, _geneID)
-{
- if (valid)
- {
- returnValue = runAGeneFit (_geneID);
- fprintf (_outputFilePath, returnValue[_returnHeaders[0]]);
- for (_biterator = 1; _biterator < Abs(_returnHeaders); _biterator = _biterator + 1)
- {
- fprintf (_outputFilePath,"\\t",returnValue[_returnHeaders[_biterator]]);
- }
- fprintf (_outputFilePath, "\\n");
- }
- /*
- else
- {
- fprintf (_outputFilePath,
- _geneID, ", Incorrect number of sequences\\n");
- }
- */
- _currentState = 0;
- return 0;
-}
-
-/*---------------------------------------------------------*/
-function _finishFileOutput (dummy)
-{
- return 0;
-}
-"""
-
-def get_dnds_config_filename(Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename ):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the DATA READER */
-
-_genomeScreenOptions ["0"] = "%s";
- /* which analysis to run on each gene; */
-_genomeScreenOptions ["1"] = "%s";
- /* what output to produce; */
-_genomeScreenOptions ["2"] = "%s";
- /* genetic code */
-_genomeScreenOptions ["3"] = "%s";
- /* tree file */
-_genomeScreenOptions ["4"] = "%s";
- /* alignment file */
-_genomeScreenOptions ["5"] = "%s";
- /* nucleotide bias string; can define any of the 203 models */
-_genomeScreenOptions ["6"] = "%s";
- /* output csv file */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (Fitter_filename, TabWriter_filename, genetic_code, tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename )
- return get_filled_temp_filename(contents)
-
-
-def get_branch_lengths_config_filename(input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the NucDataBranchLengths.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "CUSTOM";
- /* use an arbitrary nucleotide model */
-_genomeScreenOptions ["2"] = "%s";
- /* which model to use */
-_genomeScreenOptions ["3"] = "%s";
- /* model options */
-_genomeScreenOptions ["4"] = "Estimated";
- /* rate parameters */
-_genomeScreenOptions ["5"] = "%s";
- /* base frequencies */
-_genomeScreenOptions ["6"] = "%s";
- /* the tree to use; */
-_genomeScreenOptions ["7"] = "%s";
- /* write .csv output to; */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, nuc_model, model_options, base_freq, tree_filename, output_filename, BranchLengths_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_tree_config_filename(input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTree.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-_genomeScreenOptions ["2"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["3"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, distance_metric, output_filename1, output_filename2, NJ_tree_filename)
- return get_filled_temp_filename(contents)
-
-
-def get_nj_treeMF_config_filename(input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename):
- contents = """
-_genomeScreenOptions = {};
-
-/* all paths are either absolute or relative
-to the BuildNJTreeMF.bf */
-
-_genomeScreenOptions ["0"] = "%s";
- /* the multiple alignment file to analyze; */
-_genomeScreenOptions ["1"] = "%s";
- /* write Newick tree output to; */
-_genomeScreenOptions ["2"] = "%s";
- /* write a postscript tree file to this file; leave blank to not write a tree */
-_genomeScreenOptions ["3"] = "%s";
- /* pick which distance metric to use; TN93 is a good default */
-
-ExecuteAFile ("%s", _genomeScreenOptions);
-""" % (input_filename, output_filename1, output_filename2, distance_metric, NJ_tree_filename)
- return get_filled_temp_filename(contents)
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tool-data/shared/ucsc/ucsc_build_sites.txt
--- a/tool-data/shared/ucsc/ucsc_build_sites.txt
+++ b/tool-data/shared/ucsc/ucsc_build_sites.txt
@@ -5,4 +5,3 @@
#Harvested from http://genome-test.cse.ucsc.edu/cgi-bin/das/dsn
test http://genome-test.cse.ucsc.edu/cgi-bin/hgTracks? anoCar1,ce4,ce3,ce2,ce1,loxAfr1,rn2,eschColi_O157H7_1,rn4,droYak1,heliPylo_J99_1,droYak2,dp3,dp2,caeRem2,caeRem1,oryLat1,eschColi_K12_1,homIni13,homIni14,droAna1,droAna2,oryCun1,sacCer1,heliHepa1,droGri1,sc1,dasNov1,choHof1,tupBel1,mm9,mm8,vibrChol1,mm5,mm4,mm7,mm6,mm3,mm2,rn3,venter1,galGal3,galGal2,ornAna1,equCab1,cioSav2,rheMac2,eutHer13,droPer1,droVir2,droVir1,heliPylo_26695_1,euaGli13,calJac1,campJeju1,droSim1,hg13,hg15,hg16,hg17,monDom1,monDom4,droMoj1,petMar1,droMoj2,vibrChol_MO10_1,vibrPara1,gliRes13,vibrVuln_YJ016_1,braFlo1,cioSav1,lauRas13,dm1,canFam1,canFam2,ci1,echTel1,ci2,caePb1,dm3,ponAbe2,falciparum,xenTro1,xenTro2,nonAfr13,fr2,fr1,gasAcu1,dm2,apiMel1,apiMel2,eschColi_O157H7EDL933_1,priPac1,panTro1,hg18,panTro2,campJeju_RM1221_1,canHg12,vibrChol_O395_1,vibrFisc_ES114_1,danRer5,danRer4,danRer3,danRer2,danRer1,tetNig1,afrOth13,bosTau1,eschColi_CFT073_1,bosTau3,bosTau2,bosTau4,rodEnt13,droEre1,priMat13,vibrVuln_CMCP6_1,cb2,cb3,cb1,borEut13,droSec1,felCat3,strPur1,strPur2,otoGar1,catArr1,anoGam1,triCas2
ucla http://epigenomics.mcdb.ucla.edu/cgi-bin/hgTracks? araTha1
-psu bx main http://main.genome-browser.bx.psu.edu/cgi-bin/hgTracks? hg18,hg19,mm8,mm9
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -4,32 +4,19 @@
<tool file="data_source/upload.xml" /><tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/biomart.xml" /><tool file="data_source/gramene_mart.xml" />
- <tool file="data_source/flymine.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -87,7 +74,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="features" name="Extract Features"><tool file="filters/ucsc_gene_bed_to_exon_bed.xml" />
@@ -111,7 +97,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -139,7 +124,6 @@
<tool file="plotting/histogram2.xml" /><tool file="plotting/scatterplot.xml" /><tool file="plotting/boxplot.xml" />
- <tool file="visualization/GMAJ.xml" /><tool file="visualization/build_ucsc_custom_track.xml" /><tool file="maf/vcf_to_maf_customtrack.xml" /><tool file="mutation/visualize.xml" />
@@ -170,14 +154,6 @@
<tool file="multivariate_stats/kpca.xml" /><tool file="multivariate_stats/kcca.xml" /></section>
- <section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <!-- <tool file="hyphy/hyphy_dnds_wrapper.xml" /> -->
- </section>
- <section id="motifs" name="Motif Tools">
- <tool file="rgenetics/rgWebLogo3.xml" />
- </section><section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
@@ -253,10 +229,6 @@
<tool file="gatk/variant_eval.xml" /><tool file="gatk/variant_combine.xml" /></section>
- <section id="peak_calling" name="NGS: Peak Calling">
- <tool file="peak_calling/macs_wrapper.xml" />
- <tool file="peak_calling/sicer_wrapper.xml" />
- </section><section id="ngs-rna-tools" name="NGS: RNA Analysis"><label id="rna_seq" text="RNA-seq" /><label id="filtering" text="Filtering" />
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -5,7 +5,6 @@
<tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_test.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" />
- <tool file="data_source/bx_browser.xml" /><tool file="data_source/ebi_sra.xml" /><tool file="data_source/microbial_import.xml" /><tool file="data_source/biomart.xml" />
@@ -13,34 +12,18 @@
<tool file="data_source/cbi_rice_mart.xml" /><tool file="data_source/gramene_mart.xml" /><tool file="data_source/fly_modencode.xml" />
- <tool file="data_source/flymine.xml" />
- <tool file="data_source/flymine_test.xml" />
- <tool file="data_source/modmine.xml" />
- <tool file="data_source/mousemine.xml" />
- <tool file="data_source/ratmine.xml" />
- <tool file="data_source/yeastmine.xml" />
- <tool file="data_source/metabolicmine.xml" /><tool file="data_source/worm_modencode.xml" /><tool file="data_source/wormbase.xml" /><tool file="data_source/wormbase_test.xml" /><tool file="data_source/eupathdb.xml" />
- <tool file="data_source/encode_db.xml" />
- <tool file="data_source/epigraph_import.xml" />
- <tool file="data_source/epigraph_import_test.xml" /><tool file="data_source/hbvar.xml" /><tool file="genomespace/genomespace_file_browser_prod.xml" /><tool file="genomespace/genomespace_importer.xml" /><tool file="validation/fix_errors.xml" /></section><section id="send" name="Send Data">
- <tool file="data_destination/epigraph.xml" />
- <tool file="data_destination/epigraph_test.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section id="EncodeTools" name="ENCODE Tools">
- <tool file="encode/gencode_partition.xml" />
- <tool file="encode/random_intervals.xml" />
- </section><section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
@@ -81,7 +64,6 @@
<tool file="filters/compare.xml" /><tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" />
- <tool file="new_operations/column_join.xml" /></section><section id="convert" name="Convert Formats"><tool file="filters/axt_to_concat_fasta.xml" />
@@ -124,7 +106,6 @@
<section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" />
- <tool file="extract/phastOdds/phastOdds_tool.xml" /></section><section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" />
@@ -189,9 +170,6 @@
<tool file="multivariate_stats/kcca.xml" /></section><section id="hyphy" name="Evolution">
- <tool file="hyphy/hyphy_branch_lengths_wrapper.xml" />
- <tool file="hyphy/hyphy_nj_tree_wrapper.xml" />
- <tool file="hyphy/hyphy_dnds_wrapper.xml" /><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /></section>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_destination/epigraph.xml
--- a/tools/data_destination/epigraph.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_export">
- <description> and prediction with EpiGRAPH</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_destination/epigraph_test.xml
--- a/tools/data_destination/epigraph_test.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<tool name="Perform genome analysis" id="epigraph_test_export">
- <description> and prediction with EpiGRAPH Test</description>
- <redirect_url_params>GENOME=${input1.dbkey} NAME=${input1.name} INFO=${input1.info}</redirect_url_params>
- <inputs>
- <param format="bed" name="input1" type="data" label="Send this dataset to EpiGRAPH">
- <validator type="unspecified_build" />
- </param>
- <param name="REDIRECT_URL" type="hidden" value="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/DataImport.jsp" />
- <param name="DATA_URL" type="baseurl" value="/datasets" />
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <outputs/>
- <help>
-
-.. class:: warningmark
-
-After clicking the **Execute** button, you will be redirected to the EpiGRAPH test website. Please be patient while the dataset is being imported. Inside EpiGRAPH, buttons are available to send the results of the EpiGRAPH analysis back to Galaxy. In addition, you can always abandon an EpiGRAPH session and return to Galaxy by directing your browser to your current Galaxy instance.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool sends the selected dataset to EpiGRAPH in order to perform an in-depth analysis with statistical and machine learning methods.
-
------
-
-.. class:: infomark
-
-**EpiGRAPH outline**
-
-The EpiGRAPH_ web service enables biologists to uncover hidden associations in vertebrate genome and epigenome datasets. Users can upload or import sets of genomic regions and EpiGRAPH will test a wide range of attributes (including DNA sequence and structure, gene density, chromatin modifications and evolutionary conservation) for enrichment or depletion among these regions. Furthermore, EpiGRAPH learns to predictively identify genomic regions that exhibit similar properties.
-
-.. _EpiGRAPH: http://epigraph.mpi-inf.mpg.de/
-
- </help>
-</tool>
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/bx_browser.xml
--- a/tools/data_source/bx_browser.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="BX" id="bx_browser" tool_type="data_source">
- <description>table browser</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://main.genome-browser.bx.psu.edu/cgi-bin/hgTables" check_values="false" method="get">
- <display>go to BX Browser $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner" />
- <param name="tool_id" type="hidden" value="bx_browser" />
- <param name="sendToGalaxy" type="hidden" value="1" />
- <param name="hgta_compressType" type="hidden" value="none" />
- <param name="hgta_outputType" type="hidden" value="bed" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="org" missing="unknown species" />
- <request_param galaxy_name="table" remote_name="hgta_table" missing="unknown table" />
- <request_param galaxy_name="description" remote_name="hgta_regionType" missing="no description" />
- <request_param galaxy_name="data_type" remote_name="hgta_outputType" missing="tabular" >
- <value_translation>
- <value galaxy_value="tabular" remote_value="primaryTable" />
- <value galaxy_value="tabular" remote_value="selectedFields" />
- <value galaxy_value="wig" remote_value="wigData" />
- <value galaxy_value="interval" remote_value="tab" />
- <value galaxy_value="html" remote_value="hyperlinks" />
- <value galaxy_value="fasta" remote_value="sequence" />
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="tabular" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/encode_db.xml
--- a/tools/data_source/encode_db.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<tool name="EncodeDB" id="encode_db1">
-
- <description>
- at NHGRI
- </description>
-
- <command interpreter="python">
- fetch.py "$url" $output
- </command>
-
- <inputs action="http://research.nhgri.nih.gov/projects/ENCODEdb/cgi-bin/power_query.cgi" target="_top">
-<!-- <inputs action="http://localhost:9000/prepared"> -->
- <display>go to EncodeDB $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/async/encode_db1" />
- </inputs>
-
- <uihints minwidth="800"/>
-
- <outputs>
- <data format="bed" name="output" />
- </outputs>
-
- <options sanitize="False" refresh="True"/>
-
-</tool>
\ No newline at end of file
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/epigraph_import.xml
--- a/tools/data_source/epigraph_import.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import" tool_type="data_source">
- <description> server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/epigraph_import_test.xml
--- a/tools/data_source/epigraph_import_test.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="EpiGRAPH" id="epigraph_import_test" tool_type="data_source">
- <description> test server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://epigraph.mpi-inf.mpg.de/WebGRAPH_Public_Test/faces/Login.jsp" check_values="false" method="get">
- <display>go to EpiGRAPH server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=epigraph_import_test" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="GENOME" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="NAME" missing="EpiGRAPH query" />
- <request_param galaxy_name="info" remote_name="INFO" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/flymine.xml
--- a/tools/data_source/flymine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine" id="flymine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.flymine.org" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/flymine_test.xml
--- a/tools/data_source/flymine_test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Flymine test" id="flymine_test" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://preview.flymine.org/preview/begin.do" check_values="false" method="get">
- <display>go to Flymine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=flymine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="FlyMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="txt" />
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/metabolicmine.xml
--- a/tools/data_source/metabolicmine.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<tool name="metabolicMine" id="metabolicmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.metabolicmine.org/beta/begin.do" check_values="false" method="get">
- <display>go to metabolicMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/modmine.xml
--- a/tools/data_source/modmine.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="modENCODE modMine" id="modmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://intermine.modencode.org/" check_values="false" method="get">
- <display>go to modENCODE modMine server $GALAXY_URL</display>
- </inputs>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/mousemine.xml
--- a/tools/data_source/mousemine.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="MouseMine" id="mousemine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://www.mousemine.org/mousemine/begin.do" check_values="false" method="get">
- <display>go to MouseMine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=mousemine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="MouseMine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
-
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/ratmine.xml
--- a/tools/data_source/ratmine.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
- If the value of 'URL_method' is 'get', the request will consist of the value of 'URL' coming back in
- the initial response. If value of 'URL_method' is 'post', any additional params coming back in the
- initial response ( in addition to 'URL' ) will be encoded and appended to URL and a post will be performed.
--->
-<tool name="Ratmine" id="ratmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://ratmine.mcw.edu/ratmine/begin.do" check_values="false" method="get">
- <display>go to Ratmine server $GALAXY_URL</display>
- <param name="GALAXY_URL" type="baseurl" value="/tool_runner?tool_id=ratmine" />
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="URL_method" remote_name="URL_method" missing="post" />
- <request_param galaxy_name="URL" remote_name="URL" missing="" />
- <request_param galaxy_name="dbkey" remote_name="db" missing="?" />
- <request_param galaxy_name="organism" remote_name="organism" missing="" />
- <request_param galaxy_name="table" remote_name="table" missing="" />
- <request_param galaxy_name="description" remote_name="description" missing="" />
- <request_param galaxy_name="name" remote_name="name" missing="Ratmine query" />
- <request_param galaxy_name="info" remote_name="info" missing="" />
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/data_source/yeastmine.xml
--- a/tools/data_source/yeastmine.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<tool name="YeastMine" id="yeastmine" tool_type="data_source">
- <description>server</description>
- <command interpreter="python">data_source.py $output $__app__.config.output_size_limit</command>
- <inputs action="http://yeastmine.yeastgenome.org/yeastmine/begin.do" check_values="false" method="get">
- <display>go to yeastMine server $GALAXY_URL</display>
- </inputs>
- <request_param_translation>
- <request_param galaxy_name="data_type" remote_name="data_type" missing="auto" >
- <value_translation>
- <value galaxy_value="auto" remote_value="txt" /><!-- intermine currently always provides 'txt', make this auto detect -->
- </value_translation>
- </request_param>
- </request_param_translation>
- <uihints minwidth="800"/>
- <outputs>
- <data name="output" format="txt" />
- </outputs>
- <options sanitize="False" refresh="True"/>
-</tool>
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/encode/gencode_partition.xml
--- a/tools/encode/gencode_partition.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<tool id="gencode_partition1" name="Gencode Partition">
- <description>an interval file</description>
- <command interpreter="python">split_by_partitions.py ${GALAXY_DATA_INDEX_DIR} $input1 $out_file1 ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Partition"/>
- </inputs>
- <outputs>
- <data name="out_file1" format="bed"/>
- </outputs>
- <tests>
- <test>
- <param name="input1" value="encode_1.bed"/>
- <output name="out_file1" file="gencode_partition_out.bed"/>
- </test>
- </tests>
- <help>
-For detailed information about partitioning, click here_.
-
-.. _here: http://genome.imim.es/gencode/wiki/index.php/Collecting_Feature_Sets_from_A…
-
-Datasets are partitioned according to the protocol below:
-
-A partition scheme has been defined that is similar to what has previously been done with TARs/TRANSFRAGs such that any feature can be classified as falling into one of the following 6 categories:
- 1. **Coding** -- coding exons defined from the GENCODE experimentally verified coding set (coding in any transcript)
- 2. **5UTR** -- 5' UTR exons defined from the GENCODE experimentally verified coding set (5' UTR in some transcript but never coding in any other)
- 3. **3UTR** -- 3' UTR exons defined from the GENCODE experimentally verified coding set (3' UTR in some transcript but never coding in any other)
- 4. **Intronic Proximal** -- intronic and no more than 5kb away from an exon.
- 5. **Intergenic Proximal** -- between genes and no more than 5kb away from an exon.
- 6. **Intronic Distal** -- intronic and greater than 5kb away from an exon.
- 7. **Intergenic Distal** -- between genes and greater than 5kb away from an exon.
-
------
-
-.. class:: infomark
-
-**Note:** Features overlapping more than one partition will take the identity of the lower-numbered partition.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
diff -r 37cf56c3f0e4605e15f5988764f147bcb186f40f -r 2210b9de666ed9baa48304de39ba745e081b329e tools/encode/random_intervals.xml
--- a/tools/encode/random_intervals.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<tool id="random_intervals1" name="Random Intervals">
-<description>create a random set of intervals</description>
- <command interpreter="python">random_intervals_no_bits.py $regions $input2 $input1 $out_file1 ${input2.metadata.chromCol} ${input2.metadata.startCol} ${input2.metadata.endCol} ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} ${input1.metadata.strandCol} $use_mask $strand_overlaps ${GALAXY_DATA_INDEX_DIR}</command>
- <inputs>
- <param name="input1" type="data" format="interval" label="File to Mimick">
- <validator type="unspecified_build" message="Unspecified build, this tool works with data from genome builds hg16 or hg17. Click the pencil icon in your history item to set the genome build."/>
- </param>
- <param name="input2" type="data" format="interval" label="Intervals to Mask"/>
- <param name="use_mask" type="select" label="Use mask">
- <option value="no_mask">No</option>
- <option value="use_mask">Yes</option>
- </param>
- <param name="strand_overlaps" type="select" label="Allow overlaps">
- <option value="all">Any</option>
- <option value="strand">Across Strands</option>
- <option value="none">None</option>
- </param>
- <param name="regions" type="select" label="Regions to use">
- <options from_file="regions.loc">
- <column name="name" index="2"/>
- <column name="value" index="1"/>
- <column name="dbkey" index="0"/>
- <filter type="data_meta" ref="input1" key="dbkey" column="0" />
- <validator type="no_options" message="This tool currently only works with ENCODE data from genome builds hg16 or hg17."/>
- </options>
- </param>
- </inputs>
- <outputs>
- <data name="out_file1" format="input"/>
- </outputs>
- <help>
-
-.. class:: warningmark
-
-This tool currently only works with ENCODE data from genome builds hg16 or hg17.
-
------
-
-.. class:: infomark
-
-**Note:** If you do not wish to mask a set of intervals, change the Use Mask option to No, this option will override any Mask files selected.
-
------
-
-**Syntax**
-
-This tool will attempt to create a random set of intervals that mimic those found within your source file. You may also specify a set of intervals to mask.
-
-**Allow overlaps** options
- * **Across Strands** - random regions are allowed to overlap only if they are on different strands.
- * **Any** - all overlaps are allowed.
- * **None** - no overlapping regions are allowed.
-
-**Regions to use** options
- * Bounding region of interest based on the dataset build.
-
-------
-
-**Citation**
-
-If you use this tool, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
-
- </help>
-</tool>
\ No newline at end of file
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/galaxy/galaxy-central/commits/8ea87f7bc63a/
Changeset: 8ea87f7bc63a
User: natefoo
Date: 2014-01-27 20:01:21
Summary: Merge merge from next-stable to default
Affected #: 0 files
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/3fdf673bdfc9/
Changeset: 3fdf673bdfc9
Branch: next-stable
User: inithello
Date: 2014-01-27 19:50:42
Summary: Use the same path for tool shed repositories when testing both tool dependencies and repositories with tools in the same test run.
Affected #: 3 files
diff -r 43d7d4a42cd2a3e31e02d86d0cf7d66dc928c631 -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 install_and_test_tool_shed_repositories.sh
--- a/install_and_test_tool_shed_repositories.sh
+++ b/install_and_test_tool_shed_repositories.sh
@@ -48,6 +48,14 @@
fi
fi
+if [ -z $GALAXY_INSTALL_TEST_SHED_TOOL_PATH ] ; then
+ export GALAXY_INSTALL_TEST_SHED_TOOL_PATH='/tmp/shed_tools'
+fi
+
+if [ ! -d $GALAXY_INSTALL_TEST_SHED_TOOL_PATH ] ; then
+ mkdir -p $GALAXY_INSTALL_TEST_SHED_TOOL_PATH
+fi
+
test_tool_dependency_definitions () {
# Test installation of repositories of type tool_dependency_definition.
if [ -f $GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR/stage_1_complete ] ; then
diff -r 43d7d4a42cd2a3e31e02d86d0cf7d66dc928c631 -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
@@ -342,6 +342,8 @@
if not os.path.isdir( galaxy_test_tmp_dir ):
os.mkdir( galaxy_test_tmp_dir )
# Set up the configuration files for the Galaxy instance.
+ galaxy_shed_tool_path = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_PATH',
+ tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' ) )
shed_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_DATA_TABLE_CONF',
os.path.join( galaxy_test_tmp_dir, 'test_shed_tool_data_table_conf.xml' ) )
galaxy_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DATA_TABLE_CONF',
@@ -377,7 +379,6 @@
galaxy_file_path = os.path.join( galaxy_db_path, 'files' )
new_repos_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
galaxy_tempfiles = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
- galaxy_shed_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' )
galaxy_migrated_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
# Set up the tool dependency path for the Galaxy instance.
tool_dependency_dir = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR', None )
diff -r 43d7d4a42cd2a3e31e02d86d0cf7d66dc928c631 -r 3fdf673bdfc9af7653695ced36f274d65748c7f1 test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
@@ -230,6 +230,8 @@
if not os.path.isdir( galaxy_test_tmp_dir ):
os.mkdir( galaxy_test_tmp_dir )
# Set up the configuration files for the Galaxy instance.
+ galaxy_shed_tool_path = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_PATH',
+ tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' ) )
shed_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_DATA_TABLE_CONF',
os.path.join( galaxy_test_tmp_dir, 'test_shed_tool_data_table_conf.xml' ) )
galaxy_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DATA_TABLE_CONF',
@@ -265,7 +267,6 @@
galaxy_file_path = os.path.join( galaxy_db_path, 'files' )
new_repos_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
galaxy_tempfiles = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
- galaxy_shed_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' )
galaxy_migrated_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
# Set up the tool dependency path for the Galaxy instance.
tool_dependency_dir = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR', None )
https://bitbucket.org/galaxy/galaxy-central/commits/37cf56c3f0e4/
Changeset: 37cf56c3f0e4
User: inithello
Date: 2014-01-27 19:51:17
Summary: Merge bugfix from next-stable.
Affected #: 3 files
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 37cf56c3f0e4605e15f5988764f147bcb186f40f install_and_test_tool_shed_repositories.sh
--- a/install_and_test_tool_shed_repositories.sh
+++ b/install_and_test_tool_shed_repositories.sh
@@ -48,6 +48,14 @@
fi
fi
+if [ -z $GALAXY_INSTALL_TEST_SHED_TOOL_PATH ] ; then
+ export GALAXY_INSTALL_TEST_SHED_TOOL_PATH='/tmp/shed_tools'
+fi
+
+if [ ! -d $GALAXY_INSTALL_TEST_SHED_TOOL_PATH ] ; then
+ mkdir -p $GALAXY_INSTALL_TEST_SHED_TOOL_PATH
+fi
+
test_tool_dependency_definitions () {
# Test installation of repositories of type tool_dependency_definition.
if [ -f $GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR/stage_1_complete ] ; then
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 37cf56c3f0e4605e15f5988764f147bcb186f40f test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/repositories_with_tools/functional_tests.py
@@ -342,6 +342,8 @@
if not os.path.isdir( galaxy_test_tmp_dir ):
os.mkdir( galaxy_test_tmp_dir )
# Set up the configuration files for the Galaxy instance.
+ galaxy_shed_tool_path = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_PATH',
+ tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' ) )
shed_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_DATA_TABLE_CONF',
os.path.join( galaxy_test_tmp_dir, 'test_shed_tool_data_table_conf.xml' ) )
galaxy_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DATA_TABLE_CONF',
@@ -377,7 +379,6 @@
galaxy_file_path = os.path.join( galaxy_db_path, 'files' )
new_repos_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
galaxy_tempfiles = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
- galaxy_shed_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' )
galaxy_migrated_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
# Set up the tool dependency path for the Galaxy instance.
tool_dependency_dir = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR', None )
diff -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d -r 37cf56c3f0e4605e15f5988764f147bcb186f40f test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
@@ -230,6 +230,8 @@
if not os.path.isdir( galaxy_test_tmp_dir ):
os.mkdir( galaxy_test_tmp_dir )
# Set up the configuration files for the Galaxy instance.
+ galaxy_shed_tool_path = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_PATH',
+ tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' ) )
shed_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_SHED_TOOL_DATA_TABLE_CONF',
os.path.join( galaxy_test_tmp_dir, 'test_shed_tool_data_table_conf.xml' ) )
galaxy_tool_data_table_conf_file = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DATA_TABLE_CONF',
@@ -265,7 +267,6 @@
galaxy_file_path = os.path.join( galaxy_db_path, 'files' )
new_repos_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
galaxy_tempfiles = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
- galaxy_shed_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir, prefix='shed_tools' )
galaxy_migrated_tool_path = tempfile.mkdtemp( dir=galaxy_test_tmp_dir )
# Set up the tool dependency path for the Galaxy instance.
tool_dependency_dir = os.environ.get( 'GALAXY_INSTALL_TEST_TOOL_DEPENDENCY_DIR', None )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: inithello: Fix description for find_diag_hits.
by commits-noreply@bitbucket.org 27 Jan '14
by commits-noreply@bitbucket.org 27 Jan '14
27 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/ad9cb3bde1ee/
Changeset: ad9cb3bde1ee
User: inithello
Date: 2014-01-27 16:44:24
Summary: Fix description for find_diag_hits.
Affected #: 1 file
diff -r 74392b32685f35aa146cd5b66da098eb78eb77be -r ad9cb3bde1ee3aace42ed16dca5e40ac537eee6d scripts/migrate_tools/0009_tools.xml
--- a/scripts/migrate_tools/0009_tools.xml
+++ b/scripts/migrate_tools/0009_tools.xml
@@ -75,7 +75,7 @@
<repository owner="devteam" changeset_revision="31154ff9f5e1" name="filter_transcripts_via_tracking" description="Filter Combined Transcripts"><tool id="filter_combined_via_tracking" version="0.1" file="filter_transcripts_via_tracking.xml" /></repository>
- <repository owner="devteam" changeset_revision="acf51ff24c7d" name="find_diag_hits" description="find_diag_hits">
+ <repository owner="devteam" changeset_revision="acf51ff24c7d" name="find_diag_hits" description="Identify sequence reads corresponding to a particular taxonomic group"><tool id="find_diag_hits" version="1.0.0" file="find_diag_hits.xml" /></repository><repository owner="devteam" changeset_revision="33a0e6aca936" name="freebayes_wrapper" description="Call SNPS with Freebayes">
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/74392b32685f/
Changeset: 74392b32685f
User: dan
Date: 2014-01-27 16:41:07
Summary: merge stable
Affected #: 0 files
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Fix for aggregate_scores_in_intervals.py broken in 95bf71620d50c6d81248eef2001a7dc156ae1088.
by commits-noreply@bitbucket.org 27 Jan '14
by commits-noreply@bitbucket.org 27 Jan '14
27 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/6c5913a4b701/
Changeset: 6c5913a4b701
Branch: stable
User: dan
Date: 2014-01-27 15:54:34
Summary: Fix for aggregate_scores_in_intervals.py broken in 95bf71620d50c6d81248eef2001a7dc156ae1088.
Affected #: 1 file
diff -r 03f7d79212ecf626af4940296e663c376b9cd2ee -r 6c5913a4b701813e823638125fff8bf9fda7354b tools/stats/aggregate_scores_in_intervals.py
--- a/tools/stats/aggregate_scores_in_intervals.py
+++ b/tools/stats/aggregate_scores_in_intervals.py
@@ -201,7 +201,7 @@
continue
# Get the score, only count if not 'nan'
score = scores_by_chrom[chrom][j]
- if not isNaN( score ):
+ if not isnan( score ):
total += score
count += 1
max_score = max( score, max_score )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/e9fc9e7adc63/
Changeset: e9fc9e7adc63
User: inithello
Date: 2014-01-27 15:53:14
Summary: Migrate 43 tools from the distribution to the tool shed.
Affected #: 296 files
diff -r 04bce95d8fd21ae597ba839936dd644870450051 -r e9fc9e7adc63554b6f8a5604bce8be6b37d35d55 lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
--- /dev/null
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
@@ -0,0 +1,103 @@
+"""
+The following tools have been eliminated from the distribution:
+
+1: Bowtie2
+2: Control-based ChIP-seq Analysis Tool
+3: ClustalW multiple sequence alignment program for DNA or proteins
+4: Compute P-values and Correlation Coefficients for Feature Occurrences
+5: Compute P-values and Correlation Coefficients for Occurrences of Two Set of Features
+6: Compute P-values and Second Moments for Feature Occurrences
+7: Compute P-values and Max Variances for Feature Occurrences
+8: Wavelet variance using Discrete Wavelet Transfoms
+9: Quantify the abundances of a set of target sequences from sampled subsequences
+10: Read QC reports using FastQC
+11: Combine FASTA and QUAL into FASTQ.
+12: Filter FASTQ reads by quality score and length
+13: Convert between various FASTQ quality formats.
+14: Manipulate FASTQ reads on various attributes.
+15: FASTQ Masker by quality score
+16: FASTQ de-interlacer on paired end reads.
+17: FASTQ interlacer on paired end reads
+18: FASTQ joiner on paired end reads
+19: FASTQ splitter on joined paired end reads
+20: FASTQ Summary Statistics by column
+21: FASTQ to FASTA converter
+22: FASTQ to Tabular converter
+23: FASTQ Trimmer by quality
+24: FASTQ Quality Trimmer by sliding window
+25: Filter Combined Transcripts
+26: find_diag_hits
+27: Call SNPS with Freebayes
+28: Fetch taxonomic representation
+29: GMAJ Multiple Alignment Viewer
+30: Find lowest diagnostic rank
+31: Model-based Analysis of ChIP-Seq
+32: Poisson two-sample test
+33: Statistical approach for the Identification of ChIP-Enriched Regions
+34: Draw phylogeny
+35: Summarize taxonomy
+36: Tabular to FASTQ converter
+37: Find splice junctions using RNA-seq data
+38: Gapped-read mapper for RNA-seq data
+39: Annotate a VCF file (dbSNP, hapmap)
+40: Extract reads from a specified region
+41: Filter a VCF file
+42: Generate the intersection of two VCF files
+43: Sequence Logo generator for fasta (eg Clustal alignments)
+
+The tools are now available in the repositories respectively:
+
+1: bowtie2
+2: ccat
+3: clustalw
+4: dwt_cor_ava_perclass
+5: dwt_cor_avb_all
+6: dwt_ivc_all
+7: dwt_var_perclass
+8: dwt_var_perfeature
+9: express
+10: fastqc
+11: fastq_combiner
+12: fastq_filter
+13: fastq_groomer
+14: fastq_manipulation
+15: fastq_masker_by_quality
+16: fastq_paired_end_deinterlacer
+17: fastq_paired_end_interlacer
+18: fastq_paired_end_joiner
+19: fastq_paired_end_splitter
+20: fastq_stats
+21: fastqtofasta
+22: fastq_to_tabular
+23: fastq_trimmer
+24: fastq_trimmer_by_quality
+25: filter_transcripts_via_tracking
+26: find_diag_hits
+27: freebayes_wrapper
+28: gi2taxonomy
+29: gmaj
+30: lca_wrapper
+31: macs
+32: poisson2test
+33: sicer
+34: t2ps
+35: t2t_report
+36: tabular_to_fastq
+37: tophat
+38: tophat2
+39: vcf_annotate
+40: vcf_extract
+41: vcf_filter
+42: vcf_intersect
+43: weblogo3
+
+from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
+and will be installed into your local Galaxy instance at the
+location discussed above by running the following command.
+"""
+
+def upgrade( migrate_engine ):
+ print __doc__
+
+def downgrade( migrate_engine ):
+ pass
diff -r 04bce95d8fd21ae597ba839936dd644870450051 -r e9fc9e7adc63554b6f8a5604bce8be6b37d35d55 scripts/migrate_tools/0009_tools.sh
--- /dev/null
+++ b/scripts/migrate_tools/0009_tools.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd `dirname $0`/../..
+python ./scripts/migrate_tools/migrate_tools.py 0009_tools.xml $@
diff -r 04bce95d8fd21ae597ba839936dd644870450051 -r e9fc9e7adc63554b6f8a5604bce8be6b37d35d55 scripts/migrate_tools/0009_tools.xml
--- /dev/null
+++ b/scripts/migrate_tools/0009_tools.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<toolshed name="toolshed.g2.bx.psu.edu">
+ <repository owner="devteam" changeset_revision="96d2e31a3938" name="bowtie2" description="Bowtie2">
+ <tool id="bowtie2" version="0.2" file="bowtie2_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="a0c8dc671a23" name="ccat" description="Control-based ChIP-seq Analysis Tool">
+ <tool id="peakcalling_ccat" version="0.0.1" file="ccat_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="7cc64024fe92" name="clustalw" description="ClustalW multiple sequence alignment program for DNA or proteins">
+ <tool id="clustalw" version="0.1" file="rgClustalw.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="6708501767b6" name="dwt_cor_ava_perclass" description="Compute P-values and Correlation Coefficients for Feature Occurrences">
+ <tool id="compute_p-values_correlation_coefficients_feature_occurrences_between_two_datasets_using_discrete_wavelet_transfom" version="1.0.0" file="execute_dwt_cor_aVa_perClass.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="0f2eda4ea8dc" name="dwt_cor_avb_all" description="Compute P-values and Correlation Coefficients for Occurrences of Two Set of Features">
+ <tool id="compute_p-values_correlation_coefficients_featureA_featureB_occurrences_between_two_datasets_using_discrete_wavelet_transfom" version="1.0.0" file="execute_dwt_cor_aVb_all.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="0b89b03ad760" name="dwt_ivc_all" description="Compute P-values and Second Moments for Feature Occurrences">
+ <tool id="compute_p-values_second_moments_feature_occurrences_between_two_datasets_using_discrete_wavelet_transfom" version="1.0.0" file="execute_dwt_IvC_all.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="cb422b6f49d2" name="dwt_var_perclass" description="Compute P-values and Max Variances for Feature Occurrences">
+ <tool id="compute_p-values_max_variances_feature_occurrences_in_one_dataset_using_discrete_wavelet_transfom" version="1.0.0" file="execute_dwt_var_perClass.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="d56c5d2e1a29" name="dwt_var_perfeature" description="Wavelet variance using Discrete Wavelet Transfoms">
+ <tool id="dwt_var1" version="1.0.0" file="execute_dwt_var_perFeature.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="7b0708761d05" name="express" description="Quantify the abundances of a set of target sequences from sampled subsequences">
+ <tool id="express" version="1.1.1" file="express_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="e28c965eeed4" name="fastqc" description="Read QC reports using FastQC">
+ <tool id="fastqc" version="1.0.0" file="rgFastQC.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="94306bdd58f7" name="fastq_combiner" description="Combine FASTA and QUAL into FASTQ.">
+ <tool id="fastq_combiner" version="1.0.1" file="fastq_combiner.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="30d9ece6c752" name="fastq_filter" description="Filter FASTQ reads by quality score and length">
+ <tool id="fastq_filter" version="1.0.0" file="fastq_filter.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="1298445c852b" name="fastq_groomer" description="Convert between various FASTQ quality formats.">
+ <tool id="fastq_groomer" version="1.0.4" file="fastq_groomer.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="5d1e9e13e8db" name="fastq_manipulation" description="Manipulate FASTQ reads on various attributes.">
+ <tool id="fastq_manipulation" version="1.0.1" file="fastq_manipulation.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="5a7b5751617b" name="fastq_masker_by_quality" description="FASTQ Masker by quality score">
+ <tool id="fastq_masker_by_quality" version="1.0.0" file="fastq_masker_by_quality.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="f0949bc49926" name="fastq_paired_end_deinterlacer" description="FASTQ de-interlacer on paired end reads.">
+ <tool id="fastq_paired_end_deinterlacer" version="1.1" file="fastq_paired_end_deinterlacer.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="b89bdf6acb6c" name="fastq_paired_end_interlacer" description="FASTQ interlacer on paired end reads">
+ <tool id="fastq_paired_end_interlacer" version="1.1" file="fastq_paired_end_interlacer.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="2793d1d765b9" name="fastq_paired_end_joiner" description="FASTQ joiner on paired end reads">
+ <tool id="fastq_paired_end_joiner" version="1.0.0" file="fastq_paired_end_joiner.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="c549e99026db" name="fastq_paired_end_splitter" description="FASTQ splitter on joined paired end reads">
+ <tool id="fastq_paired_end_splitter" version="1.0.0" file="fastq_paired_end_splitter.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="9b7b4e0ca9db" name="fastq_stats" description="FASTQ Summary Statistics by column">
+ <tool id="fastq_stats" version="1.0.0" file="fastq_stats.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="3571553aeb20" name="fastqtofasta" description="FASTQ to FASTA converter">
+ <tool id="fastq_to_fasta_python" version="1.0.0" file="fastq_to_fasta.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="bc9269529e88" name="fastq_to_tabular" description="FASTQ to Tabular converter">
+ <tool id="fastq_to_tabular" version="1.1.0" file="fastq_to_tabular.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="0b9feb0ed628" name="fastq_trimmer" description="FASTQ Trimmer by quality">
+ <tool id="fastq_trimmer" version="1.0.0" file="fastq_trimmer.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="1cdcaf5fc1da" name="fastq_trimmer_by_quality" description="FASTQ Quality Trimmer by sliding window">
+ <tool id="fastq_quality_trimmer" version="1.0.0" file="fastq_trimmer_by_quality.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="31154ff9f5e1" name="filter_transcripts_via_tracking" description="Filter Combined Transcripts">
+ <tool id="filter_combined_via_tracking" version="0.1" file="filter_transcripts_via_tracking.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="acf51ff24c7d" name="find_diag_hits" description="find_diag_hits">
+ <tool id="find_diag_hits" version="1.0.0" file="find_diag_hits.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="33a0e6aca936" name="freebayes_wrapper" description="Call SNPS with Freebayes">
+ <tool id="freebayes_wrapper" version="0.5.0" file="freebayes.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="7b1b03c4465d" name="gi2taxonomy" description="Fetch taxonomic representation">
+ <tool id="Fetch Taxonomic Ranks" version="1.1.0" file="gi2taxonomy.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="2cd5ee197ec7" name="gmaj" description="GMAJ Multiple Alignment Viewer">
+ <tool id="gmaj_1" version="2.0.1" file="GMAJ.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="33e8ed5a4601" name="lca_wrapper" description="Find lowest diagnostic rank">
+ <tool id="lca1" version="1.0.1" file="lca.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="ae2ec275332a" name="macs" description="Model-based Analysis of ChIP-Seq">
+ <tool id="peakcalling_macs" version="1.0.1" file="macs_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="8cd5945559b8" name="poisson2test" description="Poisson two-sample test">
+ <tool id="poisson2test" version="1.0.0" file="poisson2test.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="82a8234e03f2" name="sicer" description="Statistical approach for the Identification of ChIP-Enriched Regions">
+ <tool id="peakcalling_sicer" version="0.0.1" file="sicer_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="9e2b9ca7f33a" name="t2ps" description="Draw phylogeny">
+ <tool id="Draw_phylogram" version="1.0.0" file="t2ps_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="592acb9505fc" name="t2t_report" description="Summarize taxonomy">
+ <tool id="t2t_report" version="1.0.0" file="t2t_report.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="b334cd1095ea" name="tabular_to_fastq" description="Tabular to FASTQ converter">
+ <tool id="tabular_to_fastq" version="1.0.0" file="tabular_to_fastq.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="1030acbecce6" name="tophat" description="Find splice junctions using RNA-seq data">
+ <tool id="tophat" version="1.5.0" file="tophat_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="ffa30bedbee3" name="tophat2" description="Gapped-read mapper for RNA-seq data">
+ <tool id="tophat2" version="0.6" file="tophat2_wrapper.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="b001b50f2009" name="vcf_annotate" description="Annotate a VCF file (dbSNP, hapmap)">
+ <tool id="vcf_annotate" version="1.0.0" file="annotate.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="76ad0b7865b9" name="vcf_extract" description="Extract reads from a specified region">
+ <tool id="vcf_extract" version="1.0.0" file="extract.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="da1a6f33b504" name="vcf_filter" description="Filter a VCF file">
+ <tool id="vcf_filter" version="1.0.0" file="filter.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="9d162bde4113" name="vcf_intersect" description="Generate the intersection of two VCF files">
+ <tool id="vcf_intersect" version="1.0.0" file="vcf_tools/intersect.xml" />
+ </repository>
+ <repository owner="devteam" changeset_revision="66253fc0a69b" name="weblogo3" description="Sequence Logo generator for fasta (eg Clustal alignments)">
+ <tool id="rgweblogo3" version="0.4" file="rgWebLogo3.xml" />
+ </repository>
+</toolshed>
\ No newline at end of file
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/galaxy/galaxy-central/commits/8207135c2509/
Changeset: 8207135c2509
User: inithello
Date: 2014-01-27 15:53:51
Summary: Remove migrated tools from tool_conf.xml.main
Affected #: 1 file
diff -r e9fc9e7adc63554b6f8a5604bce8be6b37d35d55 -r 8207135c2509db9d875becf0fded05212b3d87e0 tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -55,7 +55,6 @@
<section id="convert" name="Convert Formats"><tool file="filters/bed2gff.xml" /><tool file="fasta_tools/fasta_to_tabular.xml" />
- <tool file="fastq/fastq_to_fasta.xml" /><tool file="filters/gff2bed.xml" /><tool file="maf/maf_to_bed.xml" /><tool file="maf/maf_to_interval.xml" />
@@ -182,14 +181,6 @@
<section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
- <section id="tax_manipulation" name="Metagenomic analyses">
- <tool file="taxonomy/gi2taxonomy.xml" />
- <tool file="taxonomy/t2t_report.xml" />
- <tool file="taxonomy/t2ps_wrapper.xml" />
- <tool file="taxonomy/find_diag_hits.xml" />
- <tool file="taxonomy/lca.xml" />
- <tool file="taxonomy/poisson2test.xml" />
- </section><section id="hgv" name="Phenotype Association"><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" />
@@ -202,41 +193,26 @@
<tool file="phenotype_association/gpass.xml" /><tool file="phenotype_association/beam.xml" /><tool file="phenotype_association/lps.xml" />
- <tool file="phenotype_association/freebayes.xml" /><tool file="phenotype_association/master2pg.xml" /><tool file="phenotype_association/vcf2pgSnp.xml" /></section><label id="ngs" text="NGS Toolbox Beta" /><section id="cshl_library_information" name="NGS: QC and manipulation"><label id="illumina" text="Illumina data" />
- <tool file="fastq/fastq_groomer.xml" />
- <tool file="fastq/fastq_paired_end_splitter.xml" />
- <tool file="fastq/fastq_paired_end_joiner.xml" />
- <tool file="fastq/fastq_stats.xml" /><label id="454" text="Roche-454 data" /><tool file="metag_tools/short_reads_figure_score.xml" /><tool file="metag_tools/short_reads_trim_seq.xml" />
- <tool file="fastq/fastq_combiner.xml" /><label id="solid" text="AB-SOLiD data" /><tool file="next_gen_conversion/solid2fastq.xml" /><tool file="solid_tools/solid_qual_stats.xml" /><tool file="solid_tools/solid_qual_boxplot.xml" /><label id="generic_fastq" text="Generic FASTQ manipulation" />
- <tool file="fastq/fastq_filter.xml" />
- <tool file="fastq/fastq_trimmer.xml" />
- <tool file="fastq/fastq_trimmer_by_quality.xml" />
- <tool file="fastq/fastq_masker_by_quality.xml" />
- <tool file="fastq/fastq_manipulation.xml" />
- <tool file="fastq/fastq_to_fasta.xml" />
- <tool file="fastq/fastq_to_tabular.xml" />
- <tool file="fastq/tabular_to_fastq.xml" /><label id="fastx_toolkit_fastq" text="FASTX-Toolkit for FASTQ data" /><label id="fastq_qc" text="FASTQ QC" /><tool file="rgenetics/rgFastQC.xml" /></section><section id="ngs_mapping" name="NGS: Mapping"><label id="illumina" text="Illumina" />
- <tool file="sr_mapping/bowtie2_wrapper.xml" /><label id="roche_454" text="Roche-454" /><tool file="metag_tools/megablast_wrapper.xml" /><tool file="metag_tools/megablast_xml_parser.xml" />
@@ -283,10 +259,6 @@
</section><section id="ngs-rna-tools" name="NGS: RNA Analysis"><label id="rna_seq" text="RNA-seq" />
- <tool file="ngs_rna/tophat_wrapper.xml" />
- <tool file="ngs_rna/tophat2_wrapper.xml" />
- <tool file="ngs_rna/express_wrapper.xml" /><label id="filtering" text="Filtering" />
- <tool file="ngs_rna/filter_transcripts_via_tracking.xml" /></section></toolbox>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Fix for aggregate_scores_in_intervals.py broken in 95bf71620d50c6d81248eef2001a7dc156ae1088.
by commits-noreply@bitbucket.org 27 Jan '14
by commits-noreply@bitbucket.org 27 Jan '14
27 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/04bce95d8fd2/
Changeset: 04bce95d8fd2
User: dan
Date: 2014-01-27 15:54:34
Summary: Fix for aggregate_scores_in_intervals.py broken in 95bf71620d50c6d81248eef2001a7dc156ae1088.
Affected #: 1 file
diff -r bbd852d8ed7c125844aac9f38a85d5246bbd845b -r 04bce95d8fd21ae597ba839936dd644870450051 tools/stats/aggregate_scores_in_intervals.py
--- a/tools/stats/aggregate_scores_in_intervals.py
+++ b/tools/stats/aggregate_scores_in_intervals.py
@@ -201,7 +201,7 @@
continue
# Get the score, only count if not 'nan'
score = scores_by_chrom[chrom][j]
- if not isNaN( score ):
+ if not isnan( score ):
total += score
count += 1
max_score = max( score, max_score )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/ec858cad8c51/
Changeset: ec858cad8c51
User: jmchilton
Date: 2014-01-27 05:17:01
Summary: PEP-8 fixes for workflow controllers.
Affected #: 2 files
diff -r a7ac443f9c9b7b5383284149db4bcc6a99e4b124 -r ec858cad8c51d5190237eaacb31c51841e2e2843 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -18,7 +18,9 @@
log = logging.getLogger(__name__)
+
class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin):
+
@web.expose_api
def index(self, trans, **kwd):
"""
@@ -34,10 +36,10 @@
filter1 = ( trans.app.model.StoredWorkflow.user == trans.user )
if show_published:
filter1 = or_( filter1, ( trans.app.model.StoredWorkflow.published == True ) )
- for wf in trans.sa_session.query(trans.app.model.StoredWorkflow).filter(
+ for wf in trans.sa_session.query( trans.app.model.StoredWorkflow ).filter(
filter1, trans.app.model.StoredWorkflow.table.c.deleted == False ).order_by(
- desc(trans.app.model.StoredWorkflow.table.c.update_time)).all():
- item = wf.to_dict(value_mapper={'id':trans.security.encode_id})
+ desc( trans.app.model.StoredWorkflow.table.c.update_time ) ).all():
+ item = wf.to_dict( value_mapper={ 'id': trans.security.encode_id } )
encoded_id = trans.security.encode_id(wf.id)
item['url'] = url_for('workflow', id=encoded_id)
rval.append(item)
@@ -45,9 +47,9 @@
user=trans.user ).join( 'stored_workflow' ).filter(
trans.app.model.StoredWorkflow.deleted == False ).order_by(
desc( trans.app.model.StoredWorkflow.update_time ) ).all():
- item = wf_sa.stored_workflow.to_dict(value_mapper={'id':trans.security.encode_id})
+ item = wf_sa.stored_workflow.to_dict( value_mapper={ 'id': trans.security.encode_id })
encoded_id = trans.security.encode_id(wf_sa.stored_workflow.id)
- item['url'] = url_for('workflow', id=encoded_id)
+ item['url'] = url_for( 'workflow', id=encoded_id )
rval.append(item)
return rval
@@ -73,16 +75,16 @@
except:
trans.response.status = 400
return "That workflow does not exist."
- item = stored_workflow.to_dict(view='element', value_mapper={'id':trans.security.encode_id})
+ item = stored_workflow.to_dict( view='element', value_mapper={ 'id': trans.security.encode_id } )
item['url'] = url_for('workflow', id=workflow_id)
latest_workflow = stored_workflow.latest_workflow
inputs = {}
for step in latest_workflow.steps:
if step.type == 'data_input':
if step.tool_inputs and "name" in step.tool_inputs:
- inputs[step.id] = {'label':step.tool_inputs['name'], 'value':""}
+ inputs[step.id] = {'label': step.tool_inputs['name'], 'value': ""}
else:
- inputs[step.id] = {'label':"Input Dataset", 'value':""}
+ inputs[step.id] = {'label': "Input Dataset", 'value': ""}
else:
pass
# Eventually, allow regular tool parameters to be inserted and modified at runtime.
@@ -220,12 +222,12 @@
if 'param' in param_dict and 'value' in param_dict:
param_dict[ param_dict['param'] ] = param_dict['value']
- # Update step if there's no step id (i.e. all steps with tool are
+ # Update step if there's no step id (i.e. all steps with tool are
# updated) or update if step ids match.
if not step_id or ( step_id and int( step_id ) == step.id ):
for name, value in param_dict.items():
step.state.inputs[ name ] = value
-
+
if step.tool_errors:
trans.response.status = 400
return "Workflow cannot be run because of validation errors in some steps: %s" % step_errors
@@ -251,6 +253,7 @@
job = None
if step.type == 'tool' or step.type is None:
tool = self.app.toolbox.get_tool( step.tool_id )
+
def callback( input, value, prefixed_name, prefixed_label ):
if isinstance( input, DataToolParameter ):
if prefixed_name in step.input_connections_by_name:
@@ -347,6 +350,7 @@
"""
data = payload['workflow']
+
workflow, missing_tool_tups = self._workflow_from_dict( trans, data, source="API" )
# galaxy workflow newly created id
@@ -357,7 +361,7 @@
# return list
rval = []
- item = workflow.to_dict(value_mapper={'id':trans.security.encode_id})
+ item = workflow.to_dict(value_mapper={'id': trans.security.encode_id})
item['url'] = url_for('workflow', id=encoded_id)
rval.append(item)
@@ -388,7 +392,7 @@
elif stored_workflow.deleted:
raise exceptions.MessageException( "You can't import this workflow because it has been deleted." )
imported_workflow = self._import_shared_workflow( trans, stored_workflow )
- item = imported_workflow.to_dict(value_mapper={'id':trans.security.encode_id})
+ item = imported_workflow.to_dict( value_mapper={ 'id': trans.security.encode_id } )
encoded_id = trans.security.encode_id(imported_workflow.id)
item['url'] = url_for('workflow', id=encoded_id)
return item
diff -r a7ac443f9c9b7b5383284149db4bcc6a99e4b124 -r ec858cad8c51d5190237eaacb31c51841e2e2843 lib/galaxy/webapps/galaxy/controllers/workflow.py
--- a/lib/galaxy/webapps/galaxy/controllers/workflow.py
+++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py
@@ -68,6 +68,7 @@
grids.GridOperation( "Sharing", condition=( lambda item: not item.deleted ), async_compatible=False ),
grids.GridOperation( "Delete", condition=( lambda item: item.deleted ), async_compatible=True ),
]
+
def apply_query_filter( self, trans, query, **kwargs ):
return query.filter_by( user=trans.user, deleted=False )
@@ -109,7 +110,7 @@
def apply_query_filter( self, trans, query, **kwargs ):
# A public workflow is published, has a slug, and is not deleted.
- return query.filter( self.model_class.published==True ).filter( self.model_class.slug != None ).filter( self.model_class.deleted == False )
+ return query.filter( self.model_class.published == True ).filter( self.model_class.slug != None ).filter( self.model_class.deleted == False )
# Simple SGML parser to get all content in a single tag.
@@ -183,8 +184,8 @@
trans.sa_session.flush()
return trans.fill_template( "workflow/list.mako",
- workflows = workflows,
- shared_by_others = shared_by_others )
+ workflows=workflows,
+ shared_by_others=shared_by_others )
@web.expose
@web.require_login( "use Galaxy workflows" )
@@ -205,8 +206,8 @@
.order_by( desc( model.StoredWorkflow.table.c.update_time ) ) \
.all()
return trans.fill_template( "workflow/list_for_run.mako",
- workflows = workflows,
- shared_by_others = shared_by_others )
+ workflows=workflows,
+ shared_by_others=shared_by_others )
@web.expose
def list_published( self, trans, **kwargs ):
@@ -237,7 +238,7 @@
def display(self, trans, stored_workflow):
""" Base workflow display """
if stored_workflow is None:
- raise web.httpexceptions.HTTPNotFound()
+ raise web.httpexceptions.HTTPNotFound()
# Security check raises error if user cannot access workflow.
self.security_check( trans, stored_workflow, False, True )
# Get data for workflow's steps.
@@ -256,7 +257,7 @@
user_item_rating = 0
ave_item_rating, num_ratings = self.get_ave_item_rating_data( trans.sa_session, stored_workflow )
return trans.fill_template_mako( "workflow/display.mako", item=stored_workflow, item_data=stored_workflow.latest_workflow.steps,
- user_item_rating = user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings )
+ user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings )
@web.expose
def get_item_content_async( self, trans, id ):
@@ -272,7 +273,7 @@
stored.annotation = self.get_item_annotation_str( trans.sa_session, stored.user, stored )
for step in stored.latest_workflow.steps:
step.annotation = self.get_item_annotation_str( trans.sa_session, stored.user, step )
- return trans.stream_template_mako( "/workflow/item_content.mako", item = stored, item_data = stored.latest_workflow.steps )
+ return trans.stream_template_mako( "/workflow/item_content.mako", item=stored, item_data=stored.latest_workflow.steps )
@web.expose
@web.require_login( "use Galaxy workflows" )
@@ -282,8 +283,8 @@
stored = self.get_stored_workflow( trans, id )
if email:
other = trans.sa_session.query( model.User ) \
- .filter( and_( model.User.table.c.email==email,
- model.User.table.c.deleted==False ) ) \
+ .filter( and_( model.User.table.c.email == email,
+ model.User.table.c.deleted == False ) ) \
.first()
if not other:
mtype = "error"
@@ -306,8 +307,8 @@
trans.set_message( "Workflow '%s' shared with user '%s'" % ( stored.name, other.email ) )
return trans.response.send_redirect( url_for( controller='workflow', action='sharing', id=id ) )
return trans.fill_template( "/ind_share_base.mako",
- message = msg,
- messagetype = mtype,
+ message=msg,
+ messagetype=mtype,
item=stored,
email=email,
use_panels=use_panels )
@@ -414,7 +415,7 @@
stored.latest_workflow.name = san_new_name
trans.sa_session.flush()
# For current workflows grid:
- trans.set_message ( "Workflow renamed to '%s'." % new_name )
+ trans.set_message( "Workflow renamed to '%s'." % new_name )
return self.list( trans )
# For new workflows grid:
#message = "Workflow renamed to '%s'." % new_name
@@ -468,7 +469,7 @@
stored = self.get_stored_workflow( trans, id )
# Only set if importable value would change; this prevents a change in the update_time unless attribute really changed.
- importable = accessible in ['True', 'true', 't', 'T'];
+ importable = accessible in ['True', 'true', 't', 'T']
if stored and stored.importable != importable:
if importable:
self._make_item_accessible( trans.sa_session, stored )
@@ -527,7 +528,7 @@
annotation_obj = self.get_item_annotation_obj( trans.sa_session, stored.user, stored )
if annotation_obj:
self.add_item_annotation( trans.sa_session, trans.get_user(), new_stored, annotation_obj.annotation )
- new_stored.copy_tags_from(trans.user,stored)
+ new_stored.copy_tags_from(trans.user, stored)
if not owner:
new_stored.name += " shared by '%s'" % stored.user.email
new_stored.user = user
@@ -617,7 +618,7 @@
} )
module.update_state( incoming )
- if type=='tool':
+ if type == 'tool':
return {
'tool_state': module.get_state(),
'data_inputs': module.get_data_inputs(),
@@ -702,10 +703,10 @@
'data_inputs': [],
'data_outputs': [],
'form_html': invalid_tool_form_html,
- 'annotation' : annotation_str,
- 'input_connections' : {},
- 'post_job_actions' : {},
- 'workflow_outputs' : []
+ 'annotation': annotation_str,
+ 'input_connections': {},
+ 'post_job_actions': {},
+ 'workflow_outputs': []
}
# Position
step_dict['position'] = step.position
@@ -741,10 +742,11 @@
}
# Connections
input_connections = step.input_connections
- multiple_input = {} # Boolean value indicating if this can be mutliple
+ multiple_input = {} # Boolean value indicating if this can be mutliple
if step.type is None or step.type == 'tool':
# Determine full (prefixed) names of valid input datasets
data_input_names = {}
+
def callback( input, value, prefixed_name, prefixed_label ):
if isinstance( input, DataToolParameter ):
data_input_names[ prefixed_name ] = True
@@ -756,9 +758,11 @@
# post_job_actions
pja_dict = {}
for pja in step.post_job_actions:
- pja_dict[pja.action_type+pja.output_name] = dict(action_type = pja.action_type,
- output_name = pja.output_name,
- action_arguments = pja.action_arguments)
+ pja_dict[pja.action_type + pja.output_name] = dict(
+ action_type=pja.action_type,
+ output_name=pja.output_name,
+ action_arguments=pja.action_arguments
+ )
step_dict['post_job_actions'] = pja_dict
#workflow outputs
outputs = []
@@ -823,9 +827,9 @@
step.position = step_dict['position']
module = module_factory.from_dict( trans, step_dict )
module.save_to_step( step )
- if step_dict.has_key('workflow_outputs'):
+ if 'workflow_outputs' in step_dict:
for output_name in step_dict['workflow_outputs']:
- m = model.WorkflowOutput(workflow_step = step, output_name = output_name)
+ m = model.WorkflowOutput(workflow_step=step, output_name=output_name)
trans.sa_session.add(m)
if step.tool_errors:
# DBTODO Check for conditional inputs here.
@@ -842,7 +846,7 @@
# Input connections
for input_name, conns in step.temp_input_connections.iteritems():
if conns:
- conn_dicts = conns if isinstance(conns,list) else [conns]
+ conn_dicts = conns if isinstance(conns, list) else [ conns ]
for conn_dict in conn_dicts:
conn = model.WorkflowStepConnection()
conn.input_step = step
@@ -1049,7 +1053,7 @@
# This may not be ideal...
workflow_data = uploaded_file.read()
else:
- message= 'You attempted to upload an empty file.'
+ message = 'You attempted to upload an empty file.'
status = 'error'
if workflow_data:
# Convert incoming workflow data from json
@@ -1154,13 +1158,14 @@
ext_to_class_name[k] = c.__module__ + "." + c.__name__
classes.append( c )
class_to_classes = dict()
+
def visit_bases( types, cls ):
for base in cls.__bases__:
if issubclass( base, Data ):
types.add( base.__module__ + "." + base.__name__ )
visit_bases( types, base )
for c in classes:
- n = c.__module__ + "." + c.__name__
+ n = c.__module__ + "." + c.__name__
types = set( [ n ] )
visit_bases( types, c )
class_to_classes[ n ] = dict( ( t, True ) for t in types )
@@ -1179,7 +1184,8 @@
"workflow/build_from_current_history.mako",
jobs=jobs,
warnings=warnings,
- history=history )
+ history=history
+ )
else:
# Ensure job_ids and dataset_ids are lists (possibly empty)
if job_ids is None:
@@ -1212,7 +1218,7 @@
assert job_id in jobs_by_id, "Attempt to create workflow with job not connected to current history"
job = jobs_by_id[ job_id ]
tool = trans.app.toolbox.get_tool( job.tool_id )
- param_values = job.get_param_values( trans.app, ignore_errors=True ) #If a tool was updated and e.g. had a text value changed to an integer, we don't want a traceback here
+ param_values = job.get_param_values( trans.app, ignore_errors=True ) # If a tool was updated and e.g. had a text value changed to an integer, we don't want a traceback here
associations = cleanup_param_values( tool.inputs, param_values )
step = model.WorkflowStep()
step.type = 'tool'
@@ -1247,8 +1253,8 @@
for i, steps_at_level in enumerate( levorder ):
for j, index in enumerate( steps_at_level ):
step = steps[ index ]
- step.position = dict( top = ( base_pos + 120 * j ),
- left = ( base_pos + 220 * i ) )
+ step.position = dict( top=( base_pos + 120 * j ),
+ left=( base_pos + 220 * i ) )
# Store it
stored = model.StoredWorkflow()
stored.user = user
@@ -1288,7 +1294,7 @@
# has_errors = False
saved_history = None
if history_id is not None:
- saved_history = trans.get_history();
+ saved_history = trans.get_history()
try:
decoded_history_id = trans.security.decode_id( history_id )
history = trans.sa_session.query(trans.app.model.History).get(decoded_history_id)
@@ -1300,12 +1306,12 @@
error("Malformed history id ( %s ) specified, unable to decode." % str( history_id ))
except:
error("That history does not exist.")
- try: # use a try/finally block to restore the user's current history
+ try: # use a try/finally block to restore the user's current history
if kwargs:
# If kwargs were provided, the states for each step should have
# been POSTed
# List to gather values for the template
- invocations=[]
+ invocations = []
for (kwargs, multi_input_keys) in _expand_multiple_inputs(kwargs, mode=multiple_input_mode):
for step in workflow.steps:
step.upgrade_messages = {}
@@ -1372,6 +1378,7 @@
job = None
if step.type == 'tool' or step.type is None:
tool = trans.app.toolbox.get_tool( step.tool_id )
+
# Connect up
def callback( input, value, prefixed_name, prefixed_label ):
replacement = None
@@ -1465,7 +1472,7 @@
steps=[],
workflow=stored,
hide_fixed_params=hide_fixed_params,
- missing_tools = missing_tools)
+ missing_tools=missing_tools)
# Render the form
stored.annotation = self.get_item_annotation_str( trans.sa_session, trans.user, stored )
return trans.fill_template(
@@ -1525,7 +1532,7 @@
else:
outputs.remove(existing_output.output_name)
for outputname in outputs:
- m = model.WorkflowOutput(workflow_step_id = int(step.id), output_name = outputname)
+ m = model.WorkflowOutput(workflow_step_id=int(step.id), output_name=outputname)
trans.sa_session.add(m)
# Prepare each step
trans.sa_session.flush()
@@ -1562,7 +1569,8 @@
workflow=stored,
has_upgrade_messages=has_upgrade_messages,
errors=errors,
- incoming=kwargs )
+ incoming=kwargs
+ )
@web.expose
def configure_menu( self, trans, workflow_ids=None ):
@@ -1619,8 +1627,8 @@
in_pos = {}
out_pos = {}
margin = 5
- line_px = 16 # how much spacing between input/outputs
- widths = {} # store px width for boxes of each step
+ line_px = 16 # how much spacing between input/outputs
+ widths = {} # store px width for boxes of each step
max_width, max_x, max_y = 0, 0, 0
for step in workflow.steps:
@@ -1651,7 +1659,7 @@
y += 45
for di in module.get_data_inputs():
- cur_y = y+count*line_px
+ cur_y = y + count * line_px
if step.order_index not in in_pos:
in_pos[step.order_index] = {}
in_pos[step.order_index][di['name']] = (x, cur_y)
@@ -1659,12 +1667,11 @@
count += 1
max_len = max(max_len, len(di['label']))
-
if len(module.get_data_inputs()) > 0:
y += 15
for do in module.get_data_outputs():
- cur_y = y+count*line_px
+ cur_y = y + count * line_px
if step.order_index not in out_pos:
out_pos[step.order_index] = {}
out_pos[step.order_index][do['name']] = (x, cur_y)
@@ -1672,7 +1679,7 @@
count += 1
max_len = max(max_len, len(do['name']))
- widths[step.order_index] = max_len*5.5
+ widths[step.order_index] = max_len * 5.5
max_x = max(max_x, step.position['left'])
max_y = max(max_y, step.position['top'])
max_width = max(max_width, widths[step.order_index])
@@ -1680,7 +1687,7 @@
for step_dict in data:
width = widths[step_dict['id']]
x, y = step_dict['position']['left'], step_dict['position']['top']
- boxes.append( svgfig.Rect(x-margin, y, x+width-margin, y+30, fill="#EBD9B2").SVG() )
+ boxes.append( svgfig.Rect(x - margin, y, x + width - margin, y + 30, fill="#EBD9B2").SVG() )
box_height = (len(step_dict['data_inputs']) + len(step_dict['data_outputs'])) * line_px + margin
# Draw separator line
@@ -1709,8 +1716,8 @@
return canvas
+
## ---- Utility methods -------------------------------------------------------
-
def attach_ordered_steps( workflow, steps ):
ordered_steps = order_workflow_steps( steps )
if ordered_steps:
@@ -1722,6 +1729,7 @@
workflow.has_cycles = True
workflow.steps = steps
+
def edgelist_for_workflow_steps( steps ):
"""
Create a list of tuples representing edges between ``WorkflowSteps`` based
@@ -1735,6 +1743,7 @@
edges.append( ( steps_to_index[conn.output_step], steps_to_index[conn.input_step] ) )
return edges
+
def order_workflow_steps( steps ):
"""
Perform topological sort of the steps, return ordered or None
@@ -1744,7 +1753,7 @@
if not step.position or not 'left' in step.position or not 'top' in step.position:
position_data_available = False
if position_data_available:
- steps.sort(cmp=lambda s1,s2: cmp( math.sqrt(s1.position['left']**2 + s1.position['top']**2), math.sqrt(s2.position['left']**2 + s2.position['top']**2)))
+ steps.sort(cmp=lambda s1, s2: cmp( math.sqrt(s1.position['left'] ** 2 + s1.position['top'] ** 2), math.sqrt(s2.position['left'] ** 2 + s2.position['top'] ** 2)))
try:
edges = edgelist_for_workflow_steps( steps )
node_order = topsort( edges )
@@ -1752,6 +1761,7 @@
except CycleError:
return None
+
def order_workflow_steps_with_levels( steps ):
try:
return topsort_levels( edgelist_for_workflow_steps( steps ) )
@@ -1768,6 +1778,7 @@
self.is_fake = True
self.id = "fake_%s" % dataset.id
+
def get_job_dict( trans ):
"""
Return a dictionary of Job -> [ Dataset ] mappings, for all finished
@@ -1799,6 +1810,7 @@
jobs[ job ] = [ ( assoc.name, dataset ) ]
return jobs, warnings
+
def cleanup_param_values( inputs, values ):
"""
Remove 'Data' values from `param_values`, along with metadata cruft,
@@ -1809,6 +1821,7 @@
if 'dbkey' in values:
del values['dbkey']
root_values = values
+
# Recursively clean data inputs and dynamic selects
def cleanup( prefix, inputs, values ):
for key, input in inputs.items():
@@ -1821,7 +1834,7 @@
# HACK: Nested associations are not yet working, but we
# still need to clean them up so we can serialize
# if not( prefix ):
- if tmp: #this is false for a non-set optional dataset
+ if tmp: # this is false for a non-set optional dataset
if not isinstance(tmp, list):
associations.append( ( tmp.hid, prefix + key ) )
else:
@@ -1846,6 +1859,7 @@
cleanup( "", inputs, values )
return associations
+
def _build_workflow_on_str(instance_ds_names):
# Returns suffix for new histories based on multi input iteration
num_multi_inputs = len(instance_ds_names)
https://bitbucket.org/galaxy/galaxy-central/commits/d283386f6032/
Changeset: d283386f6032
User: jmchilton
Date: 2014-01-27 05:17:01
Summary: API testing helpers to run methods as alternative users.
Previous run_as method has some potential limitations, seems testing permission/security things is more correct if actually using normal alternative user key.
Affected #: 1 file
diff -r ec858cad8c51d5190237eaacb31c51841e2e2843 -r d283386f60325faafa4b8cb68593c59d32e768bf test/base/api.py
--- a/test/base/api.py
+++ b/test/base/api.py
@@ -1,3 +1,5 @@
+from contextlib import contextmanager
+
# TODO: We don't need all of TwillTestCase, strip down to a common super class
# shared by API and Twill test cases.
from .twilltestcase import TwillTestCase
@@ -11,6 +13,7 @@
TEST_USER = "user(a)bx.psu.edu"
+DEFAULT_OTHER_USER = "otheruser(a)bx.psu.edu" # A second user for API testing.
# TODO: Allow these to point at existing Galaxy instances.
@@ -39,6 +42,30 @@
user = [ user for user in users if user["email"] == email ][0]
return user
+ def _setup_user_get_key( self, email ):
+ self.galaxy_interactor.ensure_user_with_email( email )
+ users = self._get( "users", admin=True ).json()
+ user = [ user for user in users if user["email"] == email ][0]
+ return self._post( "users/%s/api_key" % user[ "id" ], admin=True ).json()
+
+ @contextmanager
+ def _different_user( self, email=DEFAULT_OTHER_USER ):
+ """ Use in test cases to switch get/post operations to act as new user,
+
+ with self._different_user( "other_user(a)bx.psu.edu" ):
+ self._get( "histories" ) # Gets other_user(a)bx.psu.edu histories.
+ """
+ original_api_key = self.user_api_key
+ original_interactor_key = self.galaxy_interactor.api_key
+ new_key = self._setup_user_get_key( email )
+ try:
+ self.user_api_key = new_key
+ self.galaxy_interactor.api_key = new_key
+ yield
+ finally:
+ self.user_api_key = original_api_key
+ self.galaxy_interactor.api_key = original_interactor_key
+
def _get( self, *args, **kwds ):
return self.galaxy_interactor.get( *args, **kwds )
@@ -51,7 +78,7 @@
try:
body = response.json()
except Exception:
- body = "INVALID JSON RESPONSE"
+ body = "INVALID JSON RESPONSE <%s>" % response.content
assertion_message_template = "Request status code (%d) was not expected value %d. Body was %s"
assertion_message = assertion_message_template % ( response_status_code, expected_status_code, body )
raise AssertionError( assertion_message )
https://bitbucket.org/galaxy/galaxy-central/commits/bbd852d8ed7c/
Changeset: bbd852d8ed7c
User: jmchilton
Date: 2014-01-27 05:17:01
Summary: Workflow API tests for deletion functionality.
Various refactoring to reduce code duplication (in this and subsequent changesets).
Affected #: 1 file
diff -r d283386f60325faafa4b8cb68593c59d32e768bf -r bbd852d8ed7c125844aac9f38a85d5246bbd845b test/functional/api/test_workflows.py
--- a/test/functional/api/test_workflows.py
+++ b/test/functional/api/test_workflows.py
@@ -5,6 +5,8 @@
import time
from .helpers import TestsDatasets
+from base.interactor import delete_request # requests like delete
+
workflow_str = resource_string( __name__, "test_workflow_1.ga" )
@@ -15,6 +17,23 @@
# - Much more testing obviously, always more testing.
class WorkflowsApiTestCase( api.ApiTestCase, TestsDatasets ):
+ def test_delete( self ):
+ workflow_id = self._simple_workflow( "test_delete" )
+ workflow_name = "test_delete (imported from API)"
+ self._assert_user_has_workflow_with_name( workflow_name )
+ workflow_url = self._api_url( "workflows/%s" % workflow_id, use_key=True )
+ delete_response = delete_request( workflow_url )
+ self._assert_status_code_is( delete_response, 200 )
+ # Make sure workflow is no longer in index by default.
+ assert workflow_name not in self.__workflow_names()
+
+ def test_other_cannot_delete( self ):
+ workflow_id = self._simple_workflow( "test_other_delete" )
+ with self._different_user():
+ workflow_url = self._api_url( "workflows/%s" % workflow_id, use_key=True )
+ delete_response = delete_request( workflow_url )
+ self._assert_status_code_is( delete_response, 403 )
+
def test_index( self ):
index_response = self._get( "workflows" )
self._assert_status_code_is( index_response, 200 )
@@ -29,7 +48,7 @@
self._assert_user_has_workflow_with_name( "test_import (imported from API)" )
def test_export( self ):
- uploaded_workflow_id = self._create_workflow( self._load_workflow( name="test_for_export" ) )
+ uploaded_workflow_id = self._simple_workflow( "test_for_export" )
download_response = self._get( "workflows/%s/download" % uploaded_workflow_id )
self._assert_status_code_is( download_response, 200 )
downloaded_workflow = download_response.json()
@@ -100,9 +119,14 @@
def _ds_entry( self, hda ):
return dict( src="hda", id=hda[ "id" ] )
- def _create_workflow( self, workflow ):
+ def _simple_workflow( self, name, **create_kwds ):
+ workflow = self._load_workflow( name )
+ return self._create_workflow( workflow, **create_kwds )
+
+ def _create_workflow( self, workflow, **create_kwds ):
data = dict(
workflow=dumps( workflow ),
+ **create_kwds
)
upload_response = self._post( "workflows/upload", data=data )
self._assert_status_code_is( upload_response, 200 )
@@ -110,10 +134,14 @@
return uploaded_workflow_id
def _assert_user_has_workflow_with_name( self, name ):
+ names = self.__workflow_names()
+ assert name in names, "No workflows with name %s in users workflows <%s>" % ( name, names )
+
+ def __workflow_names( self ):
index_response = self._get( "workflows" )
self._assert_status_code_is( index_response, 200 )
names = map( lambda w: w[ "name" ], index_response.json() )
- assert name in names, "No workflows with name %s in users workflows <%s>" % ( name, names )
+ return names
def _load_workflow( self, name, add_pja=False ):
workflow = loads( workflow_str )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/03f7d79212ec/
Changeset: 03f7d79212ec
Branch: stable
User: jmchilton
Date: 2014-01-27 03:47:59
Summary: Bugfix: Disallow shared workflows from being inappropriately deletable...
... by user workflow is shared with via workflow API.
Affected #: 1 file
diff -r 87b586afb05428a3b0ae37d68c79241994a27021 -r 03f7d79212ecf626af4940296e663c376b9cd2ee lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -296,9 +296,8 @@
# check to see if user has permissions to selected workflow
if stored_workflow.user != trans.user and not trans.user_is_admin():
- if trans.sa_session.query(trans.app.model.StoredWorkflowUserShareAssociation).filter_by(user=trans.user, stored_workflow=stored_workflow).count() == 0:
- trans.response.status = 403
- return("Workflow is not owned by or shared with current user")
+ trans.response.status = 403
+ return("Workflow is not owned by current user")
#Mark a workflow as deleted
stored_workflow.deleted = True
https://bitbucket.org/galaxy/galaxy-central/commits/a7ac443f9c9b/
Changeset: a7ac443f9c9b
User: jmchilton
Date: 2014-01-27 03:48:23
Summary: Merge latest stable.
Affected #: 1 file
diff -r e410940a015c5245f2d065b8f7a9eda8da56d966 -r a7ac443f9c9b7b5383284149db4bcc6a99e4b124 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -325,9 +325,8 @@
# check to see if user has permissions to selected workflow
if stored_workflow.user != trans.user and not trans.user_is_admin():
- if trans.sa_session.query(trans.app.model.StoredWorkflowUserShareAssociation).filter_by(user=trans.user, stored_workflow=stored_workflow).count() == 0:
- trans.response.status = 403
- return("Workflow is not owned by or shared with current user")
+ trans.response.status = 403
+ return("Workflow is not owned by current user")
#Mark a workflow as deleted
stored_workflow.deleted = True
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: greg: Timing and statistics improvements in the tool shed's install and test framework.
by commits-noreply@bitbucket.org 26 Jan '14
by commits-noreply@bitbucket.org 26 Jan '14
26 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/e410940a015c/
Changeset: e410940a015c
User: greg
Date: 2014-01-26 23:41:11
Summary: Timing and statistics improvements in the tool shed's install and test framework.
Affected #: 1 file
diff -r d658d4ec711d0c778b9ce07d700c3d3fee9aeca0 -r e410940a015c5245f2d065b8f7a9eda8da56d966 test/install_and_test_tool_shed_repositories/base/util.py
--- a/test/install_and_test_tool_shed_repositories/base/util.py
+++ b/test/install_and_test_tool_shed_repositories/base/util.py
@@ -878,24 +878,25 @@
else:
# The assumption is that the Tool SHed's install and test framework is executed no more than once per 24 hour
# period, so check the required repository's time_last_tested value to see if its tool_test_results column
- # has been updated within the past 24 hours. The RepositoryMetadata class's to_dict() method returns the value
- # of time_last_tested in datetime.isoformat().
+ # has been updated within the past 20 hours to allow for differing test run times (some may be slower than
+ # others). The RepositoryMetadata class's to_dict() method returns the value of time_last_tested in
+ # datetime.isoformat().
time_last_tested, error_message = get_time_last_tested( galaxy_tool_shed_url, required_repository_metadata_id )
print 'Value of time_last_tested: %s' % str( time_last_tested )
if time_last_tested is None:
print 'The time_last_tested column value is None for version %s of repository dependency %s owned by %s.' % \
( changeset_revision, name, owner )
else:
- twenty_four_hours_ago = ( datetime.utcnow() - timedelta( hours=24 ) ).isoformat()
- print 'Value of twenty_four_hours_ago: %s' % str( twenty_four_hours_ago )
+ twenty_hours_ago = ( datetime.utcnow() - timedelta( hours=20 ) ).isoformat()
+ print 'Value of twenty_hours_ago: %s' % str( twenty_hours_ago )
# This is counter intuitive because the following check is on strings like this: '2014-01-21T19:46:06.953741',
- # so if "time_last_tested > twenty_four_hours_ago" is True, then it implies that the time_last_tested column
- # was actually updated less than 24 hours ago, and should not be updated again because we're likely processing
+ # so if "time_last_tested > twenty_hours_ago" is True, then it implies that the time_last_tested column
+ # was actually updated less than 20 hours ago, and should not be updated again because we're likely processing
# another dependent repository, many of which can have the same repository dependency.
try:
# Be very conservative here. Our default behavior will be to assume containers have not been populated
# during the current test run.
- already_populated = time_last_tested > twenty_four_hours_ago
+ already_populated = time_last_tested > twenty_hours_ago
except Exception, e:
log.exception( 'Error attempting to set already_populated: %s' % str( e ) )
already_populated = False
@@ -903,10 +904,10 @@
if already_populated:
print 'The install containers for version %s of repository dependency %s owned by %s have been ' % \
( changeset_revision, name, owner )
- print 'populated within the past 24 hours (likely in this test run), so skipping this check.'
+ print 'populated within the past 20 hours (likely in this test run), so skipping this check.'
continue
else:
- print 'Version %s of repository dependency %s owned by %s was last tested more than 24 hours ago.' % \
+ print 'Version %s of repository dependency %s owned by %s was last tested more than 20 hours ago.' % \
( changeset_revision, name, owner )
# Inspect the tool_test_results_dict for the last test run to see if it has not yet been populated.
if len( tool_test_results_dicts ) == 0:
@@ -996,27 +997,27 @@
print "# Repository revisions processed: %s" % str( total_repositories_processed )
if successful_repository_installations:
print "# ----------------------------------------------------------------------------------"
- print "# The following revisions were successfully installed:"
+ print "# The following %d revisions were successfully installed:" % len( successful_repository_installations )
display_repositories_by_owner( successful_repository_installations )
if repositories_with_installation_error:
print "# ----------------------------------------------------------------------------------"
- print "# The following revisions have installation errors:"
+ print "# The following %d revisions have installation errors:" % len( repositories_with_installation_error )
display_repositories_by_owner( repositories_with_installation_error )
if successful_tool_dependency_installations:
print "# ----------------------------------------------------------------------------------"
- print "# The following tool dependencies were successfully installed:"
+ print "# The following %d tool dependencies were successfully installed:" % len( successful_tool_dependency_installations )
display_tool_dependencies_by_name( successful_tool_dependency_installations )
if tool_dependencies_with_installation_error:
print "# ----------------------------------------------------------------------------------"
- print "# The following tool dependencies have installation errors:"
+ print "# The following %d tool dependencies have installation errors:" % len( tool_dependencies_with_installation_error )
display_tool_dependencies_by_name( tool_dependencies_with_installation_error )
if all_tests_passed:
print '# ----------------------------------------------------------------------------------'
- print "# The following revisions successfully passed all functional tests:"
+ print "# The following %d revisions successfully passed all functional tests:" % len( all_tests_passed )
display_repositories_by_owner( all_tests_passed )
if at_least_one_test_failed:
print '# ----------------------------------------------------------------------------------'
- print "# The following revisions failed at least 1 functional test:"
+ print "# The following %d revisions failed at least 1 functional test:" % len( at_least_one_test_failed )
display_repositories_by_owner( at_least_one_test_failed )
print "####################################################################################"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: martenson: libraries: hidden buttons for creation of folders and libraries (no role checking implemented yet + no upload yet)
by commits-noreply@bitbucket.org 26 Jan '14
by commits-noreply@bitbucket.org 26 Jan '14
26 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/d658d4ec711d/
Changeset: d658d4ec711d
User: martenson
Date: 2014-01-26 19:25:49
Summary: libraries: hidden buttons for creation of folders and libraries (no role checking implemented yet + no upload yet)
Affected #: 2 files
diff -r 89a685c87b0ee5a04b36bb2e48c5b0fe00dd1e74 -r d658d4ec711d0c778b9ce07d700c3d3fee9aeca0 static/scripts/galaxy.library.js
--- a/static/scripts/galaxy.library.js
+++ b/static/scripts/galaxy.library.js
@@ -126,9 +126,8 @@
// TOOLBAR
tmpl_array.push('<div id="library_folder_toolbar" >');
- tmpl_array.push(' <button title="Create New Folder" id="toolbtn_create_folder" class="btn btn-primary" type="button"><span class="fa fa-plus"></span><span class="fa fa-folder-close"></span> folder</button>');
+ // tmpl_array.push(' <button title="Create New Folder" id="toolbtn_create_folder" class="btn btn-primary" type="button"><span class="fa fa-plus"></span><span class="fa fa-folder-close"></span> folder</button>');
tmpl_array.push(' <button id="toolbtn_bulk_import" class="btn btn-primary" style="display: none; margin-left: 0.5em;" type="button"><span class="fa fa-external-link"></span> to history</button>');
-
tmpl_array.push(' <div id="toolbtn_dl" class="btn-group" style="margin-left: 0.5em; display: none; ">');
tmpl_array.push(' <button id="drop_toggle" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">');
tmpl_array.push(' <span class="fa fa-download"></span> download <span class="caret"></span>');
@@ -809,14 +808,14 @@
tmpl_array.push('<div id="library_container" style="width: 90%; margin: auto; margin-top: 2em; overflow: auto !important; ">');
tmpl_array.push('');
tmpl_array.push('<h3>Data Libraries Beta Test. This is work in progress. Please report problems & ideas via <a href="mailto:galaxy-bugs@bx.psu.edu?Subject=DataLibrariesBeta_Feedback" target="_blank">email</a> and <a href="https://trello.com/c/nwYQNFPK/56-data-library-ui-progressive-display-of-fol…" target="_blank">Trello</a>.</h3>');
- tmpl_array.push('<a href="" id="create_new_library_btn" class="btn btn-primary file ">New Library</a>');
+ // tmpl_array.push('<a href="" id="create_new_library_btn" class="btn btn-primary file ">New Library</a>');
tmpl_array.push('<table class="table table-condensed">');
tmpl_array.push(' <thead>');
tmpl_array.push(' <th class="button_heading"></th>');
tmpl_array.push(' <th>name</th>');
tmpl_array.push(' <th>description</th>');
tmpl_array.push(' <th>synopsis</th> ');
- tmpl_array.push(' <th>model type</th> ');
+ // tmpl_array.push(' <th>model type</th> ');
tmpl_array.push(' </thead>');
tmpl_array.push(' <tbody>');
tmpl_array.push(' <% _.each(libraries, function(library) { %>');
@@ -826,7 +825,7 @@
tmpl_array.push(' <td><%- library.get("name") %></td>');
tmpl_array.push(' <td><%= _.escape(library.get("description")) %></td>');
tmpl_array.push(' <td><%= _.escape(library.get("synopsis")) %></td>');
- tmpl_array.push(' <td><%= _.escape(library.get("model_class")) %></td>');
+ // tmpl_array.push(' <td><%= _.escape(library.get("model_class")) %></td>');
tmpl_array.push(' </tr>');
tmpl_array.push(' <% }); %>');
tmpl_array.push(' </tbody>');
diff -r 89a685c87b0ee5a04b36bb2e48c5b0fe00dd1e74 -r d658d4ec711d0c778b9ce07d700c3d3fee9aeca0 static/scripts/packed/galaxy.library.js
--- a/static/scripts/packed/galaxy.library.js
+++ b/static/scripts/packed/galaxy.library.js
@@ -1,1 +1,1 @@
-var view=null;var library_router=null;var responses=[];define(["galaxy.modal","galaxy.masthead","utils/utils","libs/toastr"],function(k,l,h,n){var f=Backbone.Model.extend({urlRoot:"/api/libraries"});var c=Backbone.Model.extend({urlRoot:"/api/folders"});var o=Backbone.Collection.extend({url:"/api/libraries",model:f});var i=Backbone.Model.extend({urlRoot:"/api/libraries/datasets"});var d=Backbone.Collection.extend({model:i});var e=Backbone.Model.extend({defaults:{folder:new d(),full_path:"unknown",urlRoot:"/api/folders/",id:"unknown"},parse:function(r){this.full_path=r[0].full_path;this.get("folder").reset(r[1].folder_contents);return r}});var b=Backbone.Model.extend({urlRoot:"/api/histories/"});var j=Backbone.Model.extend({url:"/api/histories/"});var p=Backbone.Collection.extend({url:"/api/histories",model:j});var q=Backbone.Router.extend({routes:{"":"libraries","folders/:id":"folder_content","folders/:folder_id/download/:format":"download"}});var m=Backbone.View.extend({el:"#center",progress:0,progressStep:1,lastSelectedHistory:"",modal:null,folders:null,initialize:function(){this.folders=[];this.queue=jQuery.Deferred();this.queue.resolve()},templateFolder:function(){var r=[];r.push('<div id="library_container" style="width: 90%; margin: auto; margin-top: 2em; ">');r.push('<h3>Data Libraries Beta Test. This is work in progress. Please report problems & ideas via <a href="mailto:galaxy-bugs@bx.psu.edu?Subject=DataLibrariesBeta_Feedback" target="_blank">email</a> and <a href="https://trello.com/c/nwYQNFPK/56-data-library-ui-progressive-display-of-fol…" target="_blank">Trello</a>.</h3>');r.push('<div id="library_folder_toolbar" >');r.push(' <button title="Create New Folder" id="toolbtn_create_folder" class="btn btn-primary" type="button"><span class="fa fa-plus"></span><span class="fa fa-folder-close"></span> folder</button>');r.push(' <button id="toolbtn_bulk_import" class="btn btn-primary" style="display: none; margin-left: 0.5em;" type="button"><span class="fa fa-external-link"></span> to history</button>');r.push(' <div id="toolbtn_dl" class="btn-group" style="margin-left: 0.5em; display: none; ">');r.push(' <button id="drop_toggle" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">');r.push(' <span class="fa fa-download"></span> download <span class="caret"></span>');r.push(" </button>");r.push(' <ul class="dropdown-menu" role="menu">');r.push(' <li><a href="#/folders/<%= id %>/download/tgz">.tar.gz</a></li>');r.push(' <li><a href="#/folders/<%= id %>/download/tbz">.tar.bz</a></li>');r.push(' <li><a href="#/folders/<%= id %>/download/zip">.zip</a></li>');r.push(" </ul>");r.push(" </div>");r.push("</div>");r.push('<div class="library_breadcrumb">');r.push('<a title="Return to the list of libraries" href="#">Libraries</a><b>|</b> ');r.push("<% _.each(path, function(path_item) { %>");r.push("<% if (path_item[0] != id) { %>");r.push('<a title="Return to this folder" href="#/folders/<%- path_item[0] %>"><%- path_item[1] %></a><b>|</b> ');r.push("<% } else { %>");r.push('<span title="You are in this folder"><%- path_item[1] %></span>');r.push("<% } %>");r.push("<% }); %>");r.push("</div>");r.push('<table id="folder_table" class="table table-condensed">');r.push(" <thead>");r.push(' <th style="text-align: center; width: 20px; "><input id="select-all-checkboxes" style="margin: 0;" type="checkbox"></th>');r.push(' <th class="button_heading">view</th>');r.push(" <th>name</th>");r.push(" <th>data type</th>");r.push(" <th>size</th>");r.push(" <th>date (UTC)</th>");r.push(" </thead>");r.push(" <tbody>");r.push(" <td></td>");r.push(' <td><button title="Go to parent folder" type="button" data-id="<%- upper_folder_id %>" class="btn_open_folder btn btn-default btn-xs">');r.push(' <span class="fa fa-arrow-up"></span> .. go up</td>');r.push(" <td></td>");r.push(" <td></td>");r.push(" <td></td>");r.push(" <td></td>");r.push(" </tr>");r.push(" <% _.each(items, function(content_item) { %>");r.push(' <tr class="folder_row light" id="<%- content_item.id %>">');r.push(' <% if (content_item.get("type") === "folder") { %>');r.push(" <td></td>");r.push(' <td><button title="Open this folder" type="button" data-id="<%- content_item.id %>" class="btn_open_folder btn btn-default btn-xs">');r.push(' <span class="fa fa-folder-open"></span> browse</td>');r.push(' <td><%- content_item.get("name") %>');r.push(' <% if (content_item.get("item_count") === 0) { %>');r.push(' <span class="muted">(empty folder)</span>');r.push(" <% } %>");r.push(" </td>");r.push(" <td>folder</td>");r.push(' <td><%= _.escape(content_item.get("item_count")) %> item(s)</td>');r.push(" <% } else { %>");r.push(' <td style="text-align: center; "><input style="margin: 0;" type="checkbox"></td>');r.push(" <td>");r.push(' <button title="See details of this dataset" type="button" class="library-dataset btn btn-default btn-xs">');r.push(' <span class="fa fa-eye"></span> details');r.push(" </button>");r.push(" </td>");r.push(' <td><%- content_item.get("name") %></td>');r.push(' <td><%= _.escape(content_item.get("data_type")) %></td>');r.push(' <td><%= _.escape(content_item.get("readable_size")) %></td>');r.push(" <% } %> ");r.push(' <td><%= _.escape(content_item.get("time_updated")) %></td>');r.push(" </tr>");r.push(" <% }); %>");r.push(" ");r.push(" </tbody>");r.push("</table>");r.push("</div>");return r.join("")},templateDatasetModal:function(){var r=[];r.push('<div id="dataset_info_modal">');r.push(' <table class="table table-striped table-condensed">');r.push(" <tr>");r.push(' <th scope="row" id="id_row" data-id="<%= _.escape(item.get("ldda_id")) %>">Name</th>');r.push(' <td><%= _.escape(item.get("name")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Data type</th>');r.push(' <td><%= _.escape(item.get("data_type")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Genome build</th>');r.push(' <td><%= _.escape(item.get("genome_build")) %></td>');r.push(" </tr>");r.push(' <th scope="row">Size</th>');r.push(" <td><%= _.escape(size) %></td>");r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Date uploaded (UTC)</th>');r.push(' <td><%= _.escape(item.get("date_uploaded")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Uploaded by</th>');r.push(' <td><%= _.escape(item.get("uploaded_by")) %></td>');r.push(" </tr>");r.push(' <tr scope="row">');r.push(' <th scope="row">Data Lines</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_data_lines")) %></td>');r.push(" </tr>");r.push(' <th scope="row">Comment Lines</th>');r.push(' <% if (item.get("metadata_comment_lines") === "") { %>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_comment_lines")) %></td>');r.push(" <% } else { %>");r.push(' <td scope="row">unknown</td>');r.push(" <% } %>");r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Number of Columns</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_columns")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Column Types</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_column_types")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Miscellaneous information</th>');r.push(' <td scope="row"><%= _.escape(item.get("misc_blurb")) %></td>');r.push(" </tr>");r.push(" </table>");r.push(' <pre class="peek">');r.push(" </pre>");r.push("</div>");return r.join("")},templateHistorySelectInModal:function(){var r=[];r.push('<span id="history_modal_combo" style="width:90%; margin-left: 1em; margin-right: 1em; ">');r.push("Select history: ");r.push('<select id="dataset_import_single" name="dataset_import_single" style="width:50%; margin-bottom: 1em; "> ');r.push(" <% _.each(histories, function(history) { %>");r.push(' <option value="<%= _.escape(history.get("id")) %>"><%= _.escape(history.get("name")) %></option>');r.push(" <% }); %>");r.push("</select>");r.push("</span>");return r.join("")},templateBulkImportInModal:function(){var r=[];r.push('<span id="history_modal_combo_bulk" style="width:90%; margin-left: 1em; margin-right: 1em; ">');r.push("Select history: ");r.push('<select id="dataset_import_bulk" name="dataset_import_bulk" style="width:50%; margin-bottom: 1em; "> ');r.push(" <% _.each(histories, function(history) { %>");r.push(' <option value="<%= _.escape(history.get("id")) %>"><%= _.escape(history.get("name")) %></option>');r.push(" <% }); %>");r.push("</select>");r.push("</span>");return r.join("")},templateProgressBar:function(){var r=[];r.push('<div class="import_text">');r.push("Importing selected datasets to history <b><%= _.escape(history_name) %></b>");r.push("</div>");r.push('<div class="progress">');r.push(' <div class="progress-bar progress-bar-import" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 00%;">');r.push(' <span class="completion_span">0% Complete</span>');r.push(" </div>");r.push("</div>");r.push("");return r.join("")},templateNewFolderInModal:function(){tmpl_array=[];tmpl_array.push('<div id="new_folder_modal">');tmpl_array.push("<form>");tmpl_array.push('<input type="text" name="Name" value="" placeholder="Name">');tmpl_array.push('<input type="text" name="Description" value="" placeholder="Description">');tmpl_array.push("</form>");tmpl_array.push("</div>");return tmpl_array.join("")},events:{"click #select-all-checkboxes":"selectAll","click .folder_row":"selectClickedRow","click #toolbtn_bulk_import":"modalBulkImport","click #toolbtn_dl":"bulkDownload","click .library-dataset":"showDatasetDetails","click #toolbtn_create_folder":"createFolderFromModal","click .btn_open_folder":"navigateToFolder"},render:function(r){$("#center").css("overflow","auto");view=this;var t=this;var s=new e({id:r.id});s.url=s.attributes.urlRoot+r.id+"/contents";s.fetch({success:function(u){for(var w=0;w<s.attributes.folder.models.length;w++){var v=s.attributes.folder.models[w];if(v.get("type")==="file"){v.set("readable_size",t.size_to_string(v.get("file_size")))}}var y=s.full_path;var z;if(y.length===1){z=0}else{z=y[y.length-2][0]}var x=_.template(t.templateFolder(),{path:s.full_path,items:s.attributes.folder.models,id:r.id,upper_folder_id:z});t.$el.html(x)},error:function(){n.error("An error occured :(")}})},size_to_string:function(r){var s="";if(r>=100000000000){r=r/100000000000;s="TB"}else{if(r>=100000000){r=r/100000000;s="GB"}else{if(r>=100000){r=r/100000;s="MB"}else{if(r>=100){r=r/100;s="KB"}else{r=r*10;s="b"}}}}return(Math.round(r)/10)+s},navigateToFolder:function(s){var r=$(s.target).attr("data-id");if(typeof r==="undefined"){return false}else{if(r==="0"){library_router.navigate("/",{trigger:true,replace:false})}else{library_router.navigate("folders/"+r,{trigger:true,replace:false})}}},showDatasetDetails:function(u){u.preventDefault();var v=$(u.target).parent().parent().attr("id");var t=new i();var s=new p();t.id=v;var r=this;t.fetch({success:function(w){s.fetch({success:function(x){r.renderModalAfterFetch(w,x)},error:function(){n.error("An error occured during fetching histories:(");r.renderModalAfterFetch(w)}})},error:function(){n.error("An error occured during loading dataset details :(")}})},renderModalAfterFetch:function(w,t){var u=this.size_to_string(w.get("file_size"));var v=_.template(this.templateDatasetModal(),{item:w,size:u});var s=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Dataset Details",body:v,buttons:{Import:function(){s.importCurrentIntoHistory()},Download:function(){s.downloadCurrent()},Close:function(){s.modal.hide()}}});$(".peek").html(w.get("peek"));if(typeof history.models!==undefined){var r=_.template(this.templateHistorySelectInModal(),{histories:t.models});$(this.modal.elMain).find(".buttons").prepend(r);if(s.lastSelectedHistory.length>0){$(this.modal.elMain).find("#dataset_import_single").val(s.lastSelectedHistory)}}},downloadCurrent:function(){this.modal.disableButton("Import");this.modal.disableButton("Download");var r=[];r.push($("#id_row").attr("data-id"));var s="/api/libraries/datasets/download/uncompressed";var t={ldda_ids:r};folderContentView.processDownload(s,t);this.modal.enableButton("Import");this.modal.enableButton("Download")},importCurrentIntoHistory:function(){this.modal.disableButton("Import");this.modal.disableButton("Download");var t=$(this.modal.elMain).find("select[name=dataset_import_single] option:selected").val();this.lastSelectedHistory=t;var r=$("#id_row").attr("data-id");var u=new b();var s=this;u.url=u.urlRoot+t+"/contents";u.save({content:r,source:"library"},{success:function(){n.success("Dataset imported");s.modal.enableButton("Import");s.modal.enableButton("Download")},error:function(){n.error("An error occured! Dataset not imported. Please try again.");s.modal.enableButton("Import");s.modal.enableButton("Download")}})},selectAll:function(s){var r=s.target.checked;that=this;$(":checkbox").each(function(){this.checked=r;$row=$(this.parentElement.parentElement);(r)?that.makeDarkRow($row):that.makeWhiteRow($row)});this.checkTools()},selectClickedRow:function(s){var u="";var r;var t;if(s.target.localName==="input"){u=s.target;r=$(s.target.parentElement.parentElement);t="input"}else{if(s.target.localName==="td"){u=$("#"+s.target.parentElement.id).find(":checkbox")[0];r=$(s.target.parentElement);t="td"}}if(u===""){s.stopPropagation();return}if(u===undefined){s.stopPropagation();return}if(u.checked){if(t==="td"){u.checked="";this.makeWhiteRow(r)}else{if(t==="input"){this.makeDarkRow(r)}}}else{if(t==="td"){u.checked="selected";this.makeDarkRow(r)}else{if(t==="input"){this.makeWhiteRow(r)}}}this.checkTools()},makeDarkRow:function(r){r.removeClass("light");r.find("a").removeClass("light");r.addClass("dark");r.find("a").addClass("dark")},makeWhiteRow:function(r){r.removeClass("dark");r.find("a").removeClass("dark");r.addClass("light");r.find("a").addClass("light")},checkTools:function(){var r=$("#folder_table").find(":checked");if(r.length>0){$("#toolbtn_bulk_import").show();$("#toolbtn_dl").show()}else{$("#toolbtn_bulk_import").hide();$("#toolbtn_dl").hide()}},modalBulkImport:function(){var s=this;var r=new p();r.fetch({success:function(t){var u=_.template(s.templateBulkImportInModal(),{histories:t.models});s.modal=Galaxy.modal;s.modal.show({closing_events:true,title:"Import into History",body:u,buttons:{Import:function(){s.importAllIntoHistory()},Close:function(){s.modal.hide()}}})},error:function(){n.error("An error occured :(")}})},importAllIntoHistory:function(){this.modal.disableButton("Import");var t=$("select[name=dataset_import_bulk] option:selected").val();var x=$("select[name=dataset_import_bulk] option:selected").text();var z=[];$("#folder_table").find(":checked").each(function(){if(this.parentElement.parentElement.id!=""){z.push(this.parentElement.parentElement.id)}});var y=_.template(this.templateProgressBar(),{history_name:x});$(this.modal.elMain).find(".modal-body").html(y);var u=100/z.length;this.initProgress(u);var r=[];for(var s=z.length-1;s>=0;s--){library_dataset_id=z[s];var v=new b();var w=this;v.url=v.urlRoot+t+"/contents";v.content=library_dataset_id;v.source="library";r.push(v)}this.chainCall(r)},chainCall:function(s){var r=this;var t=s.pop();if(typeof t==="undefined"){n.success("All datasets imported");this.modal.hide();return}var u=$.when(t.save({content:t.content,source:t.source})).done(function(v){r.updateProgress();responses.push(v);r.chainCall(s)})},initProgress:function(r){this.progress=0;this.progressStep=r},updateProgress:function(){this.progress+=this.progressStep;$(".progress-bar-import").width(Math.round(this.progress)+"%");txt_representation=Math.round(this.progress)+"% Complete";$(".completion_span").text(txt_representation)},download:function(r,v){var t=[];$("#folder_table").find(":checked").each(function(){if(this.parentElement.parentElement.id!=""){t.push(this.parentElement.parentElement.id)}});var s="/api/libraries/datasets/download/"+v;var u={ldda_ids:t};this.processDownload(s,u,"get")},processDownload:function(s,t,u){if(s&&t){t=typeof t=="string"?t:$.param(t);var r="";$.each(t.split("&"),function(){var v=this.split("=");r+='<input type="hidden" name="'+v[0]+'" value="'+v[1]+'" />'});$('<form action="'+s+'" method="'+(u||"post")+'">'+r+"</form>").appendTo("body").submit().remove();n.info("Your download will begin soon")}},createFolderFromModal:function(){event.preventDefault();event.stopPropagation();var r=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Create New Folder",body:this.templateNewFolderInModal(),buttons:{Create:function(){r.create_new_folder_event()},Close:function(){r.modal.hide();r.modal=null}}})},create_new_folder_event:function(){var r=this.serialize_new_folder();if(this.validate_new_folder(r)){var t=new c();url_items=Backbone.history.fragment.split("/");current_folder_id=url_items[url_items.length-1];t.url=t.urlRoot+"/"+current_folder_id;var s=this;t.save(r,{success:function(u){s.modal.hide();n.success("Folder created");s.render({id:current_folder_id})},error:function(){n.error("An error occured :(")}})}else{n.error("Folder's name is missing")}return false},serialize_new_folder:function(){return{name:$("input[name='Name']").val(),description:$("input[name='Description']").val()}},validate_new_folder:function(r){return r.name!==""}});var a=Backbone.View.extend({el:"#center",events:{"click #create_new_library_btn":"show_library_modal"},initialize:function(){},templateLibraryList:function(){tmpl_array=[];tmpl_array.push('<div id="library_container" style="width: 90%; margin: auto; margin-top: 2em; overflow: auto !important; ">');tmpl_array.push("");tmpl_array.push('<h3>Data Libraries Beta Test. This is work in progress. Please report problems & ideas via <a href="mailto:galaxy-bugs@bx.psu.edu?Subject=DataLibrariesBeta_Feedback" target="_blank">email</a> and <a href="https://trello.com/c/nwYQNFPK/56-data-library-ui-progressive-display-of-fol…" target="_blank">Trello</a>.</h3>');tmpl_array.push('<a href="" id="create_new_library_btn" class="btn btn-primary file ">New Library</a>');tmpl_array.push('<table class="table table-condensed">');tmpl_array.push(" <thead>");tmpl_array.push(' <th class="button_heading"></th>');tmpl_array.push(" <th>name</th>");tmpl_array.push(" <th>description</th>");tmpl_array.push(" <th>synopsis</th> ");tmpl_array.push(" <th>model type</th> ");tmpl_array.push(" </thead>");tmpl_array.push(" <tbody>");tmpl_array.push(" <% _.each(libraries, function(library) { %>");tmpl_array.push(" <tr>");tmpl_array.push(' <td><button title="Open this library" type="button" data-id="<%- library.get("root_folder_id") %>" class="btn_open_folder btn btn-default btn-xs">');tmpl_array.push(' <span class="fa fa-folder-open"></span> browse</td>');tmpl_array.push(' <td><%- library.get("name") %></td>');tmpl_array.push(' <td><%= _.escape(library.get("description")) %></td>');tmpl_array.push(' <td><%= _.escape(library.get("synopsis")) %></td>');tmpl_array.push(' <td><%= _.escape(library.get("model_class")) %></td>');tmpl_array.push(" </tr>");tmpl_array.push(" <% }); %>");tmpl_array.push(" </tbody>");tmpl_array.push("</table>");tmpl_array.push("</div>");return tmpl_array.join("")},templateNewLibraryInModal:function(){tmpl_array=[];tmpl_array.push('<div id="new_library_modal">');tmpl_array.push(" <form>");tmpl_array.push(' <input type="text" name="Name" value="" placeholder="Name">');tmpl_array.push(' <input type="text" name="Description" value="" placeholder="Description">');tmpl_array.push(' <input type="text" name="Synopsis" value="" placeholder="Synopsis">');tmpl_array.push(" </form>");tmpl_array.push("</div>");return tmpl_array.join("")},render:function(){$("#center").css("overflow","auto");var r=this;libraries=new o();libraries.fetch({success:function(s){var t=_.template(r.templateLibraryList(),{libraries:s.models});r.$el.html(t)},error:function(t,s){if(s.statusCode().status===403){n.info("Please log in first. Redirecting to login page in 3s.");setTimeout(r.redirectToLogin,3000)}else{n.error("An error occured. Please try again.")}}})},redirectToHome:function(){window.location="../"},redirectToLogin:function(){window.location="/user/login"},modal:null,show_library_modal:function(s){s.preventDefault();s.stopPropagation();var r=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Create New Library",body:this.templateNewLibraryInModal(),buttons:{Create:function(){r.create_new_library_event()},Close:function(){r.modal.hide()}}})},create_new_library_event:function(){var t=this.serialize_new_library();if(this.validate_new_library(t)){var s=new f();var r=this;s.save(t,{success:function(u){r.modal.hide();r.clear_library_modal();r.render();n.success("Library created")},error:function(){n.error("An error occured :(")}})}else{n.error("Library's name is missing")}return false},clear_library_modal:function(){$("input[name='Name']").val("");$("input[name='Description']").val("");$("input[name='Synopsis']").val("")},serialize_new_library:function(){return{name:$("input[name='Name']").val(),description:$("input[name='Description']").val(),synopsis:$("input[name='Synopsis']").val()}},validate_new_library:function(r){return r.name!==""}});var g=Backbone.View.extend({folderContentView:null,galaxyLibraryview:null,initialize:function(){folderContentView=new m();galaxyLibraryview=new a();library_router=new q();library_router.on("route:libraries",function(){galaxyLibraryview.render()});library_router.on("route:folder_content",function(r){folderContentView.render({id:r})});library_router.on("route:download",function(r,s){if($("#center").find(":checked").length===0){library_router.navigate("folders/"+r,{trigger:true,replace:true})}else{folderContentView.download(r,s);library_router.navigate("folders/"+r,{trigger:false,replace:true})}});Backbone.history.start({pushState:false})}});return{GalaxyApp:g}});
\ No newline at end of file
+var view=null;var library_router=null;var responses=[];define(["galaxy.modal","galaxy.masthead","utils/utils","libs/toastr"],function(k,l,h,n){var f=Backbone.Model.extend({urlRoot:"/api/libraries"});var c=Backbone.Model.extend({urlRoot:"/api/folders"});var o=Backbone.Collection.extend({url:"/api/libraries",model:f});var i=Backbone.Model.extend({urlRoot:"/api/libraries/datasets"});var d=Backbone.Collection.extend({model:i});var e=Backbone.Model.extend({defaults:{folder:new d(),full_path:"unknown",urlRoot:"/api/folders/",id:"unknown"},parse:function(r){this.full_path=r[0].full_path;this.get("folder").reset(r[1].folder_contents);return r}});var b=Backbone.Model.extend({urlRoot:"/api/histories/"});var j=Backbone.Model.extend({url:"/api/histories/"});var p=Backbone.Collection.extend({url:"/api/histories",model:j});var q=Backbone.Router.extend({routes:{"":"libraries","folders/:id":"folder_content","folders/:folder_id/download/:format":"download"}});var m=Backbone.View.extend({el:"#center",progress:0,progressStep:1,lastSelectedHistory:"",modal:null,folders:null,initialize:function(){this.folders=[];this.queue=jQuery.Deferred();this.queue.resolve()},templateFolder:function(){var r=[];r.push('<div id="library_container" style="width: 90%; margin: auto; margin-top: 2em; ">');r.push('<h3>Data Libraries Beta Test. This is work in progress. Please report problems & ideas via <a href="mailto:galaxy-bugs@bx.psu.edu?Subject=DataLibrariesBeta_Feedback" target="_blank">email</a> and <a href="https://trello.com/c/nwYQNFPK/56-data-library-ui-progressive-display-of-fol…" target="_blank">Trello</a>.</h3>');r.push('<div id="library_folder_toolbar" >');r.push(' <button id="toolbtn_bulk_import" class="btn btn-primary" style="display: none; margin-left: 0.5em;" type="button"><span class="fa fa-external-link"></span> to history</button>');r.push(' <div id="toolbtn_dl" class="btn-group" style="margin-left: 0.5em; display: none; ">');r.push(' <button id="drop_toggle" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">');r.push(' <span class="fa fa-download"></span> download <span class="caret"></span>');r.push(" </button>");r.push(' <ul class="dropdown-menu" role="menu">');r.push(' <li><a href="#/folders/<%= id %>/download/tgz">.tar.gz</a></li>');r.push(' <li><a href="#/folders/<%= id %>/download/tbz">.tar.bz</a></li>');r.push(' <li><a href="#/folders/<%= id %>/download/zip">.zip</a></li>');r.push(" </ul>");r.push(" </div>");r.push("</div>");r.push('<div class="library_breadcrumb">');r.push('<a title="Return to the list of libraries" href="#">Libraries</a><b>|</b> ');r.push("<% _.each(path, function(path_item) { %>");r.push("<% if (path_item[0] != id) { %>");r.push('<a title="Return to this folder" href="#/folders/<%- path_item[0] %>"><%- path_item[1] %></a><b>|</b> ');r.push("<% } else { %>");r.push('<span title="You are in this folder"><%- path_item[1] %></span>');r.push("<% } %>");r.push("<% }); %>");r.push("</div>");r.push('<table id="folder_table" class="table table-condensed">');r.push(" <thead>");r.push(' <th style="text-align: center; width: 20px; "><input id="select-all-checkboxes" style="margin: 0;" type="checkbox"></th>');r.push(' <th class="button_heading">view</th>');r.push(" <th>name</th>");r.push(" <th>data type</th>");r.push(" <th>size</th>");r.push(" <th>date (UTC)</th>");r.push(" </thead>");r.push(" <tbody>");r.push(" <td></td>");r.push(' <td><button title="Go to parent folder" type="button" data-id="<%- upper_folder_id %>" class="btn_open_folder btn btn-default btn-xs">');r.push(' <span class="fa fa-arrow-up"></span> .. go up</td>');r.push(" <td></td>");r.push(" <td></td>");r.push(" <td></td>");r.push(" <td></td>");r.push(" </tr>");r.push(" <% _.each(items, function(content_item) { %>");r.push(' <tr class="folder_row light" id="<%- content_item.id %>">');r.push(' <% if (content_item.get("type") === "folder") { %>');r.push(" <td></td>");r.push(' <td><button title="Open this folder" type="button" data-id="<%- content_item.id %>" class="btn_open_folder btn btn-default btn-xs">');r.push(' <span class="fa fa-folder-open"></span> browse</td>');r.push(' <td><%- content_item.get("name") %>');r.push(' <% if (content_item.get("item_count") === 0) { %>');r.push(' <span class="muted">(empty folder)</span>');r.push(" <% } %>");r.push(" </td>");r.push(" <td>folder</td>");r.push(' <td><%= _.escape(content_item.get("item_count")) %> item(s)</td>');r.push(" <% } else { %>");r.push(' <td style="text-align: center; "><input style="margin: 0;" type="checkbox"></td>');r.push(" <td>");r.push(' <button title="See details of this dataset" type="button" class="library-dataset btn btn-default btn-xs">');r.push(' <span class="fa fa-eye"></span> details');r.push(" </button>");r.push(" </td>");r.push(' <td><%- content_item.get("name") %></td>');r.push(' <td><%= _.escape(content_item.get("data_type")) %></td>');r.push(' <td><%= _.escape(content_item.get("readable_size")) %></td>');r.push(" <% } %> ");r.push(' <td><%= _.escape(content_item.get("time_updated")) %></td>');r.push(" </tr>");r.push(" <% }); %>");r.push(" ");r.push(" </tbody>");r.push("</table>");r.push("</div>");return r.join("")},templateDatasetModal:function(){var r=[];r.push('<div id="dataset_info_modal">');r.push(' <table class="table table-striped table-condensed">');r.push(" <tr>");r.push(' <th scope="row" id="id_row" data-id="<%= _.escape(item.get("ldda_id")) %>">Name</th>');r.push(' <td><%= _.escape(item.get("name")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Data type</th>');r.push(' <td><%= _.escape(item.get("data_type")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Genome build</th>');r.push(' <td><%= _.escape(item.get("genome_build")) %></td>');r.push(" </tr>");r.push(' <th scope="row">Size</th>');r.push(" <td><%= _.escape(size) %></td>");r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Date uploaded (UTC)</th>');r.push(' <td><%= _.escape(item.get("date_uploaded")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Uploaded by</th>');r.push(' <td><%= _.escape(item.get("uploaded_by")) %></td>');r.push(" </tr>");r.push(' <tr scope="row">');r.push(' <th scope="row">Data Lines</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_data_lines")) %></td>');r.push(" </tr>");r.push(' <th scope="row">Comment Lines</th>');r.push(' <% if (item.get("metadata_comment_lines") === "") { %>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_comment_lines")) %></td>');r.push(" <% } else { %>");r.push(' <td scope="row">unknown</td>');r.push(" <% } %>");r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Number of Columns</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_columns")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Column Types</th>');r.push(' <td scope="row"><%= _.escape(item.get("metadata_column_types")) %></td>');r.push(" </tr>");r.push(" <tr>");r.push(' <th scope="row">Miscellaneous information</th>');r.push(' <td scope="row"><%= _.escape(item.get("misc_blurb")) %></td>');r.push(" </tr>");r.push(" </table>");r.push(' <pre class="peek">');r.push(" </pre>");r.push("</div>");return r.join("")},templateHistorySelectInModal:function(){var r=[];r.push('<span id="history_modal_combo" style="width:90%; margin-left: 1em; margin-right: 1em; ">');r.push("Select history: ");r.push('<select id="dataset_import_single" name="dataset_import_single" style="width:50%; margin-bottom: 1em; "> ');r.push(" <% _.each(histories, function(history) { %>");r.push(' <option value="<%= _.escape(history.get("id")) %>"><%= _.escape(history.get("name")) %></option>');r.push(" <% }); %>");r.push("</select>");r.push("</span>");return r.join("")},templateBulkImportInModal:function(){var r=[];r.push('<span id="history_modal_combo_bulk" style="width:90%; margin-left: 1em; margin-right: 1em; ">');r.push("Select history: ");r.push('<select id="dataset_import_bulk" name="dataset_import_bulk" style="width:50%; margin-bottom: 1em; "> ');r.push(" <% _.each(histories, function(history) { %>");r.push(' <option value="<%= _.escape(history.get("id")) %>"><%= _.escape(history.get("name")) %></option>');r.push(" <% }); %>");r.push("</select>");r.push("</span>");return r.join("")},templateProgressBar:function(){var r=[];r.push('<div class="import_text">');r.push("Importing selected datasets to history <b><%= _.escape(history_name) %></b>");r.push("</div>");r.push('<div class="progress">');r.push(' <div class="progress-bar progress-bar-import" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 00%;">');r.push(' <span class="completion_span">0% Complete</span>');r.push(" </div>");r.push("</div>");r.push("");return r.join("")},templateNewFolderInModal:function(){tmpl_array=[];tmpl_array.push('<div id="new_folder_modal">');tmpl_array.push("<form>");tmpl_array.push('<input type="text" name="Name" value="" placeholder="Name">');tmpl_array.push('<input type="text" name="Description" value="" placeholder="Description">');tmpl_array.push("</form>");tmpl_array.push("</div>");return tmpl_array.join("")},events:{"click #select-all-checkboxes":"selectAll","click .folder_row":"selectClickedRow","click #toolbtn_bulk_import":"modalBulkImport","click #toolbtn_dl":"bulkDownload","click .library-dataset":"showDatasetDetails","click #toolbtn_create_folder":"createFolderFromModal","click .btn_open_folder":"navigateToFolder"},render:function(r){$("#center").css("overflow","auto");view=this;var t=this;var s=new e({id:r.id});s.url=s.attributes.urlRoot+r.id+"/contents";s.fetch({success:function(u){for(var w=0;w<s.attributes.folder.models.length;w++){var v=s.attributes.folder.models[w];if(v.get("type")==="file"){v.set("readable_size",t.size_to_string(v.get("file_size")))}}var y=s.full_path;var z;if(y.length===1){z=0}else{z=y[y.length-2][0]}var x=_.template(t.templateFolder(),{path:s.full_path,items:s.attributes.folder.models,id:r.id,upper_folder_id:z});t.$el.html(x)},error:function(){n.error("An error occured :(")}})},size_to_string:function(r){var s="";if(r>=100000000000){r=r/100000000000;s="TB"}else{if(r>=100000000){r=r/100000000;s="GB"}else{if(r>=100000){r=r/100000;s="MB"}else{if(r>=100){r=r/100;s="KB"}else{r=r*10;s="b"}}}}return(Math.round(r)/10)+s},navigateToFolder:function(s){var r=$(s.target).attr("data-id");if(typeof r==="undefined"){return false}else{if(r==="0"){library_router.navigate("/",{trigger:true,replace:false})}else{library_router.navigate("folders/"+r,{trigger:true,replace:false})}}},showDatasetDetails:function(u){u.preventDefault();var v=$(u.target).parent().parent().attr("id");var t=new i();var s=new p();t.id=v;var r=this;t.fetch({success:function(w){s.fetch({success:function(x){r.renderModalAfterFetch(w,x)},error:function(){n.error("An error occured during fetching histories:(");r.renderModalAfterFetch(w)}})},error:function(){n.error("An error occured during loading dataset details :(")}})},renderModalAfterFetch:function(w,t){var u=this.size_to_string(w.get("file_size"));var v=_.template(this.templateDatasetModal(),{item:w,size:u});var s=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Dataset Details",body:v,buttons:{Import:function(){s.importCurrentIntoHistory()},Download:function(){s.downloadCurrent()},Close:function(){s.modal.hide()}}});$(".peek").html(w.get("peek"));if(typeof history.models!==undefined){var r=_.template(this.templateHistorySelectInModal(),{histories:t.models});$(this.modal.elMain).find(".buttons").prepend(r);if(s.lastSelectedHistory.length>0){$(this.modal.elMain).find("#dataset_import_single").val(s.lastSelectedHistory)}}},downloadCurrent:function(){this.modal.disableButton("Import");this.modal.disableButton("Download");var r=[];r.push($("#id_row").attr("data-id"));var s="/api/libraries/datasets/download/uncompressed";var t={ldda_ids:r};folderContentView.processDownload(s,t);this.modal.enableButton("Import");this.modal.enableButton("Download")},importCurrentIntoHistory:function(){this.modal.disableButton("Import");this.modal.disableButton("Download");var t=$(this.modal.elMain).find("select[name=dataset_import_single] option:selected").val();this.lastSelectedHistory=t;var r=$("#id_row").attr("data-id");var u=new b();var s=this;u.url=u.urlRoot+t+"/contents";u.save({content:r,source:"library"},{success:function(){n.success("Dataset imported");s.modal.enableButton("Import");s.modal.enableButton("Download")},error:function(){n.error("An error occured! Dataset not imported. Please try again.");s.modal.enableButton("Import");s.modal.enableButton("Download")}})},selectAll:function(s){var r=s.target.checked;that=this;$(":checkbox").each(function(){this.checked=r;$row=$(this.parentElement.parentElement);(r)?that.makeDarkRow($row):that.makeWhiteRow($row)});this.checkTools()},selectClickedRow:function(s){var u="";var r;var t;if(s.target.localName==="input"){u=s.target;r=$(s.target.parentElement.parentElement);t="input"}else{if(s.target.localName==="td"){u=$("#"+s.target.parentElement.id).find(":checkbox")[0];r=$(s.target.parentElement);t="td"}}if(u===""){s.stopPropagation();return}if(u===undefined){s.stopPropagation();return}if(u.checked){if(t==="td"){u.checked="";this.makeWhiteRow(r)}else{if(t==="input"){this.makeDarkRow(r)}}}else{if(t==="td"){u.checked="selected";this.makeDarkRow(r)}else{if(t==="input"){this.makeWhiteRow(r)}}}this.checkTools()},makeDarkRow:function(r){r.removeClass("light");r.find("a").removeClass("light");r.addClass("dark");r.find("a").addClass("dark")},makeWhiteRow:function(r){r.removeClass("dark");r.find("a").removeClass("dark");r.addClass("light");r.find("a").addClass("light")},checkTools:function(){var r=$("#folder_table").find(":checked");if(r.length>0){$("#toolbtn_bulk_import").show();$("#toolbtn_dl").show()}else{$("#toolbtn_bulk_import").hide();$("#toolbtn_dl").hide()}},modalBulkImport:function(){var s=this;var r=new p();r.fetch({success:function(t){var u=_.template(s.templateBulkImportInModal(),{histories:t.models});s.modal=Galaxy.modal;s.modal.show({closing_events:true,title:"Import into History",body:u,buttons:{Import:function(){s.importAllIntoHistory()},Close:function(){s.modal.hide()}}})},error:function(){n.error("An error occured :(")}})},importAllIntoHistory:function(){this.modal.disableButton("Import");var t=$("select[name=dataset_import_bulk] option:selected").val();var x=$("select[name=dataset_import_bulk] option:selected").text();var z=[];$("#folder_table").find(":checked").each(function(){if(this.parentElement.parentElement.id!=""){z.push(this.parentElement.parentElement.id)}});var y=_.template(this.templateProgressBar(),{history_name:x});$(this.modal.elMain).find(".modal-body").html(y);var u=100/z.length;this.initProgress(u);var r=[];for(var s=z.length-1;s>=0;s--){library_dataset_id=z[s];var v=new b();var w=this;v.url=v.urlRoot+t+"/contents";v.content=library_dataset_id;v.source="library";r.push(v)}this.chainCall(r)},chainCall:function(s){var r=this;var t=s.pop();if(typeof t==="undefined"){n.success("All datasets imported");this.modal.hide();return}var u=$.when(t.save({content:t.content,source:t.source})).done(function(v){r.updateProgress();responses.push(v);r.chainCall(s)})},initProgress:function(r){this.progress=0;this.progressStep=r},updateProgress:function(){this.progress+=this.progressStep;$(".progress-bar-import").width(Math.round(this.progress)+"%");txt_representation=Math.round(this.progress)+"% Complete";$(".completion_span").text(txt_representation)},download:function(r,v){var t=[];$("#folder_table").find(":checked").each(function(){if(this.parentElement.parentElement.id!=""){t.push(this.parentElement.parentElement.id)}});var s="/api/libraries/datasets/download/"+v;var u={ldda_ids:t};this.processDownload(s,u,"get")},processDownload:function(s,t,u){if(s&&t){t=typeof t=="string"?t:$.param(t);var r="";$.each(t.split("&"),function(){var v=this.split("=");r+='<input type="hidden" name="'+v[0]+'" value="'+v[1]+'" />'});$('<form action="'+s+'" method="'+(u||"post")+'">'+r+"</form>").appendTo("body").submit().remove();n.info("Your download will begin soon")}},createFolderFromModal:function(){event.preventDefault();event.stopPropagation();var r=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Create New Folder",body:this.templateNewFolderInModal(),buttons:{Create:function(){r.create_new_folder_event()},Close:function(){r.modal.hide();r.modal=null}}})},create_new_folder_event:function(){var r=this.serialize_new_folder();if(this.validate_new_folder(r)){var t=new c();url_items=Backbone.history.fragment.split("/");current_folder_id=url_items[url_items.length-1];t.url=t.urlRoot+"/"+current_folder_id;var s=this;t.save(r,{success:function(u){s.modal.hide();n.success("Folder created");s.render({id:current_folder_id})},error:function(){n.error("An error occured :(")}})}else{n.error("Folder's name is missing")}return false},serialize_new_folder:function(){return{name:$("input[name='Name']").val(),description:$("input[name='Description']").val()}},validate_new_folder:function(r){return r.name!==""}});var a=Backbone.View.extend({el:"#center",events:{"click #create_new_library_btn":"show_library_modal"},initialize:function(){},templateLibraryList:function(){tmpl_array=[];tmpl_array.push('<div id="library_container" style="width: 90%; margin: auto; margin-top: 2em; overflow: auto !important; ">');tmpl_array.push("");tmpl_array.push('<h3>Data Libraries Beta Test. This is work in progress. Please report problems & ideas via <a href="mailto:galaxy-bugs@bx.psu.edu?Subject=DataLibrariesBeta_Feedback" target="_blank">email</a> and <a href="https://trello.com/c/nwYQNFPK/56-data-library-ui-progressive-display-of-fol…" target="_blank">Trello</a>.</h3>');tmpl_array.push('<table class="table table-condensed">');tmpl_array.push(" <thead>");tmpl_array.push(' <th class="button_heading"></th>');tmpl_array.push(" <th>name</th>");tmpl_array.push(" <th>description</th>");tmpl_array.push(" <th>synopsis</th> ");tmpl_array.push(" </thead>");tmpl_array.push(" <tbody>");tmpl_array.push(" <% _.each(libraries, function(library) { %>");tmpl_array.push(" <tr>");tmpl_array.push(' <td><button title="Open this library" type="button" data-id="<%- library.get("root_folder_id") %>" class="btn_open_folder btn btn-default btn-xs">');tmpl_array.push(' <span class="fa fa-folder-open"></span> browse</td>');tmpl_array.push(' <td><%- library.get("name") %></td>');tmpl_array.push(' <td><%= _.escape(library.get("description")) %></td>');tmpl_array.push(' <td><%= _.escape(library.get("synopsis")) %></td>');tmpl_array.push(" </tr>");tmpl_array.push(" <% }); %>");tmpl_array.push(" </tbody>");tmpl_array.push("</table>");tmpl_array.push("</div>");return tmpl_array.join("")},templateNewLibraryInModal:function(){tmpl_array=[];tmpl_array.push('<div id="new_library_modal">');tmpl_array.push(" <form>");tmpl_array.push(' <input type="text" name="Name" value="" placeholder="Name">');tmpl_array.push(' <input type="text" name="Description" value="" placeholder="Description">');tmpl_array.push(' <input type="text" name="Synopsis" value="" placeholder="Synopsis">');tmpl_array.push(" </form>");tmpl_array.push("</div>");return tmpl_array.join("")},render:function(){$("#center").css("overflow","auto");var r=this;libraries=new o();libraries.fetch({success:function(s){var t=_.template(r.templateLibraryList(),{libraries:s.models});r.$el.html(t)},error:function(t,s){if(s.statusCode().status===403){n.info("Please log in first. Redirecting to login page in 3s.");setTimeout(r.redirectToLogin,3000)}else{n.error("An error occured. Please try again.")}}})},redirectToHome:function(){window.location="../"},redirectToLogin:function(){window.location="/user/login"},modal:null,show_library_modal:function(s){s.preventDefault();s.stopPropagation();var r=this;this.modal=Galaxy.modal;this.modal.show({closing_events:true,title:"Create New Library",body:this.templateNewLibraryInModal(),buttons:{Create:function(){r.create_new_library_event()},Close:function(){r.modal.hide()}}})},create_new_library_event:function(){var t=this.serialize_new_library();if(this.validate_new_library(t)){var s=new f();var r=this;s.save(t,{success:function(u){r.modal.hide();r.clear_library_modal();r.render();n.success("Library created")},error:function(){n.error("An error occured :(")}})}else{n.error("Library's name is missing")}return false},clear_library_modal:function(){$("input[name='Name']").val("");$("input[name='Description']").val("");$("input[name='Synopsis']").val("")},serialize_new_library:function(){return{name:$("input[name='Name']").val(),description:$("input[name='Description']").val(),synopsis:$("input[name='Synopsis']").val()}},validate_new_library:function(r){return r.name!==""}});var g=Backbone.View.extend({folderContentView:null,galaxyLibraryview:null,initialize:function(){folderContentView=new m();galaxyLibraryview=new a();library_router=new q();library_router.on("route:libraries",function(){galaxyLibraryview.render()});library_router.on("route:folder_content",function(r){folderContentView.render({id:r})});library_router.on("route:download",function(r,s){if($("#center").find(":checked").length===0){library_router.navigate("folders/"+r,{trigger:true,replace:true})}else{folderContentView.download(r,s);library_router.navigate("folders/"+r,{trigger:false,replace:true})}});Backbone.history.start({pushState:false})}});return{GalaxyApp:g}});
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: greg: Fixes for the tool shed's install and test framework.
by commits-noreply@bitbucket.org 26 Jan '14
by commits-noreply@bitbucket.org 26 Jan '14
26 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/89a685c87b0e/
Changeset: 89a685c87b0e
User: greg
Date: 2014-01-26 18:16:33
Summary: Fixes for the tool shed's install and test framework.
Affected #: 3 files
diff -r 196401191eb2556d92063fa5784eb57cd03aa5b1 -r 89a685c87b0ee5a04b36bb2e48c5b0fe00dd1e74 lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
--- a/lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
@@ -228,6 +228,11 @@
package_version,
dependent_install_dir,
tool_dependency_type='package' )
+ if not can_install_tool_dependency:
+ log.debug( "Tool dependency %s version %s cannot be installed (it was probably previously installed), " % \
+ ( str( tool_dependency.name, str( tool_dependency.version ) ) ) )
+ log.debug( "so appending it to the list of handled tool dependencies." )
+ handled_tool_dependencies.append( tool_dependency )
else:
can_install_tool_dependency = True
if can_install_tool_dependency:
@@ -271,8 +276,6 @@
package_version=package_version,
tool_dependencies_config=config_to_use )
suc.remove_file( tmp_filename )
- else:
- handled_tool_dependencies.append( tool_dependency )
else:
message = "Unable to locate required tool shed repository named %s owned by %s with revision %s." % \
( str( required_repository_name ), str( required_repository_owner ), str( default_required_repository_changeset_revision ) )
@@ -345,6 +348,10 @@
package_version,
install_dir,
tool_dependency_type='package' )
+ if not can_install_tool_dependency:
+ log.debug( "Tool dependency %s version %s cannot be installed (it was probably previously installed), so returning it." % \
+ ( str( tool_dependency.name, str( tool_dependency.version ) ) ) )
+ return tool_dependency
else:
can_install_tool_dependency = True
if can_install_tool_dependency:
diff -r 196401191eb2556d92063fa5784eb57cd03aa5b1 -r 89a685c87b0ee5a04b36bb2e48c5b0fe00dd1e74 lib/tool_shed/util/repository_dependency_util.py
--- a/lib/tool_shed/util/repository_dependency_util.py
+++ b/lib/tool_shed/util/repository_dependency_util.py
@@ -26,6 +26,7 @@
relationships are defined in the repository_dependencies entry for each dictionary in the received list of repo_info_dicts. Each of
these dictionaries is associated with a repository in the received tool_shed_repositories list.
"""
+ log.debug( "Building repository dependency relationships..." )
for repo_info_dict in repo_info_dicts:
for name, repo_info_tuple in repo_info_dict.items():
description, repository_clone_url, changeset_revision, ctx_rev, repository_owner, repository_dependencies, tool_dependencies = \
@@ -103,6 +104,7 @@
If the user elected to install repository dependencies, all items in the all_repo_info_dicts list will be processed. However, if repository
dependencies are not to be installed, only those items contained in the received repo_info_dicts list will be processed.
"""
+ log.debug( "Creating repository dependency objects..." )
# The following list will be maintained within this method to contain all created or updated tool shed repositories, including repository
# dependencies that may not be installed.
all_created_or_updated_tool_shed_repositories = []
@@ -140,8 +142,12 @@
trans.install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES,
trans.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES,
trans.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES ]:
- log.debug( "Skipping installation of tool_shed_repository '%s' because it's installation status is '%s'." % \
- ( str( repository_db_record.name ), str( repository_db_record.status ) ) )
+ debug_msg = "Skipping installation of revision %s of repository '%s' because it was installed " % \
+ ( str( changeset_revision ), str( repository_db_record.name ) )
+ debug_msg += "with the (possibly updated) revision %s and it's current installation status is '%s'." % \
+ ( str( installed_changeset_revision ), str( repository_db_record.status ) )
+ log.debug( debug_msg )
+ can_update_db_record = False
else:
if repository_db_record.status in [ trans.install_model.ToolShedRepository.installation_status.ERROR,
trans.install_model.ToolShedRepository.installation_status.NEW,
diff -r 196401191eb2556d92063fa5784eb57cd03aa5b1 -r 89a685c87b0ee5a04b36bb2e48c5b0fe00dd1e74 lib/tool_shed/util/tool_dependency_util.py
--- a/lib/tool_shed/util/tool_dependency_util.py
+++ b/lib/tool_shed/util/tool_dependency_util.py
@@ -43,7 +43,9 @@
return tool_dependencies
def create_or_update_tool_dependency( app, tool_shed_repository, name, version, type, status, set_status=True ):
- # Called from Galaxy (never the tool shed) when a new repository is being installed or when an uninstalled repository is being reinstalled.
+ """Create or update a tool_dependency record in the Galaxy database."""
+ # Called from Galaxy (never the tool shed) when a new repository is being installed or when an uninstalled
+ # repository is being reinstalled.
context = app.install_model.context
# First see if an appropriate tool_dependency record exists for the received tool_shed_repository.
if version:
@@ -51,7 +53,8 @@
else:
tool_dependency = get_tool_dependency_by_name_type_repository( app, tool_shed_repository, name, type )
if tool_dependency:
- # In some cases we should not override the current status of an existing tool_dependency, so do so only if set_status is True.
+ # In some cases we should not override the current status of an existing tool_dependency, so do so only
+ # if set_status is True.
if set_status:
if str( tool_dependency.status ) != str( status ):
debug_msg = 'Updating an existing record for version %s of tool dependency %s for revision %s of repository %s ' % \
@@ -584,7 +587,12 @@
# Shed's install and test framework is running. The Tool Shed's install and test framework which installs repositories
# in 2 stages, those of type tool_dependency_definition followed by those containing valid tools and tool functional
# test components.
- sa_session = app.install_model.context.current
+ log.debug( "Synchronizing the database with the file system..." )
+ try:
+ log.debug( "The value of app.config.running_functional_tests is: %s" % str( app.config.running_functional_tests ) )
+ except:
+ pass
+ sa_session = app.install_model.context
can_install_tool_dependency = False
tool_dependency = get_tool_dependency_by_name_version_type_repository( app,
tool_shed_repository,
@@ -618,9 +626,9 @@
# tool dependencies are not deleted by default, from the "install and test" framework..
tool_dependency.status = app.install_model.ToolDependency.installation_status.INSTALLED
else:
- error_message = 'The installation directory for this tool dependency had contents, but the database had no record. '
+ error_message = 'The installation directory for this tool dependency had contents but the database had no record. '
error_message += 'The installation log may show this tool dependency to be correctly installed, but due to the '
- error_message += 'missing database record, it is automatically set to Error.'
+ error_message += 'missing database record it is now being set to Error.'
tool_dependency.status = app.install_model.ToolDependency.installation_status.ERROR
tool_dependency.error_message = error_message
else:
@@ -637,6 +645,11 @@
can_install_tool_dependency = True
sa_session.add( tool_dependency )
sa_session.flush()
+ try:
+ log.debug( "Returning from sync_database_with_file_system with tool_dependency %s, can_install_tool_dependency %s." % \
+ ( str( tool_dependency.name ), str( can_install_tool_dependency ) ) )
+ except Exception, e:
+ log.debug( str( e ) )
return tool_dependency, can_install_tool_dependency
def tool_dependency_is_orphan( type, name, version, tools ):
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: greg: Fixes for 12257:9b337a87d6ec.
by commits-noreply@bitbucket.org 26 Jan '14
by commits-noreply@bitbucket.org 26 Jan '14
26 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/196401191eb2/
Changeset: 196401191eb2
User: greg
Date: 2014-01-26 16:15:33
Summary: Fixes for 12257:9b337a87d6ec.
Affected #: 3 files
diff -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 -r 196401191eb2556d92063fa5784eb57cd03aa5b1 lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
--- a/lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/install_util.py
@@ -171,7 +171,7 @@
return text
-def handle_complex_repository_dependency_for_package( app, elem, package_name, package_version, tool_shed_repository ):
+def handle_complex_repository_dependency_for_package( app, elem, package_name, package_version, tool_shed_repository, from_install_manager=False ):
"""
Inspect the repository defined by a complex repository dependency definition and take certain steps to enable installation
of the received package name and version to proceed. The received elem is the <repository> tag set which defines the complex
@@ -202,21 +202,32 @@
tool_dependency_version=package_version )
# Define this dependent repository's tool dependency installation directory that will contain the env.sh file with a path to the
# required repository's installed tool dependency package.
- dependent_install_dir = tool_dependency_util.get_tool_dependency_install_dir( app=app,
- repository_name=tool_shed_repository.name,
- repository_owner=tool_shed_repository.owner,
- repository_changeset_revision=tool_shed_repository.installed_changeset_revision,
- tool_dependency_type='package',
- tool_dependency_name=package_name,
- tool_dependency_version=package_version )
+ dependent_install_dir = \
+ tool_dependency_util.get_tool_dependency_install_dir( app=app,
+ repository_name=tool_shed_repository.name,
+ repository_owner=tool_shed_repository.owner,
+ repository_changeset_revision=tool_shed_repository.installed_changeset_revision,
+ tool_dependency_type='package',
+ tool_dependency_name=package_name,
+ tool_dependency_version=package_version )
if os.path.exists( dependent_install_dir ):
- # Notice that we'll throw away the following tool_dependency if it can be installed.
- tool_dependency, can_install_tool_dependency = tool_dependency_util.sync_database_with_file_system( app,
- tool_shed_repository,
- package_name,
- package_version,
- dependent_install_dir,
- tool_dependency_type='package' )
+ # The install manager handles tool migration stages and the sync_database_with_file_system() method handles two
+ # scenarios: (1) where a Galaxy file system environment related to installed tool shed repositories and tool dependencies
+ # has somehow (over time )gotten out of sync with the Galaxy database tables associated with these installed items, and
+ # (2) the Tool Shed's install and test framework which installs repositories in 2 stages, those of type
+ # tool_dependency_definition followed by those containing valid tools and tool functional test components. Neither of
+ # these scenarios apply when the install manager is running.
+ if from_install_manager:
+ can_install_tool_dependency = True
+ else:
+ # Notice that we'll throw away the following tool_dependency if it can be installed.
+ tool_dependency, can_install_tool_dependency = \
+ tool_dependency_util.sync_database_with_file_system( app,
+ tool_shed_repository,
+ package_name,
+ package_version,
+ dependent_install_dir,
+ tool_dependency_type='package' )
else:
can_install_tool_dependency = True
if can_install_tool_dependency:
@@ -300,7 +311,8 @@
package_elem,
package_name,
package_version,
- tool_shed_repository )
+ tool_shed_repository,
+ from_install_manager=from_install_manager )
for rd_tool_dependency in rd_tool_dependencies:
if rd_tool_dependency.status == app.install_model.ToolDependency.installation_status.ERROR:
# We'll log the error here, but continue installing packages since some may not require this dependency.
@@ -315,11 +327,17 @@
tool_dependency_type='package',
tool_dependency_name=package_name,
tool_dependency_version=package_version )
- can_install_tool_dependency = True
if os.path.exists( install_dir ):
- if not from_install_manager:
+ # The install manager handles tool migration stages and the sync_database_with_file_system() method handles two
+ # scenarios: (1) where a Galaxy file system environment related to installed tool shed repositories and tool dependencies
+ # has somehow (over time )gotten out of sync with the Galaxy database tables associated with these installed items, and
+ # (2) the Tool Shed's install and test framework which installs repositories in 2 stages, those of type
+ # tool_dependency_definition followed by those containing valid tools and tool functional test components. Neither of
+ # these scenarios apply when the install manager is running.
+ if from_install_manager:
+ can_install_tool_dependency = True
+ else:
# Notice that we'll throw away the following tool_dependency if it can be installed.
- print 'Calling sync_database_with_file_system 2'
tool_dependency, can_install_tool_dependency = \
tool_dependency_util.sync_database_with_file_system( app,
tool_shed_repository,
diff -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 -r 196401191eb2556d92063fa5784eb57cd03aa5b1 lib/tool_shed/util/common_install_util.py
--- a/lib/tool_shed/util/common_install_util.py
+++ b/lib/tool_shed/util/common_install_util.py
@@ -471,10 +471,12 @@
tool_dependency = tool_dependencies[ index ]
if tool_dependency.can_install:
# The database record is currently in a state that allows us to install the package on the file system.
+ log.debug( 'Attempting to install tool dependency package %s version %s.' % ( str( package_name ), str( package_version ) ) )
try:
dependencies_ignored = not app.toolbox.dependency_manager.uses_tool_shed_dependencies()
if dependencies_ignored:
- log.debug( "Skipping package %s because tool shed dependency resolver not enabled." % str( package_name ) )
+ log.debug( "Skipping installation of tool dependency package %s because tool shed dependency resolver not enabled." % \
+ str( package_name ) )
# Tool dependency resolves have been configured and they do not include the tool shed. Do not install package.
if app.toolbox.dependency_manager.find_dep( package_name, package_version, type='package') != INDETERMINATE_DEPENDENCY:
## TODO: Do something here such as marking it installed or
@@ -493,7 +495,7 @@
tool_dependencies=tool_dependencies,
from_install_manager=from_install_manager )
except Exception, e:
- error_message = "Error installing tool dependency %s version %s: %s" % ( str( package_name ), str( package_version ), str( e ) )
+ error_message = "Error installing tool dependency package %s version %s: %s" % ( str( package_name ), str( package_version ), str( e ) )
log.exception( error_message )
if tool_dependency:
# Since there was an installation error, update the tool dependency status to Error. The remove_installation_path option must
diff -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 -r 196401191eb2556d92063fa5784eb57cd03aa5b1 lib/tool_shed/util/tool_dependency_util.py
--- a/lib/tool_shed/util/tool_dependency_util.py
+++ b/lib/tool_shed/util/tool_dependency_util.py
@@ -581,7 +581,9 @@
"""
# This method should be reached very rarely. It implies that either the Galaxy environment became corrupted (i.e.,
# the database records for installed tool dependencies is not synchronized with tool dependencies on disk) or the Tool
- # Shed's install and test framework is running.
+ # Shed's install and test framework is running. The Tool Shed's install and test framework which installs repositories
+ # in 2 stages, those of type tool_dependency_definition followed by those containing valid tools and tool functional
+ # test components.
sa_session = app.install_model.context.current
can_install_tool_dependency = False
tool_dependency = get_tool_dependency_by_name_version_type_repository( app,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
6 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/11597a078e65/
Changeset: 11597a078e65
User: nsoranzo
Date: 2014-01-22 14:41:09
Summary: Fix typo in method name.
Affected #: 1 file
diff -r 6c3c24b83d97adc4b946f01321c540fc48e6bb21 -r 11597a078e6505087064315567ad3357c2d40c56 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -586,7 +586,7 @@
return data
@expose_api
- def import_shared_worflow(self, trans, payload, **kwd):
+ def import_shared_workflow(self, trans, payload, **kwd):
"""
POST /api/workflows/import
Import a workflow shared by other users.
https://bitbucket.org/galaxy/galaxy-central/commits/c7e4de2d6ed8/
Changeset: c7e4de2d6ed8
User: nsoranzo
Date: 2014-01-22 15:05:51
Summary: Remove unused imports.
Affected #: 1 file
diff -r 11597a078e6505087064315567ad3357c2d40c56 -r c7e4de2d6ed888204c78d1f950d63a75c13a3386 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -5,16 +5,12 @@
import operator
import os
import re
-import urllib
from gettext import gettext
import pkg_resources
pkg_resources.require("SQLAlchemy >= 0.4")
from sqlalchemy import func, and_, select
-pkg_resources.require( "Routes" )
-import routes
-
from paste.httpexceptions import HTTPBadRequest, HTTPInternalServerError
from paste.httpexceptions import HTTPNotImplemented, HTTPRequestRangeNotSatisfiable
from galaxy.exceptions import ItemAccessibilityException, ItemDeletionException, ItemOwnershipException
@@ -40,7 +36,6 @@
from galaxy.model import ExtendedMetadata, ExtendedMetadataIndex, LibraryDatasetDatasetAssociation, HistoryDatasetAssociation
-from galaxy.datatypes.display_applications import util as da_util
from galaxy.datatypes.metadata import FileParameter
https://bitbucket.org/galaxy/galaxy-central/commits/1f91923153d2/
Changeset: 1f91923153d2
User: nsoranzo
Date: 2014-01-22 14:46:36
Summary: Move duplicated method _workflow_from_dict to UsesStoredWorkflowMixin.
Affected #: 3 files
diff -r c7e4de2d6ed888204c78d1f950d63a75c13a3386 -r 1f91923153d2d64a216ddbeb06810df3ac12be06 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -37,6 +37,7 @@
from galaxy.model import ExtendedMetadata, ExtendedMetadataIndex, LibraryDatasetDatasetAssociation, HistoryDatasetAssociation
from galaxy.datatypes.metadata import FileParameter
+from galaxy.util.json import to_json_string
log = logging.getLogger( __name__ )
@@ -1554,6 +1555,102 @@
session.flush()
return imported_stored
+ def _workflow_from_dict( self, trans, data, source=None, add_to_menu=False ):
+ """
+ Creates a workflow from a dict. Created workflow is stored in the database and returned.
+ """
+ from galaxy.webapps.galaxy.controllers.workflow import attach_ordered_steps
+
+ # Put parameters in workflow mode
+ trans.workflow_building_mode = True
+ # Create new workflow from incoming dict
+ workflow = model.Workflow()
+ # If there's a source, put it in the workflow name.
+ if source:
+ name = "%s (imported from %s)" % ( data['name'], source )
+ else:
+ name = data['name']
+ workflow.name = name
+ # Assume no errors until we find a step that has some
+ workflow.has_errors = False
+ # Create each step
+ steps = []
+ # The editor will provide ids for each step that we don't need to save,
+ # but do need to use to make connections
+ steps_by_external_id = {}
+ # Keep track of tools required by the workflow that are not available in
+ # the local Galaxy instance. Each tuple in the list of missing_tool_tups
+ # will be ( tool_id, tool_name, tool_version ).
+ missing_tool_tups = []
+ # First pass to build step objects and populate basic values
+ for step_dict in data[ 'steps' ].itervalues():
+ # Create the model class for the step
+ step = model.WorkflowStep()
+ steps.append( step )
+ steps_by_external_id[ step_dict['id' ] ] = step
+ # FIXME: Position should be handled inside module
+ step.position = step_dict['position']
+ module = module_factory.from_dict( trans, step_dict, secure=False )
+ module.save_to_step( step )
+ if module.type == 'tool' and module.tool is None:
+ # A required tool is not available in the local Galaxy instance.
+ missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
+ if missing_tool_tup not in missing_tool_tups:
+ missing_tool_tups.append( missing_tool_tup )
+ # Save the entire step_dict in the unused config field, be parsed later
+ # when we do have the tool
+ step.config = to_json_string(step_dict)
+ if step.tool_errors:
+ workflow.has_errors = True
+ # Stick this in the step temporarily
+ step.temp_input_connections = step_dict['input_connections']
+ # Save step annotation.
+ annotation = step_dict[ 'annotation' ]
+ if annotation:
+ annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
+ self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
+ # Second pass to deal with connections between steps
+ for step in steps:
+ # Input connections
+ for input_name, conn_list in step.temp_input_connections.iteritems():
+ if not conn_list:
+ continue
+ if not isinstance(conn_list, list): # Older style singleton connection
+ conn_list = [conn_list]
+ for conn_dict in conn_list:
+ conn = model.WorkflowStepConnection()
+ conn.input_step = step
+ conn.input_name = input_name
+ conn.output_name = conn_dict['output_name']
+ conn.output_step = steps_by_external_id[ conn_dict['id'] ]
+ del step.temp_input_connections
+
+ # Order the steps if possible
+ attach_ordered_steps( workflow, steps )
+
+ # Connect up
+ stored = model.StoredWorkflow()
+ stored.name = workflow.name
+ workflow.stored_workflow = stored
+ stored.latest_workflow = workflow
+ stored.user = trans.user
+ if data[ 'annotation' ]:
+ self.add_item_annotation( trans.sa_session, stored.user, stored, data[ 'annotation' ] )
+
+ # Persist
+ trans.sa_session.add( stored )
+ trans.sa_session.flush()
+
+ if add_to_menu:
+ if trans.user.stored_workflow_menu_entries == None:
+ trans.user.stored_workflow_menu_entries = []
+ menuEntry = model.StoredWorkflowMenuEntry()
+ menuEntry.stored_workflow = stored
+ trans.user.stored_workflow_menu_entries.append( menuEntry )
+ trans.sa_session.flush()
+
+ return stored, missing_tool_tups
+
class UsesFormDefinitionsMixin:
"""Mixin for controllers that use Galaxy form objects."""
diff -r c7e4de2d6ed888204c78d1f950d63a75c13a3386 -r 1f91923153d2d64a216ddbeb06810df3ac12be06 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -9,14 +9,12 @@
from galaxy import exceptions
from galaxy import util
from galaxy import web
-from galaxy import model
from galaxy.tools.parameters import visit_input_values, DataToolParameter, RuntimeValue
from galaxy.web import _future_expose_api as expose_api
from galaxy.web.base.controller import BaseAPIController, url_for, UsesStoredWorkflowMixin
from galaxy.workflow.modules import module_factory, ToolModule
from galaxy.jobs.actions.post import ActionBox
-from ..controllers.workflow import attach_ordered_steps
log = logging.getLogger(__name__)
@@ -367,89 +365,6 @@
return item
- def _workflow_from_dict( self, trans, data, source=None ):
- """
- RPARK: copied from galaxy.webapps.galaxy.controllers.workflows.py
- Creates a workflow from a dict. Created workflow is stored in the database and returned.
- """
- # Put parameters in workflow mode
- trans.workflow_building_mode = True
- # Create new workflow from incoming dict
- workflow = model.Workflow()
- # If there's a source, put it in the workflow name.
- if source:
- name = "%s (imported from %s)" % ( data['name'], source )
- else:
- name = data['name']
- workflow.name = name
- # Assume no errors until we find a step that has some
- workflow.has_errors = False
- # Create each step
- steps = []
- # The editor will provide ids for each step that we don't need to save,
- # but do need to use to make connections
- steps_by_external_id = {}
- # Keep track of tools required by the workflow that are not available in
- # the local Galaxy instance. Each tuple in the list of missing_tool_tups
- # will be ( tool_id, tool_name, tool_version ).
- missing_tool_tups = []
- # First pass to build step objects and populate basic values
- for step_dict in data[ 'steps' ].itervalues():
- # Create the model class for the step
- step = model.WorkflowStep()
- steps.append( step )
- steps_by_external_id[ step_dict['id' ] ] = step
- # FIXME: Position should be handled inside module
- step.position = step_dict['position']
- module = module_factory.from_dict( trans, step_dict, secure=False )
- if module.type == 'tool' and module.tool is None:
- # A required tool is not available in the local Galaxy instance.
- missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
- if missing_tool_tup not in missing_tool_tups:
- missing_tool_tups.append( missing_tool_tup )
- module.save_to_step( step )
- if step.tool_errors:
- workflow.has_errors = True
- # Stick this in the step temporarily
- step.temp_input_connections = step_dict['input_connections']
- # Save step annotation.
- #annotation = step_dict[ 'annotation' ]
- #if annotation:
- #annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
- # ------------------------------------------ #
- # RPARK REMOVING: user annotation b/c of API
- #self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
- # ------------------------------------------ #
- # Unpack and add post-job actions.
- post_job_actions = step_dict.get( 'post_job_actions', {} )
- for name, pja_dict in post_job_actions.items():
- model.PostJobAction( pja_dict[ 'action_type' ],
- step, pja_dict[ 'output_name' ],
- pja_dict[ 'action_arguments' ] )
- # Second pass to deal with connections between steps
- for step in steps:
- # Input connections
- for input_name, conn_dict in step.temp_input_connections.iteritems():
- if conn_dict:
- conn = model.WorkflowStepConnection()
- conn.input_step = step
- conn.input_name = input_name
- conn.output_name = conn_dict['output_name']
- conn.output_step = steps_by_external_id[ conn_dict['id'] ]
- del step.temp_input_connections
- # Order the steps if possible
- attach_ordered_steps( workflow, steps )
- # Connect up
- stored = model.StoredWorkflow()
- stored.name = workflow.name
- workflow.stored_workflow = stored
- stored.latest_workflow = workflow
- stored.user = trans.user
- # Persist
- trans.sa_session.add( stored )
- trans.sa_session.flush()
- return stored, missing_tool_tups
-
def _workflow_to_dict( self, trans, stored ):
"""
RPARK: copied from galaxy.web.controllers.workflows.py
diff -r c7e4de2d6ed888204c78d1f950d63a75c13a3386 -r 1f91923153d2d64a216ddbeb06810df3ac12be06 lib/galaxy/webapps/galaxy/controllers/workflow.py
--- a/lib/galaxy/webapps/galaxy/controllers/workflow.py
+++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py
@@ -24,7 +24,6 @@
from galaxy.tools.parameters import RuntimeValue, visit_input_values
from galaxy.tools.parameters.basic import DataToolParameter, DrillDownSelectToolParameter, SelectToolParameter, UnvalidatedValue
from galaxy.tools.parameters.grouping import Conditional, Repeat
-from galaxy.util.json import to_json_string
from galaxy.util.odict import odict
from galaxy.util.sanitize_html import sanitize_html
from galaxy.util.topsort import CycleError, topsort, topsort_levels
@@ -1734,100 +1733,6 @@
data['steps'][step.order_index] = step_dict
return data
- def _workflow_from_dict( self, trans, data, source=None, add_to_menu=False ):
- """
- Creates a workflow from a dict. Created workflow is stored in the database and returned.
- """
- # Put parameters in workflow mode
- trans.workflow_building_mode = True
- # Create new workflow from incoming dict
- workflow = model.Workflow()
- # If there's a source, put it in the workflow name.
- if source:
- name = "%s (imported from %s)" % ( data['name'], source )
- else:
- name = data['name']
- workflow.name = name
- # Assume no errors until we find a step that has some
- workflow.has_errors = False
- # Create each step
- steps = []
- # The editor will provide ids for each step that we don't need to save,
- # but do need to use to make connections
- steps_by_external_id = {}
- # Keep track of tools required by the workflow that are not available in
- # the local Galaxy instance. Each tuple in the list of missing_tool_tups
- # will be ( tool_id, tool_name, tool_version ).
- missing_tool_tups = []
- # First pass to build step objects and populate basic values
- for key, step_dict in data[ 'steps' ].iteritems():
- # Create the model class for the step
- step = model.WorkflowStep()
- steps.append( step )
- steps_by_external_id[ step_dict['id' ] ] = step
- # FIXME: Position should be handled inside module
- step.position = step_dict['position']
- module = module_factory.from_dict( trans, step_dict, secure=False )
- module.save_to_step( step )
- if module.type == 'tool' and module.tool is None:
- # A required tool is not available in the local Galaxy instance.
- missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
- if missing_tool_tup not in missing_tool_tups:
- missing_tool_tups.append( missing_tool_tup )
- # Save the entire step_dict in the unused config field, be parsed later
- # when we do have the too when we do have the tool
- step.config = to_json_string(step_dict)
- if step.tool_errors:
- workflow.has_errors = True
- # Stick this in the step temporarily
- step.temp_input_connections = step_dict['input_connections']
- # Save step annotation.
- annotation = step_dict[ 'annotation' ]
- if annotation:
- annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
- self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
- # Second pass to deal with connections between steps
- for step in steps:
- # Input connections
- for input_name, conn_list in step.temp_input_connections.iteritems():
- if not conn_list:
- continue
- if not isinstance(conn_list, list): # Older style singleton connection
- conn_list = [conn_list]
- for conn_dict in conn_list:
- conn = model.WorkflowStepConnection()
- conn.input_step = step
- conn.input_name = input_name
- conn.output_name = conn_dict['output_name']
- conn.output_step = steps_by_external_id[ conn_dict['id'] ]
- del step.temp_input_connections
-
- # Order the steps if possible
- attach_ordered_steps( workflow, steps )
-
- # Connect up
- stored = model.StoredWorkflow()
- stored.name = workflow.name
- workflow.stored_workflow = stored
- stored.latest_workflow = workflow
- stored.user = trans.user
- if data[ 'annotation' ]:
- self.add_item_annotation( trans.sa_session, stored.user, stored, data[ 'annotation' ] )
-
- # Persist
- trans.sa_session.add( stored )
- trans.sa_session.flush()
-
- if add_to_menu:
- if trans.user.stored_workflow_menu_entries == None:
- trans.user.stored_workflow_menu_entries = []
- menuEntry = model.StoredWorkflowMenuEntry()
- menuEntry.stored_workflow = stored
- trans.user.stored_workflow_menu_entries.append( menuEntry )
- trans.sa_session.flush()
-
- return stored, missing_tool_tups
-
def _workflow_to_svg_canvas( self, trans, stored ):
workflow = stored.latest_workflow
data = []
https://bitbucket.org/galaxy/galaxy-central/commits/7ed68c60b454/
Changeset: 7ed68c60b454
User: nsoranzo
Date: 2014-01-22 15:50:09
Summary: Move duplicated method _workflow_to_dict to UsesStoredWorkflowMixin.
Affected #: 3 files
diff -r 1f91923153d2d64a216ddbeb06810df3ac12be06 -r 7ed68c60b4546c90f24f4463b644f6fffe712596 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -37,7 +37,10 @@
from galaxy.model import ExtendedMetadata, ExtendedMetadataIndex, LibraryDatasetDatasetAssociation, HistoryDatasetAssociation
from galaxy.datatypes.metadata import FileParameter
+from galaxy.tools.parameters import RuntimeValue, visit_input_values
+from galaxy.tools.parameters.basic import DataToolParameter
from galaxy.util.json import to_json_string
+from galaxy.workflow.modules import ToolModule
log = logging.getLogger( __name__ )
@@ -1651,6 +1654,131 @@
return stored, missing_tool_tups
+ def _workflow_to_dict( self, trans, stored ):
+ """
+ Converts a workflow to a dict of attributes suitable for exporting.
+ """
+ workflow = stored.latest_workflow
+ workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
+ annotation_str = ""
+ if workflow_annotation:
+ annotation_str = workflow_annotation.annotation
+ # Pack workflow data into a dictionary and return
+ data = {}
+ data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
+ data['format-version'] = "0.1"
+ data['name'] = workflow.name
+ data['annotation'] = annotation_str
+ data['steps'] = {}
+ # For each step, rebuild the form and encode the state
+ for step in workflow.steps:
+ # Load from database representation
+ module = module_factory.from_workflow_step( trans, step )
+ if not module:
+ return None
+ # Get user annotation.
+ step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
+ annotation_str = ""
+ if step_annotation:
+ annotation_str = step_annotation.annotation
+ # Step info
+ step_dict = {
+ 'id': step.order_index,
+ 'type': module.type,
+ 'tool_id': module.get_tool_id(),
+ 'tool_version' : step.tool_version,
+ 'name': module.get_name(),
+ 'tool_state': module.get_state( secure=False ),
+ 'tool_errors': module.get_errors(),
+ ## 'data_inputs': module.get_data_inputs(),
+ ## 'data_outputs': module.get_data_outputs(),
+ 'annotation' : annotation_str
+ }
+ # Add post-job actions to step dict.
+ if module.type == 'tool':
+ pja_dict = {}
+ for pja in step.post_job_actions:
+ pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
+ output_name = pja.output_name,
+ action_arguments = pja.action_arguments )
+ step_dict[ 'post_job_actions' ] = pja_dict
+ # Data inputs
+ step_dict['inputs'] = []
+ if module.type == "data_input":
+ # Get input dataset name; default to 'Input Dataset'
+ name = module.state.get( 'name', 'Input Dataset')
+ step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
+ else:
+ # Step is a tool and may have runtime inputs.
+ for name, val in module.state.inputs.items():
+ input_type = type( val )
+ if input_type == RuntimeValue:
+ step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
+ elif input_type == dict:
+ # Input type is described by a dict, e.g. indexed parameters.
+ for partval in val.values():
+ if type( partval ) == RuntimeValue:
+ step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
+ # User outputs
+ step_dict['user_outputs'] = []
+ """
+ module_outputs = module.get_data_outputs()
+ step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
+ for output in step_outputs:
+ name = output.output_name
+ annotation = ""
+ for module_output in module_outputs:
+ if module_output.get( 'name', None ) == name:
+ output_type = module_output.get( 'extension', '' )
+ break
+ data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
+ """
+
+ # All step outputs
+ step_dict['outputs'] = []
+ if type( module ) is ToolModule:
+ for output in module.get_data_outputs():
+ step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
+ # Connections
+ input_connections = step.input_connections
+ if step.type is None or step.type == 'tool':
+ # Determine full (prefixed) names of valid input datasets
+ data_input_names = {}
+ def callback( input, value, prefixed_name, prefixed_label ):
+ if isinstance( input, DataToolParameter ):
+ data_input_names[ prefixed_name ] = True
+
+ # FIXME: this updates modules silently right now; messages from updates should be provided.
+ module.check_and_update_state()
+ visit_input_values( module.tool.inputs, module.state.inputs, callback )
+ # Filter
+ # FIXME: this removes connection without displaying a message currently!
+ input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
+ # Encode input connections as dictionary
+ input_conn_dict = {}
+ unique_input_names = set( [conn.input_name for conn in input_connections] )
+ for input_name in unique_input_names:
+ input_conn_dict[ input_name ] = \
+ [ dict( id=conn.output_step.order_index, output_name=conn.output_name ) for conn in input_connections if conn.input_name == input_name ]
+ # Preserve backward compatability. Previously Galaxy
+ # assumed input connections would be dictionaries not
+ # lists of dictionaries, so replace any singleton list
+ # with just the dictionary so that workflows exported from
+ # newer Galaxy instances can be used with older Galaxy
+ # instances if they do no include multiple input
+ # tools. This should be removed at some point. Mirrored
+ # hack in _workflow_from_dict should never be removed so
+ # existing workflow exports continue to function.
+ for input_name, input_conn in dict(input_conn_dict).iteritems():
+ if len(input_conn) == 1:
+ input_conn_dict[input_name] = input_conn[0]
+ step_dict['input_connections'] = input_conn_dict
+ # Position
+ step_dict['position'] = step.position
+ # Add to return value
+ data['steps'][step.order_index] = step_dict
+ return data
+
class UsesFormDefinitionsMixin:
"""Mixin for controllers that use Galaxy form objects."""
diff -r 1f91923153d2d64a216ddbeb06810df3ac12be06 -r 7ed68c60b4546c90f24f4463b644f6fffe712596 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -9,10 +9,10 @@
from galaxy import exceptions
from galaxy import util
from galaxy import web
-from galaxy.tools.parameters import visit_input_values, DataToolParameter, RuntimeValue
+from galaxy.tools.parameters import visit_input_values, DataToolParameter
from galaxy.web import _future_expose_api as expose_api
from galaxy.web.base.controller import BaseAPIController, url_for, UsesStoredWorkflowMixin
-from galaxy.workflow.modules import module_factory, ToolModule
+from galaxy.workflow.modules import module_factory
from galaxy.jobs.actions.post import ActionBox
@@ -365,141 +365,6 @@
return item
- def _workflow_to_dict( self, trans, stored ):
- """
- RPARK: copied from galaxy.web.controllers.workflows.py
- Converts a workflow to a dict of attributes suitable for exporting.
- """
- workflow = stored.latest_workflow
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
- annotation_str = ""
- if workflow_annotation:
- annotation_str = workflow_annotation.annotation
- ### ----------------------------------- ###
-
-
- # Pack workflow data into a dictionary and return
- data = {}
- data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
- data['format-version'] = "0.1"
- data['name'] = workflow.name
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- data['annotation'] = annotation_str
- ### ----------------------------------- ###
-
- data['steps'] = {}
- # For each step, rebuild the form and encode the state
- for step in workflow.steps:
- # Load from database representation
- module = module_factory.from_workflow_step( trans, step )
- if not module:
- return None
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
-
- # TODO: This is duplicated from
- # lib/galaxy/webapps/controllres/workflow.py -- refactor and
- # eliminate copied code.
-
- # Get user annotation.
- step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
- annotation_str = ""
- if step_annotation:
- annotation_str = step_annotation.annotation
- ### ----------------------------------- ###
-
- # Step info
- step_dict = {
- 'id': step.order_index,
- 'type': module.type,
- 'tool_id': module.get_tool_id(),
- 'tool_version' : step.tool_version,
- 'name': module.get_name(),
- 'tool_state': module.get_state( secure=False ),
- 'tool_errors': module.get_errors(),
- ## 'data_inputs': module.get_data_inputs(),
- ## 'data_outputs': module.get_data_outputs(),
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- 'annotation' : annotation_str
- ### ----------------------------------- ###
-
- }
- # Add post-job actions to step dict.
- if module.type == 'tool':
- pja_dict = {}
- for pja in step.post_job_actions:
- pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
- output_name = pja.output_name,
- action_arguments = pja.action_arguments )
- step_dict[ 'post_job_actions' ] = pja_dict
- # Data inputs
- step_dict['inputs'] = []
- if module.type == "data_input":
- # Get input dataset name; default to 'Input Dataset'
- name = module.state.get( 'name', 'Input Dataset')
- step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
- else:
- # Step is a tool and may have runtime inputs.
- for name, val in module.state.inputs.items():
- input_type = type( val )
- if input_type == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- elif input_type == dict:
- # Input type is described by a dict, e.g. indexed parameters.
- for partval in val.values():
- if type( partval ) == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- # User outputs
- step_dict['user_outputs'] = []
- """
- module_outputs = module.get_data_outputs()
- step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
- for output in step_outputs:
- name = output.output_name
- annotation = ""
- for module_output in module_outputs:
- if module_output.get( 'name', None ) == name:
- output_type = module_output.get( 'extension', '' )
- break
- data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
- """
-
- # All step outputs
- step_dict['outputs'] = []
- if type( module ) is ToolModule:
- for output in module.get_data_outputs():
- step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
- # Connections
- input_connections = step.input_connections
- if step.type is None or step.type == 'tool':
- # Determine full (prefixed) names of valid input datasets
- data_input_names = {}
- def callback( input, value, prefixed_name, prefixed_label ):
- if isinstance( input, DataToolParameter ):
- data_input_names[ prefixed_name ] = True
- visit_input_values( module.tool.inputs, module.state.inputs, callback )
- # Filter
- # FIXME: this removes connection without displaying a message currently!
- input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
- # Encode input connections as dictionary
- input_conn_dict = {}
- for conn in input_connections:
- input_conn_dict[ conn.input_name ] = \
- dict( id=conn.output_step.order_index, output_name=conn.output_name )
- step_dict['input_connections'] = input_conn_dict
- # Position
- step_dict['position'] = step.position
- # Add to return value
- data['steps'][step.order_index] = step_dict
- return data
-
@expose_api
def import_shared_workflow(self, trans, payload, **kwd):
"""
diff -r 1f91923153d2d64a216ddbeb06810df3ac12be06 -r 7ed68c60b4546c90f24f4463b644f6fffe712596 lib/galaxy/webapps/galaxy/controllers/workflow.py
--- a/lib/galaxy/webapps/galaxy/controllers/workflow.py
+++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py
@@ -21,7 +21,7 @@
from galaxy.jobs.actions.post import ActionBox
from galaxy.model.item_attrs import UsesItemRatings
from galaxy.model.mapping import desc
-from galaxy.tools.parameters import RuntimeValue, visit_input_values
+from galaxy.tools.parameters import visit_input_values
from galaxy.tools.parameters.basic import DataToolParameter, DrillDownSelectToolParameter, SelectToolParameter, UnvalidatedValue
from galaxy.tools.parameters.grouping import Conditional, Repeat
from galaxy.util.odict import odict
@@ -32,7 +32,7 @@
from galaxy.web.framework import form
from galaxy.web.framework.helpers import grids, time_ago
from galaxy.web.framework.helpers import to_unicode
-from galaxy.workflow.modules import module_factory, ToolModule
+from galaxy.workflow.modules import module_factory
class StoredWorkflowListGrid( grids.Grid ):
@@ -1608,131 +1608,6 @@
shared_by_others=shared_by_others,
ids_in_menu=ids_in_menu )
- def _workflow_to_dict( self, trans, stored ):
- """
- Converts a workflow to a dict of attributes suitable for exporting.
- """
- workflow = stored.latest_workflow
- workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
- annotation_str = ""
- if workflow_annotation:
- annotation_str = workflow_annotation.annotation
- # Pack workflow data into a dictionary and return
- data = {}
- data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
- data['format-version'] = "0.1"
- data['name'] = workflow.name
- data['annotation'] = annotation_str
- data['steps'] = {}
- # For each step, rebuild the form and encode the state
- for step in workflow.steps:
- # Load from database representation
- module = module_factory.from_workflow_step( trans, step )
- if not module:
- return None
- # Get user annotation.
- step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
- annotation_str = ""
- if step_annotation:
- annotation_str = step_annotation.annotation
- # Step info
- step_dict = {
- 'id': step.order_index,
- 'type': module.type,
- 'tool_id': module.get_tool_id(),
- 'tool_version' : step.tool_version,
- 'name': module.get_name(),
- 'tool_state': module.get_state( secure=False ),
- 'tool_errors': module.get_errors(),
- ## 'data_inputs': module.get_data_inputs(),
- ## 'data_outputs': module.get_data_outputs(),
- 'annotation' : annotation_str
- }
- # Add post-job actions to step dict.
- if module.type == 'tool':
- pja_dict = {}
- for pja in step.post_job_actions:
- pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
- output_name = pja.output_name,
- action_arguments = pja.action_arguments )
- step_dict[ 'post_job_actions' ] = pja_dict
- # Data inputs
- step_dict['inputs'] = []
- if module.type == "data_input":
- # Get input dataset name; default to 'Input Dataset'
- name = module.state.get( 'name', 'Input Dataset')
- step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
- else:
- # Step is a tool and may have runtime inputs.
- for name, val in module.state.inputs.items():
- input_type = type( val )
- if input_type == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- elif input_type == dict:
- # Input type is described by a dict, e.g. indexed parameters.
- for partname, partval in val.items():
- if type( partval ) == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- # User outputs
- step_dict['user_outputs'] = []
- """
- module_outputs = module.get_data_outputs()
- step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
- for output in step_outputs:
- name = output.output_name
- annotation = ""
- for module_output in module_outputs:
- if module_output.get( 'name', None ) == name:
- output_type = module_output.get( 'extension', '' )
- break
- data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
- """
-
- # All step outputs
- step_dict['outputs'] = []
- if type( module ) is ToolModule:
- for output in module.get_data_outputs():
- step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
- # Connections
- input_connections = step.input_connections
- if step.type is None or step.type == 'tool':
- # Determine full (prefixed) names of valid input datasets
- data_input_names = {}
- def callback( input, value, prefixed_name, prefixed_label ):
- if isinstance( input, DataToolParameter ):
- data_input_names[ prefixed_name ] = True
-
- # FIXME: this updates modules silently right now; messages from updates should be provided.
- module.check_and_update_state()
- visit_input_values( module.tool.inputs, module.state.inputs, callback )
- # Filter
- # FIXME: this removes connection without displaying a message currently!
- input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
- # Encode input connections as dictionary
- input_conn_dict = {}
- unique_input_names = set( [conn.input_name for conn in input_connections] )
- for input_name in unique_input_names:
- input_conn_dict[ input_name ] = \
- [ dict( id=conn.output_step.order_index, output_name=conn.output_name ) for conn in input_connections if conn.input_name == input_name ]
- # Preserve backward compatability. Previously Galaxy
- # assumed input connections would be dictionaries not
- # lists of dictionaries, so replace any singleton list
- # with just the dictionary so that workflows exported from
- # newer Galaxy instances can be used with older Galaxy
- # instances if they do no include multiple input
- # tools. This should be removed at some point. Mirrored
- # hack in _workflow_from_dict should never be removed so
- # existing workflow exports continue to function.
- for input_name, input_conn in dict(input_conn_dict).iteritems():
- if len(input_conn) == 1:
- input_conn_dict[input_name] = input_conn[0]
- step_dict['input_connections'] = input_conn_dict
- # Position
- step_dict['position'] = step.position
- # Add to return value
- data['steps'][step.order_index] = step_dict
- return data
-
def _workflow_to_svg_canvas( self, trans, stored ):
workflow = stored.latest_workflow
data = []
https://bitbucket.org/galaxy/galaxy-central/commits/8c98ef649bc0/
Changeset: 8c98ef649bc0
User: nsoranzo
Date: 2014-01-24 16:05:27
Summary: Fix typo in action name.
Affected #: 1 file
diff -r 7ed68c60b4546c90f24f4463b644f6fffe712596 -r 8c98ef649bc0f94edf72c9adbff3947243ad33de lib/galaxy/webapps/galaxy/buildapp.py
--- a/lib/galaxy/webapps/galaxy/buildapp.py
+++ b/lib/galaxy/webapps/galaxy/buildapp.py
@@ -167,7 +167,7 @@
webapp.mapper.connect( 'workflow_dict', '/api/workflows/{workflow_id}/download', controller='workflows', action='workflow_dict', conditions=dict( method=['GET'] ) )
# Preserve the following download route for now for dependent applications -- deprecate at some point
webapp.mapper.connect( 'workflow_dict', '/api/workflows/download/{workflow_id}', controller='workflows', action='workflow_dict', conditions=dict( method=['GET'] ) )
- webapp.mapper.connect( 'import_shared_workflow', '/api/workflows/import', controller='workflows', action='import_shared_worflow', conditions=dict( method=['POST'] ) )
+ webapp.mapper.connect( 'import_shared_workflow', '/api/workflows/import', controller='workflows', action='import_shared_workflow', conditions=dict( method=['POST'] ) )
# ============================
# ===== AUTHENTICATE API =====
https://bitbucket.org/galaxy/galaxy-central/commits/51798d8a3c92/
Changeset: 51798d8a3c92
User: jmchilton
Date: 2014-01-25 17:27:04
Summary: Merged in nsoranzo/galaxy-central (pull request #306)
Fix typo and reduce duplication in workflow API
Affected #: 4 files
diff -r 122fe556dc384291119115d096210e4298e43f93 -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -5,16 +5,12 @@
import operator
import os
import re
-import urllib
from gettext import gettext
import pkg_resources
pkg_resources.require("SQLAlchemy >= 0.4")
from sqlalchemy import func, and_, select
-pkg_resources.require( "Routes" )
-import routes
-
from paste.httpexceptions import HTTPBadRequest, HTTPInternalServerError
from paste.httpexceptions import HTTPNotImplemented, HTTPRequestRangeNotSatisfiable
from galaxy.exceptions import ItemAccessibilityException, ItemDeletionException, ItemOwnershipException
@@ -40,8 +36,11 @@
from galaxy.model import ExtendedMetadata, ExtendedMetadataIndex, LibraryDatasetDatasetAssociation, HistoryDatasetAssociation
-from galaxy.datatypes.display_applications import util as da_util
from galaxy.datatypes.metadata import FileParameter
+from galaxy.tools.parameters import RuntimeValue, visit_input_values
+from galaxy.tools.parameters.basic import DataToolParameter
+from galaxy.util.json import to_json_string
+from galaxy.workflow.modules import ToolModule
log = logging.getLogger( __name__ )
@@ -1559,6 +1558,227 @@
session.flush()
return imported_stored
+ def _workflow_from_dict( self, trans, data, source=None, add_to_menu=False ):
+ """
+ Creates a workflow from a dict. Created workflow is stored in the database and returned.
+ """
+ from galaxy.webapps.galaxy.controllers.workflow import attach_ordered_steps
+
+ # Put parameters in workflow mode
+ trans.workflow_building_mode = True
+ # Create new workflow from incoming dict
+ workflow = model.Workflow()
+ # If there's a source, put it in the workflow name.
+ if source:
+ name = "%s (imported from %s)" % ( data['name'], source )
+ else:
+ name = data['name']
+ workflow.name = name
+ # Assume no errors until we find a step that has some
+ workflow.has_errors = False
+ # Create each step
+ steps = []
+ # The editor will provide ids for each step that we don't need to save,
+ # but do need to use to make connections
+ steps_by_external_id = {}
+ # Keep track of tools required by the workflow that are not available in
+ # the local Galaxy instance. Each tuple in the list of missing_tool_tups
+ # will be ( tool_id, tool_name, tool_version ).
+ missing_tool_tups = []
+ # First pass to build step objects and populate basic values
+ for step_dict in data[ 'steps' ].itervalues():
+ # Create the model class for the step
+ step = model.WorkflowStep()
+ steps.append( step )
+ steps_by_external_id[ step_dict['id' ] ] = step
+ # FIXME: Position should be handled inside module
+ step.position = step_dict['position']
+ module = module_factory.from_dict( trans, step_dict, secure=False )
+ module.save_to_step( step )
+ if module.type == 'tool' and module.tool is None:
+ # A required tool is not available in the local Galaxy instance.
+ missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
+ if missing_tool_tup not in missing_tool_tups:
+ missing_tool_tups.append( missing_tool_tup )
+ # Save the entire step_dict in the unused config field, be parsed later
+ # when we do have the tool
+ step.config = to_json_string(step_dict)
+ if step.tool_errors:
+ workflow.has_errors = True
+ # Stick this in the step temporarily
+ step.temp_input_connections = step_dict['input_connections']
+ # Save step annotation.
+ annotation = step_dict[ 'annotation' ]
+ if annotation:
+ annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
+ self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
+ # Second pass to deal with connections between steps
+ for step in steps:
+ # Input connections
+ for input_name, conn_list in step.temp_input_connections.iteritems():
+ if not conn_list:
+ continue
+ if not isinstance(conn_list, list): # Older style singleton connection
+ conn_list = [conn_list]
+ for conn_dict in conn_list:
+ conn = model.WorkflowStepConnection()
+ conn.input_step = step
+ conn.input_name = input_name
+ conn.output_name = conn_dict['output_name']
+ conn.output_step = steps_by_external_id[ conn_dict['id'] ]
+ del step.temp_input_connections
+
+ # Order the steps if possible
+ attach_ordered_steps( workflow, steps )
+
+ # Connect up
+ stored = model.StoredWorkflow()
+ stored.name = workflow.name
+ workflow.stored_workflow = stored
+ stored.latest_workflow = workflow
+ stored.user = trans.user
+ if data[ 'annotation' ]:
+ self.add_item_annotation( trans.sa_session, stored.user, stored, data[ 'annotation' ] )
+
+ # Persist
+ trans.sa_session.add( stored )
+ trans.sa_session.flush()
+
+ if add_to_menu:
+ if trans.user.stored_workflow_menu_entries == None:
+ trans.user.stored_workflow_menu_entries = []
+ menuEntry = model.StoredWorkflowMenuEntry()
+ menuEntry.stored_workflow = stored
+ trans.user.stored_workflow_menu_entries.append( menuEntry )
+ trans.sa_session.flush()
+
+ return stored, missing_tool_tups
+
+ def _workflow_to_dict( self, trans, stored ):
+ """
+ Converts a workflow to a dict of attributes suitable for exporting.
+ """
+ workflow = stored.latest_workflow
+ workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
+ annotation_str = ""
+ if workflow_annotation:
+ annotation_str = workflow_annotation.annotation
+ # Pack workflow data into a dictionary and return
+ data = {}
+ data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
+ data['format-version'] = "0.1"
+ data['name'] = workflow.name
+ data['annotation'] = annotation_str
+ data['steps'] = {}
+ # For each step, rebuild the form and encode the state
+ for step in workflow.steps:
+ # Load from database representation
+ module = module_factory.from_workflow_step( trans, step )
+ if not module:
+ return None
+ # Get user annotation.
+ step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
+ annotation_str = ""
+ if step_annotation:
+ annotation_str = step_annotation.annotation
+ # Step info
+ step_dict = {
+ 'id': step.order_index,
+ 'type': module.type,
+ 'tool_id': module.get_tool_id(),
+ 'tool_version' : step.tool_version,
+ 'name': module.get_name(),
+ 'tool_state': module.get_state( secure=False ),
+ 'tool_errors': module.get_errors(),
+ ## 'data_inputs': module.get_data_inputs(),
+ ## 'data_outputs': module.get_data_outputs(),
+ 'annotation' : annotation_str
+ }
+ # Add post-job actions to step dict.
+ if module.type == 'tool':
+ pja_dict = {}
+ for pja in step.post_job_actions:
+ pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
+ output_name = pja.output_name,
+ action_arguments = pja.action_arguments )
+ step_dict[ 'post_job_actions' ] = pja_dict
+ # Data inputs
+ step_dict['inputs'] = []
+ if module.type == "data_input":
+ # Get input dataset name; default to 'Input Dataset'
+ name = module.state.get( 'name', 'Input Dataset')
+ step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
+ else:
+ # Step is a tool and may have runtime inputs.
+ for name, val in module.state.inputs.items():
+ input_type = type( val )
+ if input_type == RuntimeValue:
+ step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
+ elif input_type == dict:
+ # Input type is described by a dict, e.g. indexed parameters.
+ for partval in val.values():
+ if type( partval ) == RuntimeValue:
+ step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
+ # User outputs
+ step_dict['user_outputs'] = []
+ """
+ module_outputs = module.get_data_outputs()
+ step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
+ for output in step_outputs:
+ name = output.output_name
+ annotation = ""
+ for module_output in module_outputs:
+ if module_output.get( 'name', None ) == name:
+ output_type = module_output.get( 'extension', '' )
+ break
+ data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
+ """
+
+ # All step outputs
+ step_dict['outputs'] = []
+ if type( module ) is ToolModule:
+ for output in module.get_data_outputs():
+ step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
+ # Connections
+ input_connections = step.input_connections
+ if step.type is None or step.type == 'tool':
+ # Determine full (prefixed) names of valid input datasets
+ data_input_names = {}
+ def callback( input, value, prefixed_name, prefixed_label ):
+ if isinstance( input, DataToolParameter ):
+ data_input_names[ prefixed_name ] = True
+
+ # FIXME: this updates modules silently right now; messages from updates should be provided.
+ module.check_and_update_state()
+ visit_input_values( module.tool.inputs, module.state.inputs, callback )
+ # Filter
+ # FIXME: this removes connection without displaying a message currently!
+ input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
+ # Encode input connections as dictionary
+ input_conn_dict = {}
+ unique_input_names = set( [conn.input_name for conn in input_connections] )
+ for input_name in unique_input_names:
+ input_conn_dict[ input_name ] = \
+ [ dict( id=conn.output_step.order_index, output_name=conn.output_name ) for conn in input_connections if conn.input_name == input_name ]
+ # Preserve backward compatability. Previously Galaxy
+ # assumed input connections would be dictionaries not
+ # lists of dictionaries, so replace any singleton list
+ # with just the dictionary so that workflows exported from
+ # newer Galaxy instances can be used with older Galaxy
+ # instances if they do no include multiple input
+ # tools. This should be removed at some point. Mirrored
+ # hack in _workflow_from_dict should never be removed so
+ # existing workflow exports continue to function.
+ for input_name, input_conn in dict(input_conn_dict).iteritems():
+ if len(input_conn) == 1:
+ input_conn_dict[input_name] = input_conn[0]
+ step_dict['input_connections'] = input_conn_dict
+ # Position
+ step_dict['position'] = step.position
+ # Add to return value
+ data['steps'][step.order_index] = step_dict
+ return data
+
class UsesFormDefinitionsMixin:
"""Mixin for controllers that use Galaxy form objects."""
diff -r 122fe556dc384291119115d096210e4298e43f93 -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -9,14 +9,12 @@
from galaxy import exceptions
from galaxy import util
from galaxy import web
-from galaxy import model
-from galaxy.tools.parameters import visit_input_values, DataToolParameter, RuntimeValue
+from galaxy.tools.parameters import visit_input_values, DataToolParameter
from galaxy.web import _future_expose_api as expose_api
from galaxy.web.base.controller import BaseAPIController, url_for, UsesStoredWorkflowMixin
-from galaxy.workflow.modules import module_factory, ToolModule
+from galaxy.workflow.modules import module_factory
from galaxy.jobs.actions.post import ActionBox
-from ..controllers.workflow import attach_ordered_steps
log = logging.getLogger(__name__)
@@ -367,226 +365,8 @@
return item
- def _workflow_from_dict( self, trans, data, source=None ):
- """
- RPARK: copied from galaxy.webapps.galaxy.controllers.workflows.py
- Creates a workflow from a dict. Created workflow is stored in the database and returned.
- """
- # Put parameters in workflow mode
- trans.workflow_building_mode = True
- # Create new workflow from incoming dict
- workflow = model.Workflow()
- # If there's a source, put it in the workflow name.
- if source:
- name = "%s (imported from %s)" % ( data['name'], source )
- else:
- name = data['name']
- workflow.name = name
- # Assume no errors until we find a step that has some
- workflow.has_errors = False
- # Create each step
- steps = []
- # The editor will provide ids for each step that we don't need to save,
- # but do need to use to make connections
- steps_by_external_id = {}
- # Keep track of tools required by the workflow that are not available in
- # the local Galaxy instance. Each tuple in the list of missing_tool_tups
- # will be ( tool_id, tool_name, tool_version ).
- missing_tool_tups = []
- # First pass to build step objects and populate basic values
- for step_dict in data[ 'steps' ].itervalues():
- # Create the model class for the step
- step = model.WorkflowStep()
- steps.append( step )
- steps_by_external_id[ step_dict['id' ] ] = step
- # FIXME: Position should be handled inside module
- step.position = step_dict['position']
- module = module_factory.from_dict( trans, step_dict, secure=False )
- if module.type == 'tool' and module.tool is None:
- # A required tool is not available in the local Galaxy instance.
- missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
- if missing_tool_tup not in missing_tool_tups:
- missing_tool_tups.append( missing_tool_tup )
- module.save_to_step( step )
- if step.tool_errors:
- workflow.has_errors = True
- # Stick this in the step temporarily
- step.temp_input_connections = step_dict['input_connections']
- # Save step annotation.
- #annotation = step_dict[ 'annotation' ]
- #if annotation:
- #annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
- # ------------------------------------------ #
- # RPARK REMOVING: user annotation b/c of API
- #self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
- # ------------------------------------------ #
- # Unpack and add post-job actions.
- post_job_actions = step_dict.get( 'post_job_actions', {} )
- for name, pja_dict in post_job_actions.items():
- model.PostJobAction( pja_dict[ 'action_type' ],
- step, pja_dict[ 'output_name' ],
- pja_dict[ 'action_arguments' ] )
- # Second pass to deal with connections between steps
- for step in steps:
- # Input connections
- for input_name, conn_dict in step.temp_input_connections.iteritems():
- if conn_dict:
- conn = model.WorkflowStepConnection()
- conn.input_step = step
- conn.input_name = input_name
- conn.output_name = conn_dict['output_name']
- conn.output_step = steps_by_external_id[ conn_dict['id'] ]
- del step.temp_input_connections
- # Order the steps if possible
- attach_ordered_steps( workflow, steps )
- # Connect up
- stored = model.StoredWorkflow()
- stored.name = workflow.name
- workflow.stored_workflow = stored
- stored.latest_workflow = workflow
- stored.user = trans.user
- # Persist
- trans.sa_session.add( stored )
- trans.sa_session.flush()
- return stored, missing_tool_tups
-
- def _workflow_to_dict( self, trans, stored ):
- """
- RPARK: copied from galaxy.web.controllers.workflows.py
- Converts a workflow to a dict of attributes suitable for exporting.
- """
- workflow = stored.latest_workflow
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
- annotation_str = ""
- if workflow_annotation:
- annotation_str = workflow_annotation.annotation
- ### ----------------------------------- ###
-
-
- # Pack workflow data into a dictionary and return
- data = {}
- data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
- data['format-version'] = "0.1"
- data['name'] = workflow.name
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- data['annotation'] = annotation_str
- ### ----------------------------------- ###
-
- data['steps'] = {}
- # For each step, rebuild the form and encode the state
- for step in workflow.steps:
- # Load from database representation
- module = module_factory.from_workflow_step( trans, step )
- if not module:
- return None
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
-
- # TODO: This is duplicated from
- # lib/galaxy/webapps/controllres/workflow.py -- refactor and
- # eliminate copied code.
-
- # Get user annotation.
- step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
- annotation_str = ""
- if step_annotation:
- annotation_str = step_annotation.annotation
- ### ----------------------------------- ###
-
- # Step info
- step_dict = {
- 'id': step.order_index,
- 'type': module.type,
- 'tool_id': module.get_tool_id(),
- 'tool_version' : step.tool_version,
- 'name': module.get_name(),
- 'tool_state': module.get_state( secure=False ),
- 'tool_errors': module.get_errors(),
- ## 'data_inputs': module.get_data_inputs(),
- ## 'data_outputs': module.get_data_outputs(),
-
- ### ----------------------------------- ###
- ## RPARK EDIT ##
- 'annotation' : annotation_str
- ### ----------------------------------- ###
-
- }
- # Add post-job actions to step dict.
- if module.type == 'tool':
- pja_dict = {}
- for pja in step.post_job_actions:
- pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
- output_name = pja.output_name,
- action_arguments = pja.action_arguments )
- step_dict[ 'post_job_actions' ] = pja_dict
- # Data inputs
- step_dict['inputs'] = []
- if module.type == "data_input":
- # Get input dataset name; default to 'Input Dataset'
- name = module.state.get( 'name', 'Input Dataset')
- step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
- else:
- # Step is a tool and may have runtime inputs.
- for name, val in module.state.inputs.items():
- input_type = type( val )
- if input_type == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- elif input_type == dict:
- # Input type is described by a dict, e.g. indexed parameters.
- for partval in val.values():
- if type( partval ) == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- # User outputs
- step_dict['user_outputs'] = []
- """
- module_outputs = module.get_data_outputs()
- step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
- for output in step_outputs:
- name = output.output_name
- annotation = ""
- for module_output in module_outputs:
- if module_output.get( 'name', None ) == name:
- output_type = module_output.get( 'extension', '' )
- break
- data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
- """
-
- # All step outputs
- step_dict['outputs'] = []
- if type( module ) is ToolModule:
- for output in module.get_data_outputs():
- step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
- # Connections
- input_connections = step.input_connections
- if step.type is None or step.type == 'tool':
- # Determine full (prefixed) names of valid input datasets
- data_input_names = {}
- def callback( input, value, prefixed_name, prefixed_label ):
- if isinstance( input, DataToolParameter ):
- data_input_names[ prefixed_name ] = True
- visit_input_values( module.tool.inputs, module.state.inputs, callback )
- # Filter
- # FIXME: this removes connection without displaying a message currently!
- input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
- # Encode input connections as dictionary
- input_conn_dict = {}
- for conn in input_connections:
- input_conn_dict[ conn.input_name ] = \
- dict( id=conn.output_step.order_index, output_name=conn.output_name )
- step_dict['input_connections'] = input_conn_dict
- # Position
- step_dict['position'] = step.position
- # Add to return value
- data['steps'][step.order_index] = step_dict
- return data
-
@expose_api
- def import_shared_worflow(self, trans, payload, **kwd):
+ def import_shared_workflow(self, trans, payload, **kwd):
"""
POST /api/workflows/import
Import a workflow shared by other users.
diff -r 122fe556dc384291119115d096210e4298e43f93 -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 lib/galaxy/webapps/galaxy/buildapp.py
--- a/lib/galaxy/webapps/galaxy/buildapp.py
+++ b/lib/galaxy/webapps/galaxy/buildapp.py
@@ -167,7 +167,7 @@
webapp.mapper.connect( 'workflow_dict', '/api/workflows/{workflow_id}/download', controller='workflows', action='workflow_dict', conditions=dict( method=['GET'] ) )
# Preserve the following download route for now for dependent applications -- deprecate at some point
webapp.mapper.connect( 'workflow_dict', '/api/workflows/download/{workflow_id}', controller='workflows', action='workflow_dict', conditions=dict( method=['GET'] ) )
- webapp.mapper.connect( 'import_shared_workflow', '/api/workflows/import', controller='workflows', action='import_shared_worflow', conditions=dict( method=['POST'] ) )
+ webapp.mapper.connect( 'import_shared_workflow', '/api/workflows/import', controller='workflows', action='import_shared_workflow', conditions=dict( method=['POST'] ) )
# ============================
# ===== AUTHENTICATE API =====
diff -r 122fe556dc384291119115d096210e4298e43f93 -r 51798d8a3c92a2290537f6dcfb8f93e6f1371509 lib/galaxy/webapps/galaxy/controllers/workflow.py
--- a/lib/galaxy/webapps/galaxy/controllers/workflow.py
+++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py
@@ -21,10 +21,9 @@
from galaxy.jobs.actions.post import ActionBox
from galaxy.model.item_attrs import UsesItemRatings
from galaxy.model.mapping import desc
-from galaxy.tools.parameters import RuntimeValue, visit_input_values
+from galaxy.tools.parameters import visit_input_values
from galaxy.tools.parameters.basic import DataToolParameter, DrillDownSelectToolParameter, SelectToolParameter, UnvalidatedValue
from galaxy.tools.parameters.grouping import Conditional, Repeat
-from galaxy.util.json import to_json_string
from galaxy.util.odict import odict
from galaxy.util.sanitize_html import sanitize_html
from galaxy.util.topsort import CycleError, topsort, topsort_levels
@@ -33,7 +32,7 @@
from galaxy.web.framework import form
from galaxy.web.framework.helpers import grids, time_ago
from galaxy.web.framework.helpers import to_unicode
-from galaxy.workflow.modules import module_factory, ToolModule
+from galaxy.workflow.modules import module_factory
class StoredWorkflowListGrid( grids.Grid ):
@@ -1609,225 +1608,6 @@
shared_by_others=shared_by_others,
ids_in_menu=ids_in_menu )
- def _workflow_to_dict( self, trans, stored ):
- """
- Converts a workflow to a dict of attributes suitable for exporting.
- """
- workflow = stored.latest_workflow
- workflow_annotation = self.get_item_annotation_obj( trans.sa_session, trans.user, stored )
- annotation_str = ""
- if workflow_annotation:
- annotation_str = workflow_annotation.annotation
- # Pack workflow data into a dictionary and return
- data = {}
- data['a_galaxy_workflow'] = 'true' # Placeholder for identifying galaxy workflow
- data['format-version'] = "0.1"
- data['name'] = workflow.name
- data['annotation'] = annotation_str
- data['steps'] = {}
- # For each step, rebuild the form and encode the state
- for step in workflow.steps:
- # Load from database representation
- module = module_factory.from_workflow_step( trans, step )
- if not module:
- return None
- # Get user annotation.
- step_annotation = self.get_item_annotation_obj(trans.sa_session, trans.user, step )
- annotation_str = ""
- if step_annotation:
- annotation_str = step_annotation.annotation
- # Step info
- step_dict = {
- 'id': step.order_index,
- 'type': module.type,
- 'tool_id': module.get_tool_id(),
- 'tool_version' : step.tool_version,
- 'name': module.get_name(),
- 'tool_state': module.get_state( secure=False ),
- 'tool_errors': module.get_errors(),
- ## 'data_inputs': module.get_data_inputs(),
- ## 'data_outputs': module.get_data_outputs(),
- 'annotation' : annotation_str
- }
- # Add post-job actions to step dict.
- if module.type == 'tool':
- pja_dict = {}
- for pja in step.post_job_actions:
- pja_dict[pja.action_type+pja.output_name] = dict( action_type = pja.action_type,
- output_name = pja.output_name,
- action_arguments = pja.action_arguments )
- step_dict[ 'post_job_actions' ] = pja_dict
- # Data inputs
- step_dict['inputs'] = []
- if module.type == "data_input":
- # Get input dataset name; default to 'Input Dataset'
- name = module.state.get( 'name', 'Input Dataset')
- step_dict['inputs'].append( { "name" : name, "description" : annotation_str } )
- else:
- # Step is a tool and may have runtime inputs.
- for name, val in module.state.inputs.items():
- input_type = type( val )
- if input_type == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- elif input_type == dict:
- # Input type is described by a dict, e.g. indexed parameters.
- for partname, partval in val.items():
- if type( partval ) == RuntimeValue:
- step_dict['inputs'].append( { "name" : name, "description" : "runtime parameter for tool %s" % module.get_name() } )
- # User outputs
- step_dict['user_outputs'] = []
- """
- module_outputs = module.get_data_outputs()
- step_outputs = trans.sa_session.query( WorkflowOutput ).filter( step=step )
- for output in step_outputs:
- name = output.output_name
- annotation = ""
- for module_output in module_outputs:
- if module_output.get( 'name', None ) == name:
- output_type = module_output.get( 'extension', '' )
- break
- data['outputs'][name] = { 'name' : name, 'annotation' : annotation, 'type' : output_type }
- """
-
- # All step outputs
- step_dict['outputs'] = []
- if type( module ) is ToolModule:
- for output in module.get_data_outputs():
- step_dict['outputs'].append( { 'name' : output['name'], 'type' : output['extensions'][0] } )
- # Connections
- input_connections = step.input_connections
- if step.type is None or step.type == 'tool':
- # Determine full (prefixed) names of valid input datasets
- data_input_names = {}
- def callback( input, value, prefixed_name, prefixed_label ):
- if isinstance( input, DataToolParameter ):
- data_input_names[ prefixed_name ] = True
-
- # FIXME: this updates modules silently right now; messages from updates should be provided.
- module.check_and_update_state()
- visit_input_values( module.tool.inputs, module.state.inputs, callback )
- # Filter
- # FIXME: this removes connection without displaying a message currently!
- input_connections = [ conn for conn in input_connections if conn.input_name in data_input_names ]
- # Encode input connections as dictionary
- input_conn_dict = {}
- unique_input_names = set( [conn.input_name for conn in input_connections] )
- for input_name in unique_input_names:
- input_conn_dict[ input_name ] = \
- [ dict( id=conn.output_step.order_index, output_name=conn.output_name ) for conn in input_connections if conn.input_name == input_name ]
- # Preserve backward compatability. Previously Galaxy
- # assumed input connections would be dictionaries not
- # lists of dictionaries, so replace any singleton list
- # with just the dictionary so that workflows exported from
- # newer Galaxy instances can be used with older Galaxy
- # instances if they do no include multiple input
- # tools. This should be removed at some point. Mirrored
- # hack in _workflow_from_dict should never be removed so
- # existing workflow exports continue to function.
- for input_name, input_conn in dict(input_conn_dict).iteritems():
- if len(input_conn) == 1:
- input_conn_dict[input_name] = input_conn[0]
- step_dict['input_connections'] = input_conn_dict
- # Position
- step_dict['position'] = step.position
- # Add to return value
- data['steps'][step.order_index] = step_dict
- return data
-
- def _workflow_from_dict( self, trans, data, source=None, add_to_menu=False ):
- """
- Creates a workflow from a dict. Created workflow is stored in the database and returned.
- """
- # Put parameters in workflow mode
- trans.workflow_building_mode = True
- # Create new workflow from incoming dict
- workflow = model.Workflow()
- # If there's a source, put it in the workflow name.
- if source:
- name = "%s (imported from %s)" % ( data['name'], source )
- else:
- name = data['name']
- workflow.name = name
- # Assume no errors until we find a step that has some
- workflow.has_errors = False
- # Create each step
- steps = []
- # The editor will provide ids for each step that we don't need to save,
- # but do need to use to make connections
- steps_by_external_id = {}
- # Keep track of tools required by the workflow that are not available in
- # the local Galaxy instance. Each tuple in the list of missing_tool_tups
- # will be ( tool_id, tool_name, tool_version ).
- missing_tool_tups = []
- # First pass to build step objects and populate basic values
- for key, step_dict in data[ 'steps' ].iteritems():
- # Create the model class for the step
- step = model.WorkflowStep()
- steps.append( step )
- steps_by_external_id[ step_dict['id' ] ] = step
- # FIXME: Position should be handled inside module
- step.position = step_dict['position']
- module = module_factory.from_dict( trans, step_dict, secure=False )
- module.save_to_step( step )
- if module.type == 'tool' and module.tool is None:
- # A required tool is not available in the local Galaxy instance.
- missing_tool_tup = ( step_dict[ 'tool_id' ], step_dict[ 'name' ], step_dict[ 'tool_version' ] )
- if missing_tool_tup not in missing_tool_tups:
- missing_tool_tups.append( missing_tool_tup )
- # Save the entire step_dict in the unused config field, be parsed later
- # when we do have the too when we do have the tool
- step.config = to_json_string(step_dict)
- if step.tool_errors:
- workflow.has_errors = True
- # Stick this in the step temporarily
- step.temp_input_connections = step_dict['input_connections']
- # Save step annotation.
- annotation = step_dict[ 'annotation' ]
- if annotation:
- annotation = sanitize_html( annotation, 'utf-8', 'text/html' )
- self.add_item_annotation( trans.sa_session, trans.get_user(), step, annotation )
- # Second pass to deal with connections between steps
- for step in steps:
- # Input connections
- for input_name, conn_list in step.temp_input_connections.iteritems():
- if not conn_list:
- continue
- if not isinstance(conn_list, list): # Older style singleton connection
- conn_list = [conn_list]
- for conn_dict in conn_list:
- conn = model.WorkflowStepConnection()
- conn.input_step = step
- conn.input_name = input_name
- conn.output_name = conn_dict['output_name']
- conn.output_step = steps_by_external_id[ conn_dict['id'] ]
- del step.temp_input_connections
-
- # Order the steps if possible
- attach_ordered_steps( workflow, steps )
-
- # Connect up
- stored = model.StoredWorkflow()
- stored.name = workflow.name
- workflow.stored_workflow = stored
- stored.latest_workflow = workflow
- stored.user = trans.user
- if data[ 'annotation' ]:
- self.add_item_annotation( trans.sa_session, stored.user, stored, data[ 'annotation' ] )
-
- # Persist
- trans.sa_session.add( stored )
- trans.sa_session.flush()
-
- if add_to_menu:
- if trans.user.stored_workflow_menu_entries == None:
- trans.user.stored_workflow_menu_entries = []
- menuEntry = model.StoredWorkflowMenuEntry()
- menuEntry.stored_workflow = stored
- trans.user.stored_workflow_menu_entries.append( menuEntry )
- trans.sa_session.flush()
-
- return stored, missing_tool_tups
-
def _workflow_to_svg_canvas( self, trans, stored ):
workflow = stored.latest_workflow
data = []
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: guerler: Upload: Allow backend to set file names
by commits-noreply@bitbucket.org 25 Jan '14
by commits-noreply@bitbucket.org 25 Jan '14
25 Jan '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/122fe556dc38/
Changeset: 122fe556dc38
User: guerler
Date: 2014-01-25 06:23:19
Summary: Upload: Allow backend to set file names
Affected #: 2 files
diff -r c5caf4ce55aa0102b85032805ddd50445cb03002 -r 122fe556dc384291119115d096210e4298e43f93 static/scripts/mvc/upload/upload-view.js
--- a/static/scripts/mvc/upload/upload-view.js
+++ b/static/scripts/mvc/upload/upload-view.js
@@ -372,7 +372,6 @@
tool_input = {};
tool_input['dbkey'] = genome;
tool_input['file_type'] = file_type;
- tool_input['files_0|NAME'] = file_name;
tool_input['files_0|type'] = 'upload_dataset';
tool_input['files_0|url_paste'] = url_paste;
tool_input['space_to_tabs'] = space_to_tabs;
diff -r c5caf4ce55aa0102b85032805ddd50445cb03002 -r 122fe556dc384291119115d096210e4298e43f93 static/scripts/packed/mvc/upload/upload-view.js
--- a/static/scripts/packed/mvc/upload/upload-view.js
+++ b/static/scripts/packed/mvc/upload/upload-view.js
@@ -1,1 +1,1 @@
-define(["galaxy.modal","utils/utils","mvc/upload/upload-model","mvc/upload/upload-row","mvc/ui","utils/uploadbox"],function(c,f,e,d){var b=Backbone.Model.extend({defaults:{percentage:0,icon:"fa-circle",label:"",status:""}});var a=Backbone.View.extend({model:null,initialize:function(h){var g=this;this.model=h;this.options=this.model.attributes;this.setElement(this._template(this.options));$(this.el).on("click",this.options.onclick);if(this.options.tooltip){$(this.el).tooltip({title:this.options.tooltip,placement:"bottom"})}this.model.on("change:percentage",function(){g._percentage(g.model.get("percentage"))});this.model.on("change:status",function(){g._status(g.model.get("status"))});var g=this;$(window).on("beforeunload",function(){var i="";if(g.options.onunload){i=g.options.onunload()}if(i!=""){return i}})},_status:function(h){var g=this.$el.find(".progress-bar");g.removeClass();g.addClass("progress-bar");g.addClass("progress-bar-notransition");if(h!=""){g.addClass("progress-bar-"+h)}},_percentage:function(h){var g=this.$el.find(".progress-bar");g.css({width:h+"%"})},_template:function(g){return'<div class="progress-button"><div class="progress"><div class="progress-bar"></div></div><div id="label" class="label"><div class="fa '+g.icon+'"></div> '+g.label+"</div></div>"}});return Backbone.View.extend({modal:null,button_show:null,uploadbox:null,current_history:null,upload_size:0,select_extension:[["Auto-detect","auto"]],select_genome:[["Unspecified (?)","?"]],collection:new e.Collection(),counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},options:{nginx_upload_path:""},initialize:function(h){var g=this;if(!Galaxy.currHistoryPanel||!Galaxy.currHistoryPanel.model){window.setTimeout(function(){g.initialize()},500);return}if(!Galaxy.currUser.get("id")){return}this.button_show=new b({icon:"fa-upload",tooltip:"Download from URL or upload files from disk",label:"Load Data",onclick:function(i){if(i){g._eventShow(i)}},onunload:function(){if(g.counter.running>0){return"Several uploads are still processing."}}});$("#left .unified-panel-header-inner").append((new a(this.button_show)).$el);var g=this;f.jsonFromUrl(galaxy_config.root+"api/datatypes",function(i){for(key in i){g.select_extension.push([i[key],i[key]])}});f.jsonFromUrl(galaxy_config.root+"api/genomes",function(i){var j=g.select_genome[0];g.select_genome=[];for(key in i){if(i[key].length>1){if(i[key][1]!==j[1]){g.select_genome.push(i[key])}}}g.select_genome.sort(function(l,k){return l[0]>k[0]?1:l[0]<k[0]?-1:0});g.select_genome.unshift(j)});if(h){this.options=_.defaults(h,this.options)}this.collection.on("remove",function(i){g._eventRemove(i)});this.collection.on("change:genome",function(j){var i=j.get("genome");g.collection.each(function(k){if(k.get("status")=="init"&&k.get("genome")=="?"){k.set("genome",i)}})})},_eventShow:function(h){h.preventDefault();h.stopPropagation();if(!this.modal){var g=this;this.modal=new c.GalaxyModal({title:"Download data directly from web or upload files from your disk",body:this._template("upload-box","upload-info"),buttons:{"Choose files":function(){g.uploadbox.select()},"Create file":function(){g._eventCreate()},Start:function(){g._eventStart()},Pause:function(){g._eventStop()},Reset:function(){g._eventReset()},Close:function(){g.modal.hide()},},height:"400",width:"900",closing_events:true});this.setElement("#upload-box");var g=this;this.uploadbox=this.$el.uploadbox({announce:function(i,j,k){g._eventAnnounce(i,j,k)},initialize:function(i,j,k){return g._eventInitialize(i,j,k)},progress:function(i,j,k){g._eventProgress(i,j,k)},success:function(i,j,k){g._eventSuccess(i,j,k)},error:function(i,j,k){g._eventError(i,j,k)},complete:function(){g._eventComplete()}});this._updateScreen()}this.modal.show()},_eventRemove:function(h){var g=h.get("status");if(g=="success"){this.counter.success--}else{if(g=="error"){this.counter.error--}else{this.counter.announce--}}this._updateScreen();this.uploadbox.remove(h.id)},_eventAnnounce:function(g,h,j){this.counter.announce++;this._updateScreen();var i=new d(this,{id:g,file_name:h.name,file_size:h.size});this.collection.add(i.model);$(this.el).find("tbody:last").append(i.$el);i.render()},_eventInitialize:function(k,g,o){var i=this.collection.get(k);i.set("status","running");var h=i.get("extension");var l=i.get("file_name");var n=i.get("genome");var m=i.get("url_paste");var j=i.get("space_to_tabs");if(!m&&!(g.size>0)){return null}this.uploadbox.configure({url:this.options.nginx_upload_path,paramname:"files_0|file_data"});tool_input={};tool_input.dbkey=n;tool_input.file_type=h;tool_input["files_0|NAME"]=l;tool_input["files_0|type"]="upload_dataset";tool_input["files_0|url_paste"]=m;tool_input.space_to_tabs=j;data={};data.history_id=this.current_history;data.tool_id="upload1";data.inputs=JSON.stringify(tool_input);return data},_eventProgress:function(h,i,g){var j=this.collection.get(h);j.set("percentage",g);this.button_show.set("percentage",this._upload_percentage(g,i.size))},_eventSuccess:function(h,i,k){var j=this.collection.get(h);j.set("status","success");var g=j.get("file_size");this.button_show.set("percentage",this._upload_percentage(100,g));this.upload_completed+=g*100;this.counter.announce--;this.counter.success++;this._updateScreen();Galaxy.currHistoryPanel.refreshHdas()},_eventError:function(g,h,j){var i=this.collection.get(g);i.set("status","error");i.set("info",j);this.button_show.set("percentage",this._upload_percentage(100,h.size));this.button_show.set("status","danger");this.upload_completed+=h.size*100;this.counter.announce--;this.counter.error++;this._updateScreen()},_eventComplete:function(){this.collection.each(function(g){if(g.get("status")=="queued"){g.set("status","init")}});this.counter.running=0;this._updateScreen()},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:-1}])},_eventStart:function(){if(this.counter.announce==0||this.counter.running>0){return}var g=this;this.upload_size=0;this.upload_completed=0;this.collection.each(function(h){if(h.get("status")=="init"){h.set("status","queued");g.upload_size+=h.get("file_size")}});this.button_show.set("percentage",0);this.button_show.set("status","success");this.current_history=Galaxy.currHistoryPanel.model.get("id");this.counter.running=this.counter.announce;this._updateScreen();this.uploadbox.start()},_eventStop:function(){if(this.counter.running==0){return}this.button_show.set("status","info");this.uploadbox.stop();$("#upload-info").html("Queue will pause after completing the current file...")},_eventReset:function(){if(this.counter.running==0){this.collection.reset();this.counter.reset();this._updateScreen();this.uploadbox.reset();this.button_show.set("percentage",0)}},_updateScreen:function(){if(this.counter.announce==0){if(this.uploadbox.compatible()){message="You can Drag & Drop files into this box."}else{message="Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Some supported browsers are: Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."}}else{if(this.counter.running==0){message="You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed."}else{message="Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining."}}$("#upload-info").html(message);if(this.counter.running==0&&this.counter.announce+this.counter.success+this.counter.error>0){this.modal.enableButton("Reset")}else{this.modal.disableButton("Reset")}if(this.counter.running==0&&this.counter.announce>0){this.modal.enableButton("Start")}else{this.modal.disableButton("Start")}if(this.counter.running>0){this.modal.enableButton("Pause")}else{this.modal.disableButton("Pause")}if(this.counter.running==0){this.modal.enableButton("Choose files");this.modal.enableButton("Create file")}else{this.modal.disableButton("Choose files");this.modal.disableButton("Create file")}if(this.counter.announce+this.counter.success+this.counter.error>0){$(this.el).find("table").show()}else{$(this.el).find("table").hide()}},_upload_percentage:function(g,h){return(this.upload_completed+(g*h))/this.upload_size},_template:function(h,g){return'<div id="'+h+'" class="upload-box"><table class="table table-striped" style="display: none;"><thead><tr><th>Name</th><th>Size</th><th>Type</th><th>Genome</th><th>Space→Tab</th><th>Status</th><th></th></tr></thead><tbody></tbody></table></div><h6 id="'+g+'" class="upload-info"></h6>'}})});
\ No newline at end of file
+define(["galaxy.modal","utils/utils","mvc/upload/upload-model","mvc/upload/upload-row","mvc/ui","utils/uploadbox"],function(c,f,e,d){var b=Backbone.Model.extend({defaults:{percentage:0,icon:"fa-circle",label:"",status:""}});var a=Backbone.View.extend({model:null,initialize:function(h){var g=this;this.model=h;this.options=this.model.attributes;this.setElement(this._template(this.options));$(this.el).on("click",this.options.onclick);if(this.options.tooltip){$(this.el).tooltip({title:this.options.tooltip,placement:"bottom"})}this.model.on("change:percentage",function(){g._percentage(g.model.get("percentage"))});this.model.on("change:status",function(){g._status(g.model.get("status"))});var g=this;$(window).on("beforeunload",function(){var i="";if(g.options.onunload){i=g.options.onunload()}if(i!=""){return i}})},_status:function(h){var g=this.$el.find(".progress-bar");g.removeClass();g.addClass("progress-bar");g.addClass("progress-bar-notransition");if(h!=""){g.addClass("progress-bar-"+h)}},_percentage:function(h){var g=this.$el.find(".progress-bar");g.css({width:h+"%"})},_template:function(g){return'<div class="progress-button"><div class="progress"><div class="progress-bar"></div></div><div id="label" class="label"><div class="fa '+g.icon+'"></div> '+g.label+"</div></div>"}});return Backbone.View.extend({modal:null,button_show:null,uploadbox:null,current_history:null,upload_size:0,select_extension:[["Auto-detect","auto"]],select_genome:[["Unspecified (?)","?"]],collection:new e.Collection(),counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},options:{nginx_upload_path:""},initialize:function(h){var g=this;if(!Galaxy.currHistoryPanel||!Galaxy.currHistoryPanel.model){window.setTimeout(function(){g.initialize()},500);return}if(!Galaxy.currUser.get("id")){return}this.button_show=new b({icon:"fa-upload",tooltip:"Download from URL or upload files from disk",label:"Load Data",onclick:function(i){if(i){g._eventShow(i)}},onunload:function(){if(g.counter.running>0){return"Several uploads are still processing."}}});$("#left .unified-panel-header-inner").append((new a(this.button_show)).$el);var g=this;f.jsonFromUrl(galaxy_config.root+"api/datatypes",function(i){for(key in i){g.select_extension.push([i[key],i[key]])}});f.jsonFromUrl(galaxy_config.root+"api/genomes",function(i){var j=g.select_genome[0];g.select_genome=[];for(key in i){if(i[key].length>1){if(i[key][1]!==j[1]){g.select_genome.push(i[key])}}}g.select_genome.sort(function(l,k){return l[0]>k[0]?1:l[0]<k[0]?-1:0});g.select_genome.unshift(j)});if(h){this.options=_.defaults(h,this.options)}this.collection.on("remove",function(i){g._eventRemove(i)});this.collection.on("change:genome",function(j){var i=j.get("genome");g.collection.each(function(k){if(k.get("status")=="init"&&k.get("genome")=="?"){k.set("genome",i)}})})},_eventShow:function(h){h.preventDefault();h.stopPropagation();if(!this.modal){var g=this;this.modal=new c.GalaxyModal({title:"Download data directly from web or upload files from your disk",body:this._template("upload-box","upload-info"),buttons:{"Choose files":function(){g.uploadbox.select()},"Create file":function(){g._eventCreate()},Start:function(){g._eventStart()},Pause:function(){g._eventStop()},Reset:function(){g._eventReset()},Close:function(){g.modal.hide()},},height:"400",width:"900",closing_events:true});this.setElement("#upload-box");var g=this;this.uploadbox=this.$el.uploadbox({announce:function(i,j,k){g._eventAnnounce(i,j,k)},initialize:function(i,j,k){return g._eventInitialize(i,j,k)},progress:function(i,j,k){g._eventProgress(i,j,k)},success:function(i,j,k){g._eventSuccess(i,j,k)},error:function(i,j,k){g._eventError(i,j,k)},complete:function(){g._eventComplete()}});this._updateScreen()}this.modal.show()},_eventRemove:function(h){var g=h.get("status");if(g=="success"){this.counter.success--}else{if(g=="error"){this.counter.error--}else{this.counter.announce--}}this._updateScreen();this.uploadbox.remove(h.id)},_eventAnnounce:function(g,h,j){this.counter.announce++;this._updateScreen();var i=new d(this,{id:g,file_name:h.name,file_size:h.size});this.collection.add(i.model);$(this.el).find("tbody:last").append(i.$el);i.render()},_eventInitialize:function(k,g,o){var i=this.collection.get(k);i.set("status","running");var h=i.get("extension");var l=i.get("file_name");var n=i.get("genome");var m=i.get("url_paste");var j=i.get("space_to_tabs");if(!m&&!(g.size>0)){return null}this.uploadbox.configure({url:this.options.nginx_upload_path,paramname:"files_0|file_data"});tool_input={};tool_input.dbkey=n;tool_input.file_type=h;tool_input["files_0|type"]="upload_dataset";tool_input["files_0|url_paste"]=m;tool_input.space_to_tabs=j;data={};data.history_id=this.current_history;data.tool_id="upload1";data.inputs=JSON.stringify(tool_input);return data},_eventProgress:function(h,i,g){var j=this.collection.get(h);j.set("percentage",g);this.button_show.set("percentage",this._upload_percentage(g,i.size))},_eventSuccess:function(h,i,k){var j=this.collection.get(h);j.set("status","success");var g=j.get("file_size");this.button_show.set("percentage",this._upload_percentage(100,g));this.upload_completed+=g*100;this.counter.announce--;this.counter.success++;this._updateScreen();Galaxy.currHistoryPanel.refreshHdas()},_eventError:function(g,h,j){var i=this.collection.get(g);i.set("status","error");i.set("info",j);this.button_show.set("percentage",this._upload_percentage(100,h.size));this.button_show.set("status","danger");this.upload_completed+=h.size*100;this.counter.announce--;this.counter.error++;this._updateScreen()},_eventComplete:function(){this.collection.each(function(g){if(g.get("status")=="queued"){g.set("status","init")}});this.counter.running=0;this._updateScreen()},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:-1}])},_eventStart:function(){if(this.counter.announce==0||this.counter.running>0){return}var g=this;this.upload_size=0;this.upload_completed=0;this.collection.each(function(h){if(h.get("status")=="init"){h.set("status","queued");g.upload_size+=h.get("file_size")}});this.button_show.set("percentage",0);this.button_show.set("status","success");this.current_history=Galaxy.currHistoryPanel.model.get("id");this.counter.running=this.counter.announce;this._updateScreen();this.uploadbox.start()},_eventStop:function(){if(this.counter.running==0){return}this.button_show.set("status","info");this.uploadbox.stop();$("#upload-info").html("Queue will pause after completing the current file...")},_eventReset:function(){if(this.counter.running==0){this.collection.reset();this.counter.reset();this._updateScreen();this.uploadbox.reset();this.button_show.set("percentage",0)}},_updateScreen:function(){if(this.counter.announce==0){if(this.uploadbox.compatible()){message="You can Drag & Drop files into this box."}else{message="Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Some supported browsers are: Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."}}else{if(this.counter.running==0){message="You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed."}else{message="Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining."}}$("#upload-info").html(message);if(this.counter.running==0&&this.counter.announce+this.counter.success+this.counter.error>0){this.modal.enableButton("Reset")}else{this.modal.disableButton("Reset")}if(this.counter.running==0&&this.counter.announce>0){this.modal.enableButton("Start")}else{this.modal.disableButton("Start")}if(this.counter.running>0){this.modal.enableButton("Pause")}else{this.modal.disableButton("Pause")}if(this.counter.running==0){this.modal.enableButton("Choose files");this.modal.enableButton("Create file")}else{this.modal.disableButton("Choose files");this.modal.disableButton("Create file")}if(this.counter.announce+this.counter.success+this.counter.error>0){$(this.el).find("table").show()}else{$(this.el).find("table").hide()}},_upload_percentage:function(g,h){return(this.upload_completed+(g*h))/this.upload_size},_template:function(h,g){return'<div id="'+h+'" class="upload-box"><table class="table table-striped" style="display: none;"><thead><tr><th>Name</th><th>Size</th><th>Type</th><th>Genome</th><th>Space→Tab</th><th>Status</th><th></th></tr></thead><tbody></tbody></table></div><h6 id="'+g+'" class="upload-info"></h6>'}})});
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0