Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3940 from jmchilton/collection_op_filter_from_file
Collection Operation - Filtering from a File
- Loading branch information
Showing
10 changed files
with
341 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
<tool id="__FILTER_FROM_FILE__" | ||
name="Filter List" | ||
version="1.0.0" | ||
tool_type="filter_from_file"> | ||
<description>from contents of a file</description> | ||
<type class="FilterFromFileTool" module="galaxy.tools" /> | ||
<action module="galaxy.tools.actions.model_operations" | ||
class="ModelOperationToolAction"/> | ||
<inputs> | ||
<param type="data_collection" name="input" label="Input Collection" help="A list whose elements will be filtered."/> | ||
<conditional name="how"> | ||
<param type="select" name="how_filter" label="How should the elements to remove be determined?"> | ||
<option value="remove_if_absent" selected="true">Remove if identifiers are absent from supplied text file.</option> | ||
<option value="remove_if_present">Remove if identifiers are present in supplied text file.</option> | ||
</param> | ||
<when value="remove_if_absent"> | ||
<param type="data" name="filter_source" format="txt" label="Filter out identifiers absent from" /> | ||
</when> | ||
<when value="remove_if_present"> | ||
<param type="data" name="filter_source" format="txt" label="Filter out identifiers present in" /> | ||
</when> | ||
</conditional> | ||
</inputs> | ||
<outputs> | ||
<collection name="output_filtered" format_source="input" type_source="input" label="${on_string} (filtered)" > | ||
</collection> | ||
<collection name="output_discarded" format_source="input" type_source="input" label="${on_string} (discarded)" > | ||
</collection> | ||
</outputs> | ||
<tests> | ||
<test> | ||
<param name="input"> | ||
<collection type="list"> | ||
<element name="i1" value="simple_line.txt" /> | ||
<element name="i2" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</param> | ||
<param name="how_filter" value="remove_if_present" /> | ||
<param name="filter_source" value="filter_labels_1.txt" ftype="txt" /> | ||
<output_collection name="output_filtered" type="list"> | ||
<element name="i1"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</output_collection> | ||
<output_collection name="output_discarded" type="list"> | ||
<element name="i2"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a different line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</output_collection> | ||
</test> | ||
<test> | ||
<param name="input"> | ||
<collection type="list"> | ||
<element name="i1" value="simple_line.txt" /> | ||
<element name="i2" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</param> | ||
<param name="how_filter" value="remove_if_absent" /> | ||
<param name="filter_source" value="filter_labels_1.txt" ftype="txt" /> | ||
<output_collection name="output_filtered" type="list"> | ||
<element name="i2"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a different line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</output_collection> | ||
<output_collection name="output_discarded" type="list"> | ||
<element name="i1"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</output_collection> | ||
</test> | ||
</tests> | ||
<help><![CDATA[ | ||
.. class:: infomark | ||
This tool will take an input list and a text file with identifiers to | ||
filter the list with. It will build two new lists - one "filtered" to | ||
contain only the supplied identifiers and one of the discarded elements. | ||
This tool will create new history datasets from your collection | ||
but your quota usage will not increase. | ||
]]></help> | ||
</tool> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
<tool id="__RELABEL_FROM_FILE__" | ||
name="Relabel List Identifiers" | ||
version="1.0.0" | ||
tool_type="relabel_from_file"> | ||
<description>from contents of a file</description> | ||
<type class="RelabelFromFileTool" module="galaxy.tools" /> | ||
<action module="galaxy.tools.actions.model_operations" | ||
class="ModelOperationToolAction"/> | ||
<inputs> | ||
<param type="data_collection" name="input" label="Input Collection" help="A list whose identifiers will be relabelled."/> | ||
<conditional name="how"> | ||
<param type="select" name="how_select" label="How should the new labels be specified?"> | ||
<option value="txt">Using lines in a simple text file.</option> | ||
<option value="tabular">Map original identifiers to new ones using a two column table.</option> | ||
</param> | ||
<when value="txt"> | ||
<param type="data" name="labels" format="txt" label="New Identifiers" /> | ||
<param name="strict" type="boolean" label="Ensure strict mapping" help="If selected, the target file must contain exactly the correct number of lines." truevalue="true" falsevalue="false" /> | ||
</when> | ||
<when value="tabular"> | ||
<param type="data" name="labels" format="tabular" label="New Identifiers" /> | ||
<param name="strict" type="boolean" label="Ensure strict mapping" help="If selected, the target file must contain exactly the correct number of lines and each input identifier must match exactly one element of the input collection." truevalue="true" falsevalue="false" /> | ||
</when> | ||
</conditional> | ||
</inputs> | ||
<outputs> | ||
<collection name="output" format_source="input" type_source="input" label="${on_string} (relabelled)" > | ||
</collection> | ||
</outputs> | ||
<tests> | ||
<test> | ||
<param name="input"> | ||
<collection type="list:paired"> | ||
<element name="i1"> | ||
<collection type="paired"> | ||
<element name="forward" value="simple_line.txt" /> | ||
<element name="reverse" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</element> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="txt" /> | ||
<param name="labels" value="new_labels_1.txt" ftype="txt" /> | ||
<output_collection name="output" type="list:paired"> | ||
<element name="new_i1"> | ||
<element name="forward"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
<element name="reverse"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a different line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</element> | ||
</output_collection> | ||
</test> | ||
<test> | ||
<param name="input"> | ||
<collection type="list:paired"> | ||
<element name="i1"> | ||
<collection type="paired"> | ||
<element name="forward" value="simple_line.txt" /> | ||
<element name="reverse" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</element> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="tabular" /> | ||
<param name="labels" value="new_labels_2.txt" ftype="tabular" /> | ||
<output_collection name="output" type="list:paired"> | ||
<element name="new_i1"> | ||
<element name="forward"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
<element name="reverse"> | ||
<assert_contents> | ||
<has_text_matching expression="^This is a different line of text.\n$" /> | ||
</assert_contents> | ||
</element> | ||
</element> | ||
</output_collection> | ||
</test> | ||
<!-- test strict --> | ||
<test expect_failure="true"> | ||
<param name="input"> | ||
<collection type="list:paired"> | ||
<element name="wrongi"> | ||
<collection type="paired"> | ||
<element name="forward" value="simple_line.txt" /> | ||
<element name="reverse" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</element> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="tabular" /> | ||
<param name="labels" value="new_labels_2.txt" ftype="tabular" /> | ||
</test> | ||
<test expect_failure="true"> | ||
<param name="input"> | ||
<collection type="list"> | ||
<element name="i1" value="simple_line.txt" /> | ||
<element name="i3" value="simple_line_alternative.txt" /> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="txt" /> | ||
<param name="labels" value="new_labels_1.txt" ftype="txt" /> | ||
</test> | ||
<!-- test label bad characters --> | ||
<test expect_failure="true"> | ||
<param name="input"> | ||
<collection type="list"> | ||
<element name="i1" value="simple_line.txt" /> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="txt" /> | ||
<param name="labels" value="new_labels_bad_1.txt" ftype="txt" /> | ||
</test> | ||
<!-- test label bad because of duplicates --> | ||
<test expect_failure="true"> | ||
<param name="input"> | ||
<collection type="list"> | ||
<element name="i1" value="simple_line.txt" /> | ||
<element name="i2" value="simple_line.txt" /> | ||
</collection> | ||
</param> | ||
<param name="how_select" value="txt" /> | ||
<param name="labels" value="new_labels_bad_2.txt" ftype="txt" /> | ||
</test> | ||
</tests> | ||
<help><![CDATA[ | ||
.. class:: infomark | ||
This tool will take an input list and a text file with new identifiers | ||
and build a new list with the same datasets but these new identifiers. | ||
The order and number of entries in the text file must match the order | ||
of the items you want to rename in your dataset collection. | ||
Alternatively a tabular file may be supplied, where the first column | ||
if the current identifier that should be renamed, and the second column | ||
contains the new label. This file may contain less entries than items | ||
in the collection. In that case only matching list identifiers will be | ||
relabeled. | ||
This tool will create new history datasets from your collection | ||
but your quota usage will not increase. | ||
]]></help> | ||
</tool> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
i2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
new_i1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
i1 new_i1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
new_i; rm -rf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
newi1 | ||
newi1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters