'}});return{View:g}});
//# sourceMappingURL=../../../maps/mvc/ui/ui-select-library.js.map
\ No newline at end of file
diff --git a/static/scripts/utils/utils.js b/static/scripts/utils/utils.js
index d3d7397d897..e1c565c4f15 100644
--- a/static/scripts/utils/utils.js
+++ b/static/scripts/utils/utils.js
@@ -1,2 +1,2 @@
-define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return $("").text(a).html()}function d(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__","None",null,void 0].indexOf(a[b])>-1)return!1;return!0}function e(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function f(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):g({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function g(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function h(a,b){var c=$('');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function i(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function j(b,c){return b?a.defaults(b,c):c}function k(a,b){var c="";if(a>=1e11)a/=1e11,c="TB";else if(a>=1e8)a/=1e8,c="GB";else if(a>=1e5)a/=1e5,c="MB";else if(a>=100)a/=100,c="KB";else{if(!(a>0))return"-";a=10*a,c="b"}var d=Math.round(a)/10;return b?d+" "+c:""+d+" "+c}function l(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function m(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}return{cssLoadFile:i,cssGetAttribute:h,get:f,merge:j,bytesToString:k,uid:l,time:m,request:g,sanitize:c,textify:e,validate:d,deepeach:b}});
+define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return $("").text(a).html()}function d(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__",null,void 0].indexOf(a[b])>-1)return!1;return!0}function e(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function f(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):g({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function g(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function h(a,b){var c=$('');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function i(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function j(b,c){return b?a.defaults(b,c):c}function k(a,b){var c="";if(a>=1e11)a/=1e11,c="TB";else if(a>=1e8)a/=1e8,c="GB";else if(a>=1e5)a/=1e5,c="MB";else if(a>=100)a/=100,c="KB";else{if(!(a>0))return"-";a=10*a,c="b"}var d=Math.round(a)/10;return b?d+" "+c:""+d+" "+c}function l(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function m(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}return{cssLoadFile:i,cssGetAttribute:h,get:f,merge:j,bytesToString:k,uid:l,time:m,request:g,sanitize:c,textify:e,validate:d,deepeach:b}});
//# sourceMappingURL=../../maps/utils/utils.js.map
\ No newline at end of file
diff --git a/static/style/blue/base.css b/static/style/blue/base.css
index bd057298576..6aab8aef859 100644
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1443,6 +1443,7 @@ html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;
.ui-portlet-repeat,.ui-portlet-section,.ui-portlet-section{border:none;border-left:solid 3px #ebd9b2;border-radius:5px;margin-bottom:5px}.ui-portlet-repeat .portlet-header,.ui-portlet-section .portlet-header{background:#ebd9b2;border-radius:5px;border-bottom-left-radius:0px;border-top-left-radius:0px;padding:0px 2px}.ui-portlet-repeat .portlet-header .portlet-title-text,.ui-portlet-section .portlet-header .portlet-title-text{vertical-align:middle;line-height:20px !important}
.ui-portlet-repeat .portlet-content,.ui-portlet-section .portlet-content{padding-right:0px}
.ui-portlet-section{margin-top:5px;border-left:solid 3px #dfe5f9}.ui-portlet-section .portlet-header{background:#dfe5f9;border-bottom:solid #b4c2f1 1px}
+.ui-portlet-section .portlet-highlight{text-decoration:underline}
.ui-portlet-narrow{border:none}.ui-portlet-narrow .portlet-header{border-radius:3px}.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:3px}
.ui-portlet-narrow .ui-portlet-repeat .portlet-header,.ui-portlet-narrow .ui-portlet-section .portlet-header{border-radius:5px;border-bottom-left-radius:0px;border-top-left-radius:0px}
.ui-portlet-narrow .portlet-content{padding:0px}
@@ -1470,6 +1471,10 @@ html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;
.ui-color-picker .ui-color-picker-label{float:left;line-height:1.2em}
.ui-color-picker .ui-color-picker-view{height:100%;overflow:auto;display:none;float:left;margin-top:5px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel{width:210px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content{margin-bottom:15px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .label{padding-bottom:2px}
.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box{cursor:pointer;float:left;margin-right:5px;border:solid 1px #c0c0c0;width:15px;height:15px;border-radius:2px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box .ui-color-picker-check{color:black;font-size:1.2em;position:relative;left:1px}
+.ui-list .ui-list-select{float:left;width:calc(100% - 27px)}
+.ui-list .ui-list-button .ui-button-icon{margin-top:3px;margin-right:5px}
+.ui-list .ui-list-message,.ui-list .ui-list-portlet{clear:both}
+.ui-list .ui-list-id{cursor:pointer;margin-top:5px}.ui-list .ui-list-id .ui-list-delete{font-size:1.2em;margin-right:5px}
.ui-select{position:relative}.ui-select .button{position:absolute;top:5px;right:5px}
.ui-select select{position:relative;top:0px;height:27px;width:100%;padding-right:20px;cursor:pointer;padding-left:5px}
.ui-select .select2-container{width:100%}.ui-select .select2-container .select2-choice{height:27px;padding-left:5px}.ui-select .select2-container .select2-choice .select2-arrow{display:none}
diff --git a/templates/webapps/galaxy/workflow/run.mako b/templates/webapps/galaxy/workflow/run.mako
index 8d780be2f94..4e60faad487 100644
--- a/templates/webapps/galaxy/workflow/run.mako
+++ b/templates/webapps/galaxy/workflow/run.mako
@@ -583,9 +583,10 @@ if wf_parms:
<%
pja_ss_all = []
for pja_ss in [ActionBox.get_short_str(pja) for pja in step.post_job_actions]:
- pja_ss = h.escape( pja_ss )
for rematch in re.findall('\$\{.+?\}', pja_ss):
- pja_ss = pja_ss.replace(rematch, '%s' % (wf_parms[rematch[2:-1]], rematch[2:-1], rematch[2:-1]))
+ pja_ss = pja_ss.replace(rematch, '%s' % (wf_parms[rematch[2:-1]],
+ rematch[2:-1],
+ rematch[2:-1]))
pja_ss_all.append(pja_ss)
%>
${' '.join(pja_ss_all)}
diff --git a/test/api/test_tools.py b/test/api/test_tools.py
index fe93e6cd436..b7507c37414 100644
--- a/test/api/test_tools.py
+++ b/test/api/test_tools.py
@@ -3,6 +3,7 @@ from base import api
from operator import itemgetter
from .helpers import DatasetPopulator
from .helpers import DatasetCollectionPopulator
+from .helpers import LibraryPopulator
from .helpers import skip_without_tool
@@ -120,6 +121,21 @@ class ToolsTestCase( api.ApiTestCase ):
assert output1_content.strip() == "--ex1"
assert output2_content.strip() == "None", output2_content
+ @skip_without_tool( "library_data" )
+ def test_library_data_param( self ):
+ history_id = self.dataset_populator.new_history()
+ ld = LibraryPopulator( self ).new_library_dataset( "lda_test_library" )
+ inputs = {
+ "library_dataset": ld[ "ldda_id" ],
+ "library_dataset_multiple": [ld[ "ldda_id" ], ld[ "ldda_id" ]]
+ }
+ response = self._run( "library_data", history_id, inputs, assert_ok=True )
+ output = response[ "outputs" ]
+ output_content = self.dataset_populator.get_history_dataset_content( history_id, dataset=output[ 0 ] )
+ assert output_content == "TestData", output_content
+ output_multiple_content = self.dataset_populator.get_history_dataset_content( history_id, dataset=output[ 1 ] )
+ assert output_multiple_content == "TestDataTestData", output_multiple_content
+
@skip_without_tool( "multi_data_param" )
def test_multidata_param( self ):
history_id = self.dataset_populator.new_history()
@@ -302,7 +318,7 @@ class ToolsTestCase( api.ApiTestCase ):
self._assert_has_keys( output_collection, "id", "name", "elements", "populated" )
assert not output_collection[ "populated" ]
assert len( output_collection[ "elements" ] ) == 0
-
+ self.assertEquals( output_collection[ "name" ], "Table split on first column" )
self.dataset_populator.wait_for_job( create["jobs"][0]["id"], assert_ok=True )
get_collection_response = self._get( "dataset_collections/%s" % output_collection[ "id" ], data={"instance_type": "history"} )
@@ -312,6 +328,8 @@ class ToolsTestCase( api.ApiTestCase ):
self._assert_has_keys( output_collection, "id", "name", "elements", "populated" )
assert output_collection[ "populated" ]
assert len( output_collection[ "elements" ] ) == 2
+ self.assertEquals( output_collection[ "name" ], "Table split on first column" )
+
# TODO: verify element identifiers
@skip_without_tool( "cat1" )
diff --git a/test/base/twilltestcase.py b/test/base/twilltestcase.py
index 32983f024ef..bced8471ffa 100644
--- a/test/base/twilltestcase.py
+++ b/test/base/twilltestcase.py
@@ -1516,7 +1516,7 @@ class TwillTestCase( unittest.TestCase ):
# HACK: don't use panels because late_javascripts() messes up the twill browser and it
# can't find form fields (and hence user can't be logged in).
self.visit_url( "/user/login?use_panels=False" )
- self.submit_form( 'login', 'login_button', email=email, redirect=redirect, password=password )
+ self.submit_form( 'login', 'login_button', login=email, redirect=redirect, password=password )
def logout( self ):
self.visit_url( "%s/user/logout" % self.url )
diff --git a/test/functional/test_toolbox.py b/test/functional/test_toolbox.py
index d707690c4c3..99d7c78d9f4 100644
--- a/test/functional/test_toolbox.py
+++ b/test/functional/test_toolbox.py
@@ -263,13 +263,18 @@ def build_tests( app=None, testing_shed_tools=False, master_api_key=None, user_a
baseclasses = ( ToolTestCase, )
namespace = dict()
for j, testdef in enumerate( tool.tests ):
+ test_function_name = 'test_tool_%06d' % j
+
def make_test_method( td ):
def test_tool( self ):
self.do_it( td )
+ test_tool.__name__ = test_function_name
+
return test_tool
+
test_method = make_test_method( testdef )
test_method.__doc__ = "%s ( %s ) > %s" % ( tool.name, tool.id, testdef.name )
- namespace[ 'test_tool_%06d' % j ] = test_method
+ namespace[ test_function_name ] = test_method
namespace[ 'shed_tool_id' ] = shed_tool_id
namespace[ 'master_api_key' ] = master_api_key
namespace[ 'user_api_key' ] = user_api_key
diff --git a/test/functional/tools/library_data.xml b/test/functional/tools/library_data.xml
new file mode 100644
index 00000000000..8fd1a147f49
--- /dev/null
+++ b/test/functional/tools/library_data.xml
@@ -0,0 +1,19 @@
+
+
+ cat $library_dataset >> $output;
+ #for $input in $library_dataset_multiple
+ cat $input >> $output_multiple;
+ #end for
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml
index 143e9043a3f..deabd1d0062 100644
--- a/test/functional/tools/samples_tool_conf.xml
+++ b/test/functional/tools/samples_tool_conf.xml
@@ -9,6 +9,7 @@
+
diff --git a/test/tool_shed/base/twilltestcase.py b/test/tool_shed/base/twilltestcase.py
index 9138212692d..3b77a38d924 100644
--- a/test/tool_shed/base/twilltestcase.py
+++ b/test/tool_shed/base/twilltestcase.py
@@ -539,6 +539,12 @@ class ShedTwillTestCase( TwillTestCase ):
string = string.replace( character, replacement )
return string
+ def expect_repo_created_strings( self, name ):
+ return [
+ 'Repository %s' % name,
+ 'Repository %s has been created' % name,
+ ]
+
def export_capsule( self, repository ):
url = '/repository/export?repository_id=%s&changeset_revision=%s' % \
( self.security.encode_id( repository.id ), self.get_repository_tip( repository ) )
@@ -573,7 +579,7 @@ class ShedTwillTestCase( TwillTestCase ):
self.create_user_in_galaxy( email=email, password=password, username=username, redirect=redirect )
if previously_created:
self.visit_galaxy_url( "/user/login?use_panels=False" )
- self.submit_form( '1', 'login_button', email=email, redirect=redirect, password=password )
+ self.submit_form( '1', 'login_button', login=email, redirect=redirect, password=password )
def galaxy_logout( self ):
self.visit_galaxy_url( "/user/logout" )
diff --git a/test/tool_shed/functional/test_0000_basic_repository_features.py b/test/tool_shed/functional/test_0000_basic_repository_features.py
index 036e3232335..072c0d89237 100644
--- a/test/tool_shed/functional/test_0000_basic_repository_features.py
+++ b/test/tool_shed/functional/test_0000_basic_repository_features.py
@@ -42,8 +42,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ):
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
- strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "%s" % repository_name ]
+ strings_displayed = self.expect_repo_created_strings(repository_name)
self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff --git a/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py b/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
index f092c439031..abf7c21aa70 100644
--- a/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
+++ b/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
@@ -54,8 +54,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
category = self.create_category( name='Test 0120', description='Description of test 0120' )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "%s" % datatypes_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(datatypes_repository_name)
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -94,8 +93,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ):
category = self.create_category( name='Test 0120', description='Description of test 0120' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name,
- 'Repository %s has been created' % "%s" % tool_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(tool_repository_name)
repository = self.get_or_create_repository( name=tool_repository_name,
description=tool_repository_description,
long_description=tool_repository_long_description,
diff --git a/test/tool_shed/functional/test_0400_repository_component_reviews.py b/test/tool_shed/functional/test_0400_repository_component_reviews.py
index 08ba29b9679..b91a534d18d 100644
--- a/test/tool_shed/functional/test_0400_repository_component_reviews.py
+++ b/test/tool_shed/functional/test_0400_repository_component_reviews.py
@@ -91,8 +91,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
category = self.create_category( name='Test 0400 Repository Component Reviews', description='Test 0400 Repository Component Reviews' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "%s" % repository_name ]
+ strings_displayed = self.expect_repo_created_strings(repository_name)
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff --git a/test/tool_shed/functional/test_0410_repository_component_review_access_control.py b/test/tool_shed/functional/test_0410_repository_component_review_access_control.py
index 68701a59e5b..4369c70313a 100644
--- a/test/tool_shed/functional/test_0410_repository_component_review_access_control.py
+++ b/test/tool_shed/functional/test_0410_repository_component_review_access_control.py
@@ -70,8 +70,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ):
category = self.create_category( name='Test 0400 Repository Component Reviews', description='Test 0400 Repository Component Reviews' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "%s" % repository_name ]
+ strings_displayed = self.expect_repo_created_strings(repository_name)
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff --git a/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py b/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
index 4c4e0709167..df2efa15755 100644
--- a/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
+++ b/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
@@ -53,8 +53,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
description='Test 0400 Repository Citable URLs category' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "%s" % repository_name ]
+ strings_displayed = self.expect_repo_created_strings(repository_name)
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
@@ -128,7 +127,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
strings_displayed = [ '/repository', 'view_repository', 'id=', encoded_repository_id ]
strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420' ]
strings_displayed_in_iframe.append( self.get_repository_tip( repository ) )
- strings_displayed_in_iframe.append( 'Sharable link to this repository:' )
+ strings_displayed_in_iframe.append( 'Link to this repository:' )
strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420' % self.url )
self.load_citable_url( username='user1',
repository_name='filtering_0420',
@@ -154,7 +153,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
# The iframe should point to /repository/view_repository?id=
strings_displayed = [ '/repository', 'view_repository', 'id=' + encoded_repository_id ]
strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420', first_changeset_hash ]
- strings_displayed_in_iframe.append( 'Sharable link to this repository revision:' )
+ strings_displayed_in_iframe.append( 'Link to this repository revision:' )
strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420/%s' % ( self.url, first_changeset_hash ) )
strings_not_displayed_in_iframe = []
self.load_citable_url( username='user1',
@@ -179,7 +178,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ):
strings_displayed = [ '/repository', 'view_repository', 'id=' + encoded_repository_id ]
strings_displayed.extend( [ 'The+change+log', 'does+not+include+revision', invalid_changeset_hash, 'status=error' ] )
strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420' ]
- strings_displayed_in_iframe.append( 'Sharable link to this repository revision:' )
+ strings_displayed_in_iframe.append( 'Link to this repository revision:' )
strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420/%s' % ( self.url, invalid_changeset_hash ) )
strings_not_displayed_in_iframe = []
self.load_citable_url( username='user1',
diff --git a/test/tool_shed/functional/test_0430_browse_utilities.py b/test/tool_shed/functional/test_0430_browse_utilities.py
index d5ce96e037f..1c26668dcd3 100644
--- a/test/tool_shed/functional/test_0430_browse_utilities.py
+++ b/test/tool_shed/functional/test_0430_browse_utilities.py
@@ -54,8 +54,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
description='Description of Test 0430 Galaxy Utilities category' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "%s" % datatypes_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(datatypes_repository_name)
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -82,8 +81,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
description='Description of Test 0430 Galaxy Utilities category' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % emboss_repository_name,
- 'Repository %s has been created' % "%s" % emboss_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(emboss_repository_name)
emboss_repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -119,8 +117,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ):
description='Description of Test 0430 Galaxy Utilities category' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % freebayes_repository_name,
- 'Repository %s has been created' % "%s" % freebayes_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(freebayes_repository_name)
repository = self.get_or_create_repository( name=freebayes_repository_name,
description=freebayes_repository_description,
long_description=freebayes_repository_long_description,
diff --git a/test/tool_shed/functional/test_0450_skip_tool_tests.py b/test/tool_shed/functional/test_0450_skip_tool_tests.py
index a5d60e6f9f1..ceb3f3821e8 100644
--- a/test/tool_shed/functional/test_0450_skip_tool_tests.py
+++ b/test/tool_shed/functional/test_0450_skip_tool_tests.py
@@ -75,8 +75,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ):
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = self.test_db_util.get_category_by_name( category_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "%s" % repository_name ]
+ strings_displayed = self.expect_repo_created_strings(repository_name)
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff --git a/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py b/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
index 5eb19662bce..15167026c2c 100644
--- a/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
+++ b/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
@@ -57,8 +57,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
category = self.create_category( name='Test 0120', description='Description of test 0120' )
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "%s" % datatypes_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(datatypes_repository_name)
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -99,8 +98,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ):
category = self.create_category( name='Test 0120', description='Description of test 0120' )
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
- strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name,
- 'Repository %s has been created' % "%s" % tool_repository_name ]
+ strings_displayed = self.expect_repo_created_strings(tool_repository_name)
repository = self.get_or_create_repository( name=tool_repository_name,
description=tool_repository_description,
long_description=tool_repository_long_description,
diff --git a/test/unit/managers/test_HistoryManager.py b/test/unit/managers/test_HistoryManager.py
index c55c25e4f0e..7b3a1818c6f 100644
--- a/test/unit/managers/test_HistoryManager.py
+++ b/test/unit/managers/test_HistoryManager.py
@@ -441,6 +441,78 @@ class HistorySerializerTestCase( BaseTestCase ):
self.log( 'serialized should jsonify well' )
self.assertIsJsonifyable( serialized )
+ def _history_state_from_states_and_deleted( self, user, hda_state_and_deleted_tuples ):
+ history = self.history_manager.create( name='name', user=user )
+ for state, deleted in hda_state_and_deleted_tuples:
+ hda = self.hda_manager.create( history=history )
+ hda = self.hda_manager.update( hda, dict( state=state, deleted=deleted ) )
+ history_state = self.history_serializer.serialize( history, [ 'state' ] )[ 'state' ]
+ return history_state
+
+ def test_state( self ):
+ dataset_states = model.Dataset.states
+ user2 = self.user_manager.create( **user2_data )
+
+ ready_states = [ ( state, False ) for state in [ dataset_states.OK, dataset_states.OK ] ]
+
+ self.log( 'a history\'s serialized state should be running if any of its datasets are running' )
+ self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.RUNNING, False )] ))
+ self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.SETTING_METADATA, False )] ))
+ self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.UPLOAD, False )] ))
+
+ self.log( 'a history\'s serialized state should be queued if any of its datasets are queued' )
+ self.assertEqual( 'queued', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.QUEUED, False )] ))
+
+ self.log( 'a history\'s serialized state should be error if any of its datasets are errored' )
+ self.assertEqual( 'error', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.ERROR, False )] ))
+ self.assertEqual( 'error', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.FAILED_METADATA, False )] ))
+
+ self.log( 'a history\'s serialized state should be ok if *all* of its datasets are ok' )
+ self.assertEqual( 'ok', self._history_state_from_states_and_deleted( user2, ready_states ))
+
+ self.log( 'a history\'s serialized state should be not be affected by deleted datasets' )
+ self.assertEqual( 'ok', self._history_state_from_states_and_deleted( user2,
+ ready_states + [( dataset_states.RUNNING, True )] ))
+
+ def test_contents( self ):
+ user2 = self.user_manager.create( **user2_data )
+ history1 = self.history_manager.create( name='history1', user=user2 )
+
+ self.log( 'a history with no contents should be properly reflected in empty, etc.' )
+ keys = [ 'empty', 'count', 'state_ids', 'state_details', 'state', 'hdas' ]
+ serialized = self.history_serializer.serialize( history1, keys )
+ self.assertEqual( serialized[ 'state' ], 'new' )
+ self.assertEqual( serialized[ 'empty' ], True )
+ self.assertEqual( serialized[ 'count' ], 0 )
+ self.assertEqual( sum( serialized[ 'state_details' ].values() ), 0 )
+ self.assertEqual( serialized[ 'state_ids' ][ 'ok' ], [] )
+ self.assertIsInstance( serialized[ 'hdas' ], list )
+
+ self.log( 'a history with contents should be properly reflected in empty, etc.' )
+ hda1 = self.hda_manager.create( history=history1, hid=1 )
+ self.hda_manager.update( hda1, dict( state='ok' ) )
+
+ serialized = self.history_serializer.serialize( history1, keys )
+ self.assertEqual( serialized[ 'state' ], 'ok' )
+ self.assertEqual( serialized[ 'empty' ], False )
+ self.assertEqual( serialized[ 'count' ], 1 )
+ self.assertEqual( serialized[ 'state_details' ][ 'ok' ], 1 )
+ self.assertIsInstance( serialized[ 'state_ids' ][ 'ok' ], list )
+ self.assertIsInstance( serialized[ 'hdas' ], list )
+ self.assertIsInstance( serialized[ 'hdas' ][0], basestring )
+
+ serialized = self.history_serializer.serialize( history1, [ 'contents' ] )
+ self.assertHasKeys( serialized[ 'contents' ][0], [ 'id', 'name', 'peek', 'create_time' ])
+
+ self.log( 'serialized should jsonify well' )
+ self.assertIsJsonifyable( serialized )
+
# # =============================================================================
# class HistoryDeserializerTestCase( BaseTestCase ):
diff --git a/tools/data_source/bed_convert.xml b/tools/data_source/bed_convert.xml
index c7cdd93d126..eb414066926 100644
--- a/tools/data_source/bed_convert.xml
+++ b/tools/data_source/bed_convert.xml
@@ -1,14 +1,14 @@
-
- creates a bed or xbed file containing from text query
- noop
-
- creates a bed or xbed file containing user assigned input of $input
-
-
-
-
-
-
- User specifies delimiter, header information, and column assignments and the file will be converted to BED or xBED.
-
+
+ creates a bed or xbed file containing from text query
+ noop
+
+ creates a bed or xbed file containing user assigned input of $input
+
+
+
+
+
+
+ User specifies delimiter, header information, and column assignments and the file will be converted to BED or xBED.
+
\ No newline at end of file
diff --git a/tools/data_source/genbank.xml b/tools/data_source/genbank.xml
index b4755d4f19f..65bd9c79f8d 100644
--- a/tools/data_source/genbank.xml
+++ b/tools/data_source/genbank.xml
@@ -1,25 +1,25 @@
-
-
- genbank.py $mode "$text" $output
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-At the moment this tool allows the following simple searches:
-
-- by GI: **51594135**
-- by accession: **CF622840**
-- using text: **human hbb1** (this feature is experimental)
-
-
-
\ No newline at end of file
+
+
+ genbank.py $mode "$text" $output
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+At the moment this tool allows the following simple searches:
+
+- by GI: **51594135**
+- by accession: **CF622840**
+- using text: **human hbb1** (this feature is experimental)
+
+
+
diff --git a/tools/data_source/import.xml b/tools/data_source/import.xml
index 7121128194a..99d04506c8a 100644
--- a/tools/data_source/import.xml
+++ b/tools/data_source/import.xml
@@ -1,27 +1,27 @@
-
- (PSU prepared queries)
- import.py $data $output
-
- $data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ (PSU prepared queries)
+ import.py $data $output
+
+ $data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/data_source/microbial_import.xml b/tools/data_source/microbial_import.xml
index 44950b7761e..b07f557cb7e 100644
--- a/tools/data_source/microbial_import.xml
+++ b/tools/data_source/microbial_import.xml
@@ -1,114 +1,114 @@
-
- microbial_import.py $CDS,$tRNA,$rRNA,$sequence,$GeneMark,$GeneMarkHMM,$Glimmer3 $output ${GALAXY_DATA_INDEX_DIR}/microbial_data.loc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-This tool will allow you to obtain various genomic datasets for any completed Microbial Genome Project as listed at NCBI_.
-
-.. _NCBI: http://www.ncbi.nlm.nih.gov/genomes/lproks.cgi?view=1
-
-Current datasets available include
- 1. CDS
- 2. tRNA
- 3. rRNA
- 4. FASTA Sequences
- 5. GeneMark Annotations
- 6. GeneMarkHMM Annotations
- 7. Glimmer3 Annotations
-
------
-
-Organisms in **bold** are available at the UCSC Browser.
-
------
-
-.. class:: infomark
-
-**Note:** Having trouble locating your organism? Click here_ for a list of available species and their location.
-
-.. _here: https://wiki.galaxyproject.org/Main/Data%20Libraries/Microbes
-
-
+
+ microbial_import.py $CDS,$tRNA,$rRNA,$sequence,$GeneMark,$GeneMarkHMM,$Glimmer3 $output ${GALAXY_DATA_INDEX_DIR}/microbial_data.loc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tool will allow you to obtain various genomic datasets for any completed Microbial Genome Project as listed at NCBI_.
+
+.. _NCBI: http://www.ncbi.nlm.nih.gov/genomes/lproks.cgi?view=1
+
+Current datasets available include
+ 1. CDS
+ 2. tRNA
+ 3. rRNA
+ 4. FASTA Sequences
+ 5. GeneMark Annotations
+ 6. GeneMarkHMM Annotations
+ 7. Glimmer3 Annotations
+
+-----
+
+Organisms in **bold** are available at the UCSC Browser.
+
+-----
+
+.. class:: infomark
+
+**Note:** Having trouble locating your organism? Click here_ for a list of available species and their location.
+
+.. _here: https://wiki.galaxyproject.org/Main/Data%20Libraries/Microbes
+
+
diff --git a/tools/data_source/ucsc_tablebrowser_archaea.xml b/tools/data_source/ucsc_tablebrowser_archaea.xml
index 5aa6916e559..3a352034b41 100644
--- a/tools/data_source/ucsc_tablebrowser_archaea.xml
+++ b/tools/data_source/ucsc_tablebrowser_archaea.xml
@@ -1,42 +1,42 @@
-
-
-
- table browser
- data_source.py $output $__app__.config.output_size_limit
-
- go to UCSC Table Browser $GALAXY_URL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ table browser
+ data_source.py $output $__app__.config.output_size_limit
+
+ go to UCSC Table Browser $GALAXY_URL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/data_source/ucsc_tablebrowser_test.xml b/tools/data_source/ucsc_tablebrowser_test.xml
index eb8fe2a9a29..43eacdcf083 100644
--- a/tools/data_source/ucsc_tablebrowser_test.xml
+++ b/tools/data_source/ucsc_tablebrowser_test.xml
@@ -1,42 +1,42 @@
-
-
-
- table browser
- data_source.py $output $__app__.config.output_size_limit
-
- go to UCSC Table Browser $GALAXY_URL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ table browser
+ data_source.py $output $__app__.config.output_size_limit
+
+ go to UCSC Table Browser $GALAXY_URL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/evolution/codingSnps.xml b/tools/evolution/codingSnps.xml
index bd9e346fe10..345a9932ef9 100644
--- a/tools/evolution/codingSnps.xml
+++ b/tools/evolution/codingSnps.xml
@@ -46,8 +46,7 @@
- cat
- sort
+ gnu_coreutilsucsc_tools
diff --git a/tools/extract/liftOver_wrapper.xml b/tools/extract/liftOver_wrapper.xml
index b5709a65e3a..a6c9caa8f85 100644
--- a/tools/extract/liftOver_wrapper.xml
+++ b/tools/extract/liftOver_wrapper.xml
@@ -1,147 +1,147 @@
-
- between assemblies and genomes
-
- liftOver_wrapper.py
- $input
- "$out_file1"
- "$out_file2"
- $dbkey
- $to_dbkey
- #if isinstance( $input.datatype, $__app__.datatypes_registry.get_datatype_by_extension('gff').__class__) or isinstance( $input.datatype, $__app__.datatypes_registry.get_datatype_by_extension('gtf').__class__):
- "gff"
- #else:
- "interval"
- #end if
- $minMatch ${multiple.choice} ${multiple.minChainT} ${multiple.minChainQ} ${multiple.minSizeQ}
-
-
-
+
+ between assemblies and genomes
+
+ liftOver_wrapper.py
+ $input
+ "$out_file1"
+ "$out_file2"
+ $dbkey
+ $to_dbkey
+ #if isinstance( $input.datatype, $__app__.datatypes_registry.get_datatype_by_extension('gff').__class__) or isinstance( $input.datatype, $__app__.datatypes_registry.get_datatype_by_extension('gtf').__class__):
+ "gff"
+ #else:
+ "interval"
+ #end if
+ $minMatch ${multiple.choice} ${multiple.minChainT} ${multiple.minChainQ} ${multiple.minSizeQ}
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ucsc_tools
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucsc_tools
+
+
-
-
-.. class:: warningmark
-
-Make sure that the genome build of the input dataset is specified (click the pencil icon in the history item to set it if necessary).
-
-.. class:: warningmark
-
+
+
+.. class:: warningmark
+
+Make sure that the genome build of the input dataset is specified (click the pencil icon in the history item to set it if necessary).
+
+.. class:: warningmark
+
This tool can work with interval, GFF, and GTF datasets. It requires the interval datasets to have chromosome in column 1,
start co-ordinate in column 2 and end co-ordinate in column 3. BED comments
and track and browser lines will be ignored, but if other non-interval lines
-are present the tool will return empty output datasets.
-
------
-
-.. class:: infomark
-
-**What it does**
-
-This tool is based on the LiftOver utility and Chain track from `the UC Santa Cruz Genome Browser`__.
-
-It converts coordinates and annotations between assemblies and genomes. It produces 2 files, one containing all the mapped coordinates and the other containing the unmapped coordinates, if any.
-
- .. __: http://genome.ucsc.edu/
-
------
-
-**Example**
-
-Converting the following hg16 intervals to hg18 intervals::
-
- chrX 85170 112199 AK002185 0 +
- chrX 110458 112199 AK097346 0 +
- chrX 112203 121212 AK074528 0 -
-
-will produce the following hg18 intervals::
-
- chrX 132991 160020 AK002185 0 +
- chrX 158279 160020 AK097346 0 +
- chrX 160024 169033 AK074528 0 -
-
-
-
+are present the tool will return empty output datasets.
+
+-----
+
+.. class:: infomark
+
+**What it does**
+
+This tool is based on the LiftOver utility and Chain track from `the UC Santa Cruz Genome Browser`__.
+
+It converts coordinates and annotations between assemblies and genomes. It produces 2 files, one containing all the mapped coordinates and the other containing the unmapped coordinates, if any.
+
+ .. __: http://genome.ucsc.edu/
+
+-----
+
+**Example**
+
+Converting the following hg16 intervals to hg18 intervals::
+
+ chrX 85170 112199 AK002185 0 +
+ chrX 110458 112199 AK097346 0 +
+ chrX 112203 121212 AK074528 0 -
+
+will produce the following hg18 intervals::
+
+ chrX 132991 160020 AK002185 0 +
+ chrX 158279 160020 AK097346 0 +
+ chrX 160024 169033 AK074528 0 -
+
+
+
diff --git a/tools/filters/axt_to_lav.xml b/tools/filters/axt_to_lav.xml
index abc4a501b41..1d7fe85cc8e 100644
--- a/tools/filters/axt_to_lav.xml
+++ b/tools/filters/axt_to_lav.xml
@@ -1,94 +1,94 @@
-
- Converts an AXT formatted file to LAV format
- axt_to_lav.py /galaxy/data/$dbkey_1/seq/%s.nib:$dbkey_1:${GALAXY_DATA_INDEX_DIR}/shared/ucsc/chrom/${dbkey_1}.len /galaxy/data/$dbkey_2/seq/%s.nib:$dbkey_2:${GALAXY_DATA_INDEX_DIR}/shared/ucsc/chrom/${dbkey_2}.len $align_input $lav_file $seq_file1 $seq_file2
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-**IMPORTANT**: AXT formatted alignments will be phased out from Galaxy in the coming weeks. They will be replaced with pairwise MAF alignments, which are already available. To try pairwise MAF alignments use "Extract Pairwise MAF blocks" tool in *Fetch Sequences and Alignments* section.
-
---------
-
-
-**Syntax**
-
-This tool converts an AXT formatted file to the LAV format.
-
-- **AXT format** The alignments are produced from Blastz, an alignment tool available from Webb Miller's lab at Penn State University. The lav format Blastz output, which does not include the sequence, was converted to AXT format with lavToAxt. Each alignment block in an AXT file contains three lines: a summary line and 2 sequence lines. Blocks are separated from one another by blank lines.
-
-- **LAV format** LAV is an alignment format developed by Webb Miller's group. It is the primary output format for BLASTZ.
-
-- **FASTA format** a text-based format for representing both nucleic and protein sequences, in which base pairs or proteins are represented using a single-letter code.
-
- - This format contains an one line header. It starts with a ">" symbol. The first word on this line is the name of the sequence. The rest of the line is a description of the sequence.
- - The remaining lines contain the sequence itself.
- - Blank lines in a FASTA file are ignored, and so are spaces or other gap symbols (dashes, underscores, periods) in a sequence.
- - Fasta files containing multiple sequences are just the same, with one sequence listed right after another. This format is accepted for many multiple sequence alignment programs.
-
------
-
-**Example**
-
-- AXT format::
-
- 0 chr19 3001012 3001075 chr11 70568380 70568443 - 3500
- TCAGCTCATAAATCACCTCCTGCCACAAGCCTGGCCTGGTCCCAGGAGAGTGTCCAGGCTCAGA
- TCTGTTCATAAACCACCTGCCATGACAAGCCTGGCCTGTTCCCAAGACAATGTCCAGGCTCAGA
-
- 1 chr19 3008279 3008357 chr11 70573976 70574054 - 3900
- CACAATCTTCACATTGAGATCCTGAGTTGCTGATCAGAATGGAAGGCTGAGCTAAGATGAGCGACGAGGCAATGTCACA
- CACAGTCTTCACATTGAGGTACCAAGTTGTGGATCAGAATGGAAAGCTAGGCTATGATGAGGGACAGTGCGCTGTCACA
-
-- Convert the above file to LAV format::
-
- #:lav
- s {
- "/galaxy/data/hg16/seq/chr19.nib" 1 63811651 0 1
- "/galaxy/data/mm5/seq/chr11.nib-" 1 121648857 0 1
- }
- h {
- "> hg16.chr19"
- "> mm5.chr11 (reverse complement)"
- }
- a {
- s 3500
- b 3001012 70568380
- e 3001075 70568443
- l 3001012 70568380 3001075 70568443 81
- }
- a {
- s 3900
- b 3008279 70573976
- e 3008357 70574054
- l 3008279 70573976 3008357 70574054 78
- }
- #:eof
-
-- With two files in the FASTA format::
-
- >hg16.chr19_-_3001011_3001075
- TCAGCTCATAAATCACCTCCTGCCACAAGCCTGGCCTGGTCCCAGGAGAGTGTCCAGGCTCAGA
-
- >hg16.chr19_-_3008278_3008357
- CACAATCTTCACATTGAGATCCTGAGTTGCTGATCAGAATGGAAGGCTGAGCTAAGATGAGCGACGAGGCAATGTCACA
-
- **and**::
-
- >mm5.chr11_-_70568379_70568443
- TCTGTTCATAAACCACCTGCCATGACAAGCCTGGCCTGTTCCCAAGACAATGTCCAGGCTCAGA
-
- >mm5.chr11_-_70573975_70574054
- CACAGTCTTCACATTGAGGTACCAAGTTGTGGATCAGAATGGAAAGCTAGGCTATGATGAGGGACAGTGCGCTGTCACA
-
-
-
+
+ Converts an AXT formatted file to LAV format
+ axt_to_lav.py /galaxy/data/$dbkey_1/seq/%s.nib:$dbkey_1:${GALAXY_DATA_INDEX_DIR}/shared/ucsc/chrom/${dbkey_1}.len /galaxy/data/$dbkey_2/seq/%s.nib:$dbkey_2:${GALAXY_DATA_INDEX_DIR}/shared/ucsc/chrom/${dbkey_2}.len $align_input $lav_file $seq_file1 $seq_file2
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+**IMPORTANT**: AXT formatted alignments will be phased out from Galaxy in the coming weeks. They will be replaced with pairwise MAF alignments, which are already available. To try pairwise MAF alignments use "Extract Pairwise MAF blocks" tool in *Fetch Sequences and Alignments* section.
+
+--------
+
+
+**Syntax**
+
+This tool converts an AXT formatted file to the LAV format.
+
+- **AXT format** The alignments are produced from Blastz, an alignment tool available from Webb Miller's lab at Penn State University. The lav format Blastz output, which does not include the sequence, was converted to AXT format with lavToAxt. Each alignment block in an AXT file contains three lines: a summary line and 2 sequence lines. Blocks are separated from one another by blank lines.
+
+- **LAV format** LAV is an alignment format developed by Webb Miller's group. It is the primary output format for BLASTZ.
+
+- **FASTA format** a text-based format for representing both nucleic and protein sequences, in which base pairs or proteins are represented using a single-letter code.
+
+ - This format contains an one line header. It starts with a ">" symbol. The first word on this line is the name of the sequence. The rest of the line is a description of the sequence.
+ - The remaining lines contain the sequence itself.
+ - Blank lines in a FASTA file are ignored, and so are spaces or other gap symbols (dashes, underscores, periods) in a sequence.
+ - Fasta files containing multiple sequences are just the same, with one sequence listed right after another. This format is accepted for many multiple sequence alignment programs.
+
+-----
+
+**Example**
+
+- AXT format::
+
+ 0 chr19 3001012 3001075 chr11 70568380 70568443 - 3500
+ TCAGCTCATAAATCACCTCCTGCCACAAGCCTGGCCTGGTCCCAGGAGAGTGTCCAGGCTCAGA
+ TCTGTTCATAAACCACCTGCCATGACAAGCCTGGCCTGTTCCCAAGACAATGTCCAGGCTCAGA
+
+ 1 chr19 3008279 3008357 chr11 70573976 70574054 - 3900
+ CACAATCTTCACATTGAGATCCTGAGTTGCTGATCAGAATGGAAGGCTGAGCTAAGATGAGCGACGAGGCAATGTCACA
+ CACAGTCTTCACATTGAGGTACCAAGTTGTGGATCAGAATGGAAAGCTAGGCTATGATGAGGGACAGTGCGCTGTCACA
+
+- Convert the above file to LAV format::
+
+ #:lav
+ s {
+ "/galaxy/data/hg16/seq/chr19.nib" 1 63811651 0 1
+ "/galaxy/data/mm5/seq/chr11.nib-" 1 121648857 0 1
+ }
+ h {
+ "> hg16.chr19"
+ "> mm5.chr11 (reverse complement)"
+ }
+ a {
+ s 3500
+ b 3001012 70568380
+ e 3001075 70568443
+ l 3001012 70568380 3001075 70568443 81
+ }
+ a {
+ s 3900
+ b 3008279 70573976
+ e 3008357 70574054
+ l 3008279 70573976 3008357 70574054 78
+ }
+ #:eof
+
+- With two files in the FASTA format::
+
+ >hg16.chr19_-_3001011_3001075
+ TCAGCTCATAAATCACCTCCTGCCACAAGCCTGGCCTGGTCCCAGGAGAGTGTCCAGGCTCAGA
+
+ >hg16.chr19_-_3008278_3008357
+ CACAATCTTCACATTGAGATCCTGAGTTGCTGATCAGAATGGAAGGCTGAGCTAAGATGAGCGACGAGGCAATGTCACA
+
+ **and**::
+
+ >mm5.chr11_-_70568379_70568443
+ TCTGTTCATAAACCACCTGCCATGACAAGCCTGGCCTGTTCCCAAGACAATGTCCAGGCTCAGA
+
+ >mm5.chr11_-_70573975_70574054
+ CACAGTCTTCACATTGAGGTACCAAGTTGTGGATCAGAATGGAAAGCTAGGCTATGATGAGGGACAGTGCGCTGTCACA
+
+
+
diff --git a/tools/filters/axt_to_lav_code.py b/tools/filters/axt_to_lav_code.py
index 02b35ea764d..9c08c971f0b 100644
--- a/tools/filters/axt_to_lav_code.py
+++ b/tools/filters/axt_to_lav_code.py
@@ -1,8 +1,8 @@
-
-def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
- for name,data in out_data.items():
- if name == "seq_file2":
- data.dbkey = param_dict['dbkey_2']
- app.model.context.add( data )
- app.model.context.flush()
+
+def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
+ for name,data in out_data.items():
+ if name == "seq_file2":
+ data.dbkey = param_dict['dbkey_2']
+ app.model.context.add( data )
+ app.model.context.flush()
break
\ No newline at end of file
diff --git a/tools/filters/catWrapper.xml b/tools/filters/catWrapper.xml
index 5524825e8c6..33e67e1e5a4 100644
--- a/tools/filters/catWrapper.xml
+++ b/tools/filters/catWrapper.xml
@@ -1,79 +1,79 @@
-
- tail-to-head
-
- catWrapper.py
- $out_file1
- $input1
- #for $q in $queries
- ${q.input2}
- #end for
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-**WARNING:** Be careful not to concatenate datasets of different kinds (e.g., sequences with intervals). This tool does not check if the datasets being concatenated are in the same format.
-
------
-
-**What it does**
-
-Concatenates datasets
-
------
-
-**Example**
-
-Concatenating Dataset::
-
- chrX 151087187 151087355 A 0 -
- chrX 151572400 151572481 B 0 +
-
-with Dataset1::
-
- chr1 151242630 151242955 X 0 +
- chr1 151271715 151271999 Y 0 +
- chr1 151278832 151279227 Z 0 -
-
-and with Dataset2::
-
- chr2 100000030 200000955 P 0 +
- chr2 100000015 200000999 Q 0 +
-
-will result in the following::
-
- chrX 151087187 151087355 A 0 -
- chrX 151572400 151572481 B 0 +
- chr1 151242630 151242955 X 0 +
- chr1 151271715 151271999 Y 0 +
- chr1 151278832 151279227 Z 0 -
- chr2 100000030 200000955 P 0 +
- chr2 100000015 200000999 Q 0 +
-
-
-
+
+ tail-to-head
+
+ catWrapper.py
+ $out_file1
+ $input1
+ #for $q in $queries
+ ${q.input2}
+ #end for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+**WARNING:** Be careful not to concatenate datasets of different kinds (e.g., sequences with intervals). This tool does not check if the datasets being concatenated are in the same format.
+
+-----
+
+**What it does**
+
+Concatenates datasets
+
+-----
+
+**Example**
+
+Concatenating Dataset::
+
+ chrX 151087187 151087355 A 0 -
+ chrX 151572400 151572481 B 0 +
+
+with Dataset1::
+
+ chr1 151242630 151242955 X 0 +
+ chr1 151271715 151271999 Y 0 +
+ chr1 151278832 151279227 Z 0 -
+
+and with Dataset2::
+
+ chr2 100000030 200000955 P 0 +
+ chr2 100000015 200000999 Q 0 +
+
+will result in the following::
+
+ chrX 151087187 151087355 A 0 -
+ chrX 151572400 151572481 B 0 +
+ chr1 151242630 151242955 X 0 +
+ chr1 151271715 151271999 Y 0 +
+ chr1 151278832 151279227 Z 0 -
+ chr2 100000030 200000955 P 0 +
+ chr2 100000015 200000999 Q 0 +
+
+
+
diff --git a/tools/filters/changeCase.xml b/tools/filters/changeCase.xml
index 251654a7ea8..6912bdd18f8 100644
--- a/tools/filters/changeCase.xml
+++ b/tools/filters/changeCase.xml
@@ -1,77 +1,77 @@
-
- of selected columns
-
-
-
- changeCase.pl $input "$cols" $delimiter $casing $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-**This tool breaks column assignments.** To re-establish column assignments run the tool and click on the pencil icon in the resulting history item.
-
-.. class:: warningmark
-
-The format of the resulting dataset from this tool is always tabular.
-
------
-
-**What it does**
-
-This tool selects specified columns from a dataset and converts the values of those columns to upper or lower case.
-
-- Columns are specified as **c1**, **c2**, and so on.
-- Columns can be specified in any order (e.g., **c2,c1,c6**)
-
------
-
-**Example**
-
-Changing columns 1 and 3 ( delimited by Comma ) to upper case in::
-
- apple,is,good
- windows,is,bad
-
-will result in::
-
- APPLE is GOOD
- WINDOWS is BAD
-
-
-
+
+ of selected columns
+
+
+
+ changeCase.pl $input "$cols" $delimiter $casing $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+**This tool breaks column assignments.** To re-establish column assignments run the tool and click on the pencil icon in the resulting history item.
+
+.. class:: warningmark
+
+The format of the resulting dataset from this tool is always tabular.
+
+-----
+
+**What it does**
+
+This tool selects specified columns from a dataset and converts the values of those columns to upper or lower case.
+
+- Columns are specified as **c1**, **c2**, and so on.
+- Columns can be specified in any order (e.g., **c2,c1,c6**)
+
+-----
+
+**Example**
+
+Changing columns 1 and 3 ( delimited by Comma ) to upper case in::
+
+ apple,is,good
+ windows,is,bad
+
+will result in::
+
+ APPLE is GOOD
+ WINDOWS is BAD
+
+
+
diff --git a/tools/filters/condense_characters.xml b/tools/filters/condense_characters.xml
index 41d75cdb445..f792851a502 100644
--- a/tools/filters/condense_characters.xml
+++ b/tools/filters/condense_characters.xml
@@ -1,48 +1,48 @@
-
- consecutive characters
- condense_characters.pl $input $character $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool condenses all consecutive characters of a specified type.
-
------
-
-**Example**
-
-- Input file::
-
- geneX,,,10,,,,,20
- geneY,,5,,,,,12,15,9,
-
-- Condense all consecutive commas. The above file will be converted into::
-
- geneX,10,20
- geneY,5,12,15,9
-
-
-
+
+ consecutive characters
+ condense_characters.pl $input $character $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool condenses all consecutive characters of a specified type.
+
+-----
+
+**Example**
+
+- Input file::
+
+ geneX,,,10,,,,,20
+ geneY,,5,,,,,12,15,9,
+
+- Condense all consecutive commas. The above file will be converted into::
+
+ geneX,10,20
+ geneY,5,12,15,9
+
+
+
diff --git a/tools/filters/cutWrapper.xml b/tools/filters/cutWrapper.xml
index ab2365b6459..b7fed5ba9e1 100644
--- a/tools/filters/cutWrapper.xml
+++ b/tools/filters/cutWrapper.xml
@@ -1,213 +1,211 @@
-
- columns from a table
- cutWrapper.pl $input "$columnList" $delimiter $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-**WARNING: This tool breaks column assignments.** To re-establish column assignments run the tools and click on the pencil icon in the latest history item.
-
-.. class:: infomark
-
-The output of this tool is always in tabular format (e.g., if your original delimiters are commas, they will be replaced with tabs). For example:
-
- Cutting columns 1 and 3 from::
-
- apple,is,good
- windows,is,bad
-
- will give::
-
- apple good
- windows bad
-
------
-
-**What it does**
-
-This tool selects (cuts out) specified columns from the dataset.
-
-- Columns are specified as **c1**, **c2**, and so on. Column count begins with **1**
-- Columns can be specified in any order (e.g., **c2,c1,c6**)
-- If you specify more columns than actually present - empty spaces will be filled with dots
-
------
-
-**Example**
-
-Input dataset (six columns: c1, c2, c3, c4, c5, and c6)::
-
- chr1 10 1000 gene1 0 +
- chr2 100 1500 gene2 0 +
-
-**cut** on columns "**c1,c4,c6**" will return::
-
- chr1 gene1 +
- chr2 gene2 +
-
-**cut** on columns "**c6,c5,c4,c1**" will return::
-
- + 0 gene1 chr1
- + 0 gene2 chr2
-
-**cut** on columns "**c1-c3**" will return::
-
- chr1 10 1000
- chr2 100 1500
-
-
-**cut** on columns "**c8,c7,c4**" will return::
-
- . . gene1
- . . gene2
-
-
-
-
+
+ columns from a table
+ cutWrapper.pl $input "$columnList" $delimiter $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+**WARNING: This tool breaks column assignments.** To re-establish column assignments run the tools and click on the pencil icon in the latest history item.
+
+.. class:: infomark
+
+The output of this tool is always in tabular format (e.g., if your original delimiters are commas, they will be replaced with tabs). For example:
+
+ Cutting columns 1 and 3 from::
+
+ apple,is,good
+ windows,is,bad
+
+ will give::
+
+ apple good
+ windows bad
+
+-----
+
+**What it does**
+
+This tool selects (cuts out) specified columns from the dataset.
+
+- Columns are specified as **c1**, **c2**, and so on. Column count begins with **1**
+- Columns can be specified in any order (e.g., **c2,c1,c6**)
+- If you specify more columns than actually present - empty spaces will be filled with dots
+
+-----
+
+**Example**
+
+Input dataset (six columns: c1, c2, c3, c4, c5, and c6)::
+
+ chr1 10 1000 gene1 0 +
+ chr2 100 1500 gene2 0 +
+
+**cut** on columns "**c1,c4,c6**" will return::
+
+ chr1 gene1 +
+ chr2 gene2 +
+
+**cut** on columns "**c6,c5,c4,c1**" will return::
+
+ + 0 gene1 chr1
+ + 0 gene2 chr2
+
+**cut** on columns "**c1-c3**" will return::
+
+ chr1 10 1000
+ chr2 100 1500
+
+
+**cut** on columns "**c8,c7,c4**" will return::
+
+ . . gene1
+ . . gene2
+
+
diff --git a/tools/filters/gff/extract_GFF_Features.xml b/tools/filters/gff/extract_GFF_Features.xml
index d664d667447..69c62c3498b 100644
--- a/tools/filters/gff/extract_GFF_Features.xml
+++ b/tools/filters/gff/extract_GFF_Features.xml
@@ -1,114 +1,114 @@
-
- from GFF data
- extract_GFF_Features.py $input1 $out_file1 ${column_choice.col} ${column_choice.feature}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool extracts selected features from GFF data.
-
------
-
-**Example**
-
-Selecting **promoter** from the following GFF data::
-
- chr22 GeneA enhancer 10000000 10001000 500 + . TGA
- chr22 GeneA promoter 10010000 10010100 900 + . TGA
- chr22 GeneB promoter 10020000 10025000 400 - . TGB
- chr22 GeneB CCDS2220 10030000 10065000 800 - . TGB
-
-will produce the following output::
-
- chr22 GeneA promoter 10010000 10010100 900 + . TGA
- chr22 GeneB promoter 10020000 10025000 400 - . TGB
-
-----
-
-.. class:: infomark
-
-**About formats**
-
-**GFF format** General Feature Format is a format for describing genes and other features associated with DNA, RNA and Protein sequences. GFF lines have nine tab-separated fields::
-
- 1. seqname - Must be a chromosome or scaffold.
- 2. source - The program that generated this feature.
- 3. feature - The name of this type of feature. Some examples of standard feature types are "CDS", "start_codon", "stop_codon", and "exon".
- 4. start - The starting position of the feature in the sequence. The first base is numbered 1.
- 5. end - The ending position of the feature (inclusive).
- 6. score - A score between 0 and 1000. If there is no score value, enter ".".
- 7. strand - Valid entries include '+', '-', or '.' (for don't know/care).
- 8. frame - If the feature is a coding exon, frame should be a number between 0-2 that represents the reading frame of the first base. If the feature is not a coding exon, the value should be '.'.
- 9. group - All lines with the same group are linked together into a single item.
-
-
-
-
+
+ from GFF data
+ extract_GFF_Features.py $input1 $out_file1 ${column_choice.col} ${column_choice.feature}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool extracts selected features from GFF data.
+
+-----
+
+**Example**
+
+Selecting **promoter** from the following GFF data::
+
+ chr22 GeneA enhancer 10000000 10001000 500 + . TGA
+ chr22 GeneA promoter 10010000 10010100 900 + . TGA
+ chr22 GeneB promoter 10020000 10025000 400 - . TGB
+ chr22 GeneB CCDS2220 10030000 10065000 800 - . TGB
+
+will produce the following output::
+
+ chr22 GeneA promoter 10010000 10010100 900 + . TGA
+ chr22 GeneB promoter 10020000 10025000 400 - . TGB
+
+----
+
+.. class:: infomark
+
+**About formats**
+
+**GFF format** General Feature Format is a format for describing genes and other features associated with DNA, RNA and Protein sequences. GFF lines have nine tab-separated fields::
+
+ 1. seqname - Must be a chromosome or scaffold.
+ 2. source - The program that generated this feature.
+ 3. feature - The name of this type of feature. Some examples of standard feature types are "CDS", "start_codon", "stop_codon", and "exon".
+ 4. start - The starting position of the feature in the sequence. The first base is numbered 1.
+ 5. end - The ending position of the feature (inclusive).
+ 6. score - A score between 0 and 1000. If there is no score value, enter ".".
+ 7. strand - Valid entries include '+', '-', or '.' (for don't know/care).
+ 8. frame - If the feature is a coding exon, frame should be a number between 0-2 that represents the reading frame of the first base. If the feature is not a coding exon, the value should be '.'.
+ 9. group - All lines with the same group are linked together into a single item.
+
+
+
+
diff --git a/tools/filters/gff/gff_filter_by_attribute.xml b/tools/filters/gff/gff_filter_by_attribute.xml
index 4e64b84126e..475c3f55ffa 100644
--- a/tools/filters/gff/gff_filter_by_attribute.xml
+++ b/tools/filters/gff/gff_filter_by_attribute.xml
@@ -1,53 +1,53 @@
-
- using simple expressions
-
- gff_filter_by_attribute.py $input $out_file1 "$cond" '${input.metadata.attribute_types}'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-Double equal signs, ==, must be used as *"equal to"* (e.g., **c1 == 'chr22'**)
-
-.. class:: infomark
-
-**TIP:** Attempting to apply a filtering condition may throw exceptions if the data type (e.g., string, integer) in every line of the attribute being filtered is not appropriate for the condition (e.g., attempting certain numerical calculations on strings). If an exception is thrown when applying the condition to a line, that line is skipped as invalid for the filter condition. The number of invalid skipped lines is documented in the resulting history item as a "Condition/data issue".
-
-.. class:: infomark
-
-**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
-
------
-
-**Syntax**
-
-The filter tool allows you to restrict the dataset using simple conditional statements.
-
-- Make sure that multi-character operators contain no white space ( e.g., **<=** is valid while **< =** is not valid )
-- When using 'equal-to' operator **double equal sign '==' must be used** ( e.g., **attribute_name=='chr1'** )
-- Non-numerical values must be included in single or double quotes ( e.g., **attribute_name=='XX22'** )
-
-
-
+
+ using simple expressions
+
+ gff_filter_by_attribute.py $input $out_file1 "$cond" '${input.metadata.attribute_types}'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+Double equal signs, ==, must be used as *"equal to"* (e.g., **c1 == 'chr22'**)
+
+.. class:: infomark
+
+**TIP:** Attempting to apply a filtering condition may throw exceptions if the data type (e.g., string, integer) in every line of the attribute being filtered is not appropriate for the condition (e.g., attempting certain numerical calculations on strings). If an exception is thrown when applying the condition to a line, that line is skipped as invalid for the filter condition. The number of invalid skipped lines is documented in the resulting history item as a "Condition/data issue".
+
+.. class:: infomark
+
+**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
+
+-----
+
+**Syntax**
+
+The filter tool allows you to restrict the dataset using simple conditional statements.
+
+- Make sure that multi-character operators contain no white space ( e.g., **<=** is valid while **< =** is not valid )
+- When using 'equal-to' operator **double equal sign '==' must be used** ( e.g., **attribute_name=='chr1'** )
+- Non-numerical values must be included in single or double quotes ( e.g., **attribute_name=='XX22'** )
+
+
+
diff --git a/tools/filters/gff/gff_filter_by_feature_count.xml b/tools/filters/gff/gff_filter_by_feature_count.xml
index 90fbd87c12f..75886432fb9 100644
--- a/tools/filters/gff/gff_filter_by_feature_count.xml
+++ b/tools/filters/gff/gff_filter_by_feature_count.xml
@@ -1,53 +1,53 @@
-
- using simple expressions
-
- gff_filter_by_feature_count.py $input_file1 $out_file1 "$feature_name" "$cond"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: infomark
-
-Valid comparison operators are: > < >=, <=, !=, and ==
-
------
-
-**Syntax**
-
-The filter tool allows you to restrict the dataset based on transcripts' feature counts.
-
-
-
+
+ using simple expressions
+
+ gff_filter_by_feature_count.py $input_file1 $out_file1 "$feature_name" "$cond"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+Valid comparison operators are: > < >=, <=, !=, and ==
+
+-----
+
+**Syntax**
+
+The filter tool allows you to restrict the dataset based on transcripts' feature counts.
+
+
+
diff --git a/tools/filters/gff/gtf_filter_by_attribute_values_list.xml b/tools/filters/gff/gtf_filter_by_attribute_values_list.xml
index 5ac16d20c13..0f5d0dadabc 100644
--- a/tools/filters/gff/gtf_filter_by_attribute_values_list.xml
+++ b/tools/filters/gff/gtf_filter_by_attribute_values_list.xml
@@ -1,42 +1,42 @@
-
-
-
- gtf_filter_by_attribute_values_list.py $input $attribute_name $ids $output
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-This tool filters a GTF file using a list of attribute values. The attribute values are
-taken from the first column in the file; additional columns in the file are ignored. An example
-use of this tool is to filter a GTF file using a list of transcript_ids or gene_ids obtained from Cuffdiff.
-
-
-
+
+
+
+ gtf_filter_by_attribute_values_list.py $input $attribute_name $ids $output
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tool filters a GTF file using a list of attribute values. The attribute values are
+taken from the first column in the file; additional columns in the file are ignored. An example
+use of this tool is to filter a GTF file using a list of transcript_ids or gene_ids obtained from Cuffdiff.
+
+
+
diff --git a/tools/filters/headWrapper.xml b/tools/filters/headWrapper.xml
index 0c67a2d4bca..53451c44067 100644
--- a/tools/filters/headWrapper.xml
+++ b/tools/filters/headWrapper.xml
@@ -1,42 +1,42 @@
-
- lines from a dataset
- headWrapper.pl $input $lineNum $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool outputs specified number of lines from the **beginning** of a dataset
-
------
-
-**Example**
-
-Selecting 2 lines from this::
-
- chr7 56632 56652 D17003_CTCF_R6 310 +
- chr7 56736 56756 D17003_CTCF_R7 354 +
- chr7 56761 56781 D17003_CTCF_R4 220 +
- chr7 56772 56792 D17003_CTCF_R7 372 +
- chr7 56775 56795 D17003_CTCF_R4 207 +
-
-will produce::
-
- chr7 56632 56652 D17003_CTCF_R6 310 +
- chr7 56736 56756 D17003_CTCF_R7 354 +
-
-
-
+
+ lines from a dataset
+ headWrapper.pl $input $lineNum $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool outputs specified number of lines from the **beginning** of a dataset
+
+-----
+
+**Example**
+
+Selecting 2 lines from this::
+
+ chr7 56632 56652 D17003_CTCF_R6 310 +
+ chr7 56736 56756 D17003_CTCF_R7 354 +
+ chr7 56761 56781 D17003_CTCF_R4 220 +
+ chr7 56772 56792 D17003_CTCF_R7 372 +
+ chr7 56775 56795 D17003_CTCF_R4 207 +
+
+will produce::
+
+ chr7 56632 56652 D17003_CTCF_R6 310 +
+ chr7 56736 56756 D17003_CTCF_R7 354 +
+
+
+
diff --git a/tools/filters/joiner2.xml b/tools/filters/joiner2.xml
index a3061e8919b..93cc920efd5 100644
--- a/tools/filters/joiner2.xml
+++ b/tools/filters/joiner2.xml
@@ -1,13 +1,13 @@
-
- two datasets a specific column of which has the same value
- sort -k $col1 $input1 > $input1.tmp; sort -k $col2 $input2 > $input2.tmp; join -1 $col1 -2 $col2 $input1.tmp $input2.tmp | tr " " "\t" > $out_file1; rm -rf $input1.tmp $input2.tmp
-
-
-
-
-
-
-
-
-
-
+
+ two datasets a specific column of which has the same value
+ sort -k $col1 $input1 > $input1.tmp; sort -k $col2 $input2 > $input2.tmp; join -1 $col1 -2 $col2 $input1.tmp $input2.tmp | tr " " "\t" > $out_file1; rm -rf $input1.tmp $input2.tmp
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/filters/lav_to_bed.py b/tools/filters/lav_to_bed.py
index 6b1e067884d..c9ab8f13984 100644
--- a/tools/filters/lav_to_bed.py
+++ b/tools/filters/lav_to_bed.py
@@ -1,54 +1,55 @@
-#!/usr/bin/env python
-#Reads a LAV file and writes two BED files.
-import sys
-from galaxy import eggs
-import pkg_resources
-pkg_resources.require( "bx-python" )
-import bx.align.lav
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def stop_err( msg ):
- sys.stderr.write( msg )
- sys.exit()
-
-def main():
- try:
- lav_file = open(sys.argv[1],'r')
- bed_file1 = open(sys.argv[2],'w')
- bed_file2 = open(sys.argv[3],'w')
- except Exception, e:
- stop_err( str( e ) )
-
- lavsRead = 0
- bedsWritten = 0
- species = {}
- # TODO: this is really bad since everything is read into memory. Can we eliminate this tool?
- for lavBlock in bx.align.lav.Reader( lav_file ):
- lavsRead += 1
- for c in lavBlock.components:
- spec, chrom = bx.align.lav.src_split( c.src )
- if bedsWritten < 1:
- if len( species )==0:
- species[spec]=bed_file1
- elif len( species )==1:
- species[spec]=bed_file2
- else:
- continue #this is a pairwise alignment...
- if spec in species:
- species[spec].write( "%s\t%i\t%i\t%s_%s\t%i\t%s\n" % ( chrom, c.start, c.end, spec, str( bedsWritten ), 0, c.strand ) )
- bedsWritten += 1
-
-
- for spec,file in species.items():
- print "#FILE\t%s\t%s" % (file.name, spec)
-
- lav_file.close()
- bed_file1.close()
- bed_file2.close()
-
- print "%d lav blocks read, %d regions written\n" % (lavsRead,bedsWritten)
-
-
-
-if __name__ == "__main__": main()
\ No newline at end of file
+#!/usr/bin/env python
+#Reads a LAV file and writes two BED files.
+import sys
+from galaxy import eggs
+import pkg_resources
+pkg_resources.require( "bx-python" )
+import bx.align.lav
+
+assert sys.version_info[:2] >= ( 2, 4 )
+
+
+def stop_err( msg ):
+ sys.stderr.write( msg )
+ sys.exit()
+
+
+def main():
+ try:
+ lav_file = open(sys.argv[1], 'r')
+ bed_file1 = open(sys.argv[2], 'w')
+ bed_file2 = open(sys.argv[3], 'w')
+ except Exception, e:
+ stop_err( str( e ) )
+
+ lavsRead = 0
+ bedsWritten = 0
+ species = {}
+ # TODO: this is really bad since everything is read into memory. Can we eliminate this tool?
+ for lavBlock in bx.align.lav.Reader( lav_file ):
+ lavsRead += 1
+ for c in lavBlock.components:
+ spec, chrom = bx.align.lav.src_split( c.src )
+ if bedsWritten < 1:
+ if len( species ) == 0:
+ species[spec] = bed_file1
+ elif len( species ) == 1:
+ species[spec] = bed_file2
+ else:
+ continue # this is a pairwise alignment...
+ if spec in species:
+ species[spec].write( "%s\t%i\t%i\t%s_%s\t%i\t%s\n" % ( chrom, c.start, c.end, spec, str( bedsWritten ), 0, c.strand ) )
+ bedsWritten += 1
+
+ for spec, file in species.items():
+ print "#FILE\t%s\t%s" % (file.name, spec)
+
+ lav_file.close()
+ bed_file1.close()
+ bed_file2.close()
+
+ print "%d lav blocks read, %d regions written\n" % (lavsRead, bedsWritten)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/tools/filters/lav_to_bed.xml b/tools/filters/lav_to_bed.xml
index 30af59c369d..369a0e59618 100644
--- a/tools/filters/lav_to_bed.xml
+++ b/tools/filters/lav_to_bed.xml
@@ -1,68 +1,68 @@
-
- Converts a LAV formatted file to BED format
- lav_to_bed.py $lav_file $bed_file1 $bed_file2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**Syntax**
-
-This tool converts a LAV formatted file to the BED format.
-
-- **LAV format** LAV is an alignment format developed by Webb Miller's group at Penn State University. It is the primary output format for BLASTZ.
-
-- **BED format** Browser Extensible Data format was designed at UCSC for displaying data tracks in the Genome Browser.
-
------
-
-**Example**
-
-- Convert LAV format::
-
- #:lav
- s {
- "/galaxy/data/hg16/seq/chr19.nib" 1 63811651 0 1
- "/galaxy/data/mm5/seq/chr11.nib" 1 121648857 0 1
- }
- h {
- "> hg16.chr19"
- "> mm5.chr11 (reverse complement)"
- }
- a {
- s 3500
- b 3001012 70568380
- e 3001075 70568443
- l 3001012 70568380 3001075 70568443 81
- }
- a {
- s 3900
- b 3008279 70573976
- e 3008357 70574054
- l 3008279 70573976 3008357 70574054 78
- }
- #:eof
-
-- To two BED formatted files::
-
- chr19 3001011 3001075 hg16_0 0 +
- chr19 3008278 3008357 hg16_1 0 +
-
- **and**::
-
- chr11 70568379 70568443 mm5_0 0 +
- chr11 70573975 70574054 mm5_1 0 +
-
-
-
+
+ Converts a LAV formatted file to BED format
+ lav_to_bed.py $lav_file $bed_file1 $bed_file2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**Syntax**
+
+This tool converts a LAV formatted file to the BED format.
+
+- **LAV format** LAV is an alignment format developed by Webb Miller's group at Penn State University. It is the primary output format for BLASTZ.
+
+- **BED format** Browser Extensible Data format was designed at UCSC for displaying data tracks in the Genome Browser.
+
+-----
+
+**Example**
+
+- Convert LAV format::
+
+ #:lav
+ s {
+ "/galaxy/data/hg16/seq/chr19.nib" 1 63811651 0 1
+ "/galaxy/data/mm5/seq/chr11.nib" 1 121648857 0 1
+ }
+ h {
+ "> hg16.chr19"
+ "> mm5.chr11 (reverse complement)"
+ }
+ a {
+ s 3500
+ b 3001012 70568380
+ e 3001075 70568443
+ l 3001012 70568380 3001075 70568443 81
+ }
+ a {
+ s 3900
+ b 3008279 70573976
+ e 3008357 70574054
+ l 3008279 70573976 3008357 70574054 78
+ }
+ #:eof
+
+- To two BED formatted files::
+
+ chr19 3001011 3001075 hg16_0 0 +
+ chr19 3008278 3008357 hg16_1 0 +
+
+ **and**::
+
+ chr11 70568379 70568443 mm5_0 0 +
+ chr11 70573975 70574054 mm5_1 0 +
+
+
+
diff --git a/tools/filters/lav_to_bed_code.py b/tools/filters/lav_to_bed_code.py
index 80f47a7d076..a996301f1c9 100644
--- a/tools/filters/lav_to_bed_code.py
+++ b/tools/filters/lav_to_bed_code.py
@@ -1,19 +1,19 @@
-#Set build, name, and info for each output BED file
-def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
- new_stdout = ""
- filename_to_build = {}
- for line in stdout.split("\n"):
- if line.startswith("#FILE"):
- fields = line.split("\t")
- filename_to_build[fields[1]]=fields[2].strip()
- else:
- new_stdout = "%s%s" % ( new_stdout, line )
- for name,data in out_data.items():
- try:
- data.info = "%s\n%s" % ( new_stdout, stderr )
- data.dbkey = filename_to_build[data.file_name]
- data.name = "%s (%s)" % ( data.name, data.dbkey )
- app.model.context.add( data )
- app.model.context.flush()
- except:
- continue
+#Set build, name, and info for each output BED file
+def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
+ new_stdout = ""
+ filename_to_build = {}
+ for line in stdout.split("\n"):
+ if line.startswith("#FILE"):
+ fields = line.split("\t")
+ filename_to_build[fields[1]]=fields[2].strip()
+ else:
+ new_stdout = "%s%s" % ( new_stdout, line )
+ for name,data in out_data.items():
+ try:
+ data.info = "%s\n%s" % ( new_stdout, stderr )
+ data.dbkey = filename_to_build[data.file_name]
+ data.name = "%s (%s)" % ( data.name, data.dbkey )
+ app.model.context.add( data )
+ app.model.context.flush()
+ except:
+ continue
diff --git a/tools/filters/pasteWrapper.xml b/tools/filters/pasteWrapper.xml
index 8da6e48d95a..e853d6147a4 100644
--- a/tools/filters/pasteWrapper.xml
+++ b/tools/filters/pasteWrapper.xml
@@ -1,68 +1,68 @@
-
- two files side by side
- pasteWrapper.pl $input1 $input2 $delimiter $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: infomark
-
-Paste preserves column assignments of the first dataset.
-
------
-
-**What it does**
-
-This tool merges two datasets side by side. If the first (left) dataset contains column assignments such as chromosome, start, end and strand, these will be preserved. However, if you would like to change column assignments, click the pencil icon in the history item.
-
------
-
-**Example**
-
-First dataset::
-
- a 1
- a 2
- a 3
-
-Second dataset::
-
- 20
- 30
- 40
-
-Pasting them together will produce::
-
- a 1 20
- a 2 30
- a 3 40
-
-
-
+
+ two files side by side
+ pasteWrapper.pl $input1 $input2 $delimiter $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+Paste preserves column assignments of the first dataset.
+
+-----
+
+**What it does**
+
+This tool merges two datasets side by side. If the first (left) dataset contains column assignments such as chromosome, start, end and strand, these will be preserved. However, if you would like to change column assignments, click the pencil icon in the history item.
+
+-----
+
+**Example**
+
+First dataset::
+
+ a 1
+ a 2
+ a 3
+
+Second dataset::
+
+ 20
+ 30
+ 40
+
+Pasting them together will produce::
+
+ a 1 20
+ a 2 30
+ a 3 40
+
+
+
diff --git a/tools/filters/remove_beginning.xml b/tools/filters/remove_beginning.xml
index 909b0073a42..a929e483d83 100644
--- a/tools/filters/remove_beginning.xml
+++ b/tools/filters/remove_beginning.xml
@@ -1,42 +1,42 @@
-
- of a file
- remove_beginning.pl $input $num_lines $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool removes a specified number of lines from the beginning of a dataset.
-
------
-
-**Example**
-
-Input File::
-
- chr7 56632 56652 D17003_CTCF_R6 310 +
- chr7 56736 56756 D17003_CTCF_R7 354 +
- chr7 56761 56781 D17003_CTCF_R4 220 +
- chr7 56772 56792 D17003_CTCF_R7 372 +
- chr7 56775 56795 D17003_CTCF_R4 207 +
-
-After removing the first 3 lines the dataset will look like this::
-
- chr7 56772 56792 D17003_CTCF_R7 372 +
- chr7 56775 56795 D17003_CTCF_R4 207 +
-
-
-
+
+ of a file
+ remove_beginning.pl $input $num_lines $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool removes a specified number of lines from the beginning of a dataset.
+
+-----
+
+**Example**
+
+Input File::
+
+ chr7 56632 56652 D17003_CTCF_R6 310 +
+ chr7 56736 56756 D17003_CTCF_R7 354 +
+ chr7 56761 56781 D17003_CTCF_R4 220 +
+ chr7 56772 56792 D17003_CTCF_R7 372 +
+ chr7 56775 56795 D17003_CTCF_R4 207 +
+
+After removing the first 3 lines the dataset will look like this::
+
+ chr7 56772 56792 D17003_CTCF_R7 372 +
+ chr7 56775 56795 D17003_CTCF_R4 207 +
+
+
+
diff --git a/tools/filters/tailWrapper.xml b/tools/filters/tailWrapper.xml
index f302f0aa378..1a7d7789ad5 100644
--- a/tools/filters/tailWrapper.xml
+++ b/tools/filters/tailWrapper.xml
@@ -1,42 +1,42 @@
-
- lines from a dataset
- tailWrapper.pl $input $lineNum $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool outputs specified number of lines from the **end** of a dataset
-
------
-
-**Example**
-
-- Input File::
-
- chr7 57134 57154 D17003_CTCF_R7 356 -
- chr7 57247 57267 D17003_CTCF_R4 207 +
- chr7 57314 57334 D17003_CTCF_R5 269 +
- chr7 57341 57361 D17003_CTCF_R7 375 +
- chr7 57457 57477 D17003_CTCF_R3 188 +
-
-- Show last two lines of above file. The result is::
-
- chr7 57341 57361 D17003_CTCF_R7 375 +
- chr7 57457 57477 D17003_CTCF_R3 188 +
-
-
-
+
+ lines from a dataset
+ tailWrapper.pl $input $lineNum $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool outputs specified number of lines from the **end** of a dataset
+
+-----
+
+**Example**
+
+- Input File::
+
+ chr7 57134 57154 D17003_CTCF_R7 356 -
+ chr7 57247 57267 D17003_CTCF_R4 207 +
+ chr7 57314 57334 D17003_CTCF_R5 269 +
+ chr7 57341 57361 D17003_CTCF_R7 375 +
+ chr7 57457 57477 D17003_CTCF_R3 188 +
+
+- Show last two lines of above file. The result is::
+
+ chr7 57341 57361 D17003_CTCF_R7 375 +
+ chr7 57457 57477 D17003_CTCF_R3 188 +
+
+
+
diff --git a/tools/filters/ucsc_gene_table_to_intervals.xml b/tools/filters/ucsc_gene_table_to_intervals.xml
index d0232a28042..8e382f8e58f 100644
--- a/tools/filters/ucsc_gene_table_to_intervals.xml
+++ b/tools/filters/ucsc_gene_table_to_intervals.xml
@@ -1,25 +1,25 @@
-
-Parse a UCSC Gene Table dump
- ucsc_gene_table_to_intervals.py --input=$input1 --output=$out_file1 --region=$region $exon
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Read a table dump in the UCSC gene table format and create a BED file corresponding to the requested feature of each gene.
-
+
+Parse a UCSC Gene Table dump
+ ucsc_gene_table_to_intervals.py --input=$input1 --output=$out_file1 --region=$region $exon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Read a table dump in the UCSC gene table format and create a BED file corresponding to the requested feature of each gene.
+
\ No newline at end of file
diff --git a/tools/maf/genebed_maf_to_fasta.xml b/tools/maf/genebed_maf_to_fasta.xml
index 44673e63986..42c0473d511 100644
--- a/tools/maf/genebed_maf_to_fasta.xml
+++ b/tools/maf/genebed_maf_to_fasta.xml
@@ -1,96 +1,95 @@
-
- given a set of coding exon intervals
-
- macros.xml
-
-
- #if $maf_source_type.maf_source == "user" #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_file --mafIndex=$maf_source_type.maf_file.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --mafSourceType=$maf_source_type.maf_source --geneBED --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
- #else #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_identifier --interval_file=$input1 --output_file=$out_file1 --mafSourceType=$maf_source_type.maf_source --geneBED --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
- #end if# --overwrite_with_gaps=$overwrite_with_gaps
-
-
-
-
- value.metadata.columns >= 12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- in aligning species
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-The coding sequence of genes are usually composed of several coding exons. Each of these coding exons is an individual genomic region, which when concatenated with each other constitutes the coding sequence. A single genomic region can be covered by multiple alignment blocks. In many cases it is desirable to stitch these alignment blocks together. This tool accepts a list of gene-based intervals, in the Gene BED format. For every interval it performs the following:
-
- * finds all MAF blocks that overlap the coding regions;
- * sorts MAF blocks by alignment score;
- * stitches blocks together and resolves overlaps based on alignment score;
- * outputs alignments in FASTA format.
-
-@HELP_CITATIONS@
-
-
-
+
+ given a set of coding exon intervals
+
+ macros.xml
+
+
+ #if $maf_source_type.maf_source == "user" #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_file --mafIndex=$maf_source_type.maf_file.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --mafSourceType=$maf_source_type.maf_source --geneBED --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
+ #else #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_identifier --interval_file=$input1 --output_file=$out_file1 --mafSourceType=$maf_source_type.maf_source --geneBED --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
+ #end if# --overwrite_with_gaps=$overwrite_with_gaps
+
+
+
+
+ value.metadata.columns >= 12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ in aligning species
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+The coding sequence of genes are usually composed of several coding exons. Each of these coding exons is an individual genomic region, which when concatenated with each other constitutes the coding sequence. A single genomic region can be covered by multiple alignment blocks. In many cases it is desirable to stitch these alignment blocks together. This tool accepts a list of gene-based intervals, in the Gene BED format. For every interval it performs the following:
+
+ * finds all MAF blocks that overlap the coding regions;
+ * sorts MAF blocks by alignment score;
+ * stitches blocks together and resolves overlaps based on alignment score;
+ * outputs alignments in FASTA format.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/interval2maf.xml b/tools/maf/interval2maf.xml
index 13b8f809e2a..d243690a938 100644
--- a/tools/maf/interval2maf.xml
+++ b/tools/maf/interval2maf.xml
@@ -1,292 +1,292 @@
-
- given a set of genomic intervals
-
- macros.xml
-
-
- #if $maf_source_type.maf_source == "user" #interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafFile=$maf_source_type.mafFile --mafIndex=$maf_source_type.mafFile.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --mafIndexFile=${GALAXY_DATA_INDEX_DIR}/maf_index.loc --species=$maf_source_type.species
- #else #interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafType=$maf_source_type.mafType --interval_file=$input1 --output_file=$out_file1 --mafIndexFile=${GALAXY_DATA_INDEX_DIR}/maf_index.loc --species=$maf_source_type.species
- #end if# --split_blocks_by_species=$split_blocks_by_species_selector.split_blocks_by_species
- #if $split_blocks_by_species_selector.split_blocks_by_species == "split_blocks_by_species"#
- --remove_all_gap_columns=$split_blocks_by_species_selector.remove_all_gap_columns
- #end if
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes genomic coordinates, superimposes them on multiple alignments (in MAF format) stored on the Galaxy site or from your history, and excises alignment blocks corresponding to each set of coordinates. Alignment blocks that extend past START and/or END positions of an interval are trimmed. Note that a single genomic interval may correspond to two or more alignment blocks.
-
------
-
-**Example**
-
-Here a single interval is superimposed on three MAF blocks. Blocks 1 and 3 are trimmed because they extend beyond boundaries of the interval:
-
-.. image:: ${static_path}/images/maf_icons/interval2maf.png
-
--------
-
-**Split blocks by species**
-
-This option examines each MAF block for multiple occurrences of a species in a single block. When this occurs, a block is split into multiple blocks where every combination of one sequence per species per block is represented.
-
-The interface for this option has two inputs:
-
- * **MAF file to split**. Choose multiple alignments from history to be split by species.
- * **Collapse empty alignment columns**. Should alignment columns containing only gaps in the new blocks be removed.
-
-
-
-**Example 1**: **Collapse empty alignment columns is Yes**:
-
-For the following alignment::
-
- ##maf version=1
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
-the tool will create **a single** history item containing 12 alignment blocks (notice that no columns contain only gaps)::
-
- ##maf version=1
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT-GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT-GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC--GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC-GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC-GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGCAG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC---AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC---AG
-
-
-
-**Example 2**: **Collapse empty alignment columns is No**:
-
-For the following alignment::
-
- ##maf version=1
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
-the tool will create **a single** history item containing 12 alignment blocks (notice that some columns contain only gaps)::
-
- ##maf version=1
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
- a score=2047408.0
- s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
- s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
- s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
-
-@HELP_CITATIONS@
-
-
-
+
+ given a set of genomic intervals
+
+ macros.xml
+
+
+ #if $maf_source_type.maf_source == "user" #interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafFile=$maf_source_type.mafFile --mafIndex=$maf_source_type.mafFile.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --mafIndexFile=${GALAXY_DATA_INDEX_DIR}/maf_index.loc --species=$maf_source_type.species
+ #else #interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafType=$maf_source_type.mafType --interval_file=$input1 --output_file=$out_file1 --mafIndexFile=${GALAXY_DATA_INDEX_DIR}/maf_index.loc --species=$maf_source_type.species
+ #end if# --split_blocks_by_species=$split_blocks_by_species_selector.split_blocks_by_species
+ #if $split_blocks_by_species_selector.split_blocks_by_species == "split_blocks_by_species"#
+ --remove_all_gap_columns=$split_blocks_by_species_selector.remove_all_gap_columns
+ #end if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes genomic coordinates, superimposes them on multiple alignments (in MAF format) stored on the Galaxy site or from your history, and excises alignment blocks corresponding to each set of coordinates. Alignment blocks that extend past START and/or END positions of an interval are trimmed. Note that a single genomic interval may correspond to two or more alignment blocks.
+
+-----
+
+**Example**
+
+Here a single interval is superimposed on three MAF blocks. Blocks 1 and 3 are trimmed because they extend beyond boundaries of the interval:
+
+.. image:: ${static_path}/images/maf_icons/interval2maf.png
+
+-------
+
+**Split blocks by species**
+
+This option examines each MAF block for multiple occurrences of a species in a single block. When this occurs, a block is split into multiple blocks where every combination of one sequence per species per block is represented.
+
+The interface for this option has two inputs:
+
+ * **MAF file to split**. Choose multiple alignments from history to be split by species.
+ * **Collapse empty alignment columns**. Should alignment columns containing only gaps in the new blocks be removed.
+
+
+
+**Example 1**: **Collapse empty alignment columns is Yes**:
+
+For the following alignment::
+
+ ##maf version=1
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+the tool will create **a single** history item containing 12 alignment blocks (notice that no columns contain only gaps)::
+
+ ##maf version=1
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT-GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT-GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC--GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC-GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC-GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGCAG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC---AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC---AG
+
+
+
+**Example 2**: **Collapse empty alignment columns is No**:
+
+For the following alignment::
+
+ ##maf version=1
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+the tool will create **a single** history item containing 12 alignment blocks (notice that some columns contain only gaps)::
+
+ ##maf version=1
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 85 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723125 83 - 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCT--GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTCGTCCTCAG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 85 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984545 83 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTT--GTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTCCTCAG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 + 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTT------AG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+ a score=2047408.0
+ s species1.chr1 147984645 79 - 245522847 ATGGCGTCGGCCTCCTCCGGGCCGTCGTC---GGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTTGTC---AG
+ s species2.chr1 129723925 79 + 229575298 ATGGCGTCGGCCTCCTCCGGGCCGTCGTCTTCGGTCGGTTTTTCATCCTTTGATCCCGCGGTCCCTTCCTGTACCTC------AG
+ s species3.chr3 68255714 76 - 258222147 ATGGCGTCCGCCTCCTCAGGGCCAGCGGC---GGCGGGGTTTTCACCCCTTGATTCCGGGGTCCCTGCCGGTACCGC------AG
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/interval2maf_pairwise.xml b/tools/maf/interval2maf_pairwise.xml
index 786fa2ac29e..99916f4edc0 100644
--- a/tools/maf/interval2maf_pairwise.xml
+++ b/tools/maf/interval2maf_pairwise.xml
@@ -1,48 +1,48 @@
-
- given a set of genomic intervals
-
- macros.xml
-
- interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafType=$mafType --interval_file=$input1 --output_file=$out_file1 --indexLocation=${GALAXY_DATA_INDEX_DIR}/maf_pairwise.loc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes genomic coordinates, superimposes them on pairwise alignments (in MAF format) stored on the Galaxy site, and excises alignment blocks corresponding to each set of coordinates. Alignment blocks that extend past START and/or END positions of an interval are trimmed. Note that a single genomic interval may correspond to two or more alignment blocks.
-
------
-
-**Example**
-
-Here a single interval is superimposed on three MAF blocks. Blocks 1 and 3 are trimmed because they extend beyond boundaries of the interval:
-
-.. image:: ${static_path}/images/maf_icons/interval2maf.png
-
-@HELP_CITATIONS@
-
-
-
+
+ given a set of genomic intervals
+
+ macros.xml
+
+ interval2maf.py --dbkey=${input1.dbkey} --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafType=$mafType --interval_file=$input1 --output_file=$out_file1 --indexLocation=${GALAXY_DATA_INDEX_DIR}/maf_pairwise.loc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes genomic coordinates, superimposes them on pairwise alignments (in MAF format) stored on the Galaxy site, and excises alignment blocks corresponding to each set of coordinates. Alignment blocks that extend past START and/or END positions of an interval are trimmed. Note that a single genomic interval may correspond to two or more alignment blocks.
+
+-----
+
+**Example**
+
+Here a single interval is superimposed on three MAF blocks. Blocks 1 and 3 are trimmed because they extend beyond boundaries of the interval:
+
+.. image:: ${static_path}/images/maf_icons/interval2maf.png
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/interval_maf_to_merged_fasta.xml b/tools/maf/interval_maf_to_merged_fasta.xml
index 053b3c45d90..25d9d91e7f5 100644
--- a/tools/maf/interval_maf_to_merged_fasta.xml
+++ b/tools/maf/interval_maf_to_merged_fasta.xml
@@ -1,112 +1,112 @@
-
- given a set of genomic intervals
-
- macros.xml
-
-
- #if $maf_source_type.maf_source == "user" #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_file --mafIndex=$maf_source_type.maf_file.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafSourceType=$maf_source_type.maf_source --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
- #else #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_identifier --interval_file=$input1 --output_file=$out_file1 --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafSourceType=$maf_source_type.maf_source --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
- #end if# --overwrite_with_gaps=$overwrite_with_gaps
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-A single genomic region can be covered by multiple alignment blocks. In many cases it is desirable to stitch these alignment blocks together. This tool accepts a list of genomic intervals. For every interval it performs the following:
-
- * finds all MAF blocks that overlap the interval;
- * sorts MAF blocks by alignment score;
- * stitches blocks together and resolves overlaps based on alignment score;
- * outputs alignments in FASTA format.
-
-------
-
-**Example**
-
-Here three MAF blocks overlapping a single interval are stitched together. Space between blocks 2 and 3 is filled with gaps:
-
-.. image:: ${static_path}/images/maf_icons/stitchMaf.png
-
-@HELP_CITATIONS@
-
-
-
+
+ given a set of genomic intervals
+
+ macros.xml
+
+
+ #if $maf_source_type.maf_source == "user" #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_file --mafIndex=$maf_source_type.maf_file.metadata.maf_index --interval_file=$input1 --output_file=$out_file1 --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafSourceType=$maf_source_type.maf_source --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
+ #else #interval_maf_to_merged_fasta.py --dbkey=$dbkey --species=$maf_source_type.species --mafSource=$maf_source_type.maf_identifier --interval_file=$input1 --output_file=$out_file1 --chromCol=${input1.metadata.chromCol} --startCol=${input1.metadata.startCol} --endCol=${input1.metadata.endCol} --strandCol=${input1.metadata.strandCol} --mafSourceType=$maf_source_type.maf_source --mafIndexFileDir=${GALAXY_DATA_INDEX_DIR}
+ #end if# --overwrite_with_gaps=$overwrite_with_gaps
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+A single genomic region can be covered by multiple alignment blocks. In many cases it is desirable to stitch these alignment blocks together. This tool accepts a list of genomic intervals. For every interval it performs the following:
+
+ * finds all MAF blocks that overlap the interval;
+ * sorts MAF blocks by alignment score;
+ * stitches blocks together and resolves overlaps based on alignment score;
+ * outputs alignments in FASTA format.
+
+------
+
+**Example**
+
+Here three MAF blocks overlapping a single interval are stitched together. Space between blocks 2 and 3 is filled with gaps:
+
+.. image:: ${static_path}/images/maf_icons/stitchMaf.png
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_by_block_number.xml b/tools/maf/maf_by_block_number.xml
index 3b9b578a130..474e461f0cf 100644
--- a/tools/maf/maf_by_block_number.xml
+++ b/tools/maf/maf_by_block_number.xml
@@ -1,38 +1,38 @@
-
- given a set of block numbers and a MAF file
-
- macros.xml
-
- maf_by_block_number.py $input1 $input2 $out_file1 $block_col $species
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes a list of block numbers, one per line, and extracts the corresponding MAF blocks from the provided file. Block numbers start at 0.
-
-@HELP_CITATIONS@
-
-
-
+
+ given a set of block numbers and a MAF file
+
+ macros.xml
+
+ maf_by_block_number.py $input1 $input2 $out_file1 $block_col $species
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes a list of block numbers, one per line, and extracts the corresponding MAF blocks from the provided file. Block numbers start at 0.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_filter.py b/tools/maf/maf_filter.py
index c223f2912ff..d1e4ab089fd 100644
--- a/tools/maf/maf_filter.py
+++ b/tools/maf/maf_filter.py
@@ -1,65 +1,72 @@
-#Dan Blankenberg
-#Filters a MAF file according to the provided code file, which is generated in maf_filter.xml
-#Also allows filtering by number of columns in a block, and limiting output species
-import sys, os, shutil
-from galaxy import eggs
-import pkg_resources; pkg_resources.require( "bx-python" )
-import bx.align.maf
-from galaxy.tools.util import maf_utilities
-
-def main():
- #Read command line arguments
- try:
- script_file = sys.argv.pop( 1 )
- maf_file = sys.argv.pop( 1 )
- out_file = sys.argv.pop( 1 )
- additional_files_path = sys.argv.pop( 1 )
- species = maf_utilities.parse_species_option( sys.argv.pop( 1 ) )
- min_size = int( sys.argv.pop( 1 ) )
- max_size = int( sys.argv.pop( 1 ) )
- if max_size < 1: max_size = sys.maxint
- min_species_per_block = int( sys.argv.pop( 1 ) )
- exclude_incomplete_blocks = int( sys.argv.pop( 1 ) )
- if species:
- num_species = len( species )
- else:
- num_species = len( sys.argv.pop( 1 ).split( ',') )
- except:
- print >>sys.stderr, "One or more arguments is missing.\nUsage: maf_filter.py maf_filter_file input_maf output_maf path_to_save_debug species_to_keep"
- sys.exit()
-
- #Open input and output MAF files
- try:
- maf_reader = bx.align.maf.Reader( open( maf_file,'r' ) )
- maf_writer = bx.align.maf.Writer( open( out_file,'w' ) )
- except:
- print >>sys.stderr, "Your MAF file appears to be malformed."
- sys.exit()
-
- #Save script file for debuging/verification info later
- os.mkdir( additional_files_path )
- shutil.copy( script_file, os.path.join( additional_files_path, 'debug.txt' ) )
-
- #Loop through blocks, running filter on each
- #'maf_block' and 'ret_val' are used/shared in the provided code file
- #'ret_val' should be set to True if the block is to be kept
- i = 0
- blocks_kept = 0
- for i, maf_block in enumerate( maf_reader ):
- if min_size <= maf_block.text_size <= max_size:
- local = {'maf_block':maf_block, 'ret_val':False}
- execfile( script_file, {}, local )
- if local['ret_val']:
- #Species limiting must be done after filters as filters could be run on non-requested output species
- if species:
- maf_block = maf_block.limit_to_species( species )
- if len( maf_block.components ) >= min_species_per_block and ( not exclude_incomplete_blocks or len( maf_block.components ) >= num_species ):
- maf_writer.write( maf_block )
- blocks_kept += 1
- maf_writer.close()
- maf_reader.close()
- if i == 0: print "Your file contains no valid maf_blocks."
- else: print 'Kept %s of %s blocks (%.2f%%).' % ( blocks_kept, i + 1, float( blocks_kept ) / float( i + 1 ) * 100.0 )
-
-if __name__ == "__main__":
- main()
+#Dan Blankenberg
+#Filters a MAF file according to the provided code file, which is generated in maf_filter.xml
+#Also allows filtering by number of columns in a block, and limiting output species
+import os
+import sys
+import shutil
+from galaxy import eggs
+import pkg_resources
+pkg_resources.require( "bx-python" )
+import bx.align.maf
+from galaxy.tools.util import maf_utilities
+
+
+def main():
+ #Read command line arguments
+ try:
+ script_file = sys.argv.pop( 1 )
+ maf_file = sys.argv.pop( 1 )
+ out_file = sys.argv.pop( 1 )
+ additional_files_path = sys.argv.pop( 1 )
+ species = maf_utilities.parse_species_option( sys.argv.pop( 1 ) )
+ min_size = int( sys.argv.pop( 1 ) )
+ max_size = int( sys.argv.pop( 1 ) )
+ if max_size < 1:
+ max_size = sys.maxint
+ min_species_per_block = int( sys.argv.pop( 1 ) )
+ exclude_incomplete_blocks = int( sys.argv.pop( 1 ) )
+ if species:
+ num_species = len( species )
+ else:
+ num_species = len( sys.argv.pop( 1 ).split( ',') )
+ except:
+ print >>sys.stderr, "One or more arguments is missing.\nUsage: maf_filter.py maf_filter_file input_maf output_maf path_to_save_debug species_to_keep"
+ sys.exit()
+
+ #Open input and output MAF files
+ try:
+ maf_reader = bx.align.maf.Reader( open( maf_file, 'r' ) )
+ maf_writer = bx.align.maf.Writer( open( out_file, 'w' ) )
+ except:
+ print >>sys.stderr, "Your MAF file appears to be malformed."
+ sys.exit()
+
+ #Save script file for debuging/verification info later
+ os.mkdir( additional_files_path )
+ shutil.copy( script_file, os.path.join( additional_files_path, 'debug.txt' ) )
+
+ #Loop through blocks, running filter on each
+ #'maf_block' and 'ret_val' are used/shared in the provided code file
+ #'ret_val' should be set to True if the block is to be kept
+ i = 0
+ blocks_kept = 0
+ for i, maf_block in enumerate( maf_reader ):
+ if min_size <= maf_block.text_size <= max_size:
+ local = {'maf_block': maf_block, 'ret_val': False}
+ execfile( script_file, {}, local )
+ if local['ret_val']:
+ #Species limiting must be done after filters as filters could be run on non-requested output species
+ if species:
+ maf_block = maf_block.limit_to_species( species )
+ if len( maf_block.components ) >= min_species_per_block and ( not exclude_incomplete_blocks or len( maf_block.components ) >= num_species ):
+ maf_writer.write( maf_block )
+ blocks_kept += 1
+ maf_writer.close()
+ maf_reader.close()
+ if i == 0:
+ print "Your file contains no valid maf_blocks."
+ else:
+ print 'Kept %s of %s blocks (%.2f%%).' % ( blocks_kept, i + 1, float( blocks_kept ) / float( i + 1 ) * 100.0 )
+
+if __name__ == "__main__":
+ main()
diff --git a/tools/maf/maf_filter.xml b/tools/maf/maf_filter.xml
index a69cdc681a7..7b33837c163 100644
--- a/tools/maf/maf_filter.xml
+++ b/tools/maf/maf_filter.xml
@@ -1,200 +1,199 @@
-
- by specified attributes
-
- macros.xml
-
- maf_filter.py $maf_filter_file $input1 $out_file1 $out_file1.files_path $species $min_size $max_size $min_species_per_block $exclude_incomplete_blocks ${input1.metadata.species}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#set $is_isnot_valid = {"==":"==", "!=":"!=", "in":"in", "not in":"not in"}
-def maf_block_pass_filter( maf_block ):
-#for $maf_filter in $maf_filters:
-#if $len( $maf_filter['species1_attributes']['filter_condition'] ) == 0:
-#continue
-#end if
- primary_component = maf_block.get_component_by_src_start( """$maf_filter['species1'].value.encode( 'string_escape' )""".decode( 'string_escape' ) )
- if primary_component is not None:
-#if $maf_filter['species1_attributes']['species1_attribute_type'] == 'attribute_chr':
- if primary_component.src.split( "." )[-1] $is_isnot_valid.get( $maf_filter['species1_attributes']['species1_is_isnot'].value.strip(), 'is in' ) """$maf_filter['species1_attributes']['species1_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ).split( "," ):
-#else
- if primary_component.strand $is_isnot_valid.get( $maf_filter['species1_attributes']['species1_is_isnot'].value.strip(), '==' ) """$maf_filter['species1_attributes']['species1_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ):
-#end if
-#for $filter_condition in $maf_filter['species1_attributes']['filter_condition']:
- secondary_component = maf_block.get_component_by_src_start( """$filter_condition['species2'].value.encode( 'string_escape' )""".decode( 'string_escape' ) )
-#if $filter_condition['species2_attributes']['species2_attribute_type'] == 'attribute_chr':
- if secondary_component is not None:
- if not ( secondary_component.src.split( "." )[-1] $is_isnot_valid.get( $filter_condition['species2_attributes']['species2_is_isnot'].value.strip(), 'is in' ) """$filter_condition['species2_attributes']['species2_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ).split( "," ) ):
- return False
-#else:
- if secondary_component is not None:
- if not ( secondary_component.strand $is_isnot_valid.get( $filter_condition['species2_attributes']['species2_is_isnot'].value.strip(), '==' ) """$filter_condition['species2_attributes']['species2_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ) ):
- return False
-#end if
-#end for
-#end for
- return True
-ret_val = maf_block_pass_filter( maf_block )
-
-
-
-
-
-
-
-This tool allows you to build complex filters to be applied to each alignment block of a MAF file. You can define restraints on species based upon chromosome and strand. You can specify comma separated lists of chromosomes where appropriate.
-
-.. class:: infomark
-
-For example, this tool is useful to restrict a set of alignments to only those blocks which contain alignments between chromosomes that are considered homologous.
-
------
-
-.. class:: warningmark
-
-If a species is not found in a particular block, all filters on that species are ignored.
-
------
-
-This tool allows the user to remove any undesired species from a MAF file. If no species are specified then all species will be kept. If species are specified, columns which contain only gaps are removed. The options for this are:
-
- * **Exclude blocks which have missing species** - suppose you want to restrict an 8-way alignment to human, mouse, and rat. The tool will first remove all other species. Next, if this option is set to **YES** the tool WILL NOT return MAF blocks, which do not include human, mouse, or rat. This means that all alignment blocks returned by the tool will have exactly three sequences in this example.
-
- * **Exclude blocks which have only one species** - if this option is set to **YES** all single sequence alignment blocks WILL NOT be returned.
-
------
-
-You can also provide a size range and limit your output to the MAF blocks which fall within the specified range.
-
-@HELP_CITATIONS@
-
-
-
+
+ by specified attributes
+
+ macros.xml
+
+ maf_filter.py $maf_filter_file $input1 $out_file1 $out_file1.files_path $species $min_size $max_size $min_species_per_block $exclude_incomplete_blocks ${input1.metadata.species}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#set $is_isnot_valid = {"==":"==", "!=":"!=", "in":"in", "not in":"not in"}
+def maf_block_pass_filter( maf_block ):
+#for $maf_filter in $maf_filters:
+#if $len( $maf_filter['species1_attributes']['filter_condition'] ) == 0:
+#continue
+#end if
+ primary_component = maf_block.get_component_by_src_start( """$maf_filter['species1'].value.encode( 'string_escape' )""".decode( 'string_escape' ) )
+ if primary_component is not None:
+#if $maf_filter['species1_attributes']['species1_attribute_type'] == 'attribute_chr':
+ if primary_component.src.split( "." )[-1] $is_isnot_valid.get( $maf_filter['species1_attributes']['species1_is_isnot'].value.strip(), 'is in' ) """$maf_filter['species1_attributes']['species1_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ).split( "," ):
+#else
+ if primary_component.strand $is_isnot_valid.get( $maf_filter['species1_attributes']['species1_is_isnot'].value.strip(), '==' ) """$maf_filter['species1_attributes']['species1_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ):
+#end if
+#for $filter_condition in $maf_filter['species1_attributes']['filter_condition']:
+ secondary_component = maf_block.get_component_by_src_start( """$filter_condition['species2'].value.encode( 'string_escape' )""".decode( 'string_escape' ) )
+#if $filter_condition['species2_attributes']['species2_attribute_type'] == 'attribute_chr':
+ if secondary_component is not None:
+ if not ( secondary_component.src.split( "." )[-1] $is_isnot_valid.get( $filter_condition['species2_attributes']['species2_is_isnot'].value.strip(), 'is in' ) """$filter_condition['species2_attributes']['species2_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ).split( "," ) ):
+ return False
+#else:
+ if secondary_component is not None:
+ if not ( secondary_component.strand $is_isnot_valid.get( $filter_condition['species2_attributes']['species2_is_isnot'].value.strip(), '==' ) """$filter_condition['species2_attributes']['species2_attribute'].value.encode( 'string_escape' )""".decode( 'string_escape' ) ):
+ return False
+#end if
+#end for
+#end for
+ return True
+ret_val = maf_block_pass_filter( maf_block )
+
+
+
+
+
+
+
+This tool allows you to build complex filters to be applied to each alignment block of a MAF file. You can define restraints on species based upon chromosome and strand. You can specify comma separated lists of chromosomes where appropriate.
+
+.. class:: infomark
+
+For example, this tool is useful to restrict a set of alignments to only those blocks which contain alignments between chromosomes that are considered homologous.
+
+-----
+
+.. class:: warningmark
+
+If a species is not found in a particular block, all filters on that species are ignored.
+
+-----
+
+This tool allows the user to remove any undesired species from a MAF file. If no species are specified then all species will be kept. If species are specified, columns which contain only gaps are removed. The options for this are:
+
+ * **Exclude blocks which have missing species** - suppose you want to restrict an 8-way alignment to human, mouse, and rat. The tool will first remove all other species. Next, if this option is set to **YES** the tool WILL NOT return MAF blocks, which do not include human, mouse, or rat. This means that all alignment blocks returned by the tool will have exactly three sequences in this example.
+
+ * **Exclude blocks which have only one species** - if this option is set to **YES** all single sequence alignment blocks WILL NOT be returned.
+
+-----
+
+You can also provide a size range and limit your output to the MAF blocks which fall within the specified range.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_limit_size.xml b/tools/maf/maf_limit_size.xml
index 51feb29d4ef..207628a9054 100644
--- a/tools/maf/maf_limit_size.xml
+++ b/tools/maf/maf_limit_size.xml
@@ -1,34 +1,34 @@
-
- by Size
-
- macros.xml
-
- maf_limit_size.py $input1 $out_file1 $min_size $max_size
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes a MAF file and a size range and extracts the MAF blocks which fall within the specified range.
-
-@HELP_CITATIONS@
-
-
-
+
+ by Size
+
+ macros.xml
+
+ maf_limit_size.py $input1 $out_file1 $min_size $max_size
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes a MAF file and a size range and extracts the MAF blocks which fall within the specified range.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_reverse_complement.py b/tools/maf/maf_reverse_complement.py
index 14417041eee..8228b599805 100644
--- a/tools/maf/maf_reverse_complement.py
+++ b/tools/maf/maf_reverse_complement.py
@@ -1,42 +1,45 @@
-#!/usr/bin/env python
-
-"""
-Reads a MAF file. Produces a MAF file containing
-the reverse complement for each block in the source file.
-
-usage: %prog input_maf_file output_maf_file
-"""
-#Dan Blankenberg
-from galaxy import eggs
-import pkg_resources; pkg_resources.require( "bx-python" )
-import bx.align.maf
-from galaxy.tools.util import maf_utilities
-import sys
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def __main__():
- #Parse Command Line
- input_file = sys.argv.pop( 1 )
- output_file = sys.argv.pop( 1 )
- species = maf_utilities.parse_species_option( sys.argv.pop( 1 ) )
-
- try:
- maf_writer = bx.align.maf.Writer( open( output_file, 'w' ) )
- except:
- print sys.stderr, "Unable to open output file"
- sys.exit()
- try:
- count = 0
- for count, maf in enumerate( bx.align.maf.Reader( open( input_file ) ) ):
- maf = maf.reverse_complement()
- if species:
- maf = maf.limit_to_species( species )
- maf_writer.write( maf )
- except:
- print >>sys.stderr, "Your MAF file appears to be malformed."
- sys.exit()
- print "%i regions were reverse complemented." % count
- maf_writer.close()
-
-if __name__ == "__main__": __main__()
+#!/usr/bin/env python
+
+"""
+Reads a MAF file. Produces a MAF file containing
+the reverse complement for each block in the source file.
+
+usage: %prog input_maf_file output_maf_file
+"""
+#Dan Blankenberg
+from galaxy import eggs
+import pkg_resources
+pkg_resources.require( "bx-python" )
+import bx.align.maf
+from galaxy.tools.util import maf_utilities
+import sys
+
+assert sys.version_info[:2] >= ( 2, 4 )
+
+
+def __main__():
+ #Parse Command Line
+ input_file = sys.argv.pop( 1 )
+ output_file = sys.argv.pop( 1 )
+ species = maf_utilities.parse_species_option( sys.argv.pop( 1 ) )
+
+ try:
+ maf_writer = bx.align.maf.Writer( open( output_file, 'w' ) )
+ except:
+ print sys.stderr, "Unable to open output file"
+ sys.exit()
+ try:
+ count = 0
+ for count, maf in enumerate( bx.align.maf.Reader( open( input_file ) ) ):
+ maf = maf.reverse_complement()
+ if species:
+ maf = maf.limit_to_species( species )
+ maf_writer.write( maf )
+ except:
+ print >>sys.stderr, "Your MAF file appears to be malformed."
+ sys.exit()
+ print "%i regions were reverse complemented." % count
+ maf_writer.close()
+
+if __name__ == "__main__":
+ __main__()
diff --git a/tools/maf/maf_reverse_complement.xml b/tools/maf/maf_reverse_complement.xml
index a35b72ffced..ce62d0db7a5 100644
--- a/tools/maf/maf_reverse_complement.xml
+++ b/tools/maf/maf_reverse_complement.xml
@@ -1,51 +1,51 @@
-
- a MAF file
-
- macros.xml
-
- maf_reverse_complement.py $input1 $out_file1 $species
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes a MAF file and creates a new MAF file, where each block has been reversed complemented.
-
-**Example**
-
-This MAF Block::
-
- a score=8157.000000
- s hg17.chr7 127471526 58 + 158628139 AATTTGTGGTTTATTCATTTTTCATTATTTTGTTTAAGGAGGTCTATAGTGGAAGAGG
- s panTro1.chr6 129885407 58 + 161576975 AATTTGTGGTTTATTCGTTTTTCATTATTTTGTTTAAGGAGGTCTATAGTGGAAGAGG
- s mm5.chr6 28904928 54 + 149721531 AA----CGTTTCATTGATTGCTCATCATTTAAAAAAAGAAATTCCTCAGTGGAAGAGG
-
-becomes::
-
- a score=8157.000000
- s hg17.chr7 31156555 58 - 158628139 CCTCTTCCACTATAGACCTCCTTAAACAAAATAATGAAAAATGAATAAACCACAAATT
- s panTro1.chr6 31691510 58 - 161576975 CCTCTTCCACTATAGACCTCCTTAAACAAAATAATGAAAAACGAATAAACCACAAATT
- s mm5.chr6 120816549 54 - 149721531 CCTCTTCCACTGAGGAATTTCTTTTTTTAAATGATGAGCAATCAATGAAACG----TT
-
-@HELP_CITATIONS@
-
-
-
+
+ a MAF file
+
+ macros.xml
+
+ maf_reverse_complement.py $input1 $out_file1 $species
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes a MAF file and creates a new MAF file, where each block has been reversed complemented.
+
+**Example**
+
+This MAF Block::
+
+ a score=8157.000000
+ s hg17.chr7 127471526 58 + 158628139 AATTTGTGGTTTATTCATTTTTCATTATTTTGTTTAAGGAGGTCTATAGTGGAAGAGG
+ s panTro1.chr6 129885407 58 + 161576975 AATTTGTGGTTTATTCGTTTTTCATTATTTTGTTTAAGGAGGTCTATAGTGGAAGAGG
+ s mm5.chr6 28904928 54 + 149721531 AA----CGTTTCATTGATTGCTCATCATTTAAAAAAAGAAATTCCTCAGTGGAAGAGG
+
+becomes::
+
+ a score=8157.000000
+ s hg17.chr7 31156555 58 - 158628139 CCTCTTCCACTATAGACCTCCTTAAACAAAATAATGAAAAATGAATAAACCACAAATT
+ s panTro1.chr6 31691510 58 - 161576975 CCTCTTCCACTATAGACCTCCTTAAACAAAATAATGAAAAACGAATAAACCACAAATT
+ s mm5.chr6 120816549 54 - 149721531 CCTCTTCCACTGAGGAATTTCTTTTTTTAAATGATGAGCAATCAATGAAACG----TT
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_split_by_species.xml b/tools/maf/maf_split_by_species.xml
index d1efd45075c..b33a029ffaa 100644
--- a/tools/maf/maf_split_by_species.xml
+++ b/tools/maf/maf_split_by_species.xml
@@ -6,9 +6,9 @@
maf_split_by_species.py $input1 $out_file1 $collapse_columns
-
-
-
+
+
+
diff --git a/tools/maf/maf_stats.xml b/tools/maf/maf_stats.xml
index 4dec43968a9..39be20291fb 100644
--- a/tools/maf/maf_stats.xml
+++ b/tools/maf/maf_stats.xml
@@ -1,118 +1,115 @@
-
- Alignment coverage information
-
- macros.xml
-
-
- maf_stats.py
- #if $maf_source_type.maf_source == "user":
- $maf_source_type.maf_source $input2 $input1 $out_file1 $dbkey ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} $summary
- #else:
- $maf_source_type.maf_source $maf_source_type.mafType $input1 $out_file1 $dbkey ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} $summary
- #end if
+
+ Alignment coverage information
+
+ macros.xml
+
+
+ maf_stats.py
+ #if $maf_source_type.maf_source == "user":
+ $maf_source_type.maf_source $input2 $input1 $out_file1 $dbkey ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} $summary
+ #else:
+ $maf_source_type.maf_source $maf_source_type.mafType $input1 $out_file1 $dbkey ${input1.metadata.chromCol} ${input1.metadata.startCol} ${input1.metadata.endCol} $summary
+ #end if
${GALAXY_DATA_INDEX_DIR}
#if $maf_source_type.maf_source == "user":
$input2.metadata.maf_index
- #end if
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- numpy
-
-
-
-
-
-
-
-
+ #end if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-**What it does**
-
-This tool takes a MAF file and an interval file and relates coverage information by interval for each species.
-If a column does not exist in the reference genome, it is not included in the output.
-
-Consider the interval: "chrX 1000 1100 myInterval"
- Let's suppose we want to do stats on three way alignments for H, M, and R. The result look like this:
-
- chrX 1000 1100 myInterval H XXX YYY
-
- chrX 1000 1100 myInterval M XXX YYY
-
- chrX 1000 1100 myInterval R XXX YYY
-
-
- where XXX and YYY are:
-
- XXX = number of nucleotides
-
- YYY = number of gaps
-
-----
-
-Alternatively, you can request only summary information for a set of intervals:
-
- ======== =========== ========
- #species nucleotides coverage
- ======== =========== ========
- hg18 30639 0.2372
- rheMac2 7524 0.0582
- panTro2 30390 0.2353
- ======== =========== ========
-
- where **coverage** is the number of nucleotides divided by the total length of the provided intervals.
-
-@HELP_CITATIONS@
-
-
-
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool takes a MAF file and an interval file and relates coverage information by interval for each species.
+If a column does not exist in the reference genome, it is not included in the output.
+
+Consider the interval: "chrX 1000 1100 myInterval"
+ Let's suppose we want to do stats on three way alignments for H, M, and R. The result look like this:
+
+ chrX 1000 1100 myInterval H XXX YYY
+
+ chrX 1000 1100 myInterval M XXX YYY
+
+ chrX 1000 1100 myInterval R XXX YYY
+
+
+ where XXX and YYY are:
+
+ XXX = number of nucleotides
+
+ YYY = number of gaps
+
+----
+
+Alternatively, you can request only summary information for a set of intervals:
+
+ ======== =========== ========
+ #species nucleotides coverage
+ ======== =========== ========
+ hg18 30639 0.2372
+ rheMac2 7524 0.0582
+ panTro2 30390 0.2353
+ ======== =========== ========
+
+ where **coverage** is the number of nucleotides divided by the total length of the provided intervals.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/maf/maf_to_fasta.xml b/tools/maf/maf_to_fasta.xml
index bddba3c8d9d..ec2abfaa464 100644
--- a/tools/maf/maf_to_fasta.xml
+++ b/tools/maf/maf_to_fasta.xml
@@ -1,197 +1,197 @@
-
- Converts a MAF formatted file to FASTA format
-
- macros.xml
-
-
- #if $fasta_target_type.fasta_type == "multiple" #maf_to_fasta_multiple_sets.py $input1 $out_file1 $fasta_target_type.species $fasta_target_type.complete_blocks
- #else #maf_to_fasta_concat.py $fasta_target_type.species $input1 $out_file1
- #end if#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**Types of MAF to FASTA conversion**
-
- * **Multiple Blocks** converts a single MAF block to a single FASTA block. For example, if you have 6 MAF blocks, they will be converted to 6 FASTA blocks.
- * **One Sequence per Species** converts MAF blocks to a single aggregated FASTA block. For example, if you have 6 MAF blocks, they will be converted and concatenated into a single FASTA block.
-
--------
-
-**What it does**
-
-This tool converts MAF blocks to FASTA format and concatenates them into a single FASTA block or outputs multiple FASTA blocks separated by empty lines.
-
-The interface for this tool contains two pages (steps):
-
- * **Step 1 of 2**. Choose multiple alignments from history to be converted to FASTA format.
- * **Step 2 of 2**. Choose the type of output as well as the species from the alignment to be included in the output.
-
- Multiple Block output has additional options:
-
- * **Choose species** - the tool reads the alignment provided during Step 1 and generates a list of species contained within that alignment. Using checkboxes you can specify taxa to be included in the output (all species are selected by default).
- * **Choose to include/exclude blocks with missing species** - if an alignment block does not contain any one of the species you selected within **Choose species** menu and this option is set to **exclude blocks with missing species**, then such a block **will not** be included in the output (see **Example 2** below). For example, if you want to extract human, mouse, and rat from a series of alignments and one of the blocks does not contain mouse sequence, then this block will not be converted to FASTA and will not be returned.
-
-
------
-
-**Example 1**:
-
-In the concatenated approach, the following alignment::
-
- ##maf version=1
- a score=68686.000000
- s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
- s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
- s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
-
- a score=10289.000000
- s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
-
-will be converted to (**note** that because mm8 (mouse) and canFam2 (dog) are absent from the second block, they are replaced with gaps after concatenation)::
-
- >canFam2
- CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C-------------------------------------
- >hg18
- GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- >mm8
- AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC--------------------------------------------
- >panTro2
- GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- >rheMac2
- GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
-
-------
-
-**Example 2a**: Multiple Block Approach **Include all species** and **include blocks with missing species**:
-
-The following alignment::
-
- ##maf version=1
- a score=68686.000000
- s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
- s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
- s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
-
- a score=10289.000000
- s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
-
-will be converted to::
-
- >hg18.chr20(+):56827368-56827443|hg18_0
- GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- >panTro2.chr20(+):56528685-56528760|panTro2_0
- GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- >rheMac2.chr10(-):89144112-89144181|rheMac2_0
- GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
- >mm8.chr2(+):173910832-173910893|mm8_0
- AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
- >canFam2.chr24(+):46551822-46551889|canFam2_0
- CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
-
- >hg18.chr20(+):56827443-56827480|hg18_1
- ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- >panTro2.chr20(+):56528760-56528797|panTro2_1
- ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- >rheMac2.chr10(-):89144181-89144218|rheMac2_1
- ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
-
------
-
-**Example 2b**: Multiple Block Approach **Include hg18 and mm8** and **exclude blocks with missing species**:
-
-The following alignment::
-
- ##maf version=1
- a score=68686.000000
- s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
- s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
- s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
- s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
-
- a score=10289.000000
- s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
- s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
-
-will be converted to (**note** that the second MAF block, which does not have mm8, is not included in the output)::
-
- >hg18.chr20(+):56827368-56827443|hg18_0
- GACAGGGTGCATCTGGGAGGGCCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC
- >mm8.chr2(+):173910832-173910893|mm8_0
- AGAAGGATCCACCT---------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC------
-
-------
-
-.. class:: infomark
-
-**About formats**
-
- **MAF format** multiple alignment format file. This format stores multiple alignments at the DNA level between entire genomes.
-
- - The .maf format is line-oriented. Each multiple alignment ends with a blank line.
- - Each sequence in an alignment is on a single line.
- - Lines starting with # are considered to be comments.
- - Each multiple alignment is in a separate paragraph that begins with an "a" line and contains an "s" line for each sequence in the multiple alignment.
- - Some MAF files may contain two optional line types:
-
- - An "i" line containing information about what is in the aligned species DNA before and after the immediately preceding "s" line;
- - An "e" line containing information about the size of the gap between the alignments that span the current block.
-
-@HELP_CITATIONS@
-
-
-
+
+ Converts a MAF formatted file to FASTA format
+
+ macros.xml
+
+
+ #if $fasta_target_type.fasta_type == "multiple" #maf_to_fasta_multiple_sets.py $input1 $out_file1 $fasta_target_type.species $fasta_target_type.complete_blocks
+ #else #maf_to_fasta_concat.py $fasta_target_type.species $input1 $out_file1
+ #end if#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**Types of MAF to FASTA conversion**
+
+ * **Multiple Blocks** converts a single MAF block to a single FASTA block. For example, if you have 6 MAF blocks, they will be converted to 6 FASTA blocks.
+ * **One Sequence per Species** converts MAF blocks to a single aggregated FASTA block. For example, if you have 6 MAF blocks, they will be converted and concatenated into a single FASTA block.
+
+-------
+
+**What it does**
+
+This tool converts MAF blocks to FASTA format and concatenates them into a single FASTA block or outputs multiple FASTA blocks separated by empty lines.
+
+The interface for this tool contains two pages (steps):
+
+ * **Step 1 of 2**. Choose multiple alignments from history to be converted to FASTA format.
+ * **Step 2 of 2**. Choose the type of output as well as the species from the alignment to be included in the output.
+
+ Multiple Block output has additional options:
+
+ * **Choose species** - the tool reads the alignment provided during Step 1 and generates a list of species contained within that alignment. Using checkboxes you can specify taxa to be included in the output (all species are selected by default).
+ * **Choose to include/exclude blocks with missing species** - if an alignment block does not contain any one of the species you selected within **Choose species** menu and this option is set to **exclude blocks with missing species**, then such a block **will not** be included in the output (see **Example 2** below). For example, if you want to extract human, mouse, and rat from a series of alignments and one of the blocks does not contain mouse sequence, then this block will not be converted to FASTA and will not be returned.
+
+
+-----
+
+**Example 1**:
+
+In the concatenated approach, the following alignment::
+
+ ##maf version=1
+ a score=68686.000000
+ s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
+ s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
+ s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
+
+ a score=10289.000000
+ s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
+
+will be converted to (**note** that because mm8 (mouse) and canFam2 (dog) are absent from the second block, they are replaced with gaps after concatenation)::
+
+ >canFam2
+ CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C-------------------------------------
+ >hg18
+ GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ >mm8
+ AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC--------------------------------------------
+ >panTro2
+ GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ >rheMac2
+ GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
+
+------
+
+**Example 2a**: Multiple Block Approach **Include all species** and **include blocks with missing species**:
+
+The following alignment::
+
+ ##maf version=1
+ a score=68686.000000
+ s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
+ s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
+ s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
+
+ a score=10289.000000
+ s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
+
+will be converted to::
+
+ >hg18.chr20(+):56827368-56827443|hg18_0
+ GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ >panTro2.chr20(+):56528685-56528760|panTro2_0
+ GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ >rheMac2.chr10(-):89144112-89144181|rheMac2_0
+ GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
+ >mm8.chr2(+):173910832-173910893|mm8_0
+ AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
+ >canFam2.chr24(+):46551822-46551889|canFam2_0
+ CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
+
+ >hg18.chr20(+):56827443-56827480|hg18_1
+ ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ >panTro2.chr20(+):56528760-56528797|panTro2_1
+ ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ >rheMac2.chr10(-):89144181-89144218|rheMac2_1
+ ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
+
+-----
+
+**Example 2b**: Multiple Block Approach **Include hg18 and mm8** and **exclude blocks with missing species**:
+
+The following alignment::
+
+ ##maf version=1
+ a score=68686.000000
+ s hg18.chr20 56827368 75 + 62435964 GACAGGGTGCATCTGGGAGGG---CCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s panTro2.chr20 56528685 75 + 62293572 GACAGGGTGCATCTGAGAGGG---CCTGCCAGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC-
+ s rheMac2.chr10 89144112 69 - 94855758 GACAGGGTGCATCTGAGAGGG---CCTGCTGGGCCTTTG-TTCAAAACTAGATATGCCCCAACTCCAATTCTA-------
+ s mm8.chr2 173910832 61 + 181976762 AGAAGGATCCACCT------------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC-------
+ s canFam2.chr24 46551822 67 + 50763139 CG------GCGTCTGTAAGGGGCCACCGCCCGGCCTGTG-CTCAAAGCTACAAATGACTCAACTCCCAACCGA------C
+
+ a score=10289.000000
+ s hg18.chr20 56827443 37 + 62435964 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s panTro2.chr20 56528760 37 + 62293572 ATGTGCAGAAAATGTGATACAGAAACCTGCAGAGCAG
+ s rheMac2.chr10 89144181 37 - 94855758 ATGTGCGGAAAATGTGATACAGAAACCTGCAGAGCAG
+
+will be converted to (**note** that the second MAF block, which does not have mm8, is not included in the output)::
+
+ >hg18.chr20(+):56827368-56827443|hg18_0
+ GACAGGGTGCATCTGGGAGGGCCTGCCGGGCCTTTA-TTCAACACTAGATACGCCCCATCTCCAATTCTAATGGAC
+ >mm8.chr2(+):173910832-173910893|mm8_0
+ AGAAGGATCCACCT---------TGCTGGGCCTCTGCTCCAGCAAGACCCACCTCCCAACTCAAATGCCC------
+
+------
+
+.. class:: infomark
+
+**About formats**
+
+ **MAF format** multiple alignment format file. This format stores multiple alignments at the DNA level between entire genomes.
+
+ - The .maf format is line-oriented. Each multiple alignment ends with a blank line.
+ - Each sequence in an alignment is on a single line.
+ - Lines starting with # are considered to be comments.
+ - Each multiple alignment is in a separate paragraph that begins with an "a" line and contains an "s" line for each sequence in the multiple alignment.
+ - Some MAF files may contain two optional line types:
+
+ - An "i" line containing information about what is in the aligned species DNA before and after the immediately preceding "s" line;
+ - An "e" line containing information about the size of the gap between the alignments that span the current block.
+
+@HELP_CITATIONS@
+
+
+
diff --git a/tools/plotting/bar_chart.xml b/tools/plotting/bar_chart.xml
index 229ba4157ec..d5f86bcc18d 100644
--- a/tools/plotting/bar_chart.xml
+++ b/tools/plotting/bar_chart.xml
@@ -1,60 +1,58 @@
-
- for multiple columns
-
- #if $xtic.userSpecified == "Yes" #bar_chart.py $input $xtic.xticColumn $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
- #else #bar_chart.py $input 0 $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
- #end if
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Gnuplot
- Numeric
-
-
-
-**What it does**
-
-This tool builds a bar chart on one or more columns. Suppose you have dataset like this one::
-
- Gene1 10 15
- Gene2 20 14
- Gene3 67 45
- Gene4 55 12
-
-Graphing columns 2 and 3 while using column 1 for X Tick Labels will produce the following plot:
-
-.. image:: ${static_path}/images/bar_chart.png
- :height: 324
- :width: 540
-
-
-
+
+ for multiple columns
+
+ #if $xtic.userSpecified == "Yes" #bar_chart.py $input $xtic.xticColumn $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
+ #else #bar_chart.py $input 0 $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
+ #end if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gnuplot
+ Numeric
+
+
+**What it does**
+
+This tool builds a bar chart on one or more columns. Suppose you have dataset like this one::
+
+ Gene1 10 15
+ Gene2 20 14
+ Gene3 67 45
+ Gene4 55 12
+
+Graphing columns 2 and 3 while using column 1 for X Tick Labels will produce the following plot:
+
+.. image:: ${static_path}/images/bar_chart.png
+ :height: 324
+ :width: 540
+
+
diff --git a/tools/plotting/boxplot.xml b/tools/plotting/boxplot.xml
index 8a6a77e3109..38fc474b8bb 100644
--- a/tools/plotting/boxplot.xml
+++ b/tools/plotting/boxplot.xml
@@ -2,7 +2,7 @@
of quality statisticsgnuplot < '$gnuplot_commands' 2>&1 || echo "Error running gnuplot." >&2
- gnuplot
+ gnuplot
diff --git a/tools/solid_tools/maq_cs_wrapper_code.py b/tools/solid_tools/maq_cs_wrapper_code.py
index c5b7e390841..7a0a7e7f108 100644
--- a/tools/solid_tools/maq_cs_wrapper_code.py
+++ b/tools/solid_tools/maq_cs_wrapper_code.py
@@ -1,5 +1,4 @@
-def exec_before_job(app, inp_data, out_data, param_dict, tool):
- out_data['output1'].name = out_data['output1'].name + " [ ALIGNMENT INFO ]"
- out_data['output2'].name = out_data['output2'].name + " [ PILEUP ]"
- out_data['output3'].name = out_data['output3'].name + " [ CUSTOM TRACK ]"
-
+def exec_before_job(app, inp_data, out_data, param_dict, tool):
+ out_data['output1'].name = out_data['output1'].name + " [ ALIGNMENT INFO ]"
+ out_data['output2'].name = out_data['output2'].name + " [ PILEUP ]"
+ out_data['output3'].name = out_data['output3'].name + " [ CUSTOM TRACK ]"
diff --git a/tools/stats/filtering.xml b/tools/stats/filtering.xml
index a71481fb473..d6b446787a5 100644
--- a/tools/stats/filtering.xml
+++ b/tools/stats/filtering.xml
@@ -1,87 +1,87 @@
-
- data on any column using simple expressions
-
- filtering.py $input $out_file1 "$cond" ${input.metadata.columns} "${input.metadata.column_types}" $header_lines
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-Double equal signs, ==, must be used as *"equal to"* (e.g., **c1 == 'chr22'**)
-
-.. class:: infomark
-
-**TIP:** Attempting to apply a filtering condition may throw exceptions if the data type (e.g., string, integer) in every line of the columns being filtered is not appropriate for the condition (e.g., attempting certain numerical calculations on strings). If an exception is thrown when applying the condition to a line, that line is skipped as invalid for the filter condition. The number of invalid skipped lines is documented in the resulting history item as a "Condition/data issue".
-
-.. class:: infomark
-
-**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
-
------
-
-**Syntax**
-
-The filter tool allows you to restrict the dataset using simple conditional statements.
-
-- Columns are referenced with **c** and a **number**. For example, **c1** refers to the first column of a tab-delimited file
-- Make sure that multi-character operators contain no white space ( e.g., **<=** is valid while **< =** is not valid )
-- When using 'equal-to' operator **double equal sign '==' must be used** ( e.g., **c1=='chr1'** )
-- Non-numerical values must be included in single or double quotes ( e.g., **c6=='+'** )
-- Filtering condition can include logical operators, but **make sure operators are all lower case** ( e.g., **(c1!='chrX' and c1!='chrY') or not c6=='+'** )
-
------
-
-**Example**
-
-- **c1=='chr1'** selects lines in which the first column is chr1
-- **c3-c2<100*c4** selects lines where subtracting column 3 from column 2 is less than the value of column 4 times 100
-- **len(c2.split(',')) < 4** will select lines where the second column has less than four comma separated elements
-- **c2>=1** selects lines in which the value of column 2 is greater than or equal to 1
-- Numbers should not contain commas - **c2<=44,554,350** will not work, but **c2<=44554350** will
-- Some words in the data can be used, but must be single or double quoted ( e.g., **c3=='exon'** )
-
-
-
+
+ data on any column using simple expressions
+
+ filtering.py $input $out_file1 "$cond" ${input.metadata.columns} "${input.metadata.column_types}" $header_lines
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+Double equal signs, ==, must be used as *"equal to"* (e.g., **c1 == 'chr22'**)
+
+.. class:: infomark
+
+**TIP:** Attempting to apply a filtering condition may throw exceptions if the data type (e.g., string, integer) in every line of the columns being filtered is not appropriate for the condition (e.g., attempting certain numerical calculations on strings). If an exception is thrown when applying the condition to a line, that line is skipped as invalid for the filter condition. The number of invalid skipped lines is documented in the resulting history item as a "Condition/data issue".
+
+.. class:: infomark
+
+**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
+
+-----
+
+**Syntax**
+
+The filter tool allows you to restrict the dataset using simple conditional statements.
+
+- Columns are referenced with **c** and a **number**. For example, **c1** refers to the first column of a tab-delimited file
+- Make sure that multi-character operators contain no white space ( e.g., **<=** is valid while **< =** is not valid )
+- When using 'equal-to' operator **double equal sign '==' must be used** ( e.g., **c1=='chr1'** )
+- Non-numerical values must be included in single or double quotes ( e.g., **c6=='+'** )
+- Filtering condition can include logical operators, but **make sure operators are all lower case** ( e.g., **(c1!='chrX' and c1!='chrY') or not c6=='+'** )
+
+-----
+
+**Example**
+
+- **c1=='chr1'** selects lines in which the first column is chr1
+- **c3-c2<100*c4** selects lines where subtracting column 3 from column 2 is less than the value of column 4 times 100
+- **len(c2.split(',')) < 4** will select lines where the second column has less than four comma separated elements
+- **c2>=1** selects lines in which the value of column 2 is greater than or equal to 1
+- Numbers should not contain commas - **c2<=44,554,350** will not work, but **c2<=44554350** will
+- Some words in the data can be used, but must be single or double quoted ( e.g., **c3=='exon'** )
+
+
+
diff --git a/tools/stats/gsummary.xml.groups b/tools/stats/gsummary.xml.groups
index 8e625040e3c..218ab31aa38 100644
--- a/tools/stats/gsummary.xml.groups
+++ b/tools/stats/gsummary.xml.groups
@@ -1,62 +1,62 @@
-
- of a column in a tab delimited file according to an expression
- gsummary.py $input $out_file1 "$cond" "$groups"
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-This tool expects input datasets to consist of tab-delimited columns (blank or comment lines beginning with a # character are automatically skipped).
-
-.. class:: infomark
-
-**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
-
-.. class:: infomark
-
-**TIP:** Computing summary statistics may throw exceptions if the data value in every line of the columns being summarized is not numerical. If a line is missing a value or contains a non-numerical value in the column being summarized, that line is skipped and the value is not included in the statistical computation. The number of invalid skipped lines is documented in the resulting history item.
-
-**Syntax**
-
-This tool computes basic summary statistics on a given column, or on an expression containing those columns
-
-- Columns are referenced with **c** and a **number**. For example, **c1** refers to the first column of a tab-delimited file
-- To group the summary by the values in a column or columns, specify in the **group terms** box...
- + **c1** *group by the values in column 1*
- + **c1,c4** *group by the values in column 1, then by the values in column 4*
-
-
------
-
-**Expression examples**
-
-- **log(c5)** calculates the summary statistics for the natural log of column 5
-- **(c5 + c6 + c7) / 3** calculates the summary statistics on the average of columns 5-7
-- **log(c5,10)** summary statistics of the base 10 log of column 5
-- **sqrt(c5+c9)** summary statistics of the square root of column 5 + column 9
-
-**Group examples**
-
-- **c1** group by the values in column 1
-- **c1,c4** group by the values in column 1, then by the values in column 4
-
------
-
-.. class:: infomark
-
-**TIP:** Most functions (like *abs*) take only a single expression. *log* can take one or two parameters, like *log(expression,base)*
-
-Currently, these R functions are supported: *abs, sign, sqrt, floor, ceiling, trunc, round, signif, exp, log, cos, sin, tan, acos, asin, atan, cosh, sinh, tanh, acosh, asinh, atanh, lgamma, gamma, gammaCody, digamma, trigamma, cumsum, cumprod, cummax, cummin*
-
-.. |INFO| image:: ./static/images/icon_info_sml.gif
-
-
-
+
+ of a column in a tab delimited file according to an expression
+ gsummary.py $input $out_file1 "$cond" "$groups"
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+This tool expects input datasets to consist of tab-delimited columns (blank or comment lines beginning with a # character are automatically skipped).
+
+.. class:: infomark
+
+**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert*
+
+.. class:: infomark
+
+**TIP:** Computing summary statistics may throw exceptions if the data value in every line of the columns being summarized is not numerical. If a line is missing a value or contains a non-numerical value in the column being summarized, that line is skipped and the value is not included in the statistical computation. The number of invalid skipped lines is documented in the resulting history item.
+
+**Syntax**
+
+This tool computes basic summary statistics on a given column, or on an expression containing those columns
+
+- Columns are referenced with **c** and a **number**. For example, **c1** refers to the first column of a tab-delimited file
+- To group the summary by the values in a column or columns, specify in the **group terms** box...
+ + **c1** *group by the values in column 1*
+ + **c1,c4** *group by the values in column 1, then by the values in column 4*
+
+
+-----
+
+**Expression examples**
+
+- **log(c5)** calculates the summary statistics for the natural log of column 5
+- **(c5 + c6 + c7) / 3** calculates the summary statistics on the average of columns 5-7
+- **log(c5,10)** summary statistics of the base 10 log of column 5
+- **sqrt(c5+c9)** summary statistics of the square root of column 5 + column 9
+
+**Group examples**
+
+- **c1** group by the values in column 1
+- **c1,c4** group by the values in column 1, then by the values in column 4
+
+-----
+
+.. class:: infomark
+
+**TIP:** Most functions (like *abs*) take only a single expression. *log* can take one or two parameters, like *log(expression,base)*
+
+Currently, these R functions are supported: *abs, sign, sqrt, floor, ceiling, trunc, round, signif, exp, log, cos, sin, tan, acos, asin, atan, cosh, sinh, tanh, acosh, asinh, atanh, lgamma, gamma, gammaCody, digamma, trigamma, cumsum, cumprod, cummax, cummin*
+
+.. |INFO| image:: ./static/images/icon_info_sml.gif
+
+
+
diff --git a/tools/visualization/LAJ.xml b/tools/visualization/LAJ.xml
index 9e2879e7e21..b5fa2c06609 100644
--- a/tools/visualization/LAJ.xml
+++ b/tools/visualization/LAJ.xml
@@ -1,32 +1,32 @@
-
-Pairwise Alignment Viewer
- LAJ.py $maf_input $out_file1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-You can use this tool to view a set of LAV alignments. You may include FASTA formatted sequences for both species.
-
-For detailed information on LAJ, click here_.
-
-.. _here: http://globin.cse.psu.edu/dist/laj/
-
-Laj is a tool for viewing and manipulating the output from pairwise alignment programs such as blastz. It can display interactive dotplot, pip, and text representations of the alignments, a diagram showing the locations of exons and repeats, and annotation links to other web sites containing additional information about particular regions.
-
-.. class:: infomark
-
-**Note:** If you save output from the applet, you will need to manually refresh your history.
-
-
-
-
\ No newline at end of file
+
+Pairwise Alignment Viewer
+ LAJ.py $maf_input $out_file1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+You can use this tool to view a set of LAV alignments. You may include FASTA formatted sequences for both species.
+
+For detailed information on LAJ, click here_.
+
+.. _here: http://globin.cse.psu.edu/dist/laj/
+
+Laj is a tool for viewing and manipulating the output from pairwise alignment programs such as blastz. It can display interactive dotplot, pip, and text representations of the alignments, a diagram showing the locations of exons and repeats, and annotation links to other web sites containing additional information about particular regions.
+
+.. class:: infomark
+
+**Note:** If you save output from the applet, you will need to manually refresh your history.
+
+
+
+
diff --git a/tools/visualization/LAJ_code.py b/tools/visualization/LAJ_code.py
index f96b3d2af29..9a083d268f6 100644
--- a/tools/visualization/LAJ_code.py
+++ b/tools/visualization/LAJ_code.py
@@ -1,40 +1,41 @@
-#post processing, add sequence and additional annoation info if available
-from urllib import urlencode
-from galaxy.datatypes.images import create_applet_tag_peek
-
-def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
- primary_data = out_data.items()[0][1]
-
- #default params for LAJ type
- params = {
- "alignfile1": "display?id=%s" % primary_data.id,
- "buttonlabel": "Launch LAJ",
- "title": "LAJ in Galaxy",
- "posturl": "history_add_to?%s" % urlencode( { 'history_id': primary_data.history_id, 'ext': 'lav', 'name': 'LAJ Output', 'info': 'Added by LAJ', 'dbkey': primary_data.dbkey } )
- }
- for name,data in inp_data.items():
- if name == "maf_input":
- params["alignfile1"] = "display?id=%s" % data.id
- elif name == "seq_file1" and data.state == data.states.OK and data.has_data():
- params["file1seq1"] = "display?id=%s" % data.id
- elif name == "seq_file2" and data.state == data.states.OK and data.has_data():
- params["file1seq2"] = "display?id=%s" % data.id
- elif name == "exonfile" and data.state == data.states.OK and data.has_data():
- params["exonfile"] = "display?id=%s" % data.id
- elif name == "repeatfile" and data.state == data.states.OK and data.has_data():
- params["repeatfile"] = "display?id=%s" % data.id
- elif name == "annotationfile" and data.state == data.states.OK and data.has_data():
- params["annotationfile"] = "display?id=%s" % data.id
- elif name == "underlayfile" and data.state == data.states.OK and data.has_data():
- params["underlayfile"] = "display?id=%s" % data.id
- elif name == "highlightfile" and data.state == data.states.OK and data.has_data():
- params["highlightfile"] = "display?id=%s" % data.id
-
- if "file1seq1" not in params and "file1seq2" not in params:
- params["noseq"] = "true"
-
- class_name = "edu.psu.cse.bio.laj.LajApplet.class"
- archive = "/static/laj/laj.jar"
- primary_data.peek = create_applet_tag_peek( class_name, archive, params )
- app.model.context.add( primary_data )
- app.model.context.flush()
+#post processing, add sequence and additional annoation info if available
+from urllib import urlencode
+from galaxy.datatypes.images import create_applet_tag_peek
+
+
+def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
+ primary_data = out_data.items()[0][1]
+
+ #default params for LAJ type
+ params = {
+ "alignfile1": "display?id=%s" % primary_data.id,
+ "buttonlabel": "Launch LAJ",
+ "title": "LAJ in Galaxy",
+ "posturl": "history_add_to?%s" % urlencode( { 'history_id': primary_data.history_id, 'ext': 'lav', 'name': 'LAJ Output', 'info': 'Added by LAJ', 'dbkey': primary_data.dbkey } )
+ }
+ for name, data in inp_data.items():
+ if name == "maf_input":
+ params["alignfile1"] = "display?id=%s" % data.id
+ elif name == "seq_file1" and data.state == data.states.OK and data.has_data():
+ params["file1seq1"] = "display?id=%s" % data.id
+ elif name == "seq_file2" and data.state == data.states.OK and data.has_data():
+ params["file1seq2"] = "display?id=%s" % data.id
+ elif name == "exonfile" and data.state == data.states.OK and data.has_data():
+ params["exonfile"] = "display?id=%s" % data.id
+ elif name == "repeatfile" and data.state == data.states.OK and data.has_data():
+ params["repeatfile"] = "display?id=%s" % data.id
+ elif name == "annotationfile" and data.state == data.states.OK and data.has_data():
+ params["annotationfile"] = "display?id=%s" % data.id
+ elif name == "underlayfile" and data.state == data.states.OK and data.has_data():
+ params["underlayfile"] = "display?id=%s" % data.id
+ elif name == "highlightfile" and data.state == data.states.OK and data.has_data():
+ params["highlightfile"] = "display?id=%s" % data.id
+
+ if "file1seq1" not in params and "file1seq2" not in params:
+ params["noseq"] = "true"
+
+ class_name = "edu.psu.cse.bio.laj.LajApplet.class"
+ archive = "/static/laj/laj.jar"
+ primary_data.peek = create_applet_tag_peek( class_name, archive, params )
+ app.model.context.add( primary_data )
+ app.model.context.flush()