1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/ad04a8d066e7/ changeset: ad04a8d066e7 user: inithello date: 2013-01-04 17:30:11 summary: Tool shed functional tests for repositories with invalid tools, functional test enhancement for repositories with workflows. affected #: 9 files diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/base/twilltestcase.py --- a/test/tool_shed/base/twilltestcase.py +++ b/test/tool_shed/base/twilltestcase.py @@ -97,7 +97,7 @@ Loop through each tool dictionary in the repository metadata associated with the received changeset_revision. For each of these, check for a tools attribute, and load the tool metadata page if it exists, then display that tool's page. ''' - repository_metadata = test_db_util.get_repository_metadata_by_repository_id_changeset_revision( repository.id, changeset_revision ) + repository_metadata = self.get_repository_metadata_by_changeset_revision( repository, changeset_revision ) metadata = repository_metadata.metadata if 'tools' not in metadata: raise AssertionError( 'No tools in %s revision %s.' % ( repository.name, changeset_revision ) ) @@ -118,10 +118,9 @@ strings_not_displayed=[] ) def check_repository_invalid_tools_for_changeset_revision( self, repository, changeset_revision, strings_displayed=[], strings_not_displayed=[] ): '''Load the invalid tool page for each invalid tool associated with this changeset revision and verify the received error messages.''' - repository_metadata = test_db_util.get_repository_metadata_by_repository_id_changeset_revision( repository.id, changeset_revision ) + repository_metadata = self.get_repository_metadata_by_changeset_revision( repository, changeset_revision ) metadata = repository_metadata.metadata - if 'invalid_tools' not in metadata: - return + assert 'invalid_tools' in metadata, 'Metadata for changeset revision %s does not define invalid tools' % changeset_revision for tool_xml in metadata[ 'invalid_tools' ]: self.load_invalid_tool_page( repository, tool_xml=tool_xml, @@ -396,9 +395,11 @@ def get_repository_metadata( self, repository ): return [ metadata_revision for metadata_revision in repository.metadata_revisions ] def get_repository_metadata_by_changeset_revision( self, repository, changeset_revision ): - for metadata_revision in repository.metadata_revisions: + found = None + for metadata_revision in self.get_repository_metadata( repository ): if metadata_revision.changeset_revision == changeset_revision: - return metadata_revision + found = metadata_revision + return found def get_repository_metadata_revisions( self, repository ): return [ str( repository_metadata.changeset_revision ) for repository_metadata in repository.metadata_revisions ] def get_repository_tip( self, repository ): @@ -484,6 +485,8 @@ if not changeset_revision: changeset_revision = self.get_repository_tip( repository ) metadata = self.get_repository_metadata_by_changeset_revision( repository, changeset_revision ) + if not metadata: + raise AssertionError( 'Metadata not found for changeset revision %s.' % changeset_revision ) url = '/repository/generate_workflow_image?repository_metadata_id=%s&workflow_name=%s' % \ ( self.security.encode_id( metadata.id ), tool_shed_encode( workflow_name ) ) self.visit_url( url ) diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_0000_basic_repository_features.py --- a/test/tool_shed/functional/test_0000_basic_repository_features.py +++ b/test/tool_shed/functional/test_0000_basic_repository_features.py @@ -2,8 +2,8 @@ import tool_shed.base.test_db_util as test_db_util repository_name = 'filtering_0000' -repository_description = "Galaxy's filtering tool" -repository_long_description = "Long description of Galaxy's filtering tool" +repository_description = "Galaxy's filtering tool for test 0000" +repository_long_description = "Long description of Galaxy's filtering tool for test 0000" class TestBasicRepositoryFeatures( ShedTwillTestCase ): diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_0060_workflows.py --- a/test/tool_shed/functional/test_0060_workflows.py +++ b/test/tool_shed/functional/test_0060_workflows.py @@ -2,9 +2,8 @@ import tool_shed.base.test_db_util as test_db_util repository_name = 'filtering_0060' -repository_description = "Galaxy's filtering tool" -repository_long_description = "Long description of Galaxy's filtering tool" -workflow_repository_name = 'filtering_workflow_0060' +repository_description="Galaxy's filtering tool for test 0060" +repository_long_description="Long description of Galaxy's filtering tool for test 0060" workflow_filename = 'Workflow_for_0060_filter_workflow_repository.ga' workflow_name = 'Workflow for 0060_filter_workflow_repository' @@ -54,6 +53,7 @@ 'filtering/filtering_2.2.0.tar', commit_message="Uploaded filtering 2.2.0", remove_repo_files_not_in_tar='No' ) +# raise Exception( self.get_repository_tip( repository ) ) self.load_workflow_image_in_tool_shed( repository, workflow_name, strings_not_displayed=[ '#EBBCB2' ] ) def test_0025_verify_repository_metadata( self ): '''Verify that resetting the metadata does not change it.''' diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_0070_invalid_tool.py --- a/test/tool_shed/functional/test_0070_invalid_tool.py +++ b/test/tool_shed/functional/test_0070_invalid_tool.py @@ -1,12 +1,13 @@ from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os import tool_shed.base.test_db_util as test_db_util -repository_name = 'freebayes_0070' -repository_description = "Galaxy's freebayes tool" -repository_long_description = "Long description of Galaxy's freebayes tool" +repository_name = 'bismark_0070' +repository_description = "Galaxy's bismark wrapper" +repository_long_description = "Long description of Galaxy's bismark wrapper" +category_name = 'Test 0070 Invalid Tool Revisions' -class TestFreebayesRepository( ShedTwillTestCase ): - '''Testing freebayes with tool data table entries, .loc files, and tool dependencies.''' +class TestBismarkRepository( ShedTwillTestCase ): + '''Testing bismark with valid and invalid tool entries.''' def test_0000_create_or_login_admin_user( self ): """Create necessary user accounts and login as an admin user.""" self.logout() @@ -19,14 +20,11 @@ admin_user = test_db_util.get_user( common.admin_email ) assert admin_user is not None, 'Problem retrieving user with email %s from the database' % admin_email admin_user_private_role = test_db_util.get_private_role( admin_user ) - def test_0005_create_category( self ): - """Create a category for this test suite""" - self.create_category( name='Test 0070 Repository With Invalid Tool', description='Tests for a repository with an invalid tool.' ) - def test_0010_create_test_repository_and_upload_tool_xml( self ): - '''Create and populate a freebayes repository. After this test, it should contain one valid tool and one invalid tool.''' + def test_0005_create_category_and_repository( self ): + """Create a category for this test suite, then create and populate a bismark repository. It should contain at least one each valid and invalid tool.""" + category = self.create_category( name=category_name, description='Tests for a repository with invalid tool revisions.' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - category = test_db_util.get_category_by_name( 'Test 0070 Repository With Invalid Tool' ) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, @@ -34,20 +32,18 @@ category_id=self.security.encode_id( category.id ), strings_displayed=[] ) self.upload_file( repository, - 'freebayes/freebayes.xml', + 'bismark/bismark.tar', valid_tools_only=False, strings_displayed=[], - commit_message='Uploaded the tool xml.' ) + commit_message='Uploaded the tool tarball.' ) + self.display_manage_repository_page( repository, strings_displayed=[ 'Invalid tools' ] ) + invalid_revision = self.get_repository_tip( repository ) self.upload_file( repository, - 'filtering/filtering_1.1.0.tar', - valid_tools_only=False, + 'bismark/bismark_methylation_extractor.xml', + valid_tools_only=False, strings_displayed=[], - commit_message='Uploaded the tool xml.', - remove_repo_files_not_in_tar='No' ) - self.display_manage_repository_page( repository, strings_displayed=[ 'Valid tools', 'Invalid tools' ] ) - changeset_revision = self.get_repository_tip( repository ) - self.check_repository_tools_for_changeset_revision( repository, changeset_revision ) - self.check_repository_invalid_tools_for_changeset_revision( repository, - changeset_revision, - strings_displayed=[ 'requires an entry' ], - strings_not_displayed=[] ) + remove_repo_files_not_in_tar='No', + commit_message='Uploaded an updated tool xml.' ) + valid_revision = self.get_repository_tip( repository ) + self.check_repository_tools_for_changeset_revision( repository, valid_revision ) + self.check_repository_invalid_tools_for_changeset_revision( repository, invalid_revision ) diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_1060_install_repository_with_workflow.py --- a/test/tool_shed/functional/test_1060_install_repository_with_workflow.py +++ b/test/tool_shed/functional/test_1060_install_repository_with_workflow.py @@ -2,8 +2,8 @@ import tool_shed.base.test_db_util as test_db_util repository_name = 'filtering_0060' -repository_description = "Galaxy's filtering tool" -repository_long_description = "Long description of Galaxy's filtering tool" +repository_description="Galaxy's filtering tool for test 0060", +repository_long_description="Long description of Galaxy's filtering tool for test 0060", workflow_filename = 'Workflow_for_0060_filter_workflow_repository.ga' workflow_name = 'Workflow for 0060_filter_workflow_repository' diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_1070_invalid_tool.py --- a/test/tool_shed/functional/test_1070_invalid_tool.py +++ b/test/tool_shed/functional/test_1070_invalid_tool.py @@ -1,9 +1,10 @@ from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os import tool_shed.base.test_db_util as test_db_util -repository_name = 'freebayes_0070' -repository_description = "Galaxy's freebayes tool" -repository_long_description = "Long description of Galaxy's freebayes tool" +repository_name = 'bismark_0070' +repository_description = "Galaxy's bismark wrapper" +repository_long_description = "Long description of Galaxy's bismark wrapper" +category_name = 'Test 0070 Invalid Tool Revisions' class TestFreebayesRepository( ShedTwillTestCase ): '''Testing freebayes with tool data table entries, .loc files, and tool dependencies.''' @@ -26,11 +27,11 @@ admin_user_private_role = test_db_util.get_private_role( admin_user ) def test_0005_ensure_existence_of_repository_and_category( self ): '''Create freebayes repository and upload only freebayes.xml. This should result in an error message and invalid tool.''' - self.create_category( name='Test 0070 Repository With Invalid Tool', - description='Tests for a repository with an invalid tool.' ) + self.create_category( name=category_name, + description='Test 1070 for a repository with an invalid tool.' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - category = test_db_util.get_category_by_name( 'Test 0070 Repository With Invalid Tool' ) + category = test_db_util.get_category_by_name( category_name ) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, @@ -39,27 +40,29 @@ strings_displayed=[] ) if self.repository_is_new( repository ): self.upload_file( repository, - 'freebayes/freebayes.xml', + 'bismark/bismark.tar', valid_tools_only=False, - commit_message='Uploaded the invalid tool xml.' ) + strings_displayed=[], + commit_message='Uploaded the tool tarball.' ) self.upload_file( repository, - 'filtering/filtering_1.1.0.tar', - valid_tools_only=False, - commit_message='Uploaded the valid tool xml.', - remove_repo_files_not_in_tar='No' ) + 'bismark/bismark_methylation_extractor.xml', + valid_tools_only=False, + strings_displayed=[], + remove_repo_files_not_in_tar='No', + commit_message='Uploaded an updated tool xml.' ) def test_0010_browse_tool_shed( self ): - """Browse the available tool sheds in this Galaxy instance and preview the freebayes repository.""" + """Browse the available tool sheds in this Galaxy instance and preview the bismark repository.""" self.galaxy_logout() self.galaxy_login( email=common.admin_email, username=common.admin_username ) - self.browse_tool_shed( url=self.url, strings_displayed=[ 'Test 0070 Repository With Invalid Tool' ] ) - category = test_db_util.get_category_by_name( 'Test 0070 Repository With Invalid Tool' ) + self.browse_tool_shed( url=self.url, strings_displayed=[ category_name ] ) + category = test_db_util.get_category_by_name( category_name ) self.browse_category( category, strings_displayed=[ repository_name ] ) self.preview_repository_in_tool_shed( repository_name, common.test_user_1_name, strings_displayed=[ repository_name ] ) def test_0015_install_freebayes_repository( self ): '''Install the test repository without installing tool dependencies.''' self.install_repository( repository_name, common.test_user_1_name, - 'Test 0070 Repository With Invalid Tool', + category_name, install_tool_dependencies=False, new_tool_panel_section='test_1070' ) installed_repository = test_db_util.get_installed_repository_by_name_owner( repository_name, common.test_user_1_name ) @@ -70,11 +73,9 @@ installed_repository.installed_changeset_revision ] self.display_galaxy_browse_repositories_page( strings_displayed=strings_displayed ) self.display_installed_repository_manage_page( installed_repository, - strings_displayed=[ 'simple expressions', 'Invalid tools' ], - strings_not_displayed=[ 'variant detector' ] ) + strings_displayed=[ 'methylation extractor', 'Invalid tools' ], + strings_not_displayed=[ 'bisulfite mapper' ] ) self.verify_tool_metadata_for_installed_repository( installed_repository ) self.update_installed_repository( installed_repository, strings_displayed=[ "there are no updates available" ] ) - assert 'invalid_tools' in installed_repository.metadata, 'No invalid tools were defined in %s.' % installed_repository.name - def test_0020_verify_installed_repository_metadata( self ): - '''Verify that resetting the metadata on an installed repository does not change the metadata.''' - self.verify_installed_repository_metadata_unchanged( repository_name, common.test_user_1_name ) + assert 'invalid_tools' in installed_repository.metadata, 'No invalid tools were defined in %s.' % \ + installed_repository.name diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/functional/test_1200_uninstall_and_reinstall_basic_repository.py --- a/test/tool_shed/functional/test_1200_uninstall_and_reinstall_basic_repository.py +++ b/test/tool_shed/functional/test_1200_uninstall_and_reinstall_basic_repository.py @@ -27,8 +27,8 @@ self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) repository = self.get_or_create_repository( name='filtering_0000', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", + description="Galaxy's filtering tool for test 0000", + long_description="Long description of Galaxy's filtering tool for test 0000", owner=common.test_user_1_name, category_id=self.security.encode_id( category.id ) ) if self.repository_is_new( repository ): @@ -56,8 +56,8 @@ installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name ) self.uninstall_repository( installed_repository, remove_from_disk=True ) strings_not_displayed = [ installed_repository.name, - installed_repository.description, - installed_repository.installed_changeset_revision ] + installed_repository.description, + installed_repository.installed_changeset_revision ] self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed ) def test_0020_reinstall_filtering_repository( self ): '''Reinstall the filtering repository.''' @@ -77,8 +77,8 @@ installed_repository = test_db_util.get_installed_repository_by_name_owner( 'filtering_0000', common.test_user_1_name ) self.uninstall_repository( installed_repository, remove_from_disk=False ) strings_not_displayed = [ installed_repository.name, - installed_repository.description, - installed_repository.installed_changeset_revision ] + installed_repository.description, + installed_repository.installed_changeset_revision ] self.display_galaxy_browse_repositories_page( strings_not_displayed=strings_not_displayed ) def test_0030_reactivate_filtering_repository( self ): '''Reactivate the filtering repository and verify that it now shows up in the list of installed repositories.''' diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/test_data/bismark/bismark.tar Binary file test/tool_shed/test_data/bismark/bismark.tar has changed diff -r eb67f0b3555df7e249c2d8715d75c598dc25055b -r ad04a8d066e7092fb73d5469f1935196923b8ab3 test/tool_shed/test_data/bismark/bismark_methylation_extractor.xml --- /dev/null +++ b/test/tool_shed/test_data/bismark/bismark_methylation_extractor.xml @@ -0,0 +1,306 @@ +<tool id="bismark_methylation_extractor" name="Bismark" version="0.7.7.3"> + <!-- Wrapper compatible with Bismark version 0.7.7 --> + <description>methylation extractor</description> + <!--<version_command>bismark_methylation_extractor version</version_command>--> + <requirements> + <requirement type="set_environment">SCRIPT_PATH</requirement> + <requirement type="package" version="0.12.8">bowtie</requirement> + <requirement type="package" version="2.0.0-beta7">bowtie2</requirement> + </requirements> + <parallelism method="basic"></parallelism> + <command interpreter="python"> + bismark_methylation_extractor.py + + --infile $input + + --bismark_path \$SCRIPT_PATH + + #if $singlePaired.sPaired == "single": + --single-end + #else: + --paired-end + $no_overlap + #end if + + #if str($ignore_bps) != "0": + --ignore $ignore_bps + #end if + + #if $report: + --report-file $o_report + #end if + + #if $comprehensive: + --comprehensive + #end if + + #if $merge_non_cpg: + --merge-non-cpg + #end if + + #if $compress: + --compress $compressed_output + #else: + #if $comprehensive == False and $merge_non_cpg == False: + ##twelfe files + --cpg_ot $cpg_ot + --chg_ot $chg_ot + --chh_ot $chh_ot + --cpg_ctot $cpg_ctot + --chg_ctot $chg_ctot + --chh_ctot $chh_ctot + --cpg_ob $cpg_ob + --chg_ob $chg_ob + --chh_ob $chh_ob + --cpg_ctob $cpg_ctob + --chg_ctob $chg_ctob + --chh_ctob $chh_ctob + #elif $merge_non_cpg and $comprehensive: + ## two files + --non_cpg_context $non_cpg_context + --cpg_context $cpg_context + #elif $comprehensive: + ## three files + --cpg_context $cpg_context + --chg_context $chg_context + --chh_context $chh_context + #elif $merge_non_cpg: + ## eight files + --non_cpg_context_ctot $non_cpg_context_ctot + --non_cpg_context_ot $non_cpg_context_ot + --non_cpg_context_ob $non_cpg_context_ob + --non_cpg_context_ctob $non_cpg_context_ctob + --cpg_ot $cpg_ot + --cpg_ctot $cpg_ctot + --cpg_ob $cpg_ob + --cpg_ctob $cpg_ctob + #end if + ## end compress + #end if + + </command> + <inputs> + <!-- Input Parameters --> + <param name="input" type="data" format="sam" label="SAM file from Bismark bisulfid mapper" /> + <conditional name="singlePaired"> + <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" /> + <when value="paired"> + <param name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="This option avoids scoring overlapping methylation calls twice, in case of overlapping read one and read two" help="" /> + </when> + </conditional> + + <param name="ignore_bps" type="integer" value="0" label="Ignore the first N bp when processing the methylation call string" /> + <param name="comprehensive" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Merge all four possible strand-specific methylation info +into context-dependent output files" help="" /> + <param name="merge_non_cpg" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Merge all non-CpG contexts into one file" help="This will produce eight strand-specific output files, or two output files in comprehensive mode." /> + <param name="report" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Short methylation summary output" /> + <param name="compress" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Compress all result files and output one single file" /> + + </inputs> + <outputs> + <!-- + OT – original top strand + CTOT – complementary to original top strand + OB – original bottom strand + CTOB – complementary to original bottom strand + --> + <data format="tabular" name="o_report" label="${tool.name} on ${on_string}: Report file"> + <filter> ( report is True ) </filter> + </data> + + <!-- default output 12 files --> + <data format="tabular" name="cpg_ot" label="${tool.name} on ${on_string}: CpG original top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chg_ot" label="${tool.name} on ${on_string}: CHG original top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chh_ot" label="${tool.name} on ${on_string}: CHH original top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="cpg_ctot" label="${tool.name} on ${on_string}: CpG complementary to top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chg_ctot" label="${tool.name} on ${on_string}: CHG complementary to top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chh_ctot" label="${tool.name} on ${on_string}: CHH complementary to top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + + <data format="tabular" name="cpg_ob" label="${tool.name} on ${on_string}: CpG original bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chg_ob" label="${tool.name} on ${on_string}: CHG original bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chh_ob" label="${tool.name} on ${on_string}: CHH original bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="cpg_ctob" label="${tool.name} on ${on_string}: CpG complementary to bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chg_ctob" label="${tool.name} on ${on_string}: CHG complementary to bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chh_ctob" label="${tool.name} on ${on_string}: CHH complementary to bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_CpG == False) </filter> + </data> + + <!-- Context-dependent methylation output files (comprehensive option) --> + <data format="tabular" name="cpg_context" label="${tool.name} on ${on_string}: CpG context dependent"> + <filter> ( compress == False and comprehensive) </filter> + </data> + <data format="tabular" name="chg_context" label="${tool.name} on ${on_string}: CHG context dependent"> + <filter> ( compress == False and comprehensive and merge_non_CpG == False) </filter> + </data> + <data format="tabular" name="chh_context" label="${tool.name} on ${on_string}: CHH context dependent"> + <filter> ( compress == False and comprehensive and merge_non_CpG == False) </filter> + </data> + + <data format="tabular" name="non_cpg_context" label="${tool.name} on ${on_string}: Non CpG context dependent"> + <filter> ( compress == False and comprehensive and merge_non_cpg) </filter> + </data> + + <data format="tabular" name="non_cpg_context_ot" label="${tool.name} on ${on_string}: Non CpG context dependent on original top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_cpg) </filter> + </data> + <data format="tabular" name="non_cpg_context_ctot" label="${tool.name} on ${on_string}: Non CpG context dependent on complementary to top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_cpg) </filter> + </data> + <data format="tabular" name="non_cpg_context_ob" label="${tool.name} on ${on_string}: Non CpG context dependent on bottom top strand"> + <filter> ( compress == False and comprehensive == False and merge_non_cpg) </filter> + </data> + <data format="tabular" name="non_cpg_context_ctob" label="${tool.name} on ${on_string}: Non CpG context dependent on complementary to bottom strand"> + <filter> ( compress == False and comprehensive == False and merge_non_cpg) </filter> + </data> + + <data format="gzipped" name="compressed_output" label="${tool.name} on ${on_string}: Result archive."> + <filter> ( compress ) </filter> + </data> + </outputs> + + <tests> + </tests> + + <help> + +**What it does** + +The following is a brief description of all options to control the Bismark_ +methylation extractor. The script reads in a bisulfite read alignment results file +produced by the Bismark bisulfite mapper and extracts the methylation information +for individual cytosines. This information is found in the methylation call field +which can contain the following characters: + + + - X = for methylated C in CHG context (was protected) + - x = for not methylated C CHG (was converted) + - H = for methylated C in CHH context (was protected) + - h = for not methylated C in CHH context (was converted) + - Z = for methylated C in CpG context (was protected) + - z = for not methylated C in CpG context (was converted) + - . = for any bases not involving cytosines + + +The methylation extractor outputs result files for cytosines in CpG, CHG and CHH +context (this distinction is actually already made in Bismark itself). As the methylation +information for every C analysed can produce files which easily have tens or even hundreds of +millions of lines, file sizes can become very large and more difficult to handle. The C +methylation info additionally splits cytosine methylation calls up into one of the four possible +strands a given bisulfite read aligned against: + + - OT = original top strand + - CTOT = complementary to original top strand + + - OB = original bottom strand + - CTOB = complementary to original bottom strand + +Thus, by default twelve individual output files are being generated per input file (unless +--comprehensive is specified, see below). The output files can be imported into a genome +viewer, such as SeqMonk, and re-combined into a single data group if desired (in fact +unless the bisulfite reads were generated preserving directionality it doesn't make any +sense to look at the data in a strand-specific manner). Strand-specific output files can +optionally be skipped, in which case only three output files for CpG, CHG or CHH context +will be generated. For both the strand-specific and comprehensive outputs there is also +the option to merge both non-CpG contexts (CHG and CHH) into one single non-CpG context. + + +.. _Bismark: http://www.bioinformatics.babraham.ac.uk/projects/bismark/ + + +It is developed by Krueger F and Andrews SR. at the Babraham Institute. Krueger F, Andrews SR. (2011) Bismark: a flexible aligner and methylation caller for Bisulfite-Seq applications. Bioinformatics, 27, 1571-2. + +------- + +**Bismark settings** + +All of the options have a default value. You can change any of them. If any Bismark function is missing please contact the tool author or your Galaxy admin. + +------ + +**Outputs** + +The output files are in the following format (tab delimited):: + + + Column Description + -------- -------------------------------------------------------- + 1 seq-ID + 2 strand + 3 chromosome + 4 position + 5 methylation call + + + * Methylated cytosines receive a '+' orientation, + * Unmethylated cytosines receive a '-' orientation. + +------ + +**OPTIONS** + +Input:: + + -s/--single-end Input file(s) are Bismark result file(s) generated from single-end + read data. Specifying either --single-end or --paired-end is + mandatory. + + -p/--paired-end Input file(s) are Bismark result file(s) generated from paired-end + read data. Specifying either --paired-end or --single-end is + mandatory. + + --no_overlap For paired-end reads it is theoretically possible that read_1 and + read_2 overlap. This option avoids scoring overlapping methylation + calls twice. Whilst this removes a bias towards more methylation calls + towards the center of sequenced fragments it can de facto remove + a good proportion of the data. + + --ignore INT Ignore the first INT bp at the 5' end of each read when processing the + methylation call string. This can remove e.g. a restriction enzyme site + at the start of each read. + +Output:: + + --comprehensive Specifying this option will merge all four possible strand-specific + methylation info into context-dependent output files. The default + contexts are: + - CpG context + - CHG context + - CHH context + + --merge_non_CpG This will produce two output files (in --comprehensive mode) or eight + strand-specific output files (default) for Cs in + - CpG context + - non-CpG context + + --report Prints out a short methylation summary as well as the paramaters used to run + this script. + + + </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.