root/galaxy-central/tools/unix_tools/find_and_replace.xml @ 3

リビジョン 3, 5.9 KB (コミッタ: kohda, 14 年 前)

Install Unix tools  http://hannonlab.cshl.edu/galaxy_unix_tools/galaxy.html

行番号 
1<tool id="cshl_find_and_replace" name="Find and Replace">
2  <description>text</description>
3  <command interpreter="perl">
4        find_and_replace.pl
5        #if $searchwhere.choice == "column":
6                -c $searchwhere.column
7        #end if
8        -o $output
9        $caseinsensitive
10        $wholewords
11        $skip_first_line
12        $is_regex
13        '$url_paste'
14        '$file_data'
15        '$input'
16  </command>
17  <inputs>
18    <param format="txt" name="input" type="data" label="File to process" />
19
20    <!-- Note: the parameter ane MUST BE 'url_paste' -
21         This is a hack in the galaxy library (see ./lib/galaxy/util/__init__.py line 142)
22         If the name is 'url_paste' the string won't be sanitized, and all the non-alphanumeric characters
23         will be passed to the shell script -->
24         <param name="url_paste" type="text" size="20" label="Find pattern" help="Use simple text, or a valid regular expression (without backslashes // ) " >
25                <validator type="expression" message="Invalid Program!">value.find('\'')==-1</validator>
26        </param>
27
28         <param name="file_data" type="text" size="20" label="Replace with" help="Use simple text, or &amp; (ampersand) and \\1 \\2 \\3 to refer to matched text. See examples below." >
29                <validator type="expression" message="Invalid Program!">value.find('\'')==-1</validator>
30        </param>
31
32        <param name="is_regex" type="boolean" checked="false" truevalue="-r" falsevalue="" label="Find-Pattern is a regular expression"
33                help="see help section for details." />
34
35        <param name="caseinsensitive" type="boolean" checked="false" truevalue="-i" falsevalue="" label="Case-Insensitive search"
36                help="" />
37
38        <param name="wholewords" type="boolean" checked="false" truevalue="-w" falsevalue="" label="find whole-words"
39                help="ignore partial matches (e.g. 'apple' will not match 'snapple') " />
40
41        <param name="skip_first_line" type="boolean" checked="false" truevalue="-s" falsevalue="" label="Ignore first line"
42                help="Select this option if the first line contains column headers. Text in the line will not be replaced. " />
43
44        <conditional name="searchwhere">
45                <param name="choice" type="select" label="Replace text in">
46                        <option value="line" selected="true">entire line</option>
47                        <option value="column">specific column</option>
48                </param>
49
50                <when value="line">
51                </when>
52
53                <when value="column">
54                        <param name="column" label="in column" type="data_column" data_ref="input" accept_default="true" />
55                </when>
56        </conditional>
57  </inputs>
58
59  <outputs>
60    <data format="input" name="output" metadata_source="input" />
61  </outputs>
62
63<help>
64
65**What it does**
66
67This tool finds &amp; replaces text in an input dataset.
68
69.. class:: infomark
70
71The **pattern to find** can be a simple text string, or a perl **regular expression** string (depending on *pattern is a regex* check-box).
72
73.. class:: infomark
74
75When using regular expressions, the **replace pattern** can contain back-references ( e.g. \\1 )
76
77.. class:: infomark
78
79This tool uses Perl regular expression syntax.
80
81-----
82
83**Examples of *regular-expression* Find Patterns**
84
85- **HELLO**     The word 'HELLO' (case sensitive).
86- **AG.T**      The letters A,G followed by any single character, followed by the letter T.
87- **A{4,}**     Four or more consecutive A's.
88- **chr2[012]\\t**       The words 'chr20' or 'chr21' or 'chr22' followed by a tab character.
89- **hsa-mir-([^ ]+)**        The text 'hsa-mir-' followed by one-or-more non-space characters. When using parenthesis, the matched content of the parenthesis can be accessed with **\1** in the **replace** pattern.
90
91
92**Examples of Replace Patterns**
93
94- **WORLD**  The word 'WORLD' will be placed whereever the find pattern was found.
95- **FOO-&amp;-BAR**  Each time the find pattern is found, it will be surrounded with 'FOO-' at the begining and '-BAR' at the end. **&amp;** (ampersand) represents the matched find pattern.
96- **\\1**   The text which matched the first parenthesis in the Find Pattern.
97
98
99-----
100
101**Example 1**
102
103**Find Pattern:** HELLO
104**Replace Pattern:** WORLD
105**Regular Expression:** no
106**Replace what:** entire line
107
108Every time the word HELLO is found, it will be replaced with the word WORLD.
109
110-----
111
112**Example 2**
113
114**Find Pattern:** ^chr
115**Replace Pattern:** (empty)
116**Regular Expression:** yes
117**Replace what:** column 11
118
119If column 11 (of every line) begins with ther letters 'chr', they will be removed. Effectively, it'll turn "chr4" into "4" and "chrXHet" into "XHet"
120
121
122-----
123
124**Perl's Regular Expression Syntax**
125
126The Find &amp; Replace tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text.
127
128- **( ) { } [ ] . * ? + \\ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for.
129- **^** matches the beginning of a string(but not an internal line).
130- **(** .. **)** groups a particular pattern.
131- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern.
132
133  - **{n}** The preceding item is matched exactly n times.
134  - **{n,}** The preceding item ismatched n or more times.
135  - **{n,m}** The preceding item is matched at least n times but not more than m times.
136
137- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**.
138- **.** Matches any single character except a newline.
139- ***** The preceding item will be matched zero or more times.
140- **?** The preceding item is optional and matched at most once.
141- **+** The preceding item will be matched one or more times.
142- **^** has two meaning:
143  - matches the beginning of a line or string.
144  - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets.
145- **$** matches the end of a line or string.
146- **\\|** Separates alternate possibilities.
147- **\\d** matches a single digit
148- **\\w** matches a single letter or digit or an underscore.
149- **\\s** matches a single white-space (space or tabs).
150
151
152</help>
153
154</tool>
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。