galaxy-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 15302 discussions

commit/galaxy-central: greg: Handle unavailable tool shed when checking for updates to installed tool shed repositories at Galaxy server startup.
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/3c8f65f7e1a4/
changeset: 3c8f65f7e1a4
user: greg
date: 2012-10-01 22:31:25
summary: Handle unavailable tool shed when checking for updates to installed tool shed repositories at Galaxy server startup.
affected #: 1 file
diff -r 348ae95c02cca1d6d1b446738631ecbcf76c810a -r 3c8f65f7e1a4f4217499f2369907a75a8dbcb4e9 lib/galaxy/tool_shed/update_manager.py
--- a/lib/galaxy/tool_shed/update_manager.py
+++ b/lib/galaxy/tool_shed/update_manager.py
@@ -36,9 +36,13 @@
tool_shed_url = get_url_from_repository_tool_shed( self.app, repository )
url = '%s/repository/check_for_updates?name=%s&owner=%s&changeset_revision=%s&webapp=update_manager' % \
( tool_shed_url, repository.name, repository.owner, repository.changeset_revision )
- response = urllib2.urlopen( url )
- text = response.read()
- response.close()
+ try:
+ response = urllib2.urlopen( url )
+ text = response.read()
+ response.close()
+ except Exception, e:
+ # The required tool shed may be unavailable.
+ text = 'False'
return string_as_bool( text )
def shutdown( self ):
self.running = False
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: james_taylor: removing webapp parameter from admin templates, fixing an import and some linting errors
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/348ae95c02cc/
changeset: 348ae95c02cc
user: james_taylor
date: 2012-10-01 22:16:50
summary: removing webapp parameter from admin templates, fixing an import and some linting errors
affected #: 14 files
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a lib/galaxy/web/base/controllers/admin.py
--- a/lib/galaxy/web/base/controllers/admin.py
+++ b/lib/galaxy/web/base/controllers/admin.py
@@ -1,8 +1,10 @@
-from datetime import date, datetime, timedelta
+from datetime import datetime, timedelta
-from galaxy import config, tools, web, util
+from galaxy import web, util
from galaxy.model.orm import *
+from galaxy.util import inflector
+
class Admin( object ):
# Override these
user_list_grid = None
@@ -296,7 +298,6 @@
@web.expose
@web.require_admin
def mark_role_deleted( self, trans, **kwd ):
- params = util.Params( kwd )
id = kwd.get( 'id', None )
if not id:
message = "No role ids received for deleting"
@@ -319,7 +320,6 @@
@web.expose
@web.require_admin
def undelete_role( self, trans, **kwd ):
- params = util.Params( kwd )
id = kwd.get( 'id', None )
if not id:
message = "No role ids received for undeleting"
@@ -358,7 +358,6 @@
# - DefaultHistoryPermissions where role_id == Role.id
# - GroupRoleAssociations where role_id == Role.id
# - DatasetPermissionss where role_id == Role.id
- params = util.Params( kwd )
id = kwd.get( 'id', None )
if not id:
message = "No role ids received for purging"
@@ -608,7 +607,6 @@
@web.expose
@web.require_admin
def undelete_group( self, trans, **kwd ):
- params = util.Params( kwd )
id = kwd.get( 'id', None )
if not id:
message = "No group ids received for undeleting"
@@ -642,7 +640,6 @@
def purge_group( self, trans, **kwd ):
# This method should only be called for a Group that has previously been deleted.
# Purging a deleted Group simply deletes all UserGroupAssociations and GroupRoleAssociations.
- params = util.Params( kwd )
id = kwd.get( 'id', None )
if not id:
message = "No group ids received for purging"
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/group/group.mako
--- a/templates/admin/dataset_security/group/group.mako
+++ b/templates/admin/dataset_security/group/group.mako
@@ -51,7 +51,6 @@
<div class="toolFormTitle">Group '${group.name}'</div><div class="toolFormBody"><form name="associate_group_role_user" id="associate_group_role_user" action="${h.url_for( action='manage_users_and_roles_for_group', id=trans.security.encode_id( group.id ) )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><div class="form-row"><div style="float: left; margin-right: 10px;"><label>Roles associated with '${group.name}'</label>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/group/group_create.mako
--- a/templates/admin/dataset_security/group/group_create.mako
+++ b/templates/admin/dataset_security/group/group_create.mako
@@ -57,7 +57,6 @@
<div class="toolFormBody"><form name="associate_group_role_user" id="associate_group_role_user" action="${h.url_for( action='create_group' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><input name="name" type="textfield" value="${name}" size=40"/></div>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/group/group_rename.mako
--- a/templates/admin/dataset_security/group/group_rename.mako
+++ b/templates/admin/dataset_security/group/group_rename.mako
@@ -10,7 +10,6 @@
<div class="toolFormBody"><form name="library" action="${h.url_for( controller='admin', action='rename_group' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><div style="float: left; width: 250px; margin-right: 10px;"><input type="text" name="name" value="${group.name}" size="40"/>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/role/role.mako
--- a/templates/admin/dataset_security/role/role.mako
+++ b/templates/admin/dataset_security/role/role.mako
@@ -51,7 +51,6 @@
<div class="toolFormTitle">Role '${role.name}'</div><div class="toolFormBody"><form name="associate_role_user_group" id="associate_role_user_group" action="${h.url_for( action='manage_users_and_groups_for_role', id=trans.security.encode_id( role.id ) )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><div class="form-row"><div style="float: left; margin-right: 10px;"><label>Users associated with '${role.name}'</label>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/role/role_create.mako
--- a/templates/admin/dataset_security/role/role_create.mako
+++ b/templates/admin/dataset_security/role/role_create.mako
@@ -57,7 +57,6 @@
<div class="toolFormBody"><form name="associate_role_group_user" id="associate_role_group_user" action="${h.url_for( action='create_role' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><input name="name" type="textfield" value="${name}" size=40"/></div>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/dataset_security/role/role_rename.mako
--- a/templates/admin/dataset_security/role/role_rename.mako
+++ b/templates/admin/dataset_security/role/role_rename.mako
@@ -10,7 +10,6 @@
<div class="toolFormBody"><form name="library" action="${h.url_for( controller='admin', action='rename_role' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><div style="float: left; width: 250px; margin-right: 10px;"><input type="text" name="name" value="${role.name}" size="40"/>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/quota/quota.mako
--- a/templates/admin/quota/quota.mako
+++ b/templates/admin/quota/quota.mako
@@ -51,7 +51,6 @@
<div class="toolFormTitle">Quota '${name}'</div><div class="toolFormBody"><form name="associate_quota_user_group" id="associate_quota_user_group" action="${h.url_for( action='manage_users_and_groups_for_quota', id=id )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><div class="form-row"><div style="float: left; margin-right: 10px;"><label>Users associated with '${name}'</label>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/quota/quota_create.mako
--- a/templates/admin/quota/quota_create.mako
+++ b/templates/admin/quota/quota_create.mako
@@ -66,7 +66,6 @@
<div class="toolFormBody"><form name="associate_quota_group_user" id="associate_quota_group_user" action="${h.url_for( action='create_quota' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><input name="name" type="textfield" value="${name}" size=40"/></div>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/quota/quota_edit.mako
--- a/templates/admin/quota/quota_edit.mako
+++ b/templates/admin/quota/quota_edit.mako
@@ -26,7 +26,6 @@
<div class="toolFormTitle">Change quota amount</div><div class="toolFormBody"><form name="library" action="${h.url_for( controller='admin', action='edit_quota' )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}"/><input name="id" type="hidden" value="${id}"/><div class="form-row"><label>Amount</label>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/quota/quota_rename.mako
--- a/templates/admin/quota/quota_rename.mako
+++ b/templates/admin/quota/quota_rename.mako
@@ -19,7 +19,6 @@
<div class="toolFormBody"><form name="library" action="${h.url_for( controller='admin', action='rename_quota' )}" method="post" ><div class="form-row">
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><label>Name:</label><div style="float: left; width: 250px; margin-right: 10px;"><input type="text" name="name" value="${name}" size="40"/>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/quota/quota_set_default.mako
--- a/templates/admin/quota/quota_set_default.mako
+++ b/templates/admin/quota/quota_set_default.mako
@@ -28,7 +28,6 @@
<div class="toolFormTitle">Set quota default</div><div class="toolFormBody"><form name="set_quota_default" id="set_quota_default" action="${h.url_for( action='set_quota_default' )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><input name="id" type="hidden" value="${id}"/><div class="form-row"><label>Is this quota a default for a class of users (if yes, what type)?</label>
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/user/reset_password.mako
--- a/templates/admin/user/reset_password.mako
+++ b/templates/admin/user/reset_password.mako
@@ -9,7 +9,6 @@
<div class="toolFormTitle">Reset password for users</div><div class="toolFormBody"><form name="form" action="${h.url_for( controller='admin', action='reset_user_password' )}" method="post" >
- <input name="webapp" type="hidden" value="${webapp}" size=40"/><input type="hidden" name="id" value="${id}" size="40">
%for user in users:
<div class="form-row">
diff -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf -r 348ae95c02cca1d6d1b446738631ecbcf76c810a templates/admin/user/user.mako
--- a/templates/admin/user/user.mako
+++ b/templates/admin/user/user.mako
@@ -76,7 +76,6 @@
</div></div><div class="form-row">
- <input type="hidden" name="webapp" value="${webapp}"/><input type="submit" name="user_roles_groups_edit_button" value="Save"/></div></form>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: james_taylor: test framework: no longer pass webapp argument to requests
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/2e0d02ea0aaf/
changeset: 2e0d02ea0aaf
user: james_taylor
date: 2012-10-01 21:24:36
summary: test framework: no longer pass webapp argument to requests
affected #: 2 files
diff -r cda0af45c3d3bd4fa9e62b37b5cc91f5272a0178 -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf test/base/twilltestcase.py
--- a/test/base/twilltestcase.py
+++ b/test/base/twilltestcase.py
@@ -835,12 +835,11 @@
self.assertTrue( genome_build == dbkey )
# Functions associated with user accounts
- def create( self, cntrller='user', email='test(a)bx.psu.edu', password='testuser', username='admin-user', webapp='galaxy', redirect='' ):
+ def create( self, cntrller='user', email='test(a)bx.psu.edu', password='testuser', username='admin-user', redirect='' ):
# 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( "%s/user/create?cntrller=%s&use_panels=False" % ( self.url, cntrller ) )
tc.fv( '1', 'email', email )
- tc.fv( '1', 'webapp', webapp )
tc.fv( '1', 'redirect', redirect )
tc.fv( '1', 'password', password )
tc.fv( '1', 'confirm', password )
@@ -945,17 +944,16 @@
self.visit_url( "%s/%s" % ( self.url, url ) )
self.check_page_for_string( 'Default history permissions have been changed.' )
self.home()
- def login( self, email='test(a)bx.psu.edu', password='testuser', username='admin-user', webapp='galaxy', redirect='' ):
+ def login( self, email='test(a)bx.psu.edu', password='testuser', username='admin-user', redirect='' ):
# test(a)bx.psu.edu is configured as an admin user
previously_created, username_taken, invalid_username = \
- self.create( email=email, password=password, username=username, webapp=webapp, redirect=redirect )
+ self.create( email=email, password=password, username=username, redirect=redirect )
if previously_created:
# The acount has previously been created, so just login.
# 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( "%s/user/login?use_panels=False" % self.url )
tc.fv( '1', 'email', email )
- tc.fv( '1', 'webapp', webapp )
tc.fv( '1', 'redirect', redirect )
tc.fv( '1', 'password', password )
tc.submit( 'login_button' )
@@ -1221,13 +1219,12 @@
# Dataset Security stuff
# Tests associated with users
def create_new_account_as_admin( self, email='test4(a)bx.psu.edu', password='testuser',
- username='regular-user4', webapp='galaxy', redirect='' ):
+ username='regular-user4', redirect='' ):
"""Create a new account for another user"""
# 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( "%s/user/create?cntrller=admin" % self.url )
tc.fv( '1', 'email', email )
- tc.fv( '1', 'webapp', webapp )
tc.fv( '1', 'redirect', redirect )
tc.fv( '1', 'password', password )
tc.fv( '1', 'confirm', password )
diff -r cda0af45c3d3bd4fa9e62b37b5cc91f5272a0178 -r 2e0d02ea0aaf51301582671740c9281a1a8e15cf test/functional/test_admin_features.py
--- a/test/functional/test_admin_features.py
+++ b/test/functional/test_admin_features.py
@@ -29,7 +29,6 @@
previously_created, username_taken, invalid_username = self.create_new_account_as_admin( email='diff(a)you.com',
password=password,
username='admin-user',
- webapp='galaxy',
redirect='' )
if not username_taken:
raise AssertionError, "The public name (%s) is already being used by another user, but no error was displayed" \
@@ -39,14 +38,12 @@
previously_created, username_taken, invalid_username = self.create_new_account_as_admin( email='diff(a)you.com',
password=password,
username='h',
- webapp='galaxy',
redirect='' )
if not invalid_username:
raise AssertionError, "The public name (%s) is is invalid, but no error was displayed" % username
previously_created, username_taken, invalid_username = self.create_new_account_as_admin( email=email,
password=password,
username='regular-user3',
- webapp='galaxy',
redirect='' )
# Get the user object for later tests
global regular_user3
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: greg: Handle unavailable main Galaxy tool shed when checking for migrated tools.
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/cda0af45c3d3/
changeset: cda0af45c3d3
user: greg
date: 2012-10-01 21:04:52
summary: Handle unavailable main Galaxy tool shed when checking for migrated tools.
affected #: 2 files
diff -r 4ccb8691639233bb99b4f3e3ebb9b9eacf4c9461 -r cda0af45c3d3bd4fa9e62b37b5cc91f5272a0178 lib/galaxy/tool_shed/migrate/check.py
--- a/lib/galaxy/tool_shed/migrate/check.py
+++ b/lib/galaxy/tool_shed/migrate/check.py
@@ -43,6 +43,8 @@
db_schema = schema.ControlledSchema( engine, migrate_repository )
latest_tool_migration_script_number = migrate_repository.versions.latest
if latest_tool_migration_script_number != db_schema.version:
+ # The default behavior is that the tool shed is down.
+ tool_shed_accessible = False
if app.new_installation:
# New installations will not be missing tools, so we don't need to worry about them.
missing_tool_configs_dict = odict()
@@ -51,8 +53,12 @@
if tool_panel_configs:
# The missing_tool_configs_dict contents are something like:
# {'emboss_antigenic.xml': [('emboss', '5.0.0', 'package', '\nreadme blah blah blah\n')]}
- missing_tool_configs_dict = check_for_missing_tools( app, tool_panel_configs, latest_tool_migration_script_number )
+ tool_shed_accessible, missing_tool_configs_dict = check_for_missing_tools( app, tool_panel_configs, latest_tool_migration_script_number )
else:
+ # It doesn't matter if the tool shed is accessible since there are no migrated tools defined in the local Galaxy instance, but
+ # we have to set the value of tool_shed_accessible to True so that the value of migrate_tools.version can be correctly set in
+ # the database.
+ tool_shed_accessible = True
missing_tool_configs_dict = odict()
have_tool_dependencies = False
for k, v in missing_tool_configs_dict.items():
@@ -63,79 +69,82 @@
if os.path.abspath( os.path.join( os.getcwd(), 'universe_wsgi.ini' ) ) != galaxy_config_file:
config_arg = ' -c %s' % galaxy_config_file.replace( os.path.abspath( os.getcwd() ), '.' )
if not app.config.running_functional_tests:
- # Automatically update the value of the migrate_tools.version database table column.
- cmd = 'sh manage_tools.sh%s upgrade' % config_arg
- proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
- return_code = proc.wait()
- output = proc.stdout.read( 32768 )
- if return_code != 0:
- raise Exception( "Error attempting to update the value of migrate_tools.version: %s" % output )
- elif missing_tool_configs_dict:
- if len( tool_panel_configs ) == 1:
- plural = ''
- tool_panel_config_file_names = tool_panel_configs[ 0 ]
- else:
- plural = 's'
- tool_panel_config_file_names = ', '.join( tool_panel_configs )
- msg = "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
- msg += "\n\nThe list of files at the end of this message refers to tools that are configured to load into the tool panel for\n"
- msg += "this Galaxy instance, but have been removed from the Galaxy distribution. These tools and their dependencies can be\n"
- msg += "automatically installed from the Galaxy tool shed at http://toolshed.g2.bx.psu.edu.\n\n"
- msg += "To skip this process, attempt to start your Galaxy server again (e.g., sh run.sh or whatever you use). If you do this,\n"
- msg += "be aware that these tools will no longer be available in your Galaxy tool panel, and entries for each of them should\n"
- msg += "be removed from your file%s named %s.\n\n" % ( plural, tool_panel_config_file_names )
- msg += "CRITICAL NOTE IF YOU PLAN TO INSTALL\n"
- msg += "The location in which the tool repositories will be installed is the value of the 'tool_path' attribute in the <tool>\n"
- msg += 'tag of the file named ./migrated_tool_conf.xml (i.e., <toolbox tool_path="../shed_tools">). The default location\n'
- msg += "setting is '../shed_tools', which may be problematic for some cluster environments, so make sure to change it before\n"
- msg += "you execute the installation process if appropriate. The configured location must be outside of the Galaxy installation\n"
- msg += "directory or it must be in a sub-directory protected by a properly configured .hgignore file if the directory is within\n"
- msg += "the Galaxy installation directory hierarchy. This is because tool shed repositories will be installed using mercurial's\n"
- msg += "clone feature, which creates .hg directories and associated mercurial repository files. Not having .hgignore properly\n"
- msg += "configured could result in undesired behavior when modifying or updating your local Galaxy instance or the tool shed\n"
- msg += "repositories if they are in directories that pose conflicts. See mercurial's .hgignore documentation at the following\n"
- msg += "URL for details.\n\nhttp://mercurial.selenic.com/wiki/.hgignore\n\n"
- if have_tool_dependencies:
- msg += "The following tool dependencies can also optionally be installed (see the option flag in the command below). If you\n"
- msg += "choose to install them (recommended), they will be installed within the location specified by the 'tool_dependency_dir'\n"
- msg += "setting in your main Galaxy configuration file (e.g., uninverse_wsgi.ini).\n"
- processed_tool_dependencies = []
+ if tool_shed_accessible:
+ # Automatically update the value of the migrate_tools.version database table column.
+ cmd = 'sh manage_tools.sh%s upgrade' % config_arg
+ proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
+ return_code = proc.wait()
+ output = proc.stdout.read( 32768 )
+ if return_code != 0:
+ raise Exception( "Error attempting to update the value of migrate_tools.version: %s" % output )
+ elif missing_tool_configs_dict:
+ if len( tool_panel_configs ) == 1:
+ plural = ''
+ tool_panel_config_file_names = tool_panel_configs[ 0 ]
+ else:
+ plural = 's'
+ tool_panel_config_file_names = ', '.join( tool_panel_configs )
+ msg = "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+ msg += "\n\nThe list of files at the end of this message refers to tools that are configured to load into the tool panel for\n"
+ msg += "this Galaxy instance, but have been removed from the Galaxy distribution. These tools and their dependencies can be\n"
+ msg += "automatically installed from the Galaxy tool shed at http://toolshed.g2.bx.psu.edu.\n\n"
+ msg += "To skip this process, attempt to start your Galaxy server again (e.g., sh run.sh or whatever you use). If you do this,\n"
+ msg += "be aware that these tools will no longer be available in your Galaxy tool panel, and entries for each of them should\n"
+ msg += "be removed from your file%s named %s.\n\n" % ( plural, tool_panel_config_file_names )
+ msg += "CRITICAL NOTE IF YOU PLAN TO INSTALL\n"
+ msg += "The location in which the tool repositories will be installed is the value of the 'tool_path' attribute in the <tool>\n"
+ msg += 'tag of the file named ./migrated_tool_conf.xml (i.e., <toolbox tool_path="../shed_tools">). The default location\n'
+ msg += "setting is '../shed_tools', which may be problematic for some cluster environments, so make sure to change it before\n"
+ msg += "you execute the installation process if appropriate. The configured location must be outside of the Galaxy installation\n"
+ msg += "directory or it must be in a sub-directory protected by a properly configured .hgignore file if the directory is within\n"
+ msg += "the Galaxy installation directory hierarchy. This is because tool shed repositories will be installed using mercurial's\n"
+ msg += "clone feature, which creates .hg directories and associated mercurial repository files. Not having .hgignore properly\n"
+ msg += "configured could result in undesired behavior when modifying or updating your local Galaxy instance or the tool shed\n"
+ msg += "repositories if they are in directories that pose conflicts. See mercurial's .hgignore documentation at the following\n"
+ msg += "URL for details.\n\nhttp://mercurial.selenic.com/wiki/.hgignore\n\n"
+ if have_tool_dependencies:
+ msg += "The following tool dependencies can also optionally be installed (see the option flag in the command below). If you\n"
+ msg += "choose to install them (recommended), they will be installed within the location specified by the 'tool_dependency_dir'\n"
+ msg += "setting in your main Galaxy configuration file (e.g., uninverse_wsgi.ini).\n"
+ processed_tool_dependencies = []
+ for missing_tool_config, tool_dependencies in missing_tool_configs_dict.items():
+ for tool_dependencies_tup in tool_dependencies:
+ if tool_dependencies_tup not in processed_tool_dependencies:
+ msg += "------------------------------------\n"
+ msg += "Tool Dependency\n"
+ msg += "------------------------------------\n"
+ msg += "Name: %s, Version: %s, Type: %s\n" % ( tool_dependencies_tup[ 0 ],
+ tool_dependencies_tup[ 1 ],
+ tool_dependencies_tup[ 2 ] )
+ if tool_dependencies_tup[ 3 ]:
+ msg += "Requirements and installation information:\n"
+ msg += "%s\n" % tool_dependencies_tup[ 3 ]
+ else:
+ msg += "\n"
+ msg += "------------------------------------\n"
+ processed_tool_dependencies.append( tool_dependencies_tup )
+ msg += "\n"
+ msg += "%s" % output.replace( 'done', '' )
+ msg += "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"
+ msg += "sh ./scripts/migrate_tools/%04d_tools.sh\n" % latest_tool_migration_script_number
+ msg += "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"
+ if have_tool_dependencies:
+ msg += "The tool dependencies listed above will be installed along with the repositories if you add the 'install_dependencies'\n"
+ msg += "option to the above command like this:\n\n"
+ msg += "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"
+ msg += "sh ./scripts/migrate_tools/%04d_tools.sh install_dependencies\n" % latest_tool_migration_script_number
+ msg += "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"
+ msg += "Tool dependencies can be installed after the repositories have been installed as well.\n\n"
+ msg += "After the installation process finishes, you can start your Galaxy server. As part of this installation process,\n"
+ msg += "entries for each of the following tool config files will be added to the file named ./migrated_tool_conf.xml, so these\n"
+ msg += "tools will continue to be loaded into your tool panel. Because of this, existing entries for these files should be\n"
+ msg += "removed from your file%s named %s, but only after the installation process finishes.\n\n" % ( plural, tool_panel_config_file_names )
for missing_tool_config, tool_dependencies in missing_tool_configs_dict.items():
- for tool_dependencies_tup in tool_dependencies:
- if tool_dependencies_tup not in processed_tool_dependencies:
- msg += "------------------------------------\n"
- msg += "Tool Dependency\n"
- msg += "------------------------------------\n"
- msg += "Name: %s, Version: %s, Type: %s\n" % ( tool_dependencies_tup[ 0 ],
- tool_dependencies_tup[ 1 ],
- tool_dependencies_tup[ 2 ] )
- if tool_dependencies_tup[ 3 ]:
- msg += "Requirements and installation information:\n"
- msg += "%s\n" % tool_dependencies_tup[ 3 ]
- else:
- msg += "\n"
- msg += "------------------------------------\n"
- processed_tool_dependencies.append( tool_dependencies_tup )
- msg += "\n"
- msg += "%s" % output.replace( 'done', '' )
- msg += "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"
- msg += "sh ./scripts/migrate_tools/%04d_tools.sh\n" % latest_tool_migration_script_number
- msg += "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"
- if have_tool_dependencies:
- msg += "The tool dependencies listed above will be installed along with the repositories if you add the 'install_dependencies'\n"
- msg += "option to the above command like this:\n\n"
- msg += "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"
- msg += "sh ./scripts/migrate_tools/%04d_tools.sh install_dependencies\n" % latest_tool_migration_script_number
- msg += "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n"
- msg += "Tool dependencies can be installed after the repositories have been installed as well.\n\n"
- msg += "After the installation process finishes, you can start your Galaxy server. As part of this installation process,\n"
- msg += "entries for each of the following tool config files will be added to the file named ./migrated_tool_conf.xml, so these\n"
- msg += "tools will continue to be loaded into your tool panel. Because of this, existing entries for these files should be\n"
- msg += "removed from your file%s named %s, but only after the installation process finishes.\n\n" % ( plural, tool_panel_config_file_names )
- for missing_tool_config, tool_dependencies in missing_tool_configs_dict.items():
- msg += "%s\n" % missing_tool_config
- msg += "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
- raise Exception( msg )
+ msg += "%s\n" % missing_tool_config
+ msg += "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
+ raise Exception( msg )
+ else:
+ log.debug( "The main Galaxy tool shed is not currently available, so skipped tool migration %s until next server startup" % db_schema.version )
else:
log.info( "At migrate_tools version %d" % db_schema.version )
diff -r 4ccb8691639233bb99b4f3e3ebb9b9eacf4c9461 -r cda0af45c3d3bd4fa9e62b37b5cc91f5272a0178 lib/galaxy/tool_shed/migrate/common.py
--- a/lib/galaxy/tool_shed/migrate/common.py
+++ b/lib/galaxy/tool_shed/migrate/common.py
@@ -21,6 +21,8 @@
root = tree.getroot()
tool_shed = root.get( 'name' )
tool_shed_url = get_tool_shed_url_from_tools_xml_file_path( app, tool_shed )
+ # The default behavior is that the tool shed is down.
+ tool_shed_accessible = False
if tool_shed_url:
for elem in root:
if elem.tag == 'repository':
@@ -30,36 +32,44 @@
changeset_revision = elem.get( 'changeset_revision' )
url = '%s/repository/get_tool_dependencies?name=%s&owner=%s&changeset_revision=%s&webapp=install_manager' % \
( tool_shed_url, repository_name, REPOSITORY_OWNER, changeset_revision )
- response = urllib2.urlopen( url )
- text = response.read()
- response.close()
- if text:
- tool_dependencies_dict = tool_shed_decode( text )
- for dependency_key, requirements_dict in tool_dependencies_dict.items():
- tool_dependency_name = requirements_dict[ 'name' ]
- tool_dependency_version = requirements_dict[ 'version' ]
- tool_dependency_type = requirements_dict[ 'type' ]
- tool_dependency_readme = requirements_dict.get( 'readme', '' )
- tool_dependencies.append( ( tool_dependency_name, tool_dependency_version, tool_dependency_type, tool_dependency_readme ) )
- for tool_elem in elem.findall( 'tool' ):
- migrated_tool_configs_dict[ tool_elem.get( 'file' ) ] = tool_dependencies
- # Parse the proprietary tool_panel_configs (the default is tool_conf.xml) and generate the list of missing tool config file names.
- missing_tool_configs_dict = odict()
- for tool_panel_config in tool_panel_configs:
- tree = util.parse_xml( tool_panel_config )
- root = tree.getroot()
- for elem in root:
- if elem.tag == 'tool':
- missing_tool_configs_dict = check_tool_tag_set( elem, migrated_tool_configs_dict, missing_tool_configs_dict )
- elif elem.tag == 'section':
- for section_elem in elem:
- if section_elem.tag == 'tool':
- missing_tool_configs_dict = check_tool_tag_set( section_elem, migrated_tool_configs_dict, missing_tool_configs_dict )
+ try:
+ response = urllib2.urlopen( url )
+ text = response.read()
+ response.close()
+ tool_shed_accessible = True
+ except Exception, e:
+ # Tool shed may be unavailable - we have to set tool_shed_accessible since we're looping.
+ tool_shed_accessible = False
+ print "The URL\n%s\nraised the exception:\n%s\n" % ( url, str( e ) )
+ if tool_shed_accessible:
+ if text:
+ tool_dependencies_dict = tool_shed_decode( text )
+ for dependency_key, requirements_dict in tool_dependencies_dict.items():
+ tool_dependency_name = requirements_dict[ 'name' ]
+ tool_dependency_version = requirements_dict[ 'version' ]
+ tool_dependency_type = requirements_dict[ 'type' ]
+ tool_dependency_readme = requirements_dict.get( 'readme', '' )
+ tool_dependencies.append( ( tool_dependency_name, tool_dependency_version, tool_dependency_type, tool_dependency_readme ) )
+ for tool_elem in elem.findall( 'tool' ):
+ migrated_tool_configs_dict[ tool_elem.get( 'file' ) ] = tool_dependencies
+ if tool_shed_accessible:
+ # Parse the proprietary tool_panel_configs (the default is tool_conf.xml) and generate the list of missing tool config file names.
+ missing_tool_configs_dict = odict()
+ for tool_panel_config in tool_panel_configs:
+ tree = util.parse_xml( tool_panel_config )
+ root = tree.getroot()
+ for elem in root:
+ if elem.tag == 'tool':
+ missing_tool_configs_dict = check_tool_tag_set( elem, migrated_tool_configs_dict, missing_tool_configs_dict )
+ elif elem.tag == 'section':
+ for section_elem in elem:
+ if section_elem.tag == 'tool':
+ missing_tool_configs_dict = check_tool_tag_set( section_elem, migrated_tool_configs_dict, missing_tool_configs_dict )
else:
exception_msg = '\n\nThe entry for the main Galaxy tool shed at %s is missing from the %s file. ' % ( tool_shed, app.config.tool_sheds_config )
exception_msg += 'The entry for this tool shed must always be available in this file, so re-add it before attempting to start your Galaxy server.\n'
raise Exception( exception_msg )
- return missing_tool_configs_dict
+ return tool_shed_accessible, missing_tool_configs_dict
def check_tool_tag_set( elem, migrated_tool_configs_dict, missing_tool_configs_dict ):
file_path = elem.get( 'file', None )
if file_path:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: pgcleanup: Print a useful message if no options are given.
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/4ccb86916392/
changeset: 4ccb86916392
user: natefoo
date: 2012-10-01 19:45:37
summary: pgcleanup: Print a useful message if no options are given.
affected #: 1 file
diff -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 -r 4ccb8691639233bb99b4f3e3ebb9b9eacf4c9461 scripts/cleanup_datasets/pgcleanup.py
--- a/scripts/cleanup_datasets/pgcleanup.py
+++ b/scripts/cleanup_datasets/pgcleanup.py
@@ -76,6 +76,11 @@
self.options.sequence = [ x.strip() for x in self.options.sequence.split(',') ]
+ if self.options.sequence == ['']:
+ print "Error: At least one action must be specified in the action sequence\n"
+ parser.print_help()
+ sys.exit(0)
+
def __setup_logging(self):
format = "%(funcName)s %(levelname)s %(asctime)s %(message)s"
if self.options.debug:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/844e566f36ac/
changeset: 844e566f36ac
user: greg
date: 2012-10-01 18:24:53
summary: Handle the case where a tool dependency definition changed in a tool shed repository and the new definition was pulled to a Galaxy installed repository when the Galaxy admin got updates for the repository.
affected #: 5 files
diff -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -3077,10 +3077,16 @@
self.error_message = error_message
@property
def can_install( self ):
- return self.status in [ self.installation_status.NEVER_INSTALLED, self.installation_status.UNINSTALLED ]
+ return self.status in [ self.installation_status.NEVER_INSTALLED, self.installation_status.UNINSTALLED ]
@property
def can_uninstall( self ):
- return self.status in [ self.installation_status.ERROR, self.installation_status.INSTALLED ]
+ return self.status in [ self.installation_status.ERROR, self.installation_status.INSTALLED ]
+ @property
+ def can_update( self ):
+ return self.status in [ self.installation_status.NEVER_INSTALLED,
+ self.installation_status.INSTALLED,
+ self.installation_status.ERROR,
+ self.installation_status.UNINSTALLED ]
@property
def in_error_state( self ):
return self.status == self.installation_status.ERROR
diff -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 lib/galaxy/tool_shed/install_manager.py
--- a/lib/galaxy/tool_shed/install_manager.py
+++ b/lib/galaxy/tool_shed/install_manager.py
@@ -138,6 +138,7 @@
relative_install_dir=relative_install_dir,
repository_files_dir=None,
resetting_all_metadata_on_repository=False,
+ updating_installed_repository=False,
webapp='galaxy' )
tool_shed_repository.metadata = metadata_dict
self.app.sa_session.add( tool_shed_repository )
diff -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 lib/galaxy/util/shed_util.py
--- a/lib/galaxy/util/shed_util.py
+++ b/lib/galaxy/util/shed_util.py
@@ -528,7 +528,6 @@
status=app.model.ToolDependency.installation_status.NEVER_INSTALLED,
set_status=set_status )
tool_dependency_objects.append( tool_dependency )
-
elif tool_dependency_type == 'set_environment':
for env_elem in elem:
# <environment_variable name="R_SCRIPT_PATH" action="set_to">$REPOSITORY_INSTALL_DIR</environment_variable>
@@ -603,13 +602,19 @@
tool_dependencies_dict[ 'set_environment' ] = [ requirements_dict ]
return tool_dependencies_dict
def generate_metadata_for_changeset_revision( app, repository, repository_clone_url, relative_install_dir=None, repository_files_dir=None,
- resetting_all_metadata_on_repository=False, webapp='galaxy' ):
+ resetting_all_metadata_on_repository=False, updating_installed_repository=False, webapp='galaxy' ):
"""
Generate metadata for a repository using it's files on disk. To generate metadata for changeset revisions older than the repository tip,
the repository will have been cloned to a temporary location and updated to a specified changeset revision to access that changeset revision's
disk files, so the value of repository_files_dir will not always be repository.repo_path (it could be an absolute path to a temporary directory
containing a clone). If it is an absolute path, the value of relative_install_dir must contain repository.repo_path.
"""
+ if updating_installed_repository:
+ # Keep the original tool shed repository metadata if setting metadata on a repository installed into a local Galaxy instance for which
+ # we have pulled updates.
+ original_repository_metadata = repository.metadata
+ else:
+ original_repository_metadata = None
readme_file_names = get_readme_file_names( repository.name )
metadata_dict = {}
invalid_file_tups = []
@@ -724,7 +729,11 @@
# This step must be done after metadata for tools has been defined.
tool_dependencies_config = get_config_from_disk( 'tool_dependencies.xml', files_dir )
if tool_dependencies_config:
- metadata_dict = generate_tool_dependency_metadata( tool_dependencies_config, metadata_dict )
+ metadata_dict = generate_tool_dependency_metadata( app,
+ repository,
+ tool_dependencies_config,
+ metadata_dict,
+ original_repository_metadata=original_repository_metadata )
if invalid_tool_configs:
metadata_dict [ 'invalid_tools' ] = invalid_tool_configs
# Reset the value of the app's tool_data_path and tool_data_table_config_path to their respective original values.
@@ -747,11 +756,16 @@
if requirements_dict:
tool_dependencies_dict[ dependency_key ] = requirements_dict
return tool_dependencies_dict
-def generate_tool_dependency_metadata( tool_dependencies_config, metadata_dict ):
+def generate_tool_dependency_metadata( app, repository, tool_dependencies_config, metadata_dict, original_repository_metadata=None ):
"""
If the combination of name, version and type of each element is defined in the <requirement> tag for at least one tool in the repository,
then update the received metadata_dict with information from the parsed tool_dependencies_config.
"""
+ if original_repository_metadata:
+ # Keep a copy of the original tool dependencies dictionary in the metadata.
+ original_tool_dependencies_dict = original_repository_metadata.get( 'tool_dependencies', None )
+ else:
+ original_tool_dependencies_dict = None
try:
tree = ElementTree.parse( tool_dependencies_config )
except Exception, e:
@@ -770,6 +784,10 @@
if tool_dependencies_dict:
metadata_dict[ 'tool_dependencies' ] = tool_dependencies_dict
if tool_dependencies_dict:
+ if original_tool_dependencies_dict:
+ # We're generating metadata on an update pulled to a tool shed repository installed into a Galaxy instance, so handle changes to
+ # tool dependencies appropriately.
+ handle_existing_tool_dependencies_that_changed_in_update( app, repository, original_tool_dependencies_dict, tool_dependencies_dict )
metadata_dict[ 'tool_dependencies' ] = tool_dependencies_dict
return metadata_dict
def generate_tool_guid( repository_clone_url, tool ):
@@ -1470,6 +1488,24 @@
# Reset the tool_data_tables by loading the empty tool_data_table_conf.xml file.
reset_tool_data_tables( app )
return repository_tools_tups
+def handle_existing_tool_dependencies_that_changed_in_update( app, repository, original_dependency_dict, new_dependency_dict ):
+ """
+ This method is called when a Galaxy admin is getting updates for an installed tool shed repository in order to cover the case where an
+ existing tool dependency was changed (e.g., the version of the dependency was changed) but the tool version for which it is a dependency
+ was not changed. In this case, we only want to determine if any of the dependency information defined in original_dependency_dict was
+ changed in new_dependency_dict. We don't care if new dependencies were added in new_dependency_dict since they will just be treated as
+ missing dependencies for the tool.
+ """
+ updated_tool_dependency_names = []
+ deleted_tool_dependency_names = []
+ for original_dependency_key, original_dependency_val_dict in original_dependency_dict.items():
+ if original_dependency_key not in new_dependency_dict:
+ updated_tool_dependency = update_existing_tool_dependency( app, repository, original_dependency_val_dict, new_dependency_dict )
+ if updated_tool_dependency:
+ updated_tool_dependency_names.append( updated_tool_dependency.name )
+ else:
+ deleted_tool_dependency_names.append( original_dependency_val_dict[ 'name' ] )
+ return updated_tool_dependency_names, deleted_tool_dependency_names
def handle_missing_index_file( app, tool_path, sample_files, repository_tools_tups, sample_files_copied ):
"""
Inspect each tool to see if it has any input parameters that are dynamically generated select lists that depend on a .loc file.
@@ -1862,21 +1898,28 @@
trans.app.toolbox.write_integrated_tool_panel_config_file()
def remove_tool_dependency( trans, tool_dependency ):
dependency_install_dir = tool_dependency.installation_directory( trans.app )
- try:
- shutil.rmtree( dependency_install_dir )
- removed = True
- error_message = ''
- log.debug( "Removed tool dependency installation directory: %s" % str( dependency_install_dir ) )
- except Exception, e:
- removed = False
- error_message = "Error removing tool dependency installation directory %s: %s" % ( str( dependency_install_dir ), str( e ) )
- log.debug( error_message )
+ removed, error_message = remove_tool_dependency_installation_directory( dependency_install_dir )
if removed:
tool_dependency.status = trans.model.ToolDependency.installation_status.UNINSTALLED
tool_dependency.error_message = None
trans.sa_session.add( tool_dependency )
trans.sa_session.flush()
return removed, error_message
+def remove_tool_dependency_installation_directory( dependency_install_dir ):
+ if os.path.exists( dependency_install_dir ):
+ try:
+ shutil.rmtree( dependency_install_dir )
+ removed = True
+ error_message = ''
+ log.debug( "Removed tool dependency installation directory: %s" % str( dependency_install_dir ) )
+ except Exception, e:
+ removed = False
+ error_message = "Error removing tool dependency installation directory %s: %s" % ( str( dependency_install_dir ), str( e ) )
+ log.debug( error_message )
+ else:
+ removed = True
+ error_message = ''
+ return removed, error_message
def reset_tool_data_tables( app ):
# Reset the tool_data_tables to an empty dictionary.
app.tool_data_tables.data_tables = {}
@@ -1925,7 +1968,7 @@
translated.append( '' )
return ''.join( translated )
def to_html_str( text ):
- """Translates the characters in text to sn html string"""
+ """Translates the characters in text to an html string"""
translated = []
for c in text:
if c in VALID_CHARS:
@@ -1954,6 +1997,63 @@
else:
translated_string = ''
return translated_string
+def update_existing_tool_dependency( app, repository, original_dependency_dict, new_dependencies_dict ):
+ """
+ Update an exsiting tool dependency whose definition was updated in a change set pulled by a Galaxy administrator when getting updates
+ to an installed tool shed repository. The original_dependency_dict is a single tool dependency definition, an example of which is:
+ {"name": "bwa",
+ "readme": "\\nCompiling BWA requires zlib and libpthread to be present on your system.\\n ",
+ "type": "package",
+ "version": "0.6.2"}
+ The new_dependencies_dict is the dictionary generated by the generate_tool_dependency_metadata method.
+ """
+ new_tool_dependency = None
+ original_name = original_dependency_dict[ 'name' ]
+ original_type = original_dependency_dict[ 'type' ]
+ original_version = original_dependency_dict[ 'version' ]
+ # Locate the appropriate tool_dependency associated with the repository.
+ tool_dependency = None
+ for tool_dependency in repository.tool_dependencies:
+ if tool_dependency.name == original_name and tool_dependency.type == original_type and tool_dependency.version == original_version:
+ break
+ if tool_dependency and tool_dependency.can_update:
+ dependency_install_dir = tool_dependency.installation_directory( app )
+ removed_from_disk, error_message = remove_tool_dependency_installation_directory( dependency_install_dir )
+ if removed_from_disk:
+ sa_session = app.model.context.current
+ new_dependency_name = None
+ new_dependency_type = None
+ new_dependency_version = None
+ for new_dependency_key, new_dependency_val_dict in new_dependencies_dict.items():
+ # Match on name only, hopefully this will be enough!
+ if original_name == new_dependency_val_dict[ 'name' ]:
+ new_dependency_name = new_dependency_val_dict[ 'name' ]
+ new_dependency_type = new_dependency_val_dict[ 'type' ]
+ new_dependency_version = new_dependency_val_dict[ 'version' ]
+ break
+ if new_dependency_name and new_dependency_type and new_dependency_version:
+ # Update all attributes of the tool_dependency record in the database.
+ log.debug( "Updating tool dependency '%s' with type '%s' and version '%s' to have new type '%s' and version '%s'." % \
+ ( str( tool_dependency.name ),
+ str( tool_dependency.type ),
+ str( tool_dependency.version ),
+ str( new_dependency_type ),
+ str( new_dependency_version ) ) )
+ tool_dependency.type = new_dependency_type
+ tool_dependency.version = new_dependency_version
+ tool_dependency.status = app.model.ToolDependency.installation_status.UNINSTALLED
+ tool_dependency.error_message = None
+ sa_session.add( tool_dependency )
+ sa_session.flush()
+ new_tool_dependency = tool_dependency
+ else:
+ # We have no new tool dependency definition based on a matching dependency name, so remove the existing tool dependency record
+ # from the database.
+ log.debug( "Deleting tool dependency with name '%s', type '%s' and version '%s' from the database since it is no longer defined." % \
+ ( str( tool_dependency.name ), str( tool_dependency.type ), str( tool_dependency.version ) ) )
+ sa_session.delete( tool_dependency )
+ sa_session.flush()
+ return new_tool_dependency
def update_repository( repo, ctx_rev=None ):
"""
Update the cloned repository to changeset_revision. It is critical that the installed repository is updated to the desired
diff -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -753,6 +753,7 @@
relative_install_dir=repo_dir,
repository_files_dir=work_dir,
resetting_all_metadata_on_repository=True,
+ updating_installed_repository=False,
webapp='community' )
if current_metadata_dict:
if not metadata_changeset_revision and not metadata_dict:
@@ -828,6 +829,7 @@
relative_install_dir=repo_dir,
repository_files_dir=None,
resetting_all_metadata_on_repository=False,
+ updating_installed_repository=False,
webapp='community' )
if metadata_dict:
downloadable = is_downloadable( metadata_dict )
diff -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 -r 844e566f36acc3d94856a55c0d4d4dcf291f8b81 lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
--- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
+++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
@@ -731,6 +731,7 @@
relative_install_dir=relative_install_dir,
repository_files_dir=None,
resetting_all_metadata_on_repository=False,
+ updating_installed_repository=False,
webapp='galaxy' )
tool_shed_repository.metadata = metadata_dict
trans.sa_session.add( tool_shed_repository )
@@ -1447,6 +1448,7 @@
relative_install_dir=relative_install_dir,
repository_files_dir=None,
resetting_all_metadata_on_repository=False,
+ updating_installed_repository=False,
webapp='galaxy' )
repository.metadata = metadata_dict
trans.sa_session.add( repository )
@@ -1566,8 +1568,7 @@
# Filter tool dependencies to only those that are installed.
tool_dependencies_for_uninstallation = []
for tool_dependency in tool_dependencies:
- if tool_dependency.status in [ trans.model.ToolDependency.installation_status.INSTALLED,
- trans.model.ToolDependency.installation_status.ERROR ]:
+ if tool_dependency.can_uninstall:
tool_dependencies_for_uninstallation.append( tool_dependency )
for tool_dependency in tool_dependencies_for_uninstallation:
uninstalled, error_message = remove_tool_dependency( trans, tool_dependency )
@@ -1616,14 +1617,16 @@
repository_clone_url = os.path.join( tool_shed_url, 'repos', owner, name )
pull_repository( repo, repository_clone_url, latest_ctx_rev )
update_repository( repo, latest_ctx_rev )
+ tool_shed = clean_tool_shed_url( tool_shed_url )
# Update the repository metadata.
- tool_shed = clean_tool_shed_url( tool_shed_url )
metadata_dict, invalid_file_tups = generate_metadata_for_changeset_revision( app=trans.app,
repository=repository,
repository_clone_url=repository_clone_url,
relative_install_dir=relative_install_dir,
repository_files_dir=None,
- resetting_all_metadata_on_repository=False )
+ resetting_all_metadata_on_repository=False,
+ updating_installed_repository=True,
+ webapp='galaxy' )
repository.metadata = metadata_dict
# Update the repository changeset_revision in the database.
repository.changeset_revision = latest_changeset_revision
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: smcmanus: Store exit_code in database for jobs and tasks
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/de2c99ce5f74/
changeset: de2c99ce5f74
user: smcmanus
date: 2012-10-01 17:42:10
summary: Store exit_code in database for jobs and tasks
affected #: 1 file
diff -r 035583d94b11200276aed333a859b8e49b64429f -r de2c99ce5f749582c3ce3bfb02422588c70b1a06 lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -440,6 +440,7 @@
if len( job.stderr ) > 32768:
log.error( "stderr for job %d is greater than 32K, only first part will be logged to database" % job.id )
job.stderr = job.stderr[:32768]
+ job.exit_code = tool_exit_code
# custom post process setup
inp_data = dict( [ ( da.name, da.dataset ) for da in job.input_datasets ] )
out_data = dict( [ ( da.name, da.dataset ) for da in job.output_datasets ] )
@@ -1060,9 +1061,9 @@
if len( stderr ) > 32768:
log.error( "stderr for job %d is greater than 32K, only first part will be logged to database" % task.id )
task.stderr = stderr[:32768]
+ task.exit_code = tool_exit_code
task.command_line = self.command_line
self.sa_session.flush()
- log.debug( 'task %d ended' % self.task_id )
def cleanup( self ):
# There is no task cleanup. The job cleans up for all tasks.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/035583d94b11/
changeset: 035583d94b11
user: inithello
date: 2012-10-01 16:13:34
summary: Missed a file in the previous commit.
affected #: 1 file
diff -r 8d7397d2c59bb15a710f45013ca1faf8c91326e7 -r 035583d94b11200276aed333a859b8e49b64429f test-data/hg19chrX_midpart.fasta
--- a/test-data/hg19chrX_midpart.fasta
+++ /dev/null
@@ -1,751 +0,0 @@
->chrX_part
-TCTGTTAGACTCACTCAGGACTGTATGAGCATCACCTGTGCTGCACTGTG
-ACTTTACAGATATTAACGAAGAATCCTCAAGGATCTGTGTTTCGGAGGCA
-ATCTGGTGACCAGCAGCATTCTCAGCATTCAAATGATGACCCTCAAAATA
-GGCAGTAGCATTTTTATCTGCTCTGTCATTGGCTACAAAAGACGGCACCA
-CTGGTACTGATCTTGGTAGCTGATATTCAGGAGAAAGGCTGACCAAGGGT
-GTATATATGCTGGTGTACTGGGGCAAACCTGGTAACACATTTATGTATGC
-TGGCGATGTCCGGGTGTTATCAAATCTCTGGAAAGGAAGATACGTACAGT
-ATCCTGTGACCAAATGGGATTGAGCCCAATAAGTTGGTTTCACATCCTCA
-AGAACCGGTTTGGGAGAATTAGAGGAGACTCGCTTGTAATTTGCATCCTC
-AGAGCCTGGTTTGGGAGAATTAGAAGAGAACCCTTTGGGTTTCCCATCCT
-CAGAAACTTGTCTAGAAGAATTATCGGATACTGGTTTGGCCTTCACATCT
-TCACAAGCTGGCTTGGGAGAATTTGCAGACAAAGGTTTGGGTTTCACATC
-TTCAGAAGCTGGTGCTGAAGATGAACCTGATACTGGTTTAGACTTTACAT
-CTGGTTTAAATTCCCTAGCAGCTGAATTAAGTGGTAGTTTAACTTGTAAA
-TACTCTCCTGCTTTTGAAATGTCTTCTACTTTTGTTTTAATGTTTTTCTT
-CTTTCTTTTTTTCTTGAGCCGTGATGCAACTTTCTTCAATGCAATACAGT
-TGTCAATCACAACAAAACGGGGACATCCCAAGAGAAAAGATTTTAAACCT
-CCTGCTTTTTCTAGTATTGGTCGAGTTTCTTCTGGGAAAAACTCATATTC
-TTCAGAGAACATCTTGTGACTCATGTCCAAGGGACCATGTTCCTCCAACA
-ACTGAGAGAAGTAATCATATAGAGTTGAACATTTTTGTTTTGGGTTCATG
-TCCCATAGCTTCTTATTGCGGACAACATATTCATTACTGTGTTGGTCATA
-GAGAGCTTCAAATTCTTCTACGTCTTGCCGAAGATGGTCAGGCACTGCAA
-ATGGGCCTGCAGTATCTGAATTTTGATTGCTATGGTCTTCACTTGAAGTG
-ATGATCTCATTATTTGGAGTTACTGAAGTTGTTCCAGACCCAACTAACAT
-AGGCTTTGAATCCTTTGGTTTCTTTTTCTTGCCTTTGTTTTTCACCTTGG
-TAGAACTAAACGGTGCTTCGCCACTGTCTTGTTTCCTTAACACAGTACAG
-CGGCTGTCCATTATATCAAAGAATTCATCTAAAGCACTATGTAATGCTGG
-GAACTTGTCTCTGTGTTCTTCTAGCAGCCATATTAAACAGCGGGCTTCCT
-TCGATGATGTTGGCTCAAAGAAATAATCAAGTTGCTTTCCTTCTATAGAG
-TCTAGTTTGTGACCATATTTCTCATTCCAGAGGAAAGTCATGATGCTAAA
-ATCAAGCTGTTTAAGAGATGCTTCATACCGAGAAAAGAAAGGTCCTGTGG
-CATCTAAGCCAAAGCTATTAAGTTTTCGGATCCAGGCGGCTAATTTGGGC
-TCCACTTCTTTAAGCTCACTCAAAACATGCAGAAATATTCTTGTCTTTAC
-TCTGTTCTTTTCTTGAATCAAGTGACGAATAACATAGTCCACTGCTTCAT
-TTAGAAAATTTCTGCTTGAAAAACAGGTTGTATAGTCCTCTGTGCTCAAA
-ACTTTCCAAGAAAGTAATTCTTTGAGAAGCGTGGCTGTATTCCATATGCC
-GGATTTAATCTTGTCAGCATACTGCTTTATACACTGTAGAATTCTGTCAT
-CAAGGAACTGACAATGCTGAACATTGTCTACAGTTTCTTTCTGCTCTTCG
-TTTTTGGGTGGATTACTTTCTCTTAAGTCCTCCTCCATTCTTTCTTGTGC
-TAATTTTTTTGCTTCTTTTTTTTGGATCTTTCTCTTCAATTTTTTGTCTT
-CTTTCAGTCTTAGTTTCTCTAGGCTAGAACATTTCTGTTTCAGAATAGGT
-CTTGGAGGAACCTTTTCTTTTATGACCTTGTGTTCAAATTCACATTTAAC
-TTGACCACCACTGCTGAAGATGATAATCTTAGAAATGACACCTTCACAGT
-CAGGGGTAAGACATATTCCTTGTAGAAAATCCTTGTCAATTTTATCATTA
-AAGGTTGTGGTTTTTAACTTCTTCCAGCAATTCATGTGAAATTCTATTTT
-ACAGTACTGGCAACAGCTGATGCGTATAAAACCCTTAAAGTCTGGATCAG
-TTATGTATATCTGGATCTTAGAATATCCACAGCACTTCTGATAGCAACAA
-ATGGCATCTGGCACTGGAGGGAACTTGCATTCTTCAACAAATTTCTCTAA
-CAGCATCTTTATTTTTTCTGGCTGAGACTCTTCAATAATCACATTACTTG
-TGGGCCAAGTTAACACTCCAGGAAGACGATAAATCAAGGTTCTTGCTTTC
-TCAAAGTGATTGAGAGCTTCTAGAAATCTGTTTTTTTTCAAATATACTTT
-TCCAATTCCACAGTAGGCCAAGCAATCAAGTCCCTCATTGTGGTAGTGTT
-CAATAATCCTCTTAAACTGGTTTTCAGCTTCAGATAGTTCTTCAGGCTGT
-CCTATTCCAAGGAGTGAAATGGCAAGTCCATAGACAACCAAGACATAGTT
-AATCATGGCCAGATTCAATTGCTTTATTTTTTGAGGATCTAAACCATTCA
-GCAACTCTGTAAAGGCATGTGCGGCACTGCGGCAACGCTGCTCCAATAAG
-GCTGTATAGCCATCTTGAATTAAGCTTCTCAGCATTGTCATTATATTAGC
-AAAATCCTGGTGTGCACCTCTGGAAGATTTAGAAAACTGTTTCTCCAAGA
-TGTTCTTCAAATCTGCTGGTAAAGTCAATTGTGAACTAGAACTGAACTTT
-TCTGATTCATTGTTTCGAGATTTTTGTTTTCCTTTATGTTTCGGAGGCTG
-ACTTGATGGTGGTGAAAATTCAGGATGACAGTCACAATCATCTACCATCA
-ATGCCTCATCCATCACCTTTAGATTCTGATTACCACCGTTAGCCATTTCG
-TGATTAATTTTTCTGAAATCTCTTTCCTTCTCCACAAAGTTAAGTGAAGT
-ACTAAATACAGGTGCTGATAAACTCCTAGGTGTGTAGGCCCTGTTTTCAT
-AAAAGGCTTTAATTGGATTCTTATTTGCTGTTCGACCTTGTAGGTCTTCT
-ATTTGTTTTTGTAACTTTACATGCTGCTGAATTAGATCCTTGATTCCCTC
-AGGGTCATTTTTACAGAGTTTTTGAGCTGTTATGTTTGCTTGCAGGGCCC
-AGTTATATTCCCCCAGCATAGAAAGAGCATCACAATAACGATAATGACCC
-TTTGGCCAAGTGTTCTTCAGAATAGTGGCTCTCTTTCCATCACCAAGTGC
-ATTTCTAAACTGTCCAGTACGAAGAAAACAAAGAGCTCGGTTACCATAAA
-GAAGGTGGTTTTCAGGTCTATATTCAATGGCTCTGGTGTAATAGATAATA
-GCTATATCAAATCTTTCTTTGGAAAACTCTTCATTTCCTTTCATTTTCAT
-TAGTTCTCCTTGCTCTATACAATCCATACAACTTTGGGTTTTAAGTTCTT
-CAAGCAAATTGCAGTCTTCCATTACAATTTTAGTTATGTGGTACTTGTAT
-TCAGTAAAGAAAATACTTAACATAGGCCAACAATTGTCAATTGATCCTAA
-TTTAGTTAGAATTGTTACATCGCCTGCATATTTTATCCAATTCAGAGCTT
-CTTCCATTGCCAAGATTTTATTTTCTATTTTATAACCAATTCTCAATAAG
-CCTCCAATAAGGAGTGAATCATTAGCAGCTTTCTTTGCCAAATCCACAAT
-ATCTTCCATCAACTCAAGATGTTGTAATCTCTTCAAATTTATCTCGGAAG
-CACGTGAATTGTTGGCGTCCACACAGGGATGCAATCGTGATATTACAGAA
-CTGTTTTGATGTTGAAACAGAAGTGGCCAGAAGATGTTTATTTTAATGGC
-ATCACAATAATCTTGCAGGACAGAAATTGGTTTACTACACCATATACTGC
-AGATGTCAAATTCTAAATTCCTCTCACTTTGGACATAATCTTTATATTGC
-TTACCCACCCCATCACAGTAAAGCTGAGTCACACGAACATAATCATCGGT
-CATAAATTCAGCAGCAAAGACACAATCGTCCACGTAAGGGCAATCTTCTA
-ACAAGGCATAATCCGCCATAGTGAAATCTCCCTCAGCAAAATTGTCCGTG
-ATGCACAAGTCACGCACACACGGAGGGGTGTGGAAGGCCCCGCTCCCCTG
-GCATCTCGGCTGCAGCGGGACCAGGTAACACATCCGGGAGCCCGGCCGCG
-CGCCGGGTGTGCACTCACCCGGGCCTGCCGCCCGCGAGCCTGGGACGCAG
-GCATccgccgccgccgccgccgccaccgccgccgccgccgcggccgccgc
-cgcagcagccgccgctgccgccgccgccgccgctgctgccgctgccgctt
-ccgccgccgccgccgccacctccgGCCCTCTACGTCAGCGGACGGTGGGA
-GGGAGCGAGTGCTTTTAACTGTTTCGGTGTCAATACTGACCACAGTCATT
-ATTTTCTCCGGCTGTACTTTAAAGTCTTAATGGTTGAAGCCATGTATCCT
-TTGCCCACAGACCAGAGGAAGGGGAACCAGGTTCTTTCAGGAAAGTGCAT
-GGGGGATGCCTCTCTCTCATCATGTCCCCTGACTCCCAGGTGTAATCATA
-ATCTCCTCATGGAAGTGCCAGGCACATAGAGAGTGCTCTTCCTGCTGCCT
-CCACTCCTGCTAGACAGAGCCCTGTCAAGGTCATCCTAAGGGCTGGGATC
-CACTAACAGCTTTGACCTTAAAGCAGAGTCTGATATTGGGGATGTCATTT
-CTTCACTCTGATGTACTAATTTTTTTTTTTATCTATACGCTGATGAGAGG
-CTGCTCAGACACCTGCAAATTAGCATCACACTCCCCTAGGTTCTCTAGCA
-AGATATTCTGGGAGGAAAACCTCTGAATCTTATTTCTACCTGTTGCTCAA
-GGAAGGGACTGTTTCCAAAGAAAATCACAGTCGTATACAGGGGAGCTTTT
-CTGTGTCCCTTTTTCTCCTTTGTTCCTTTTCCCCTCTCTCTCTTTTAATG
-GCACCCATTTCTTCCCATCACTTAGAATCACTGAGAATCTTTTTTTACCC
-TGGCTTATAAATTGTGTAGAATTCCTGTAAAGTATGGTGCTCCTTTGTCT
-GTTTCCATTGTCTCTGACCTAATTTTTGACTGACTGGCCATTTACCTGAT
-CCACTTtaaaagccaggagaactgtgttctcatttcagaagaaactgtgt
-taccctggccagttttcttcccttttctgggattcatttcatctgtaaaa
-tggggggCGGGGGTTGACCATCCTGGGTTCTATCTGGAGGTCGATGGGAG
-TCAGagagagagctctgacatggtgatgcagggccttgaactccactcac
-agctctgctgctaacctagcatgtgatttagttctagtccctttccactt
-ctgagcctcagttccccatctAAGCAGCCATGACTGACAAGGGAGAAGTC
-TTAGACTCCCACAAATGAGGACCTTGATCCCCTAACATGACTGTGTGTTC
-ATAAGACCCGTATCCTCTGATCTTGAGCAGATAGAGCCTTTTCTTATCCT
-CTGGATTGCTTCTTGGAAATGGCTGTAGCGAAAGCCTCTTCTTTTGTGCT
-TGATACTTTATTTTCCCAGGTAAGCTCCCTCTACCTTTGTCCTGGGGCAT
-GTATTTATGGATATTTTAGTTAGAAAAAGCTATCAATTAGTGTAATTAGC
-TTATTGTCACCTTCAATCTTGACCCTCTCCCTGCACTGTCCCCTACCCAC
-CTCAGGTTCTCTCTTATTTTAACTTAGTGAGCAGAGCTCCTGGCTGCATC
-ACCATAGCAACCAGCAGCTAGGACCTATTAAGCCATGATGAGTCATTAGA
-CATCTAAGCTGATTATAGAGTCCAGAATGTTAACTGCAGAAGAGATGCTG
-AAAGAAGGAAAATGAGGCAGATCTTAACCTACAAACAAGTAGACAACAGA
-GTAGCTGAGTGCTTCAAACTATCCCCGACCTGGATGCCATGGGCGCTATG
-GGCCTGGGTGTCAACACCTTGGCATGTACCCTCAGCCACCAGACCAGAGG
-GAGGGGCACCAGGCCCATTCTCTTCCCAGGGAAGTAATTCTGGACACCTT
-CCTGCCAACATGCTCCAAGTAGATGGATTTGAGTCTGGATTTTTCAATGG
-GCAGTACCAATTACTGAGTTCATCCTGAGTCCTACTCCTAATCTAGTGAC
-ACATTTCCTTATCTTTCAACTTTCCATAGAAGTTTCTTAAATGAAAAAGG
-GCATTTTTTTTTTTACTTGTTTGAAACTCTCTTTTCCCAGTCAGTTCCCC
-TGCTGCCTTGGCCTGTATTTGTGGCCTGTTAAATTTAAAAGTCTATCAGT
-TAGTCTAATTAGGATATTCAAATTTTAATTATTTTCCCTTCTCCACATGG
-GCAGCCACCCACCCTTCTTTTATTCTCTCTTTTTATTTCATTTAGGGAAA
-AAAGCTCTTGGCAGGATTGCTATAGAAACCAGCCACCAGGCAGACTAGGC
-CATTGTGCTTCTGGACACTGATACTCAAAGCTGATTATGGGTCTGGAAGC
-TTGCATGGCTGAGCAAGACTGATGGAGTTAAGACAAAGAGGGTCTCAGCT
-ACAGAGAAGGGGAAAATAAGCACCTCAGAACTTTAGACAAACCTCAGCCC
-TACCTTTATCTTTGCCCCTGTATGCTTCATGGAAGAAAAAAGTTAGAATG
-AGGAAGGCTGTCCCCTATTAAAGATGAATGTCTGGGTTGACATCAGAACT
-TGTGCCCTTAGGCTAACCCTGCCATGACGACAAACCCACACCTGTGAACA
-TGTCATTTTCACTGAGTATCCCTAGTTCCTATTAAATTACCTGGCATATA
-CTTAAGGTTCTCATAGTGCTTGGTGCTCAGCAATTCTGTAAGACAGAGCA
-CTACTAGTGAGAGCACACTGAGACTACCTTGGAACATGAGCAAGTGAAGA
-CTTCCTAACACACTGGATTTTTCTGGGAAATGACACTAATGAAAGCCTCT
-GCTATGTGCTCTAAGGCTCCCTGTTTGCAATTTACCTCCCCTGCCTTCTG
-GCAGTGGTGGTGTAAATGCCTGGTGGAGGGGCTTTGAAAGCTGTTAGTCA
-CTGAAGTACCTAAGTGTATTAGGCTATTATTGCCTTCAAGGATTTTCCCC
-TGGTCCCACAATGCACCCCTGTCTACATTAACAGGCTCCCACTCATTTAC
-ACTGGGAGAGCAGTGCTCCTGGACACATTGCCATAGCAACCAGAAGCCAG
-ACAGAGTAGGAGGGTGAGCCAGACATTTGACAGCAAAGGTTAGTGGAGTA
-TCTGTTGGAGAGGGGCTGACTCTTAGGAGGAAAATACCTTATCTCTCAGC
-TGCAGAGAAATAGGCCACTAGGCCCCTCAGTGTTCCAACACCATCCCCTC
-CCCATCCTCCATCCCCATGCCTCCAGATGAGGAGTAGTCAGAATGAGTTT
-TGTTTTATCTGGAGGCCAAGGCCTGTGTTTTATCAGAATAGGTATCCTTT
-GCCCCGAAGCCGGTCAAGGGAACCAGGTACCACATACTTCCTCCTACGCC
-ACCTTGTTACCAAACTAACACCCATGAGTGAACATATGCTCCAAATGTGt
-gttcccatgactgcatctcctgtgcctagaatagtgtcaagtatatggca
-gTGCAACTTTctgcacttcccctgtctactcactccattgcagttcacac
-cttatcatttgcagaattccatttactactggaatacccactgtattagt
-ctgtcctcatgctgctaataaagacatacccgagactggacaatttacaa
-cagaaagaggtttaatggacttacagtttcttgtggctggggaggcctca
-caatcacagctgaagatgaaaggcacatctcacatagtggcagacaagag
-aagagagcttgtgcagggaaacttctctttttaaaaccatcagatcttgt
-gagacttattcattatcatgaagaacagcacaggaaagaactgcccccat
-gattcaattacctcctaacgggtccctcccacaacatgtgggaattcaag
-atgagatttgggtaaggacacagccaaaccatatcagccacagtctcaac
-tgatgacactgagaacatgaaagtaaaggaatagcctttaaaaacttctc
-acttccatgcatctgcaacttgatactctgctttccctttcatcactatg
-gataaactctctacattcctatgaaaacccatacctaccgttggccacta
-gattacaccccttcttgactattcaatgcatggtcccagcaatgctgtct
-gtgctctttgccacatcatcaatttacctttatgtactggatgattccca
-tcagtacacaaagattccacaagtctcccttgcaacaacaacaacaaaac
-caacaagaaagaaacaaaacaccctaccttaactgtacaacccactccac
-ctactgcatcatctctgtacaccaaacttcctcaaaaatcattatgtggt
-cttgatttgttcacttatgtactctcatttttttcttgaacccaccctag
-tcaagcttttatcccccactccatggaaatagctcaagatccccaaataa
-cctgcatattgttaaacctagtgattatttctcaggctggtcttacttga
-ctgaaaagtagaatttgacacaattgatcacttcctcctccttgtaatac
-tttcctcacttaatttacaggacatttctgtctcttggttgtgcttctgc
-ttcagtgtctgccatttttcagagtcatggctagttactcctcactgctt
-tgacctcttcacCCTGCTAGAAGCTATTAGTCAAAACATAAGTTTTTATT
-TAGCCAATTGAAGGTGTGTAACATAGGACTGTGGTTGTCAGAATGGAAAC
-CACTTGGGCCTTCATATAGGTGGCTGAAGAAATTTATCCAAGCAAGAGAT
-AGCATCAGGTCCTGGGCTAACAGCTTTCTGGTTGGGAAAGACCCCCAACA
-CCTGCCTTCATTCAGTGAGACAATTGTATGACTCACCTGCAGTAATGTGC
-AGGTTAAAGGTAACGAGTTGAACTTGTAGCTTGCCCCTCTCTCACTACAT
-AAACTCCTTTCTTCTCTCTGGAAGGAGTTCAGTTTCCAGCAGAGGTGATG
-ACAGATTAACAGATTCCAGTTTAAAAAGTGCTATAACCCTGAAGGGGGTG
-GGGTATGTTGGTAGATAAGAGAAGTTAGATCTTTAATAAATCCCACAAAT
-TATTCTGGGCAATTTATTTACTGAGAATTTTTAACTCTCAAGTGTTAAGA
-TTTTCCTAGATAATCATTTGTTTAATTCAGGTTTTCAAAAGCATTTACTT
-CAGACTCCTTTTATTCTCTTAATTTCTTTTCTATTGCTGTTTTAAAAACA
-AACAAAAAAAATACTTAGTGACTCAATTAAAAAATATTATTGGTGAGGGG
-ATGAAGCACAGTTTCAAAGAGTTACAAATTAAAAATATTAATTGGCATCT
-GAATTGCAAGAATCCATTTACCTCCACTCTCTAAGCTCTAATGATGTTTG
-TGTCCCCAAGTCAAGTTCCAAAGTAACCATTATTCCCAATAGGTAAAATT
-CCTCTGACCTCTGGTCCTGTTGAACCTTAAGGCTTACCATAAAATTGCTT
-CAAATTGCAAGAAATGAGCGTGGAATTCTTCCCTCCCCCTAGCCAAGGCC
-TGTTCTAGTTACAACCAACAGTCGATAAATCCCAGTGCTTCTCCCATAGT
-CCCAACCCTCTCGTGCACTCTCACTACCTCATTGAGGGCTTTGGAGTTTC
-CAGGATACAGCATACGAGTCTTACCAAAATCCCAGATGGGGCACCTCTCA
-GTCATAACTTAAGAAGATGCTCTCAGATCTTGACTCCCAGATTCAGCCCA
-GACTCACTATGATCTTGAAGTGCCTTGTGAACTTTAACAAATGGCCCATC
-CTGTCCCCAGTCTCTGGTGCATAAACTGTTTCCCACATCAATCACGAGCA
-CAGGTTCTATGCCATCCAACACTGCATTGTTCCTTGACATGTTTTTTTTT
-TTTGTTTGTGCAGTCAACACATAATTGATGAGGCACATTCTACATGACAG
-GCACTACACAAGAGACTGAGGGGTGAACTGATTAGCACCCTGCCCCTTTG
-GTGACCTGTTAAGATATAATAATAATGGTCATACTGAGCTCTGAGAGTAA
-AATAAAAACAGCAGTACACTCAGGAGGGGCCAAAAATATTCCATTCCTTC
-CTTCCCCATCAACTTTTTATTTGTGGATCCTCAAGGCCGAATGATCCTGG
-AAGACCCCTGTCTGCATAAAGACATTTATTTGTGGCCTTTCATTTCAAGT
-AATTGAGTTTTGATATCTATACCAAACAAAGAAACGTCCAGACCCCCATC
-ACATTATAGCTTCCCCTAAACAGTTGTTTGCAACAAACAGGTTCAGTAAG
-TGACCAGTTATAAGATTAATATATAAGAAAATAGCTTTCCAGTGACTAAA
-ATCCAGCTGGAAGGGCAAGGAAGTTTTACTTCATTACTGCATCTCCTAAG
-AAGCTTACTAAGTCTCTGTTTCCCAAATATGTGAAAAGCAATAAGTTGCT
-TCTAGGGTAAGAAGCAATAATGTATGTGTATGGAATGAACTGGCATTCAC
-CTGAAGCTCAATAAAAGTTATTCCCTTCCCTTTGGAAAAAAAAAACCCAG
-TTCTCAAGGTGGGACTACAGAAAATGTTTGCTTTTCATCAATTCTTTAGG
-TAATTTTGAGCTTCATCTTGGGGCTGAGAATTTGGGTCAGGACCTATTGA
-GAATAGCCACCACTCACCTCAAAAGAGATCACATCAGGAGGTTCATAATC
-TGTTTCTATCTTTCAAGTATTCTTATTGCTTTTTCACATTTCTCTTTCAG
-TACCTTACAATGGAAATATGGGCATTTCATAAAACAGAACGAGATAGTCA
-TGTGCACAGCATTATCAGGGCCAAGCTTTGGAAAAATGGACTCTGATATT
-CAGGACAATATCCTTAGCAAAGGGCAATTTTGATTCTCAAACGCGGACCA
-GCAAAGTGCTTTGCAGTCTAATGATCCAAGCCTACCTCCAGTTTTTCTTT
-TGACATCTGAAGCCTTGAACTGATTCCGGTTGCAACCACTTTACAATGAA
-GGTTTTAAAATCCCTAACACACAATTCTATCAACCCTTACTCTTCAATCA
-GTCAAGTACCCTACGTTTCCAATCCTAGAAATTAGGCTGCCTCCATTCCC
-TGATATATAGAATGCTTTCAAATTTATAATCCAGTGCCAAGTCTTGCTTC
-CATCCCTGACTTTTTTACTTTCTTAAGAATCAGAAACCATGAAGAATTCT
-GGGCCCCTTGCTGATCAGCACAGTGCTATGAGAATTTCACAAGCCAAGGA
-CAGTACAGATCCAGAAATCCTGTTTTATAAACTGTGTCAAGATTCAAAGT
-CCATTTTCttttttattattattatactttaagttctagggtacatatgc
-acaacgtgcaggtttgttacatatgtatacatgcgcccttttggtatgct
-gcacccattaactcatcatttactctaggtatatctcctaatgctacacc
-tcccccctccccccaccccacggcaggcccccgtgtgtgatgttccccat
-gctgtgtccaagtgttctcattgttcagttcccacctatgagtgagaaca
-tgcggtgtttagttttttgtccttgccatagtttgctgagaatgatggtt
-tccagcttcatccatgtccttgcaaaggacatgaactcatccttttttat
-ggctgcatactattccatggtgtatatgtgccacattttcttaatcaggt
-ctatcattgatggacatttgggttggttccaagtctgtgatattgtgaat
-agtgtcacaataaacatatgtgtgcatgtgtctttatagcagcaggattt
-ataatcctttgggtatatactcagtaatgggatggcttggtcaaatggaa
-tttctagttctagatccttgaggaatcgccacactgtcttccacaatggt
-tgaactagtttacagtcccaccaacagtgtaaaagtgctcctatttctcc
-acatcctctccagcaccttttgtttcctggcttgttaatgattggcattc
-taactgttgtgagatggtatttcattgtggttttgatttgcgtttctctg
-atggccagtgatgatcagtattttttcatgtgtctgttggctgccgatcc
-cacagaaatacaaagtaccatcagagaatactataaacacctcaacgcaa
-ataaactagaaaatctagaaaaatggataaattcctcgacatatacaccc
-tcccaagactaaaccaggaagaagttgaatccctgaatagaccaataaca
-ggctctgaaattgaggcaataatgaatatgctaccaacccaaaaaagtcc
-aggaccagaggcattcacagccgaattctaccagaggtacaaagaggagc
-tggtaccattccttctgaaaccattccaatcaatagaaaaagagggaatc
-ctccctaactcattttatgaggccagcatcatccttattccaaagcatgg
-cagagacaaagcaaaacaaaagagaattttagaccaatatccctgatgaa
-catcgacgcaaaaatcctcaataaaatcctggcaaactgaatccagcagc
-acatcaaaaagcttatccaccatgatcaagttggcttcatccctgggata
-caaggctggttcaacatatgcaaatcaataaacataatccatcatataaa
-cagaatcaaagacaaaaaccacatgattatctcaatagatgcagaaaagg
-cctttgacacaattcaacagcccttcatgctaaaaactctcaataaacta
-ggtattcatgggatgtatctcaaaataataagagctatttatgacaaacc
-cacagccaatgccataatgaatgggcagaaactggaagcattccctttga
-aaactggcacaagacagggatgccctctctcaccactcctattcaacata
-gtgttggaagttctggccagggcaatcaggcaggagaaagaaatacaggc
-tattcaattaggaaaagaggaagtcaaattgtccctgtttgcagatgaca
-tgattgtatatttagaaaaccccatcatctcagcccaaaatctccttaag
-ctgataagcaacttcaacaaagtctcaggatacaaaatcaacgtgcaaaa
-atcacaagcattcatatacaccaataacagacaaacagggagccaaatta
-tgagtgaattctcaAAGTCCATTTTCttttttttaaatattattatacaa
-gtttaatatataGTCAAATGCACAACAATTTATCCTCTGGATTGGGAACA
-AGAGATTTCTAGACATCTCAGCTTTAGCCAGTTTATTATACACCTACTGC
-TTCATAGTTGAGTTCTTCCAGAATATCTGTTAGAACCCCTGATAGCATAC
-TATTTTGTGATGAGATAAATACTTTAAAAATTATATGATCACAGTAGCAT
-GGAATGACATTTCCTTAATGCTATGTTTGAGGGCCTTTTTCTTGTTTCTG
-CTAGTAGAATCTGTTCTACCATTACTTATATACAAACATTATTTATTGCC
-AACATGATACACATTATATGGTGTGGATCCAGTAAATATTTGTAAATTAA
-CTGATTTGGCACCCCACAATATCTCAAGACATGAGATTTAAGAAGAAAAG
-AGCTTGACTAGTAAACCTGGTAGAGAAAATGCCTTTATACAGTTAGTATA
-TCCCACAATACTATCAACAAGTAGATTGGATTTTATTGTTATAACAGAAT
-TGAGTGAGATTGTGAATAATAAGAAAGTTGAGTTGTGGTGCATTGTCCTT
-AGAAGTTTCCTTCCTTTCTTTCCTTCTGTTCAGTGTTGTGACCTCAAATA
-AGGGGCACAGATGCCTCCTCGGGCAGCTTGGGGCAAGTGATCTACTTTCT
-TTTTTTTTTCTTTTTTAAAAttttattattattatactttaagttttagg
-gtacatgtgcacaacgtgcaggtttgttacatatgtatacatgtgccctt
-ttggtgtgctgcacctattaactcatcattaagcattaggtatatctcct
-aatgctatccctcctcactccccccaccccaccacagtccccggtgtgta
-atgttccccttcctgtgtccatgtattctgattgttcaattcccacctat
-gagtgagaacatgcggtgtttggttttttgtccttgtgatagtttgctga
-gaatgatggtttgcagcttcatccatgtccccacaaaggacatgaactca
-tcattttttatggctgcatagtattccatggtgtatatgtgccacatttt
-cttaatccagtctatcattgttggacatttgggttggttccaagtctttg
-ctattgtgaatagtgctgcaataaacgtacgtgtgcatgtgtctttatag
-cagcaggatttataatcctttgggtatatactcagtaatgagatggctgg
-gtcaaatggtatttctagttctagatccctgaggaatcgccacaccgact
-tccacaatggttgagctagttcacagtcccaccaacagtgtaaaagtgtt
-cctatttctccacatcctctccagcacctgttgtttcctgactttttaat
-gatcaccattctaactggtgtgagatggtactcattgtggttttgatttg
-catttctctgatggccagtgatgatgagcattttttcatgtgtcttttgg
-ctccataaatgtcttcttttgagaagtgtctgttcatatccttcgtccac
-tttttgatggggttgtttgtttttttcttgtaaatttgtttgagttcatt
-gtagattctagatattagccctttgtcagatgagtaggttgtgccatccc
-catcaagctaccaatgactttcttcacagaattggaaaaaacttctttaa
-agttcatatggaaccaaaaaagagcccgcattgccaagtcaatcctaagc
-caaaatatcaaagctggaggcatcatgctacctgacttcaaactatacta
-caaggttacagtctgacacacagagctagtgaaatttaggcagagcaact
-gcacaggcatgtgcagagaccaggagccttagatacttgggctttctggg
-ctcccctaaaaaagtagttgcaactcaagcaaagcaggaacagacccccg
-tacataccctaggaaagaggctgaatccagggggccaagcagcaacagtc
-tacaggccccacttccatggcatctcacaggataagacccagtggcttgg
-aattccagccaggcaccggtagtagtgttacacctctctgagacagagct
-cctgtggagaggggccaggggccaacctccatctttgctgtttggacaac
-tttgctgtttcagccttcgagctttggagagtccaagccaaccgggggtg
-gaagggactcctgagcacagcacaactgctctgtgaaaatgtggccagtc
-tgcttctttaaatgggtccctgatcccattccttctcactgggtgggacc
-tcccaactagggtctccagccacccccaccactgttatctggctaaacag
-ttttgaaacctccttaggatagagctcccagagagaaaagtgaaccgaca
-tctttgctgtttgtgtgacaaccattccagccttcaggttttggagagtc
-caagctgaccaggggagaaagggattacccaacacagcacagctgttata
-caaaaacatggctagactgctgtttaaaacaagtttccaatcccgttcct
-cctcactaggcaggacctcccaaccagaacctccagccaccctcgagggt
-gttctttggccaacagagatccgaatacttcctcagttggagctcccaag
-gggaggggcaggcctccatctttgctctttgggtgacttagctgtttcac
-ccttttcgctttgagattctgaggtgacaaaaggctgaagcagacaccca
-gcacagcagagctgctctatgaaaacatggcaagactgatttttaaagca
-agtctctgatcctattcctcctcactggaggtgacctcccaactggggtc
-tccagccagctccttcagatgcattcaggctggcaaaaagtccatacctc
-cctgggatggaggtcccagagggaggggcaggttgccatttttactgttt
-tgcagcctttggtggtaatacctccaggtaccagaaactccaaggtgact
-agcaactggagtgggcatccagcataccacagcaatccggcaaagaaaat
-gtctagcctgttacattggtatctgtttccatatctcatcaccaggcaag
-tcttccagacctgggcctccagccatcatctgccagagatactgagccag
-tagcaactttacaactccctggacagagtttccaggggcaactgaaagtc
-tttctaccactgcctctgtagtggacctgtctttgctaaccttggactaa
-caaaggagtaaaaaccctacctaagtgccttatccacacctccaacaagc
-tgcagttgacccaagaagaggaggccagtttgtctccaatgggtcctaca
-caccccctgctgctcatcaccagacaaggaacccctggcttgggcccaca
-gcacaaaccctccatcctaggctgatttcactgcacaattgctgacccac
-atttctctggggtggagcccccaggaggcaagcaaagtggtggcacagca
-agccagctgatatggagcccagagggtttagtgttggagcatctgtagtg
-gagtgtggccaggtacggccatccctcttggctcagcttgctcccataag
-agacttcagacctaggggaatggtcagatctgatctctgccatgcagtct
-tgcacaccagatggggctgatccaacctgagcactccttggtctcctggc
-ctctttcagggtttcaccctggacactccagcttacaaggcagtcttgga
-tgccctggggacacacaccttaccttctgcactagtagactgcgcctgat
-cagtggagagtgccaaaaatgtggcccctatggccctgcacagcctgcat
-attccatcctcatactgcagctttcctcaagtccatggcaactctccaca
-tccctttgctggcacctgtctgcatgagtaggttttgcttcacatgctct
-gccaacacacgggattgcagtacacccccaccacctccactgaacaccaa
-tgaagatgaagccttagtgggcacagagccagcaagccccacccccacca
-gcacctagcccctgtgctaatgctgcacagagaacaaggtatcctcccac
-accccgagtgatcactcctgcttgcagggaacaaagaaggcacccagacc
-tgtgctggccaacaaccttccaaaagccaataccacctccactgcaacag
-tgcacacaatcttcagcaggggctttctgctccccaccacccccagctgc
-ctagcctctgccactgtggtaaatgcctgcaggaaggcaggtacccctgt
-atttgctaacactcttgctgcagctgctgcacattgggccccacagcaca
-gtggactgcaaacctcatggaccagagaacaaagtcagggccccagagtt
-agcatatgtaggccaggggttgggagctgagcactggccccctaaaagct
-ttctgaaatgaagccatttggctgaatcaaacttgtacctcaatcaaacc
-atcaaggtcatgaataaaagaaaagaaaagaaaagaaaagaaaagaaaag
-aaacccagccaaaggtcagcaacctcaaagattgtaggtacataaaccca
-caaatatgagaaagaatcagtgcaagaacacaaaaaactcaaaaagccag
-agtgccttctttcctacaaatgaccatatcacctgtccagcaagggttca
-caaccaggctgaggctgagatggctgaaatgacagaagtagatttcagaa
-catgaacaggaatgaagttcattgagctacaagagtacattgtgacccac
-tgcaagaaagctaaaaattatgataaaacattgcaggagctgacagacaa
-aatagccagtatacagaagaacacaattgacctgacagagctaaaaacac
-actacaagaattttataattctatcacatgtattaatagcagaatagacc
-aaatggaggagtctcagagcttgaatactgtctttttgaaataagacagg
-cagacaagaatagagaaaaaagaataaaaagaaatgaacagagcctccaa
-gaaatatggaattatgtaaagagattgaatctatgacgggctggtgtacc
-tgaaagagatggggagaatggaaccaacttggaaaacatattttaggata
-ttatccatgagaatgtccccaatgtagctaggaaggccaacatacaaatt
-caggaaatactgagaaccccagtaagatataccacaagaagatcatcccc
-aagacacaatcatcagattctccaaggttgaaatgaatgagaaaaatgtt
-aaagacagctagagacaaagctcaggtcatctacaaaaggaagcccattg
-gactaaaagtggatttctcagctaaaaccctacaagccagaagagatttg
-gggctaatattcaacactcttaaagaaaagaaattcaaaccaagaatttc
-atatctggccaaactaaacttcataagcaaaggagaaatcagatcttttt
-cagacaagcaaatgctgagggaaattgttaccaccagatctgtcttacaa
-gaactcctgaaggaagcacccaatatgcaaaggaaagactgttaccagcc
-actacaaaaacacactgaattacacagtccagtgacactataaatcaacc
-acataaacaagtctgcaaaataaccagccagcattatgatgacaagataa
-aagacatatcaatactaaagttgaatgtaaatgggatacatgccccaatt
-aaaggtcacagagtgtcaagctggataaagagccaaggcccattgctatg
-ttgccctcaagtgacccatctcacgtgtaatgacacacactggctcaaaa
-taaagggatggagaaataccaaccaagcaaatggaaaacataaaaacaat
-cctagtttctgacaaaacagaatttaaaacaacaaagatcaaagaagaca
-aagaagggcatcatataatggtaaagggttcagttgacaaagataatcta
-gccattctaaatatatatgcactcaacacaggagcacccagtttcataaa
-gcaagtacatagagactttcaaagagtcttagactcccactcaataacag
-tgggagactttaacaccctacagacaatattagttcaatcattgagacag
-aatattaacaatgatattcaggacttgaactcagcactggatcaaatgga
-cctgatagttatctccacaacttttgacctcaaaccaacagaatatacat
-tattctcatcaacacattgcacttactctaaaatcaatcatataatcaga
-agtaaaacactccttagcaaacgtaagataactcaaatcataacaaacag
-tctctcagaacacaatgcaatcaaattcaaaatgaagattaagaaattta
-ctcagaactgtacaattacatggaaattgaataacctgctcctagatgac
-ttttgagtaaataatgaaattaaggcagaaaccaatatggtttttgacac
-taatggaacaaagagacaacataccagaatctctgggacacagctaaggc
-agtgttaagaggaaaatttatagcactaactgcccatgttaaaaagttag
-aaggatctctagttaacaacctaatgtcacaactaaaagaattagagagc
-caagagaaaacatattttaaagctagcagatgataagaaataaccaaaat
-tagagctgaactaaagaatataggcattaaaaaaacattcagaagatcaa
-agaatccaggagctttttttttttgaaaaaattaattaaatagatagact
-gctagctagatcaataaagaagaaaagagaaaagactcacgtaagaatgg
-cgtgaacccgagaggtggagctggcagtgagccgagatcgtgccactgca
-ctctagcctgggtgacagagcgagactccttctcaaaaaaaaaaaaaaaa
-aaaaaggaaatgacaagggggatattaccactggcaccacagaaatacaa
-acaaccatcagaaaatattattaattcctctatgtacataaactagaaaa
-tctataagaaatggataaattcctgggcacatacaccctcccaagactga
-accaggaagaaattgaaccgttaaacaaacccataatgagttctgaaatt
-gagacagtaataaatagtctacgaaccaaaaaaagctcaggaccagaaag
-attcacagctgaattctaccagatgtacaaagaagagccagtgccattcc
-cactgaagctattcaaaaaatggaaaagaagggactcctctgtaactcat
-gctatggggccttcctaactgatgttattggtctgaaaacttcagaccag
-tattcagcatcatcctgatgccaaaacctgtaagagatactacaaaaaaa
-gaaaacttcagagcaatattttttatgaatatcaatgcaaaaattcacca
-caaaatactaggaaactgaatccagcagcacatcaaaaagcttatccacc
-aggatcaagtaggttttatccctgggattcaaggtttgttcaaaatatgc
-aaatcaataaatgcaattcatcacataaacagagctaaaaacaaaaacca
-catgattagctcaatagatgcagaaaaagctttaaaaaaaatttaatatc
-tcttcatgttaaaaactctcaataaattatatattgaaagaacatacctc
-aaaattataagagccatttattgcaaacccacaggcaatatactgaatgg
-gcaaaagctggaagcattccccttgaaagccggcagaagacaaggatgct
-ctttctcaccactcctattcaacataatattggaagtcctggccagcgca
-atcaggcaagagaaagaaagaagggacattcaaaataggaagagaggaac
-tcaaattatccctttttgcaggcgatatgatcctatatctagaaaattct
-atcatctcagcccaaaagcttcttaagctgaaaaacagcttcagcaaagt
-cttaggatacaaaatcaatgtgcaaaaatcactaacattcctataccaac
-aacagtcaagctgagagccaaatcaagaatgaactttcaatcactattgt
-cacaagaaagaataaaatacctagcaatacagcttactaggaaggtgaaa
-ggtctctacaaggagaactacagaccactgctcaaagaaatcagagatga
-cacaaatgaatgaaaaatatttcattcattcattcattcatggataggaa
-gaatcaatgtctctaaaatggccatattgcccaaagcaatttatagattc
-actgctgttcttatttttaaagccattgagattcttcacagagctagaaa
-gactattttaaaaaccacatgaacagagctagaaaaaactattttaaaaa
-tcacatggaaagaaaaagcacaagtggttaaggaaattttaagcagaaag
-aacaaagcctgaggcattacaccacctgaatttaaactactctacagggt
-tacagtaaccaaaacagcatagtactggcacaaaaatagacacataggcc
-aatggaacagaatggagaatccagaaaaaaagaccacacccctacaacta
-cctgatctttgacaaacttgacaaaaacaagcaatggggaaaggattccc
-tattcaataaataatgctagtgtaactggctaggtggatgcagatgattg
-aaaccggactccttctttacactatatacaaaattaactcaagatgtatt
-aaaaatacttaaatataaaactgaaaacaagaaaaaccttgaaagtcaac
-ataggcaatgtcattcggggcataggcatggtcaaataattcatgacaaa
-aatgacaaaatcaattgcaaccaaagcaaaaattgacaaatgggaactaa
-ttaaactaaagagcttctgcacagcaaaataaaccatcagcagaataaag
-agacaacctaaagaatgggagaaaatgtttgcaaactatgcatctgataa
-aggtctgctattcagcatctataaggaacttaaataaatttacaagaaaa
-aaaacaaactcattaaaaagttggcaaaggacatgaacaggcaattatca
-agagaagacgtacgtgtggccaaaaactgtatgaaggaaagctcaacatc
-actgatcattagattaatgcaaatcaaaatcacaatgagataccgtgtca
-caccagtcagaatgtctattattaaaaagtcaaaaataatggatactggc
-gaagttgtgaaaaaaaggaatgcttatacaattttggtaggagtgtacat
-tcattcaaccattgtggatgacagtttggttattcctcaaagacctaaag
-acagaaatactacttgacccagcaatcccattactgggtatatacacaaa
-gagatatacatcattctattataaagacacatgcatgcatatatattatt
-gcagccactattcacaatactaaagatatgaaatcaatctaaatgaccat
-cagtgatagactggataaagaaaatgtggtacatatgtagcatggaatac
-tatgcagccataaaaaacccaaaattacgtcctttgcaagtacatggatg
-gagctggaggacattatcctcagtatactaatgctggagcagaaaaccaa
-gcaccacatgttctcacttataagtgacagctaaatgatgagaacacatg
-gacacatagaggggaacaatacacactggggtctatcagaaggtgaagat
-tgggaggagggagatgatcaggaaaactaactaatggatactaggcttaa
-tacctgaatgatgaaataatctgtacaccaaaccccccatgacccaagtt
-tacctatgtaataagcctgcacatgtattcctcaacttaaaaattaaaaa
-taaaTATATAgaaaaaaagaagtcacaaaagacaatataatgcatgtctc
-cttttatatgaaatgtctagaatagaataatttatggatacagaaagtat
-acttatggttgcctaggtctcaagaaagaagtgaatggggagtgattgct
-aatggatatgggttttatttttgtaatgactaaaatgttctaaataagat
-tgtgatgatggttgtacaagtctgtaaatacactgataaccattgaatta
-tacactttaaataggccaataacatagtatgtgaattatatctcaataaa
-gcagttaaaaTACATAAAAAGAATAATAGATTTTCATGTTCCTTTACACT
-AGCTATTGGCTTGCCGACTGGTGTTTTCAAATCCTGTTGATTCAAGTGCA
-AATGTATATGCATCACTCTGGGTTTTCTCTAGAAAATATTTGCTATGACC
-TTAAAACTTTGTGTATCTTCTGACCCTGAAGATGTTGTCTAATGGAAATT
-ATTGTAAGGCAATAGTCGTTTATGAGAACAAAGTTTTTACTCTCATAATG
-CTTATCACAGTGATACCCTGCAAAATTATTAAAACATAAAACATATCATT
-TCTGTTGCAAGAAGAAATGATAGAACAGCTCTAAAATGTAAATATATGTC
-TCCATGAGACGATAGCAGTAGCTTAGAAATCAATGTGGAgacaggattaa
-tcacctgccaagtaaagatcccctgggccatgagtaatcagcaacaatat
-ccaggcagtacagtactttccatgggccttgggttagacacagagactta
-atagcttcagatttgacccagcacattcccagctctggtggctatgcggg
-aaagactctttctgcttgaggaaatatgagaaaagagtaaaggggacttt
-gtcttgcagcttggataccagcttggccacagtgaggtagagcaccaaga
-gggcaattgggtttttcaataccaggcactggtttgtggaaggcatttat
-gaaacttcccttgtacagagggtaactcgcttcctggaagggagggttcc
-agtccaggcagtactcaccatggtcctggggtggtggtggccagagagag
-aaactccaattcttgtgaaaaggggaagaaagggtaggaatggctttctc
-ttgtggcttgggtgccacctcagccacagtaaaccagggtaccaggtaga
-ttcctaagattgctgattccaggctctggctcctggatgacaattctgga
-cttgcctgaaaatgggaacttgccaacttgtagggatggacagaagcctg
-gctggctttgctacctgctgattatacagctctagaagtttgagcagacg
-taggtgttaggtagatcattgttaccatgggccttaggggagaaacagcc
-ccttgctggcttcaggtttgagcaagcacagttcaagtgatggtggccac
-aagggttctaatgtccctcttccccaagctccaggcagctctgcaagaca
-gaggctccatttatttggaagaaagtaagaaaagggaacaagagcctttg
-ccttgtaatacagagaattcctttggattgtacccaagaccaccaaggcg
-gtacatctactactcttcaagagtcatggcattactgtgcttggggtacc
-tcctaatgcagatatggctgcagtggccagaaacttagattacaaaaccc
-aagtcccttcaaatacctcgaaagactttccaagaagaatgggtacaaac
-aatcccagactataaagactacaataaatactcaactcttcaatgtccag
-acatcaaggaatatccacaaacataaacaacaagactaacctggaaacat
-ggccttaccaaacagcctaaataaggcaccagggagcaatcctagagaga
-gagacatgtgacatctttgaaagagaatgaaaaataattgttttgaggaa
-agtgaacgaaattcaagatatcacagaggaaaaattccgaatactatccg
-ataaatttaacaaaaagaatgaaataagtgaaaagaatcaagcagaaaat
-ctggagctgaaaaataccattgcaatacggaagaatgcatcactctctct
-ctttttttttcttttttttaattatactttaagttttagggtacacgtgc
-acaatatgcagatttgttacatatgtatacatgtgccatgttggtgtgct
-gcaacaccatggaatactatgcagccataaaaaaggatgagttcatgtcc
-tttttagggacatagatgaagctggaaaccatcattctcagcaaactatc
-gcaaggacaaaaaaccaaacaccgcatgttctcactcataggtgggaatc
-gaacaatgagaacacatggacacaggaaggggagcatcactctctcttac
-cagcaaaactgatcaatcagaggaaagaaatgctgagcctggagacaggt
-tatttgaaaatacacagtcagaggagacaaaagaaaagagaataaaaaag
-aatgaagcacacctacaggatctagagaataaccttaaaagggcaaatcc
-gtggtattgatcttaaacaggaggtagagaaatagatggggatagaaagt
-tcattcaaaatgatgataacagaagatttcccaaaaccacagaaaaatat
-caatatttaaatagaagtacaagcagatttaacccaaagaagactacctc
-aaggcaattaatactcaaacacccaaagatcaaagggtcttaatagaaac
-aagagaaaaaaataacatataatggagcttcaatatgtctggcagcagat
-tttttagcagaaattttataggccatgagagaatgacatgacataacata
-tttaaaatgctaaaggaaaaaaTCATGCATCATTTTTTTTAAGTTTTCAC
-CCTAGTCTCCTTTTATATTTTATAttattttattttattatactttaagt
-tttagggtacatgtgcacaatgtgcaggttagttacatatgtacacatgt
-gccatgctggtgtgctgcacccattaactcatcatttagcattaagtata
-tctcctaaagctatccctcccccatccccccaccccacaacagtccccag
-agtgtgatgttccctttcctgtgtccatgtgttctcattgttcaattccc
-acctatgagtgagaacatgcggtgtttggttttttgttcttgcgatagtt
-tactgagaatgatgatttccaatttcatccatgtccctacaaaggacatg
-aactcaccattttttatggctgcatagtattccacggtgtatatgtgcca
-cattttcttaatccagtctatcattgttggacatttgggttggttccaag
-tctttgctatcgtgaatagtgccgcaataaacatacgtgtgcatgtgtct
-ttatagcagcatgatttatagtcctttgggtatgtacccagtaatgggat
-ggctgggtcaaatggtatttctagttctagatccctgaggaatcgccaca
-ctgacttccagaatggttgaactagtttacagtcccaccaacagtgtaaa
-agtgttcttatttctccacatcctctccagcacctgttttttcctgactt
-tttaatgattgccattctaactggtgtgagatggtatctcattgtggttt
-tgatttgcatttctctgatggccagtgatggtgagcattttttcatgtgt
-tttttggctgcataaatgacttcattgagaagtgtctgttcatgtccttt
-gcccactttttgatggggttgtttgtttttttcttgtaaatttgtttaag
-ttccttgtagattctggatattagccctttgtcagatgagtaggttgcga
-aaattttctcccattttgtaggttgcctgttcactctgatggtagtttct
-tttgctgtgcagaagctctttagtttaattagataccatttgtcaatttt
-ggctttggttgccattgcttttggtgttttagacatgaagtccttgccca
-tgcctatgtcctgaatggtaatgtctaggttttcttctagggtttttatg
-gttttaggtctaacatttaagtctttaatccatcttgaattaatttttgt
-ataaggcgtaaggaagggatccagtttcagctttctatatctggctagcc
-agttttcccagcaccatttattaaatagggaatcctttccctgttgcttg
-ttttagtcagttttgtcagagatcagatagttgtagatctgtggcattat
-ttctgagggctctgttctgttccattgatctatttctctgttttggtacc
-agtaccatgacgttttgtttactgtagccttgtagtatagtttgaagtca
-ggtagcatgatgcctccagctttgttcttttggcttaggactgacttggc
-aatgcaggctcttttttggttccatatgaactttaaagtagttttttcca
-attctgtgaagaaagtcattggtagcttgatggggatggcattgaatcta
-caaattaccttgggcagtatggccattttcatgatattgattcttcctac
-ccatgggcatggaatgttcttccatttgtttgtatcctcttttatttcct
-tgagcagtggtttgtagttctccttgaagaggtccttcacatcccttata
-agttggattcctaggtattttattctctttgaagcaattgtgaatgggag
-ttcactcatgatttggctctctgtttgtctgttattggtgtataagaatg
-cttgtgatttttgcacattgattttgtatcctgagaatttgctgaagttg
-cttatcagcttaaggagattttgggctgagacaatggggttttctagata
-tacaatcatgtcatctgcaaacagggacaatttgacttcctcttttccta
-attgaataccctttatttccttctcctgcctaattgccctggccagaact
-tccaacactatgttgaataggagtggtgagagagggcatccgtgtcttgt
-tccagttttcaaagggaatgcttccagtttttggctattcagtatgatat
-tggctgtgagtttgtcatagttagctcttattattttgagatacggccca
-tcagtacctaatttattgagagtttttagcatgaagggttgttgaattgt
-gtcaaaggccttttctgcatctattgagataatcatgtggtttttgtctt
-tggttctgtttatatgctggattacatttattgatttgcgtatattgaac
-cagccttgcatcccagggatgaagcccacttgatcatggtggataagctt
-tttgttgtgctgctggattcggtttgccagtattttattgaggatttttg
-catcaatgttcatcaaggatattggtctaaaattctcttttttgcttgtg
-tctctgcccagctttggtatcaggatgatgctggcctcataaaatgagtt
-agggaggattccctctttttctgttgattggaatagtttcagaaagaatg
-gtaccagttcctccttgtaccccttgtagaattcggctgtgaatccatct
-tgtcctgggctctttttggttggtaagctattgattattgccacaatttc
-agagcctgtttttggtctatttacaattaaaagaactagaaaagcaagag
-caaacacattcaaacgctagcagaaggcaagaaataactaaaatcagagc
-agaactgaaggaaatggagacccaaaaacccttcaaaaaattaatgaatc
-caggagctgtttttttgaaaggatcaacaaaattgatcgactgctagcaa
-gactaataaagaagaaaagagagaagaatcaaatagacacaataaaaaat
-gataaaggggatatcaccactgatcccacagaaatacgaactaccatcag
-agaatactacaaacacctctacgcaaataaactagatttcaccaacagca
-gaactgtcctacagttctacagctaaaaggagtttttcagtctgaaacaa
-aaggatgttaatgagcaagaacaaatcatctgaaggtacagaactcactg
-ataatagcaagtaaacacaaaaacaagaatattataacactattattggt
-gtgtaaattactgacatcttgagtagaaagactgaaactaaagcagtaaa
-aaataataaccacaacctttcaagacttaagcagttcagtaagatgtaaa
-tagcaacaacaaaaacttaagaagtccaagaatgaaattaaaaagtgtag
-agttgttggggtgggtgggagggatagcattaggagatatacctaatatt
-aaatgacgagttaatgggtgcagcacaccatcatggcacatgtatacata
-tgtaactaacctgcatgttgtgcacatgtgtcctcaaacttaaagtataa
-taaaaaaagtgtagttgatattggttgcctttttgcttgttagtttcttt
-atgcactcagttttaagttataattactttaaaataccgagttataagat
-agtatttgcaagcctcattctaacagcaatgcacacacagaaaaaagcaa
-gaaattgaaatacaccaccagggaaaattatcctctaaaggaagacaaga
-aggaaggaagaaaaagagaggatcacaaaacaaccagaaaaaaatcaaaa
-tttcaggagtgagacctcacttatcaataatagcattcaatgtaaatgga
-ctgagcacttcagtcaaaagacaaagagtagatgcatggattaaaaaaaa
-aagagacctaagaatctgttgcctacaagaaacaaacttcacctataaaa
-cacacatagagtgaatataaaggatgaaaaaagatattccatgccattgg
-aaaccaaaaaagagcaggagtagctatacatatatcagacaaaatagatt
-tcaagacaaaaactttaaaaagagacaaagaatgtcattatgtaatggta
-aaggggtcaatccagcaaaaggatatgtaaatatatatgcactcaacact
-ggagaatcaagatgtataaagcaaacattattagagctaaatacagagat
-aggctacaatataataagaacaggagactttaacttcctctttcatcatt
-ggacaaatcatttggacagaaaatccgcaaggaaacatcaggcttaatct
-gtgctatagatcaaatggaccagatagatatttatagaacattttatcaa
-atggctgcagatgcacattcttctcagcacatagattattttcaaggata
-aatcatattttaggctaaaaaacacgtcttaaaaattaaaattaaaatta
-aattttatatcaagtatcatctcagacttcagagatgacgcaaaactaga
-aatcaataacaagagaaatttggaaactatgcaaatacatggaaatttta
-aaaatgtgtttctgaatgaccagtggatcaataaagaaattaaaaaggaa
-ataaaaaatttttgaaacaaatgataatggaaatacaacataacaaaacc
-tatgggataccacgtatgcagtattaagagggaagtttgtatctgtaagt
-gcctacatcagaaaattaaaaaaacttcgaataaacaaccaaatgatcca
-tcttcaagagctagaaaagcaagagcaaagcaaattcaaaattggtagaa
-gaaaggaaataataaagatcagaacataaataaataaaatggaaacaaat
-aaaacaatacaaaagatcaacaaaatgaaaagtttgtcttttgaaaacat
-aaaaaaattctcaaacctttaccttaaaaaaaaagagaaaaaacccaaat
-gaataatatgagaaatgaaaaaggggacattacaactgataatacagaaa
-ttcaaaggatcattagaggctactatgagcaactgtatgccaataaattg
-gaaaacctagaagtggataattttttagataatgcaacctaccaagattg
-aacctagaagaaatccaaaacatgatcagagcaataacaagtaatgagat
-caaagccataatcaacgtctctcagcaaagaaaagtcttggacctgatag
-cttcactgctgaaatttgacatttaaagaagaactaataccaatcctatt
-caaactgttctgaaaaataggggaatgaatacttccaaactcttggtaca
-aggacggtattaccctgataccaaaaccagaaaaagacacatcaaaaata
-gaaaaccacaggccagtattcttgatgaacattgacacaaagattctcaa
-ttaaatactagcaaaccaaatataatgacgtattaaaaagattattcatc
-ataaccatgttggatttatcctagggatgtaaggatggcttaccacatgc
-aaatcaatcactgtgatacatcatgtcaacagaatgaaatttcaattgat
-gctgaaaaaaattggacaaaatggaacatccctttatgataaaaaaaaaa
-aaccctgaaaaacttggtacagagggaacatacctgaacacaataaaaga
-catatgtcacagacacacagctagtatcatactgagtagggaaaacctgc
-cagctatatttttctgagatctaggacatgacattgatgcttactttcat
-cattgctgttcaacatggtactggaagtcctagctagagcaggcaagaaa
-aagaagtaaagggcatttatattggaaaggaagaagtcaaagtatgtttg
-tttgcagatgatataaccttatatttggaaaagtgtaaagattccaccaa
-atctattagaactagtaaacaaaattgcaggatacaaaatcaacttacaa
-aaatcagtagcatttctatatgccagcagtgaacaatctgaaaaagaaat
-tgaaaaagcaatcttatttaaaatagccacaaataaaataaaatacctag
-aaattaacttaaccaaagaagtgataaatcatggaagaaagattttacct
-tacctagagctgaaatggatttaggaagcttagcaaaatataaaagtaga
-agaatcaatggaaagagccctgtaggcgctcctggtttccagcttgagct
-tgtggaaatcatccttgtgtttatctcataggtttccttgggcgtacaaa
-gccattggaattaaggaagggccacagggtgaaagaagcttctagctgaa
-ctttgtactaattttgaccaaatgtgaattttcttgagcagaatcaatgg
-gcaaaggggaagtgcAAACTTTTTCtttctttcagggataccaataggtc
-atagttttggtctctttaggtaatcccatatttcatggaggcttgtttgt
-acttctttattgttttttctttattttgtttgactgagttatttcagaga
-gccagcctttgagcccggagattctttcctcatcttggtcagttctgctg
-ttaatactgtgattgcattgtgaaattcttgaagttagtttttaagtttt
-atcatatcactttgattctttctaaaagtggccatattgcctttcatctc
-ttttaccgtttcattgtatgccttagaaaccttggattaggttttgactt
-tatcctgaatttcaaggatctccattcctatccttattctgaattctact
-tctgccatttcagcctggttaagaaccattcctgggggaaaagtgcagtc
-ttttgaagggaagaagacactagctttcttagttgccaggcttcttgatc
-tgctttttttctcatttttgtgggctgatgtttcttcaataattgatgtt
-cctgtttctttggaaagcattgggtagatttttttgtcttctttgatgtc
-tttaggggtttggttgtggtagactcagtcaacagactttgtttctggaa
-gattttaggaggccaaggctcacctcaggactcctgggcctcatgtacta
-actctggggggctgatattaggtccccacctttgttctttggcttcttga
-tattaggaacctgctgtgctagaggggttgatgtattccaaggctggtgg
-ttacaacactccaatgggtggtgccaatcaaacacttcactgggtggtgg
-cagtagaatctatgctaattcccacctgccagcagtggtggaatcacagc
-atggtgcacactcattggctggataaggagtctggaaggcacagggttgc
-cagcttccatgtgggcatttatagtagcagtggtggtggcacagtatgtg
-ggaggggtggggctgttgatttccattcatgcattcatgttggtggcagt
-gttggtgtggaagcatgacaccggcagatatgaaactagtgccctccatg
-catgcattcacacaagcagcagtggcaacacagggtggaggccagggctt
-ctggtctctatgcacacatgcaagcaatggtggtgcagcaggagtgggca
-gggtgtgctcacatacagagtagtggcatagtggggtgcatacataaatg
-catgctggcagggaagggagttgaggtcaaccagcatgcacatgcactga
-caaagcaatgtcaggggtagctgtgggcaaatttgtgctgccaaaggggc
-acagaggaggctgtagttgggggagtgtgtgggtgggcttgtgtgcacca
-gtagaagctgctctgctggagctctgcaaatgtgaggcatggtctgtcag
-tgcaggaactgtgatgtgtgtctccaggaggcattccagctgggcaccca
-aggctgcactgcaagcatgtgcactaggggagtaaaggtgagccttgggg
-gatggacatccctggctgtactccactgacgacactcacacaccaaatcc
-cttgggttccacactggctggtcttctgcctctaccacttctctaagcag
-ctctgcctgccactacaagtgtccatgcaggttagggggtctcctgctgc
-cagaattccagagatccatggtgtgggcaggttgctcctcacctgctcaa
-cttaccttttccctgggagtggctggtggccaggaacaagtcccagtgca
-tggaagtcccttgcagggttcccaccttcctttctctatagcccagcatc
-tgagtcttccctccatcaattctcattgtctttcctccaaatatatgctt
-ggagtgtgccaggcttcccaatgtcctagtctcttggtggcagatatttc
-acttggctgcactgagtgagccaccttgccTATAATTTTTagaaggcttt
-taactagatattatctcatttatccatttttgctttggttgtctgtgctt
-gtgaggtactactcgaatctttgcctagtccagtgtcttggagaatttct
-gtgatattttcttgtagtagttttatagtttgaagtgttagatAATAATC
-AGACTCAACAAATGGCAGAATTCACAATTAATGAAACACACAATAGTAGA
-TCAATGTAAAAATAACTTTAAAGATAAATCTGGTTTAAATATTGAAAGAG
-ACGAAAAAGGGACTGTAATTTGTAAGACAAGAACAGGAATCTTCTTTAAC
-AATAAGGTATATTTTAAAAAAGAAACAACTGGAAATTTTATAAATGAAAC
-AGGTATGCACTGAAATAAAACCATTAATAGATTGCTCATATATTTCGACA
-GAGTCAAGGCTGAGTATTGAGTTAGAACACAGATTAgacaggggtcacat
-ctaattcatccctgtaccccagtgtctaatacaATAAGGCCAACATATAA
-CAAGTGTTTCAAAATTGCTTATTAAATTGAACTGGGTAAGTGGTCTTCAG
-ATAGGCCAGACATCTCTGGGCTTCTCCAGTGTATAGGGGTTTCAGGGGGG
-CAGGACAGCCTCAAGTGGAACTACCTGAGGGCTGGGCAGAGCTGGGTGTG
-GTTCCTCGTGGGTGGAGTAGGCAATAAAGGCTATCTAGAAAAGAGGTACT
-GGCTTTACCATTCACCTCAGGGACTAACTAGTTTGTTCCCTCTCAGAGCT
-GGAGAGTGAATTATCTTCATTCAGCACATGTCTGGCTACTATTCATCCTC
-CCCGTGTCAAAGAtacttaaagtagtgaaaacagatcttattcagtaact
-actaacaatgctgaaaaaagctgagctccattccaatttgtgcaaaggtg
-gtttgggcattttaaagggagaatgatgttgggggctgagtagagtcaga
-gaagtgaaaactacaaaatattggtcagtgtaaatgcactgtgtttaggc
-catctgtgtttgttagccggcagttatcaaagttaggatttgtccttcca
-cagagactggaagacagggttcctatctttcttgattacatttcaaagaa
-atggctctcaggtccttgggagagacatttctaaattgtaagagatacat
-attcactgtaataagcccttttaaataagtgctctaaaaaagggaggtca
-gggtcttatcatcagattttggcaagaacaaacagtatattttcctggca
-gcattgaactttctcaggcagtcattttagtggggtttggggtcaattat
-agggacccagccttaggctgtgagaaaccatgctagagtttagttagttc
-ccttactactacaggggtttggacagaagtgttagttccaggagttctgc
-agttctcCCCTGTTAGAAACTCTAAGGATGTCCATGGCTATATTTATGTG
-ACAAAACATTATATAAATGGTTGATGTTAACAACCTGCCAAAGATTATTT
-TTCTTACTCCCTCCCTCCTAGGCCTTTTGCAACCCCCACCCCCATTACAG
-AGAAAGGGGAACAATCCTGTGTGCAACCAGCTCTCCATACCTGGCCCCCA
-CAGCTGGATCTCAGGGTGATCTCCTTTACCACCTGGAATGATAAATACCT
-TCTTCCAGGACAGCAGCCCTCTTTATCTTGCAGAAGGAGGCAATCCAGGC
-TGGGTCCTTCGCCAGGGTACCATTTTCCTGCAGCCTCTACAGGAAAATAA
-GCTCGTCTGAGCTGTGGCCTGAGCAGGTCAAGTCTTCAGTAGAGAGGTCA
-ACTTTAGAAACAATGGCTATTCTTGTGTCTTCCCTTTCTCTATCCTCCTT
-CCCTTCTATATTACCAAAGAAGTGAACACTTAGAGGACAGAAACTTTATC
-CTGTCTAGCCCATGCCAAAGAAGATGTTCTCAAGAGAAGAACAGTTTGAA
-AGAGGCTGCTTGGACCTTAGGCCTCAGCTCCCAACTCCCTCCCTAACTCT
-TTCCCCTTAGAAAGGAAATCATCCTCACTGACTGAAGCCCTGAGTGGCAA
-GTCAGCAGGTGGTTTCCTGTAGGACACTGAGGTCTGCTTAAATAGACCAC
-CCATATGCTTCCATAAAAATATCTTGTGTATTGGAGTCTACAAATAATAT
-ATTCTTGATGCACCTAAACCTCACTAATTCATAACCACCTGGGGTTAACA
-TTTGCCTGAAGTATTTTCTAAAGAAAACAAAGACTAGTGATTCTAACAAC
-CCAGATGTTGTTTGACTTCAGCTACCCAGGTGTTGACAAGTAGTAGTTTT
-AAAAGCAGTTGTATGGCATGGAAATATCACTAGACTAAGATACAACTGGT
-TTGGGTCACAGTTCTGAAATCATCAAATGGTAGATATGTGACTGGGATTT
-TCTATCAATTTATTGAAAACAGCATTAAGTggcctagaaagatgtgagta
-actttcccaagttcacacagctagtaagtgacagaaaaagtaccgtccag
-atctagagttcttaaccattccaaatatattgccccatccTTATCAGGTG
-CTTGTTTATTCCTATGGTTTCTAGAGAGCAAAAGTATTAATATTTCAGGG
-TACACTTTTTTGCAACTTTTTTTGGCAACTATCTTCAAATCCTGCCTGCA
-GAGAATTCCTAAAGATATTGTTGAGCACTCATTGAGATGGAAGACAAACC
-CTGTTCAACGAGAAATCTTACTGTCTGGAGATCCCCTCTAAGAAAGAAGA
-AGGAGACTGCAGGGGTCTTGTCTGAACATGAAAGACACTTATGAGTTGGt
-ctagattgtcagtattggaggatttaggggcagcaatccttggggcaggg
-ggaatttccttgaaatccacatatgccagtctagctcagcttttgcttgg
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/8d7397d2c59b/
changeset: 8d7397d2c59b
user: inithello
date: 2012-10-01 16:06:15
summary: Removed unused test files.
affected #: 11 files
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: inithello: Remove the bwa wrappers from the repository.
by Bitbucket 01 Oct '12
by Bitbucket 01 Oct '12
01 Oct '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/d3ce9d2dcbca/
changeset: d3ce9d2dcbca
user: inithello
date: 2012-10-01 15:24:33
summary: Remove the bwa wrappers from the repository.
affected #: 3 files
diff -r e86e9e97daf8f4b682cfe1fe5c12c8a408fd9cc3 -r d3ce9d2dcbca9b79292773968754697c50d761a9 tools/sr_mapping/bwa_color_wrapper.xml
--- a/tools/sr_mapping/bwa_color_wrapper.xml
+++ /dev/null
@@ -1,482 +0,0 @@
-<tool id="bwa_color_wrapper" name="Map with BWA for SOLiD" version="1.0.2">
- <description></description>
- <parallelism method="basic"></parallelism>
- <command interpreter="python">
- bwa_wrapper.py
- --threads="4"
- --color-space
-
- ## reference source
- --fileSource=$genomeSource.refGenomeSource
- #if $genomeSource.refGenomeSource == "history":
- ##build index on the fly
- --ref="${genomeSource.ownFile}"
- --dbkey=$dbkey
- #else:
- ##use precomputed indexes
- --ref="${genomeSource.indices.fields.path}"
- --do_not_build_index
- #end if
-
- ## input file(s)
- --input1=$paired.input1
- #if $paired.sPaired == "paired":
- --input2=$paired.input2
- #end if
-
- ## output file
- --output=$output
-
- ## run parameters
- --genAlignType=$paired.sPaired
- --params=$params.source_select
- #if $params.source_select != "pre_set":
- --maxEditDist=$params.maxEditDist
- --fracMissingAligns=$params.fracMissingAligns
- --maxGapOpens=$params.maxGapOpens
- --maxGapExtens=$params.maxGapExtens
- --disallowLongDel=$params.disallowLongDel
- --disallowIndel=$params.disallowIndel
- --seed=$params.seed
- --maxEditDistSeed=$params.maxEditDistSeed
- --mismatchPenalty=$params.mismatchPenalty
- --gapOpenPenalty=$params.gapOpenPenalty
- --gapExtensPenalty=$params.gapExtensPenalty
- --suboptAlign="${params.suboptAlign}"
- --noIterSearch=$params.noIterSearch
- --outputTopN=$params.outputTopN
- --outputTopNDisc=$params.outputTopNDisc
- --maxInsertSize=$params.maxInsertSize
- --maxOccurPairing=$params.maxOccurPairing
- #if $params.readGroup.specReadGroup == "yes"
- --rgid="$params.readGroup.rgid"
- --rgcn="$params.readGroup.rgcn"
- --rgds="$params.readGroup.rgds"
- --rgdt="$params.readGroup.rgdt"
- --rgfo="$params.readGroup.rgfo"
- --rgks="$params.readGroup.rgks"
- --rglb="$params.readGroup.rglb"
- --rgpg="$params.readGroup.rgpg"
- --rgpi="$params.readGroup.rgpi"
- --rgpl="$params.readGroup.rgpl"
- --rgpu="$params.readGroup.rgpu"
- --rgsm="$params.readGroup.rgsm"
- #end if
- #end if
-
- ## suppress output SAM header
- --suppressHeader=$suppressHeader
- </command>
- <requirements>
- <requirement type="package">bwa</requirement>
- </requirements>
- <inputs>
- <conditional name="genomeSource">
- <param name="refGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?">
- <option value="indexed">Use a built-in index</option>
- <option value="history">Use one from the history</option>
- </param>
- <when value="indexed">
- <param name="indices" type="select" label="Select a reference genome">
- <options from_data_table="bwa_indexes_color">
- <filter type="sort_by" column="2" />
- <validator type="no_options" message="No indexes are available for the selected input dataset" />
- </options>
- </param>
- </when>
- <when value="history">
- <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference from history" />
- </when>
- </conditional>
- <conditional name="paired">
- <param name="sPaired" type="select" label="Is this library mate-paired?">
- <option value="single">Single-end</option>
- <option value="paired">Paired-end</option>
- </param>
- <when value="single">
- <param name="input1" type="data" format="fastqcssanger" label="FASTQ file (Nucleotide-space recoded from color-space)">
- <help>Convert color-space data to nucleotide-space (see help section below for steps). Must have Sanger-scaled quality values with ASCII offset 33</help>
- </param>
- </when>
- <when value="paired">
- <param name="input1" type="data" format="fastqcssanger" label="Forward FASTQ file (Nucleotide-space recoded from color-space)" help="Must have Sanger-scaled quality values with ASCII offset 33">
- <help>Convert color-space data to nucleotide-space (see help section below for steps). Must have Sanger-scaled quality values with ASCII offset 33</help>
- </param>
- <param name="input2" type="data" format="fastqcssanger" label="Reverse FASTQ file (Nucleotide-space recoded from color-space)" help="Must have Sanger-scaled quality values with ASCII offset 33">
- <help>Convert color-space data to nucleotide-space (see help section below for steps). Must have Sanger-scaled quality values with ASCII offset 33</help>
- </param>
- </when>
- </conditional>
- <conditional name="params">
- <param name="source_select" type="select" label="BWA settings to use" help="For most mapping needs use Commonly Used settings. If you want full control use Full Parameter List">
- <option value="pre_set">Commonly Used</option>
- <option value="full">Full Parameter List</option>
- </param>
- <when value="pre_set" />
- <when value="full">
- <param name="maxEditDist" type="integer" value="0" label="Maximum edit distance (aln -n)" help="Enter this value OR a fraction of missing alignments, not both" />
- <param name="fracMissingAligns" type="float" value="0.04" label="Fraction of missing alignments given 2% uniform base error rate (aln -n)" help="Enter this value OR maximum edit distance, not both" />
- <param name="maxGapOpens" type="integer" value="1" label="Maximum number of gap opens (aln -o)" />
- <param name="maxGapExtens" type="integer" value="-1" label="Maximum number of gap extensions (aln -e)" help="-1 for k-difference mode (disallowing long gaps)" />
- <param name="disallowLongDel" type="integer" value="16" label="Disallow long deletion within [value] bp towards the 3'-end (aln -d)" />
- <param name="disallowIndel" type="integer" value="5" label="Disallow insertion/deletion within [value] bp towards the end (aln -i)" />
- <param name="seed" type="integer" value="-1" label="Number of first subsequences to take as seed (aln -l)" help="Enter -1 for infinity" />
- <param name="maxEditDistSeed" type="integer" value="2" label="Maximum edit distance in the seed (aln -k)" />
- <param name="mismatchPenalty" type="integer" value="3" label="Mismatch penalty (aln -M)" help="BWA will not search for suboptimal hits with a score lower than [value]" />
- <param name="gapOpenPenalty" type="integer" value="11" label="Gap open penalty (aln -O)" />
- <param name="gapExtensPenalty" type="integer" value="4" label="Gap extension penalty (aln -E)" />
- <param name="suboptAlign" type="integer" optional="True" label="Proceed with suboptimal alignments if there are no more than INT equally best hits. (aln -R)" help="For paired-end reads only. By default, BWA only searches for suboptimal alignments if the top hit is unique. Using this option has no effect on accuracy for single-end reads. It is mainly designed for improving the alignment accuracy of paired-end reads. However, the pairing procedure will be slowed down, especially for very short reads (~32bp)" />
- <param name="noIterSearch" type="boolean" truevalue="true" falsevalue="false" checked="no" label="Disable iterative search (aln -N)" help="All hits with no more than maxDiff differences will be found. This mode is much slower than the default" />
- <param name="outputTopN" type="integer" value="3" label="Maximum number of alignments to output in the XA tag for reads paired properly (samse/sampe -n)" help="If a read has more than INT hits, the XA tag will not be written" />
- <param name="outputTopNDisc" type="integer" value="10" label="Maximum number of alignments to output in the XA tag for disconcordant read pairs (excluding singletons) (sampe -N)" help="For paired-end reads only. If a read has more than INT hits, the XA tag will not be written" />
- <param name="maxInsertSize" type="integer" value="500" label="Maximum insert size for a read pair to be considered as being mapped properly (sampe -a)" help="For paired-end reads only. Only used when there are not enough good alignments to infer the distribution of insert sizes" />
- <param name="maxOccurPairing" type="integer" value="100000" label="Maximum occurrences of a read for pairing (sampe -o)" help="For paired-end reads only. A read with more occurrences will be treated as a single-end read. Reducing this parameter helps faster pairing" />
- <conditional name="readGroup">
- <param name="specReadGroup" type="select" label="Specify the read group for this file? (samse/sampe -r)">
- <option value="yes">Yes</option>
- <option value="no" selected="True">No</option>
- </param>
- <when value="yes">
- <param name="rgid" type="text" size="25" label="Read group identifier (ID). Each @RG line must have a unique ID. The value of ID is used in the RG
-tags of alignment records. Must be unique among all read groups in header section." help="Required if RG specified. Read group
-IDs may be modified when merging SAM files in order to handle collisions." />
- <param name="rgcn" type="text" size="25" label="Sequencing center that produced the read (CN)" help="Optional" />
- <param name="rgds" type="text" size="25" label="Description (DS)" help="Optional" />
- <param name="rgdt" type="text" size="25" label="Date that run was produced (DT)" help="Optional. ISO8601 format date or date/time, like YYYY-MM-DD" />
- <param name="rgfo" type="text" size="25" label="Flow order (FO). The array of nucleotide bases that correspond to the nucleotides used for each
-flow of each read." help="Optional. Multi-base flows are encoded in IUPAC format, and non-nucleotide flows by
-various other characters. Format : /\*|[ACMGRSVTWYHKDBN]+/" />
- <param name="rgks" type="text" size="25" label="The array of nucleotide bases that correspond to the key sequence of each read (KS)" help="Optional" />
- <param name="rglb" type="text" size="25" label="Library name (LB)" help="Required if RG specified" />
- <param name="rgpg" type="text" size="25" label="Programs used for processing the read group (PG)" help="Optional" />
- <param name="rgpi" type="text" size="25" label="Predicted median insert size (PI)" help="Optional" />
- <param name="rgpl" type="text" size="25" label="Platform/technology used to produce the reads (PL)" help="Required if RG specified. Valid values : CAPILLARY, LS454, ILLUMINA,
-SOLID, HELICOS, IONTORRENT and PACBIO" />
- <param name="rgpu" type="text" size="25" label="Platform unit (PU)" help="Optional. Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" />
- <param name="rgsm" type="text" size="25" label="Sample (SM)" help="Required if RG specified. Use pool name where a pool is being sequenced" />
- </when>
- <when value="no" />
- </conditional>
- </when>
- </conditional>
- <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file" help="BWA produces SAM with several lines of header information" />
- </inputs>
- <outputs>
- <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads">
- <actions>
- <conditional name="genomeSource.refGenomeSource">
- <when value="indexed">
- <action type="metadata" name="dbkey">
- <option type="from_data_table" name="bwa_indexes_color" column="1">
- <filter type="param_value" column="0" value="#" compare="startswith" keep="False"/>
- <filter type="param_value" ref="genomeSource.indices" column="0" />
- </option>
- </action>
- </when>
- <when value="history">
- <action type="metadata" name="dbkey">
- <option type="from_param" name="genomeSource.ownFile" param_attribute="dbkey" />
- </action>
- </when>
- </conditional>
- </actions>
- </data>
- </outputs>
- <tests>
- <test>
- <!--
- BWA commands:
- cp test-data/hg19chrX_midpart.fasta hg19chrX_midpart.fasta
- bwa index -c -a is hg19chrX_midpart.fasta
- bwa aln -t 4 -c hg19chrX_midpart.fasta test-data/bwa_wrapper_in4.fastqcssanger > bwa_wrapper_out4.sai
- bwa samse hg19chrX_midpart.fasta bwa_wrapper_out4.sai test-data/bwa_wrapper_in4.fastqcssanger > bwa_wrapper_out4.u.sam
- hg19chrX_midpart.fasta is the prefix for the reference files (hg19chrX_midpart.fasta.amb, hg19chrX_midpart.fasta.ann, hg19chrX_midpart.fasta.bwt, ...)
- It's just part of hg19 chrX, from the middle of the chromosome
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out4.u.sam bwa_wrapper_out4.sam
- -->
- <param name="refGenomeSource" value="history" />
- <param name="ownFile" value="hg19chrX_midpart.fasta" />
- <param name="sPaired" value="single" />
- <param name="input1" value="bwa_wrapper_in4.fastqcssanger" ftype="fastqcssanger" />
- <param name="source_select" value="pre_set" />
- <param name="suppressHeader" value="false" />
- <output name="output" file="bwa_wrapper_out4.sam" ftype="sam" sort="True" lines_diff="2" />
- </test>
- <test>
- <!--
- BWA commands:
- bwa aln -t 4 -c equCab2chrM_cs.fa test-data/bwa_wrapper_in5.fastqcssanger > bwa_wrapper_out5a.sai
- bwa aln -t 4 -c equCab2chrM_cs.fa test-data/bwa_wrapper_in6.fastqcssanger > bwa_wrapper_out5b.sai
- bwa sampe equCab2chrM_cs.fa bwa_wrapper_out5a.sai bwa_wrapper_out5b.sai test-data/bwa_wrapper_in5.fastqcssanger test-data/bwa_wrapper_in6.fastqcssanger > bwa_wrapper_out5.u.sam
- equCab2chrM_cs.fa is the prefix of the index files (equCab2chrM_cs.fa.amb, equCab2chrM_cs.fa.ann, ...)
- remove the comment lines (beginning with '@') from the resulting sam file
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out5.u.sam bwa_wrapper_out5.sam
- -->
- <param name="refGenomeSource" value="indexed" />
- <param name="indices" value="equCab2chrM" />
- <param name="sPaired" value="paired" />
- <param name="input1" value="bwa_wrapper_in5.fastqcssanger" ftype="fastqcssanger" />
- <param name="input2" value="bwa_wrapper_in6.fastqcssanger" ftype="fastqcssanger" />
- <param name="source_select" value="pre_set" />
- <param name="suppressHeader" value="true" />
- <output name="output" file="bwa_wrapper_out5.sam" ftype="sam" sort="True" />
- </test>
- <test>
- <!--
- BWA commands:
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N -c hg19chrX_midpart.fasta test-data/bwa_wrapper_in4.fastqcssanger > bwa_wrapper_out6.sai
- bwa samse -n 3 -r "@RG\tID:474747\tDS:description\tDT:2011-03-14\tLB:lib-child-1-A\tPI:200\tPL:SOLID\tSM:child-1" hg19chrX_midpart.fasta bwa_wrapper_out6.sai test-data/bwa_wrapper_in4.fastqcssanger > bwa_wrapper_out6.u.sam
- hg19chrX_midpart_cs.fa is the prefix of the index files (hg19chrX_midpart.fa.amb, hg19chrX_midpart.fa.ann, ...)
- (It's just part of hg19 chrX, from the middle of the chromosome)
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out6.u.sam bwa_wrapper_out6.sam
- -->
- <param name="refGenomeSource" value="indexed" />
- <param name="indices" value="hg19chrX_midpart" />
- <param name="sPaired" value="single" />
- <param name="input1" value="bwa_wrapper_in4.fastqcssanger" ftype="fastqcssanger" />
- <param name="source_select" value="full" />
- <param name="maxEditDist" value="0" />
- <param name="fracMissingAligns" value="0.04" />
- <param name="maxGapOpens" value="1" />
- <param name="maxGapExtens" value="-1" />
- <param name="disallowLongDel" value="16" />
- <param name="disallowIndel" value="5" />
- <param name="seed" value="-1" />
- <param name="maxEditDistSeed" value="2" />
- <param name="mismatchPenalty" value="3" />
- <param name="gapOpenPenalty" value="11" />
- <param name="gapExtensPenalty" value="4" />
- <param name="suboptAlign" value="" />
- <param name="noIterSearch" value="true" />
- <param name="outputTopN" value="3" />
- <param name="outputTopNDisc" value="10" />
- <param name="maxInsertSize" value="500" />
- <param name="maxOccurPairing" value="100000" />
- <param name="specReadGroup" value="yes" />
- <param name="rgid" value="474747" />
- <param name="rgcn" value="" />
- <param name="rgds" value="description" />
- <param name="rgdt" value="2011-03-14" />
- <param name="rgfo" value="" />
- <param name="rgks" value="" />
- <param name="rglb" value="lib-child-1-A" />
- <param name="rgpg" value="" />
- <param name="rgpi" value="200" />
- <param name="rgpl" value="SOLID" />
- <param name="rgpu" value="" />
- <param name="rgsm" value="child-1" />
- <param name="suppressHeader" value="false" />
- <output name="output" file="bwa_wrapper_out6.sam" ftype="sam" sort="True" lines_diff="2" />
- </test>
- <test>
- <!--
- BWA commands:
- cp test-data/chr_m.fasta chr_m.fasta
- bwa index -c -a is chr_m.fasta
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N -c chr_m.fasta test-data/bwa_wrapper_in5.fastqcssanger > bwa_wrapper_out7a.sai
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N -c chr_m.fasta test-data/bwa_wrapper_in6.fastqcssanger > bwa_wrapper_out7b.sai
- bwa sampe -a 100 -o 2 -n 3 -N 10 chr_m.fasta bwa_wrapper_out7a.sai bwa_wrapper_out7b.sai test-data/bwa_wrapper_in5.fastqcssanger test-data/bwa_wrapper_in6.fastqcssanger > bwa_wrapper_out7.u.sam
- chr_m.fasta is the prefix of the index files (chr_m.fasta.amb, chr_m.fasta.ann, ...)
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out7.u.sam bwa_wrapper_out7.sam
- -->
- <param name="refGenomeSource" value="history" />
- <param name="ownFile" value="chr_m.fasta" />
- <param name="sPaired" value="paired" />
- <param name="input1" value="bwa_wrapper_in5.fastqcssanger" ftype="fastqcssanger" />
- <param name="input2" value="bwa_wrapper_in6.fastqcssanger" ftype="fastqcssanger" />
- <param name="source_select" value="full" />
- <param name="maxEditDist" value="0" />
- <param name="fracMissingAligns" value="0.04" />
- <param name="maxGapOpens" value="1" />
- <param name="maxGapExtens" value="-1" />
- <param name="disallowLongDel" value="16" />
- <param name="disallowIndel" value="5" />
- <param name="seed" value="-1" />
- <param name="maxEditDistSeed" value="2" />
- <param name="mismatchPenalty" value="3" />
- <param name="gapOpenPenalty" value="11" />
- <param name="gapExtensPenalty" value="4" />
- <param name="suboptAlign" value="" />
- <param name="noIterSearch" value="true" />
- <param name="outputTopN" value="3" />
- <param name="outputTopNDisc" value="10" />
- <param name="maxInsertSize" value="100" />
- <param name="maxOccurPairing" value="2" />
- <param name="specReadGroup" value="no" />
- <param name="suppressHeader" value="false" />
- <output name="output" file="bwa_wrapper_out7.sam" ftype="sam" sort="True" lines_diff="2" />
- </test>
- </tests>
- <help>
-
-**What it does**
-
-BWA is a fast light-weighted tool that aligns relatively short sequences (queries) to a sequence database (large), such as the human reference genome. It is developed by Heng Li at the Sanger Insitute. Li H. and Durbin R. (2009) Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics, 25, 1754-60.
-
-------
-
-**Know what you are doing**
-
-.. class:: warningmark
-
-There is no such thing (yet) as an automated gearshift in short read mapping. It is all like stick-shift driving in San Francisco. In other words = running this tool with default parameters will probably not give you meaningful results. A way to deal with this is to **understand** the parameters by carefully reading the `documentation`__ and experimenting. Fortunately, Galaxy makes experimenting easy.
-
- .. __: http://bio-bwa.sourceforge.net/
-
-------
-
-**Input formats**
-
-BWA accepts files in Sanger FASTQ format. Use the FASTQ Groomer to prepare your files, set to either FASTQ Sanger or FASTQ Color Space Sanger as appropriate.
-
-If you have Color Space Sanger, it must be converted to nucleotide-space first. To do this, use the Manipulate FASTQ tool under NGS: QC and manipulation, with the following settings:
- Manipulate reads on Sequence Content, choosing Change Adapter Base, and having the text box empty.
- Manipulate reads on Sequence Content, doing a String Translate from "01234." to "ACGTN".
-
-
-------
-
-**A Note on Built-in Reference Genomes**
-
-The default variant for all genomes is "Full", defined as all primary chromosomes (or scaffolds/contigs) including mitochondrial plus associated unmapped, plasmid, and other segments. When only one version of a genome is available in this tool, it represents the default "Full" variant. Some genomes will have more than one variant available. The "Canonical Male" or sometimes simply "Canonical" variant contains the primary chromosomes for a genome. For example a human "Canonical" variant contains chr1-chr22, chrX, chrY, and chrM. The "Canonical Female" variant contains the primary chromosomes excluding chrY.
-
-------
-
-**Outputs**
-
-The output is in SAM format, and has the following columns::
-
- Column Description
- -------- --------------------------------------------------------
- 1 QNAME Query (pair) NAME
- 2 FLAG bitwise FLAG
- 3 RNAME Reference sequence NAME
- 4 POS 1-based leftmost POSition/coordinate of clipped sequence
- 5 MAPQ MAPping Quality (Phred-scaled)
- 6 CIGAR extended CIGAR string
- 7 MRNM Mate Reference sequence NaMe ('=' if same as RNAME)
- 8 MPOS 1-based Mate POSition
- 9 ISIZE Inferred insert SIZE
- 10 SEQ query SEQuence on the same strand as the reference
- 11 QUAL query QUALity (ASCII-33 gives the Phred base quality)
- 12 OPT variable OPTional fields in the format TAG:VTYPE:VALU
-
-The flags are as follows::
-
- Flag Description
- ------ -------------------------------------
- 0x0001 the read is paired in sequencing
- 0x0002 the read is mapped in a proper pair
- 0x0004 the query sequence itself is unmapped
- 0x0008 the mate is unmapped
- 0x0010 strand of the query (1 for reverse)
- 0x0020 strand of the mate
- 0x0040 the read is the first read in a pair
- 0x0080 the read is the second read in a pair
- 0x0100 the alignment is not primary
-
-It looks like this (scroll sideways to see the entire example)::
-
- QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT
- HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
- HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
-
--------
-
-**BWA settings**
-
-All of the options have a default value. You can change any of them. All of the options in BWA have been implemented here.
-
-------
-
-**BWA parameter list**
-
-This is an exhaustive list of BWA options:
-
-For **aln**::
-
- -n NUM Maximum edit distance if the value is INT, or the fraction of missing
- alignments given 2% uniform base error rate if FLOAT. In the latter
- case, the maximum edit distance is automatically chosen for different
- read lengths. [0.04]
- -o INT Maximum number of gap opens [1]
- -e INT Maximum number of gap extensions, -1 for k-difference mode
- (disallowing long gaps) [-1]
- -d INT Disallow a long deletion within INT bp towards the 3'-end [16]
- -i INT Disallow an indel within INT bp towards the ends [5]
- -l INT Take the first INT subsequence as seed. If INT is larger than the
- query sequence, seeding will be disabled. For long reads, this option
- is typically ranged from 25 to 35 for '-k 2'. [inf]
- -k INT Maximum edit distance in the seed [2]
- -t INT Number of threads (multi-threading mode) [1]
- -M INT Mismatch penalty. BWA will not search for suboptimal hits with a score
- lower than (bestScore-misMsc). [3]
- -O INT Gap open penalty [11]
- -E INT Gap extension penalty [4]
- -c Reverse query but not complement it, which is required for alignment
- in the color space.
- -R Proceed with suboptimal alignments even if the top hit is a repeat. By
- default, BWA only searches for suboptimal alignments if the top hit is
- unique. Using this option has no effect on accuracy for single-end
- reads. It is mainly designed for improving the alignment accuracy of
- paired-end reads. However, the pairing procedure will be slowed down,
- especially for very short reads (~32bp).
- -N Disable iterative search. All hits with no more than maxDiff
- differences will be found. This mode is much slower than the default.
-
-For **samse**::
-
- -n INT Maximum number of alignments to output in the XA tag for reads paired
- properly. If a read has more than INT hits, the XA tag will not be
- written. [3]
- -r STR Specify the read group in a format like '@RG\tID:foo\tSM:bar' [null]
-
-For **sampe**::
-
- -a INT Maximum insert size for a read pair to be considered as being mapped
- properly. Since version 0.4.5, this option is only used when there
- are not enough good alignment to infer the distribution of insert
- sizes. [500]
- -n INT Maximum number of alignments to output in the XA tag for reads paired
- properly. If a read has more than INT hits, the XA tag will not be
- written. [3]
- -N INT Maximum number of alignments to output in the XA tag for disconcordant
- read pairs (excluding singletons). If a read has more than INT hits,
- the XA tag will not be written. [10]
- -o INT Maximum occurrences of a read for pairing. A read with more
- occurrences will be treated as a single-end read. Reducing this
- parameter helps faster pairing. [100000]
- -r STR Specify the read group in a format like '@RG\tID:foo\tSM:bar' [null]
-
-For specifying the read group in **samse** or **sampe**, use the following::
-
- @RG Read group. Unordered multiple @RG lines are allowed.
- ID Read group identifier. Each @RG line must have a unique ID. The value of
- ID is used in the RG tags of alignment records. Must be unique among all
- read groups in header section. Read group IDs may be modified when
- merging SAM files in order to handle collisions.
- CN Name of sequencing center producing the read.
- DS Description.
- DT Date the run was produced (ISO8601 date or date/time).
- FO Flow order. The array of nucleotide bases that correspond to the
- nucleotides used for each flow of each read. Multi-base flows are encoded
- in IUPAC format, and non-nucleotide flows by various other characters.
- Format : /\*|[ACMGRSVTWYHKDBN]+/
- KS The array of nucleotide bases that correspond to the key sequence of each read.
- LB Library.
- PG Programs used for processing the read group.
- PI Predicted median insert size.
- PL Platform/technology used to produce the reads. Valid values : CAPILLARY,
- LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT and PACBIO.
- PU Platform unit (e.g. flowcell-barcode.lane for Illumina or slide for
- SOLiD). Unique identifier.
- SM Sample. Use pool name where a pool is being sequenced.
-
- </help>
-</tool>
-
-
diff -r e86e9e97daf8f4b682cfe1fe5c12c8a408fd9cc3 -r d3ce9d2dcbca9b79292773968754697c50d761a9 tools/sr_mapping/bwa_wrapper.py
--- a/tools/sr_mapping/bwa_wrapper.py
+++ /dev/null
@@ -1,342 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Runs BWA on single-end or paired-end data.
-Produces a SAM file containing the mappings.
-Works with BWA version 0.5.9.
-
-usage: bwa_wrapper.py [options]
-
-See below for options
-"""
-
-import optparse, os, shutil, subprocess, sys, tempfile
-
-def stop_err( msg ):
- sys.stderr.write( '%s\n' % msg )
- sys.exit()
-
-def check_is_double_encoded( fastq ):
- # check that first read is bases, not one base followed by numbers
- bases = [ 'A', 'C', 'G', 'T', 'a', 'c', 'g', 't', 'N' ]
- nums = [ '0', '1', '2', '3' ]
- for line in file( fastq, 'rb'):
- if not line.strip() or line.startswith( '@' ):
- continue
- if len( [ b for b in line.strip() if b in nums ] ) > 0:
- return False
- elif line.strip()[0] in bases and len( [ b for b in line.strip() if b in bases ] ) == len( line.strip() ):
- return True
- else:
- raise Exception, 'First line in first read does not appear to be a valid FASTQ read in either base-space or color-space'
- raise Exception, 'There is no non-comment and non-blank line in your FASTQ file'
-
-def __main__():
- #Parse Command Line
- parser = optparse.OptionParser()
- parser.add_option( '-t', '--threads', dest='threads', help='The number of threads to use' )
- parser.add_option( '-c', '--color-space', dest='color_space', action='store_true', help='If the input files are SOLiD format' )
- parser.add_option( '-r', '--ref', dest='ref', help='The reference genome to use or index' )
- parser.add_option( '-f', '--input1', dest='fastq', help='The (forward) fastq file to use for the mapping' )
- parser.add_option( '-F', '--input2', dest='rfastq', help='The reverse fastq file to use for mapping if paired-end data' )
- parser.add_option( '-u', '--output', dest='output', help='The file to save the output (SAM format)' )
- parser.add_option( '-g', '--genAlignType', dest='genAlignType', help='The type of pairing (single or paired)' )
- parser.add_option( '-p', '--params', dest='params', help='Parameter setting to use (pre_set or full)' )
- parser.add_option( '-s', '--fileSource', dest='fileSource', help='Whether to use a previously indexed reference sequence or one form history (indexed or history)' )
- parser.add_option( '-n', '--maxEditDist', dest='maxEditDist', help='Maximum edit distance if integer' )
- parser.add_option( '-m', '--fracMissingAligns', dest='fracMissingAligns', help='Fraction of missing alignments given 2% uniform base error rate if fraction' )
- parser.add_option( '-o', '--maxGapOpens', dest='maxGapOpens', help='Maximum number of gap opens' )
- parser.add_option( '-e', '--maxGapExtens', dest='maxGapExtens', help='Maximum number of gap extensions' )
- parser.add_option( '-d', '--disallowLongDel', dest='disallowLongDel', help='Disallow a long deletion within specified bps' )
- parser.add_option( '-i', '--disallowIndel', dest='disallowIndel', help='Disallow indel within specified bps' )
- parser.add_option( '-l', '--seed', dest='seed', help='Take the first specified subsequences' )
- parser.add_option( '-k', '--maxEditDistSeed', dest='maxEditDistSeed', help='Maximum edit distance to the seed' )
- parser.add_option( '-M', '--mismatchPenalty', dest='mismatchPenalty', help='Mismatch penalty' )
- parser.add_option( '-O', '--gapOpenPenalty', dest='gapOpenPenalty', help='Gap open penalty' )
- parser.add_option( '-E', '--gapExtensPenalty', dest='gapExtensPenalty', help='Gap extension penalty' )
- parser.add_option( '-R', '--suboptAlign', dest='suboptAlign', default=None, help='Proceed with suboptimal alignments even if the top hit is a repeat' )
- parser.add_option( '-N', '--noIterSearch', dest='noIterSearch', help='Disable iterative search' )
- parser.add_option( '-T', '--outputTopN', dest='outputTopN', help='Maximum number of alignments to output in the XA tag for reads paired properly' )
- parser.add_option( '', '--outputTopNDisc', dest='outputTopNDisc', help='Maximum number of alignments to output in the XA tag for disconcordant read pairs (excluding singletons)' )
- parser.add_option( '-S', '--maxInsertSize', dest='maxInsertSize', help='Maximum insert size for a read pair to be considered mapped good' )
- parser.add_option( '-P', '--maxOccurPairing', dest='maxOccurPairing', help='Maximum occurrences of a read for pairings' )
- parser.add_option( '', '--rgid', dest='rgid', help='Read group identifier' )
- parser.add_option( '', '--rgcn', dest='rgcn', help='Sequencing center that produced the read' )
- parser.add_option( '', '--rgds', dest='rgds', help='Description' )
- parser.add_option( '', '--rgdt', dest='rgdt', help='Date that run was produced (ISO8601 format date or date/time, like YYYY-MM-DD)' )
- parser.add_option( '', '--rgfo', dest='rgfo', help='Flow order' )
- parser.add_option( '', '--rgks', dest='rgks', help='The array of nucleotide bases that correspond to the key sequence of each read' )
- parser.add_option( '', '--rglb', dest='rglb', help='Library name' )
- parser.add_option( '', '--rgpg', dest='rgpg', help='Programs used for processing the read group' )
- parser.add_option( '', '--rgpi', dest='rgpi', help='Predicted median insert size' )
- parser.add_option( '', '--rgpl', dest='rgpl', choices=[ 'CAPILLARY', 'LS454', 'ILLUMINA', 'SOLID', 'HELICOS', 'IONTORRENT' and 'PACBIO' ], help='Platform/technology used to produce the reads' )
- parser.add_option( '', '--rgpu', dest='rgpu', help='Platform unit (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)' )
- parser.add_option( '', '--rgsm', dest='rgsm', help='Sample' )
- parser.add_option( '-D', '--dbkey', dest='dbkey', help='Dbkey for reference genome' )
- parser.add_option( '-X', '--do_not_build_index', dest='do_not_build_index', action='store_true', help="Don't build index" )
- parser.add_option( '-H', '--suppressHeader', dest='suppressHeader', help='Suppress header' )
- parser.add_option( '-I', '--illumina1.3', dest='illumina13qual', help='Input FASTQ files have Illuina 1.3 quality scores' )
- (options, args) = parser.parse_args()
-
- # output version # of tool
- try:
- tmp = tempfile.NamedTemporaryFile().name
- tmp_stdout = open( tmp, 'wb' )
- proc = subprocess.Popen( args='bwa 2>&1', shell=True, stdout=tmp_stdout )
- tmp_stdout.close()
- returncode = proc.wait()
- stdout = None
- for line in open( tmp_stdout.name, 'rb' ):
- if line.lower().find( 'version' ) >= 0:
- stdout = line.strip()
- break
- if stdout:
- sys.stdout.write( 'BWA %s\n' % stdout )
- else:
- raise Exception
- except:
- sys.stdout.write( 'Could not determine BWA version\n' )
-
- # check for color space fastq that's not double-encoded and exit if appropriate
- if options.color_space:
- if not check_is_double_encoded( options.fastq ):
- stop_err( 'Your file must be double-encoded (it must be converted from "numbers" to "bases"). See the help section for details' )
- if options.genAlignType == 'paired':
- if not check_is_double_encoded( options.rfastq ):
- stop_err( 'Your reverse reads file must also be double-encoded (it must be converted from "numbers" to "bases"). See the help section for details' )
-
- fastq = options.fastq
- if options.rfastq:
- rfastq = options.rfastq
-
- # set color space variable
- if options.color_space:
- color_space = '-c'
- else:
- color_space = ''
-
- # make temp directory for placement of indices
- tmp_index_dir = tempfile.mkdtemp()
- tmp_dir = tempfile.mkdtemp()
- # index if necessary
- if options.fileSource == 'history' and not options.do_not_build_index:
- ref_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir )
- ref_file_name = ref_file.name
- ref_file.close()
- os.symlink( options.ref, ref_file_name )
- # determine which indexing algorithm to use, based on size
- try:
- size = os.stat( options.ref ).st_size
- if size <= 2**30:
- indexingAlg = 'is'
- else:
- indexingAlg = 'bwtsw'
- except:
- indexingAlg = 'is'
- indexing_cmds = '%s -a %s' % ( color_space, indexingAlg )
- cmd1 = 'bwa index %s %s' % ( indexing_cmds, ref_file_name )
- try:
- tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
- tmp_stderr = open( tmp, 'wb' )
- proc = subprocess.Popen( args=cmd1, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno() )
- returncode = proc.wait()
- tmp_stderr.close()
- # get stderr, allowing for case where it's very large
- tmp_stderr = open( tmp, 'rb' )
- stderr = ''
- buffsize = 1048576
- try:
- while True:
- stderr += tmp_stderr.read( buffsize )
- if not stderr or len( stderr ) % buffsize != 0:
- break
- except OverflowError:
- pass
- tmp_stderr.close()
- if returncode != 0:
- raise Exception, stderr
- except Exception, e:
- # clean up temp dirs
- if os.path.exists( tmp_index_dir ):
- shutil.rmtree( tmp_index_dir )
- if os.path.exists( tmp_dir ):
- shutil.rmtree( tmp_dir )
- stop_err( 'Error indexing reference sequence. ' + str( e ) )
- else:
- ref_file_name = options.ref
- if options.illumina13qual:
- illumina_quals = "-I"
- else:
- illumina_quals = ""
-
- # set up aligning and generate aligning command options
- if options.params == 'pre_set':
- aligning_cmds = '-t %s %s %s' % ( options.threads, color_space, illumina_quals )
- gen_alignment_cmds = ''
- else:
- if options.maxEditDist != '0':
- editDist = options.maxEditDist
- else:
- editDist = options.fracMissingAligns
- if options.seed != '-1':
- seed = '-l %s' % options.seed
- else:
- seed = ''
- if options.suboptAlign:
- suboptAlign = '-R "%s"' % ( options.suboptAlign )
- else:
- suboptAlign = ''
- if options.noIterSearch == 'true':
- noIterSearch = '-N'
- else:
- noIterSearch = ''
- aligning_cmds = '-n %s -o %s -e %s -d %s -i %s %s -k %s -t %s -M %s -O %s -E %s %s %s %s %s' % \
- ( editDist, options.maxGapOpens, options.maxGapExtens, options.disallowLongDel,
- options.disallowIndel, seed, options.maxEditDistSeed, options.threads,
- options.mismatchPenalty, options.gapOpenPenalty, options.gapExtensPenalty,
- suboptAlign, noIterSearch, color_space, illumina_quals )
- if options.genAlignType == 'paired':
- gen_alignment_cmds = '-a %s -o %s' % ( options.maxInsertSize, options.maxOccurPairing )
- if options.outputTopNDisc:
- gen_alignment_cmds += ' -N %s' % options.outputTopNDisc
- else:
- gen_alignment_cmds = ''
- if options.rgid:
- if not options.rglb or not options.rgpl or not options.rgsm:
- stop_err( 'If you want to specify read groups, you must include the ID, LB, PL, and SM tags.' )
- readGroup = '@RG\tID:%s\tLB:%s\tPL:%s\tSM:%s' % ( options.rgid, options.rglb, options.rgpl, options.rgsm )
- if options.rgcn:
- readGroup += '\tCN:%s' % options.rgcn
- if options.rgds:
- readGroup += '\tDS:%s' % options.rgds
- if options.rgdt:
- readGroup += '\tDT:%s' % options.rgdt
- if options.rgfo:
- readGroup += '\tFO:%s' % options.rgfo
- if options.rgks:
- readGroup += '\tKS:%s' % options.rgks
- if options.rgpg:
- readGroup += '\tPG:%s' % options.rgpg
- if options.rgpi:
- readGroup += '\tPI:%s' % options.rgpi
- if options.rgpu:
- readGroup += '\tPU:%s' % options.rgpu
- gen_alignment_cmds += ' -r "%s"' % readGroup
- if options.outputTopN:
- gen_alignment_cmds += ' -n %s' % options.outputTopN
- # set up output files
- tmp_align_out = tempfile.NamedTemporaryFile( dir=tmp_dir )
- tmp_align_out_name = tmp_align_out.name
- tmp_align_out.close()
- tmp_align_out2 = tempfile.NamedTemporaryFile( dir=tmp_dir )
- tmp_align_out2_name = tmp_align_out2.name
- tmp_align_out2.close()
- # prepare actual aligning and generate aligning commands
- cmd2 = 'bwa aln %s %s %s > %s' % ( aligning_cmds, ref_file_name, fastq, tmp_align_out_name )
- cmd2b = ''
- if options.genAlignType == 'paired':
- cmd2b = 'bwa aln %s %s %s > %s' % ( aligning_cmds, ref_file_name, rfastq, tmp_align_out2_name )
- cmd3 = 'bwa sampe %s %s %s %s %s %s >> %s' % ( gen_alignment_cmds, ref_file_name, tmp_align_out_name, tmp_align_out2_name, fastq, rfastq, options.output )
- else:
- cmd3 = 'bwa samse %s %s %s %s >> %s' % ( gen_alignment_cmds, ref_file_name, tmp_align_out_name, fastq, options.output )
- # perform alignments
- buffsize = 1048576
- try:
- # need to nest try-except in try-finally to handle 2.4
- try:
- # align
- try:
- tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
- tmp_stderr = open( tmp, 'wb' )
- proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
- returncode = proc.wait()
- tmp_stderr.close()
- # get stderr, allowing for case where it's very large
- tmp_stderr = open( tmp, 'rb' )
- stderr = ''
- try:
- while True:
- stderr += tmp_stderr.read( buffsize )
- if not stderr or len( stderr ) % buffsize != 0:
- break
- except OverflowError:
- pass
- tmp_stderr.close()
- if returncode != 0:
- raise Exception, stderr
- except Exception, e:
- raise Exception, 'Error aligning sequence. ' + str( e )
- # and again if paired data
- try:
- if cmd2b:
- tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
- tmp_stderr = open( tmp, 'wb' )
- proc = subprocess.Popen( args=cmd2b, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
- returncode = proc.wait()
- tmp_stderr.close()
- # get stderr, allowing for case where it's very large
- tmp_stderr = open( tmp, 'rb' )
- stderr = ''
- try:
- while True:
- stderr += tmp_stderr.read( buffsize )
- if not stderr or len( stderr ) % buffsize != 0:
- break
- except OverflowError:
- pass
- tmp_stderr.close()
- if returncode != 0:
- raise Exception, stderr
- except Exception, e:
- raise Exception, 'Error aligning second sequence. ' + str( e )
- # generate align
- try:
- tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
- tmp_stderr = open( tmp, 'wb' )
- proc = subprocess.Popen( args=cmd3, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
- returncode = proc.wait()
- tmp_stderr.close()
- # get stderr, allowing for case where it's very large
- tmp_stderr = open( tmp, 'rb' )
- stderr = ''
- try:
- while True:
- stderr += tmp_stderr.read( buffsize )
- if not stderr or len( stderr ) % buffsize != 0:
- break
- except OverflowError:
- pass
- tmp_stderr.close()
- if returncode != 0:
- raise Exception, stderr
- except Exception, e:
- raise Exception, 'Error generating alignments. ' + str( e )
- # remove header if necessary
- if options.suppressHeader == 'true':
- tmp_out = tempfile.NamedTemporaryFile( dir=tmp_dir)
- tmp_out_name = tmp_out.name
- tmp_out.close()
- try:
- shutil.move( options.output, tmp_out_name )
- except Exception, e:
- raise Exception, 'Error moving output file before removing headers. ' + str( e )
- fout = file( options.output, 'w' )
- for line in file( tmp_out.name, 'r' ):
- if not ( line.startswith( '@HD' ) or line.startswith( '@SQ' ) or line.startswith( '@RG' ) or line.startswith( '@PG' ) or line.startswith( '@CO' ) ):
- fout.write( line )
- fout.close()
- # check that there are results in the output file
- if os.path.getsize( options.output ) > 0:
- sys.stdout.write( 'BWA run on %s-end data' % options.genAlignType )
- else:
- raise Exception, 'The output file is empty. You may simply have no matches, or there may be an error with your input file or settings.'
- except Exception, e:
- stop_err( 'The alignment failed.\n' + str( e ) )
- finally:
- # clean up temp dir
- if os.path.exists( tmp_index_dir ):
- shutil.rmtree( tmp_index_dir )
- if os.path.exists( tmp_dir ):
- shutil.rmtree( tmp_dir )
-
-if __name__=="__main__": __main__()
diff -r e86e9e97daf8f4b682cfe1fe5c12c8a408fd9cc3 -r d3ce9d2dcbca9b79292773968754697c50d761a9 tools/sr_mapping/bwa_wrapper.xml
--- a/tools/sr_mapping/bwa_wrapper.xml
+++ /dev/null
@@ -1,474 +0,0 @@
-<tool id="bwa_wrapper" name="Map with BWA for Illumina" version="1.2.3">
- <description></description>
- <parallelism method="basic"></parallelism>
- <command interpreter="python">
- bwa_wrapper.py
- --threads="4"
-
- #if $input1.ext == "fastqillumina":
- --illumina1.3
- #end if
-
- ## reference source
- --fileSource=$genomeSource.refGenomeSource
- #if $genomeSource.refGenomeSource == "history":
- ##build index on the fly
- --ref="${genomeSource.ownFile}"
- --dbkey=$dbkey
- #else:
- ##use precomputed indexes
- --ref="${genomeSource.indices.fields.path}"
- --do_not_build_index
- #end if
-
- ## input file(s)
- --input1=$paired.input1
- #if $paired.sPaired == "paired":
- --input2=$paired.input2
- #end if
-
- ## output file
- --output=$output
-
- ## run parameters
- --genAlignType=$paired.sPaired
- --params=$params.source_select
- #if $params.source_select != "pre_set":
- --maxEditDist=$params.maxEditDist
- --fracMissingAligns=$params.fracMissingAligns
- --maxGapOpens=$params.maxGapOpens
- --maxGapExtens=$params.maxGapExtens
- --disallowLongDel=$params.disallowLongDel
- --disallowIndel=$params.disallowIndel
- --seed=$params.seed
- --maxEditDistSeed=$params.maxEditDistSeed
- --mismatchPenalty=$params.mismatchPenalty
- --gapOpenPenalty=$params.gapOpenPenalty
- --gapExtensPenalty=$params.gapExtensPenalty
- --suboptAlign="${params.suboptAlign}"
- --noIterSearch=$params.noIterSearch
- --outputTopN=$params.outputTopN
- --outputTopNDisc=$params.outputTopNDisc
- --maxInsertSize=$params.maxInsertSize
- --maxOccurPairing=$params.maxOccurPairing
- #if $params.readGroup.specReadGroup == "yes"
- --rgid="$params.readGroup.rgid"
- --rgcn="$params.readGroup.rgcn"
- --rgds="$params.readGroup.rgds"
- --rgdt="$params.readGroup.rgdt"
- --rgfo="$params.readGroup.rgfo"
- --rgks="$params.readGroup.rgks"
- --rglb="$params.readGroup.rglb"
- --rgpg="$params.readGroup.rgpg"
- --rgpi="$params.readGroup.rgpi"
- --rgpl="$params.readGroup.rgpl"
- --rgpu="$params.readGroup.rgpu"
- --rgsm="$params.readGroup.rgsm"
- #end if
- #end if
-
- ## suppress output SAM header
- --suppressHeader=$suppressHeader
- </command>
- <requirements>
- <requirement type="package">bwa</requirement>
- </requirements>
- <inputs>
- <conditional name="genomeSource">
- <param name="refGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?">
- <option value="indexed">Use a built-in index</option>
- <option value="history">Use one from the history</option>
- </param>
- <when value="indexed">
- <param name="indices" type="select" label="Select a reference genome">
- <options from_data_table="bwa_indexes">
- <filter type="sort_by" column="2" />
- <validator type="no_options" message="No indexes are available" />
- </options>
- </param>
- </when>
- <when value="history">
- <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference from history" />
- </when>
- </conditional>
- <conditional name="paired">
- <param name="sPaired" type="select" label="Is this library mate-paired?">
- <option value="single">Single-end</option>
- <option value="paired">Paired-end</option>
- </param>
- <when value="single">
- <param name="input1" type="data" format="fastqsanger,fastqillumina" label="FASTQ file" help="FASTQ with either Sanger-scaled quality values (fastqsanger) or Illumina-scaled quality values (fastqillumina)" />
- </when>
- <when value="paired">
- <param name="input1" type="data" format="fastqsanger,fastqillumina" label="Forward FASTQ file" help="FASTQ with either Sanger-scaled quality values (fastqsanger) or Illumina-scaled quality values (fastqillumina)" />
- <param name="input2" type="data" format="fastqsanger,fastqillumina" label="Reverse FASTQ file" help="FASTQ with either Sanger-scaled quality values (fastqsanger) or Illumina-scaled quality values (fastqillumina)" />
- </when>
- </conditional>
- <conditional name="params">
- <param name="source_select" type="select" label="BWA settings to use" help="For most mapping needs use Commonly Used settings. If you want full control use Full Parameter List">
- <option value="pre_set">Commonly Used</option>
- <option value="full">Full Parameter List</option>
- </param>
- <when value="pre_set" />
- <when value="full">
- <param name="maxEditDist" type="integer" value="0" label="Maximum edit distance (aln -n)" help="Enter this value OR a fraction of missing alignments, not both" />
- <param name="fracMissingAligns" type="float" value="0.04" label="Fraction of missing alignments given 2% uniform base error rate (aln -n)" help="Enter this value OR maximum edit distance, not both" />
- <param name="maxGapOpens" type="integer" value="1" label="Maximum number of gap opens (aln -o)" />
- <param name="maxGapExtens" type="integer" value="-1" label="Maximum number of gap extensions (aln -e)" help="-1 for k-difference mode (disallowing long gaps)" />
- <param name="disallowLongDel" type="integer" value="16" label="Disallow long deletion within [value] bp towards the 3'-end (aln -d)" />
- <param name="disallowIndel" type="integer" value="5" label="Disallow insertion/deletion within [value] bp towards the end (aln -i)" />
- <param name="seed" type="integer" value="-1" label="Number of first subsequences to take as seed (aln -l)" help="Enter -1 for infinity" />
- <param name="maxEditDistSeed" type="integer" value="2" label="Maximum edit distance in the seed (aln -k)" />
- <param name="mismatchPenalty" type="integer" value="3" label="Mismatch penalty (aln -M)" help="BWA will not search for suboptimal hits with a score lower than [value]" />
- <param name="gapOpenPenalty" type="integer" value="11" label="Gap open penalty (aln -O)" />
- <param name="gapExtensPenalty" type="integer" value="4" label="Gap extension penalty (aln -E)" />
- <param name="suboptAlign" type="integer" optional="True" label="Proceed with suboptimal alignments if there are no more than INT equally best hits. (aln -R)" help="For paired-end reads only. By default, BWA only searches for suboptimal alignments if the top hit is unique. Using this option has no effect on accuracy for single-end reads. It is mainly designed for improving the alignment accuracy of paired-end reads. However, the pairing procedure will be slowed down, especially for very short reads (~32bp)" />
- <param name="noIterSearch" type="boolean" truevalue="true" falsevalue="false" checked="no" label="Disable iterative search (aln -N)" help="All hits with no more than maxDiff differences will be found. This mode is much slower than the default" />
- <param name="outputTopN" type="integer" value="3" label="Maximum number of alignments to output in the XA tag for reads paired properly (samse/sampe -n)" help="If a read has more than INT hits, the XA tag will not be written" />
- <param name="outputTopNDisc" type="integer" value="10" label="Maximum number of alignments to output in the XA tag for disconcordant read pairs (excluding singletons) (sampe -N)" help="For paired-end reads only. If a read has more than INT hits, the XA tag will not be written" />
- <param name="maxInsertSize" type="integer" value="500" label="Maximum insert size for a read pair to be considered as being mapped properly (sampe -a)" help="For paired-end reads only. Only used when there are not enough good alignments to infer the distribution of insert sizes" />
- <param name="maxOccurPairing" type="integer" value="100000" label="Maximum occurrences of a read for pairing (sampe -o)" help="For paired-end reads only. A read with more occurrences will be treated as a single-end read. Reducing this parameter helps faster pairing" />
- <conditional name="readGroup">
- <param name="specReadGroup" type="select" label="Specify the read group for this file? (samse/sampe -r)">
- <option value="yes">Yes</option>
- <option value="no" selected="True">No</option>
- </param>
- <when value="yes">
- <param name="rgid" type="text" size="25" label="Read group identifier (ID). Each @RG line must have a unique ID. The value of ID is used in the RG
-tags of alignment records. Must be unique among all read groups in header section." help="Required if RG specified. Read group
-IDs may be modified when merging SAM files in order to handle collisions." />
- <param name="rgcn" type="text" size="25" label="Sequencing center that produced the read (CN)" help="Optional" />
- <param name="rgds" type="text" size="25" label="Description (DS)" help="Optional" />
- <param name="rgdt" type="text" size="25" label="Date that run was produced (DT)" help="Optional. ISO8601 format date or date/time, like YYYY-MM-DD" />
- <param name="rgfo" type="text" size="25" label="Flow order (FO). The array of nucleotide bases that correspond to the nucleotides used for each
-flow of each read." help="Optional. Multi-base flows are encoded in IUPAC format, and non-nucleotide flows by
-various other characters. Format : /\*|[ACMGRSVTWYHKDBN]+/" />
- <param name="rgks" type="text" size="25" label="The array of nucleotide bases that correspond to the key sequence of each read (KS)" help="Optional" />
- <param name="rglb" type="text" size="25" label="Library name (LB)" help="Required if RG specified" />
- <param name="rgpg" type="text" size="25" label="Programs used for processing the read group (PG)" help="Optional" />
- <param name="rgpi" type="text" size="25" label="Predicted median insert size (PI)" help="Optional" />
- <param name="rgpl" type="text" size="25" label="Platform/technology used to produce the reads (PL)" help="Required if RG specified. Valid values : CAPILLARY, LS454, ILLUMINA,
-SOLID, HELICOS, IONTORRENT and PACBIO" />
- <param name="rgpu" type="text" size="25" label="Platform unit (PU)" help="Optional. Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" />
- <param name="rgsm" type="text" size="25" label="Sample (SM)" help="Required if RG specified. Use pool name where a pool is being sequenced" />
- </when>
- <when value="no" />
- </conditional>
- </when>
- </conditional>
- <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file" help="BWA produces SAM with several lines of header information" />
- </inputs>
- <outputs>
- <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads">
- <actions>
- <conditional name="genomeSource.refGenomeSource">
- <when value="indexed">
- <action type="metadata" name="dbkey">
- <option type="from_data_table" name="bwa_indexes" column="1">
- <filter type="param_value" column="0" value="#" compare="startswith" keep="False"/>
- <filter type="param_value" ref="genomeSource.indices" column="0"/>
- </option>
- </action>
- </when>
- <when value="history">
- <action type="metadata" name="dbkey">
- <option type="from_param" name="genomeSource.ownFile" param_attribute="dbkey" />
- </action>
- </when>
- </conditional>
- </actions>
- </data>
- </outputs>
- <tests>
- <test>
- <!--
- BWA commands:
- bwa aln -t 4 phiX.fasta test-data/bwa_wrapper_in1.fastqsanger > bwa_wrapper_out1.sai
- bwa samse phiX.fasta bwa_wrapper_out1.sai test-data/bwa_wrapper_in1.fastqsanger > bwa_wrapper_out1.sam
- phiX.fasta is the prefix for the reference files (phiX.fasta.amb, phiX.fasta.ann, phiX.fasta.bwt, ...)
- remove the comment lines (beginning with '@') from the resulting sam file
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out1.u.sam bwa_wrapper_out1.sam
- -->
- <param name="refGenomeSource" value="indexed" />
- <param name="indices" value="phiX" />
- <param name="sPaired" value="single" />
- <param name="input1" value="bwa_wrapper_in1.fastqsanger" ftype="fastqsanger" />
- <param name="source_select" value="pre_set" />
- <param name="suppressHeader" value="true" />
- <output name="output" file="bwa_wrapper_out1.sam" ftype="sam" sort="True" />
- </test>
- <test>
- <!--
- BWA commands:
- cp test-data/phiX.fasta phiX.fasta
- bwa index -a is phiX.fasta
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N phiX.fasta test-data/bwa_wrapper_in1.fastqsanger > bwa_wrapper_out2.sai
- bwa samse -n 3 phiX.fasta bwa_wrapper_out2.sai test-data/bwa_wrapper_in1.fastqsanger > bwa_wrapper_out2.u.sam
- phiX.fasta is the prefix for the reference files (phiX.fasta.amb, phiX.fasta.ann, phiX.fasta.bwt, ...)
- remove the comment lines (beginning with '@') from the resulting sam file
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out2.u.sam bwa_wrapper_out2.sam
- -->
- <param name="refGenomeSource" value="history" />
- <param name="ownFile" value="phiX.fasta" />
- <param name="sPaired" value="single" />
- <param name="input1" value="bwa_wrapper_in1.fastqsanger" ftype="fastqsanger" />
- <param name="source_select" value="full" />
- <param name="maxEditDist" value="0" />
- <param name="fracMissingAligns" value="0.04" />
- <param name="maxGapOpens" value="1" />
- <param name="maxGapExtens" value="-1" />
- <param name="disallowLongDel" value="16" />
- <param name="disallowIndel" value="5" />
- <param name="seed" value="-1" />
- <param name="maxEditDistSeed" value="2" />
- <param name="mismatchPenalty" value="3" />
- <param name="gapOpenPenalty" value="11" />
- <param name="gapExtensPenalty" value="4" />
- <param name="suboptAlign" value="" />
- <param name="noIterSearch" value="true" />
- <param name="outputTopN" value="3" />
- <param name="outputTopNDisc" value="10" />
- <param name="maxInsertSize" value="500" />
- <param name="maxOccurPairing" value="100000" />
- <param name="specReadGroup" value="no" />
- <param name="suppressHeader" value="true" />
- <output name="output" file="bwa_wrapper_out2.sam" ftype="sam" sort="True" />
- </test>
- <test>
- <!--
- BWA commands:
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N phiX.fasta test-data/bwa_wrapper_in2.fastqsanger > bwa_wrapper_out3a.sai
- bwa aln -n 0.04 -o 1 -e -1 -d 16 -i 5 -k 2 -t 4 -M 3 -O 11 -E 4 -R -N phiX.fasta test-data/bwa_wrapper_in3.fastqsanger > bwa_wrapper_out3b.sai
- bwa sampe -a 500 -o 100000 -n 3 -N 10 -r "@RG\tID:abcdefg\tDS:descrip\tDT:2010-11-01\tLB:lib-mom-A\tPI:400\tPL:ILLUMINA\tSM:mom" phiX.fasta bwa_wrapper_out3a.sai bwa_wrapper_out3b.sai test-data/bwa_wrapper_in2.fastqsanger test-data/bwa_wrapper_in3.fastqsanger > bwa_wrapper_out3.u.sam
- phiX.fasta is the prefix for the reference
- plain old sort doesn't handle underscores like python:
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out3.u.sam bwa_wrapper_out3.sam
- -->
- <param name="refGenomeSource" value="indexed" />
- <param name="indices" value="phiX" />
- <param name="sPaired" value="paired" />
- <param name="input1" value="bwa_wrapper_in2.fastqsanger" ftype="fastqsanger" />
- <param name="input2" value="bwa_wrapper_in3.fastqsanger" ftype="fastqsanger" />
- <param name="source_select" value="full" />
- <param name="maxEditDist" value="0" />
- <param name="fracMissingAligns" value="0.04" />
- <param name="maxGapOpens" value="1" />
- <param name="maxGapExtens" value="-1" />
- <param name="disallowLongDel" value="16" />
- <param name="disallowIndel" value="5" />
- <param name="seed" value="-1" />
- <param name="maxEditDistSeed" value="2" />
- <param name="mismatchPenalty" value="3" />
- <param name="gapOpenPenalty" value="11" />
- <param name="gapExtensPenalty" value="4" />
- <param name="suboptAlign" value="" />
- <param name="noIterSearch" value="true" />
- <param name="outputTopN" value="3" />
- <param name="outputTopNDisc" value="10" />
- <param name="maxInsertSize" value="500" />
- <param name="maxOccurPairing" value="100000" />
- <param name="specReadGroup" value="yes" />
- <param name="rgid" value="abcdefg" />
- <param name="rgcn" value="" />
- <param name="rgds" value="descrip" />
- <param name="rgdt" value="2010-11-01" />
- <param name="rgfo" value="" />
- <param name="rgks" value="" />
- <param name="rglb" value="lib-mom-A" />
- <param name="rgpg" value="" />
- <param name="rgpi" value="400" />
- <param name="rgpl" value="ILLUMINA" />
- <param name="rgpu" value="" />
- <param name="rgsm" value="mom" />
- <param name="suppressHeader" value="false" />
- <output name="output" file="bwa_wrapper_out3.sam" ftype="sam" sort="True" lines_diff="2" />
- </test>
- <test>
- <!--
- BWA commands:
- cp test-data/phiX.fasta phiX.fasta
- bwa index -a is phiX.fasta
- bwa aln -t 4 phiX.fasta test-data/bwa_wrapper_in2.fastqsanger > bwa_wrapper_out8a.sai
- bwa aln -t 4 phiX.fasta test-data/bwa_wrapper_in3.fastqsanger > bwa_wrapper_out8b.sai
- bwa sampe -a 500 -o 100000 phiX.fasta bwa_wrapper_out8a.sai bwa_wrapper_out8b.sai test-data/bwa_wrapper_in2.fastqsanger test-data/bwa_wrapper_in3.fastqsanger > bwa_wrapper_out8.u.sam
- phiX.fa is the prefix for the reference
- remove the comment lines (beginning with '@') from the resulting sam file
- python -c "import sys; lines=file(sys.argv[1],'rb').readlines(); lines.sort(); file(sys.argv[2],'wb').write(''.join(lines))" bwa_wrapper_out8.u.sam bwa_wrapper_out8.sam
- -->
- <param name="refGenomeSource" value="history" />
- <!-- this is the backwards-compatible "unique value" for this index, not an actual path -->
- <param name="ownFile" value="phiX.fasta" />
- <param name="sPaired" value="paired" />
- <param name="input1" value="bwa_wrapper_in2.fastqsanger" ftype="fastqsanger" />
- <param name="input2" value="bwa_wrapper_in3.fastqsanger" ftype="fastqsanger" />
- <param name="source_select" value="preSet" />
- <param name="suppressHeader" value="true" />
- <output name="output" file="bwa_wrapper_out8.sam" ftype="sam" sort="True" />
- </test>
- </tests>
- <help>
-
-**What it does**
-
-BWA is a fast light-weighted tool that aligns relatively short sequences (queries) to a sequence database (large), such as the human reference genome. It is developed by Heng Li at the Sanger Insitute. Li H. and Durbin R. (2009) Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics, 25, 1754-60.
-
-------
-
-**Know what you are doing**
-
-.. class:: warningmark
-
-There is no such thing (yet) as an automated gearshift in short read mapping. It is all like stick-shift driving in San Francisco. In other words = running this tool with default parameters will probably not give you meaningful results. A way to deal with this is to **understand** the parameters by carefully reading the `documentation`__ and experimenting. Fortunately, Galaxy makes experimenting easy.
-
- .. __: http://bio-bwa.sourceforge.net/
-
-------
-
-**Input formats**
-
-BWA accepts files in either Sanger FASTQ format (galaxy type *fastqsanger*) or Illumina FASTQ format (galaxy type *fastqillumina*). Use the FASTQ Groomer to prepare your files.
-
-------
-
-**A Note on Built-in Reference Genomes**
-
-The default variant for all genomes is "Full", defined as all primary chromosomes (or scaffolds/contigs) including mitochondrial plus associated unmapped, plasmid, and other segments. When only one version of a genome is available in this tool, it represents the default "Full" variant. Some genomes will have more than one variant available. The "Canonical Male" or sometimes simply "Canonical" variant contains the primary chromosomes for a genome. For example a human "Canonical" variant contains chr1-chr22, chrX, chrY, and chrM. The "Canonical Female" variant contains the primary chromosomes excluding chrY.
-
-------
-
-**Outputs**
-
-The output is in SAM format, and has the following columns::
-
- Column Description
- -------- --------------------------------------------------------
- 1 QNAME Query (pair) NAME
- 2 FLAG bitwise FLAG
- 3 RNAME Reference sequence NAME
- 4 POS 1-based leftmost POSition/coordinate of clipped sequence
- 5 MAPQ MAPping Quality (Phred-scaled)
- 6 CIGAR extended CIGAR string
- 7 MRNM Mate Reference sequence NaMe ('=' if same as RNAME)
- 8 MPOS 1-based Mate POSition
- 9 ISIZE Inferred insert SIZE
- 10 SEQ query SEQuence on the same strand as the reference
- 11 QUAL query QUALity (ASCII-33 gives the Phred base quality)
- 12 OPT variable OPTional fields in the format TAG:VTYPE:VALU
-
-The flags are as follows::
-
- Flag Description
- ------ -------------------------------------
- 0x0001 the read is paired in sequencing
- 0x0002 the read is mapped in a proper pair
- 0x0004 the query sequence itself is unmapped
- 0x0008 the mate is unmapped
- 0x0010 strand of the query (1 for reverse)
- 0x0020 strand of the mate
- 0x0040 the read is the first read in a pair
- 0x0080 the read is the second read in a pair
- 0x0100 the alignment is not primary
-
-It looks like this (scroll sideways to see the entire example)::
-
- QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT
- HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
- HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
-
--------
-
-**BWA settings**
-
-All of the options have a default value. You can change any of them. All of the options in BWA have been implemented here.
-
-------
-
-**BWA parameter list**
-
-This is an exhaustive list of BWA options:
-
-For **aln**::
-
- -n NUM Maximum edit distance if the value is INT, or the fraction of missing
- alignments given 2% uniform base error rate if FLOAT. In the latter
- case, the maximum edit distance is automatically chosen for different
- read lengths. [0.04]
- -o INT Maximum number of gap opens [1]
- -e INT Maximum number of gap extensions, -1 for k-difference mode
- (disallowing long gaps) [-1]
- -d INT Disallow a long deletion within INT bp towards the 3'-end [16]
- -i INT Disallow an indel within INT bp towards the ends [5]
- -l INT Take the first INT subsequence as seed. If INT is larger than the
- query sequence, seeding will be disabled. For long reads, this option
- is typically ranged from 25 to 35 for '-k 2'. [inf]
- -k INT Maximum edit distance in the seed [2]
- -t INT Number of threads (multi-threading mode) [1]
- -M INT Mismatch penalty. BWA will not search for suboptimal hits with a score
- lower than (bestScore-misMsc). [3]
- -O INT Gap open penalty [11]
- -E INT Gap extension penalty [4]
- -c Reverse query but not complement it, which is required for alignment
- in the color space.
- -R Proceed with suboptimal alignments even if the top hit is a repeat. By
- default, BWA only searches for suboptimal alignments if the top hit is
- unique. Using this option has no effect on accuracy for single-end
- reads. It is mainly designed for improving the alignment accuracy of
- paired-end reads. However, the pairing procedure will be slowed down,
- especially for very short reads (~32bp).
- -N Disable iterative search. All hits with no more than maxDiff
- differences will be found. This mode is much slower than the default.
-
-For **samse**::
-
- -n INT Maximum number of alignments to output in the XA tag for reads paired
- properly. If a read has more than INT hits, the XA tag will not be
- written. [3]
- -r STR Specify the read group in a format like '@RG\tID:foo\tSM:bar' [null]
-
-For **sampe**::
-
- -a INT Maximum insert size for a read pair to be considered as being mapped
- properly. Since version 0.4.5, this option is only used when there
- are not enough good alignment to infer the distribution of insert
- sizes. [500]
- -n INT Maximum number of alignments to output in the XA tag for reads paired
- properly. If a read has more than INT hits, the XA tag will not be
- written. [3]
- -N INT Maximum number of alignments to output in the XA tag for disconcordant
- read pairs (excluding singletons). If a read has more than INT hits,
- the XA tag will not be written. [10]
- -o INT Maximum occurrences of a read for pairing. A read with more
- occurrences will be treated as a single-end read. Reducing this
- parameter helps faster pairing. [100000]
- -r STR Specify the read group in a format like '@RG\tID:foo\tSM:bar' [null]
-
-For specifying the read group in **samse** or **sampe**, use the following::
-
- @RG Read group. Unordered multiple @RG lines are allowed.
- ID Read group identifier. Each @RG line must have a unique ID. The value of
- ID is used in the RG tags of alignment records. Must be unique among all
- read groups in header section. Read group IDs may be modified when
- merging SAM files in order to handle collisions.
- CN Name of sequencing center producing the read.
- DS Description.
- DT Date the run was produced (ISO8601 date or date/time).
- FO Flow order. The array of nucleotide bases that correspond to the
- nucleotides used for each flow of each read. Multi-base flows are encoded
- in IUPAC format, and non-nucleotide flows by various other characters.
- Format : /\*|[ACMGRSVTWYHKDBN]+/
- KS The array of nucleotide bases that correspond to the key sequence of each read.
- LB Library.
- PG Programs used for processing the read group.
- PI Predicted median insert size.
- PL Platform/technology used to produce the reads. Valid values : CAPILLARY,
- LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT and PACBIO.
- PU Platform unit (e.g. flowcell-barcode.lane for Illumina or slide for
- SOLiD). Unique identifier.
- SM Sample. Use pool name where a pool is being sequenced.
-
- </help>
-</tool>
-
-
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0