0
|
1 <tool id="directory_table_reader" name="Directory Data Reader" version="0.2">
|
|
2 <description>Reads data from preconfigured directories table.</description>
|
|
3 <command interpreter="python">
|
|
4 <![CDATA[
|
|
5 directory_copier.py
|
|
6 --ending .${directory.fields.original_extension}
|
|
7 --new_ending .${directory.fields.galaxy_extension}
|
|
8 #if $results.required=="data"
|
|
9 --new_ending .${directory.fields.galaxy_extension}
|
|
10 --decompress ${directory.fields.decompress}
|
|
11 #if $results.start
|
1
|
12 --start "$results.start"
|
0
|
13 #end if
|
|
14 #if $results.last
|
1
|
15 --last "$results.last"
|
|
16 #end if
|
|
17 #if $results.regex
|
|
18 --regex "$results.regex"
|
0
|
19 #end if
|
|
20 #end if
|
|
21 --path ${directory.fields.path}
|
|
22 --list ${listing}
|
|
23 ]]>
|
|
24 </command>
|
|
25 <inputs>
|
|
26 <param name="directory" type="select" label="Directory to import data from">
|
|
27 <options from_data_table="directory_data"/>
|
|
28 <validator type="no_options" message="No Data Directory Setup"/>
|
|
29 </param>
|
|
30 <param name="list_name" type="text" size="25" label="output name" value="input data"/>
|
|
31 <conditional name="results">
|
|
32 <param name="required" type="select" label="Download data or just directory listing" help="Select type of action required.">
|
|
33 <option value="data" selected="true">Data and listing of selected type</option>
|
|
34 <option value="listing">Get listing of selected file types </option>
|
|
35 </param>
|
|
36 <when value="data">
|
|
37 <param name="start" type="text" value="" label="String which must be at the start of each file name" />
|
|
38 <param name="last" type="text" value="" label="String which must be at the end of the file name (excluding the file type)" />
|
1
|
39 <param name="regex" type="text" value="" label="Regex pattern which must somewhere in the file name (excluding the file type)" >
|
|
40 <sanitizer>
|
|
41 <valid initial="string.printable"/>
|
|
42 </sanitizer>
|
|
43 </param>
|
0
|
44 </when>
|
|
45 <when value="listing"/>
|
|
46 </conditional>
|
|
47 </inputs>
|
|
48 <outputs>
|
|
49 <data format="txt" name="listing" label="List of files in $list_name">
|
|
50 </data>
|
|
51 <!-- Ideally galaxy can get the type based on the file extensions. If so just add the type here -->
|
|
52 <collection type="list" label="$list_name" name="data_collection">
|
|
53 <filter>(results['required'] == 'data')</filter>
|
|
54 <discover_datasets pattern="__designation_and_ext__" directory="output" visible="true" />
|
|
55 </collection>
|
|
56 </outputs>
|
|
57 <tests>
|
|
58 <test>
|
|
59 <param name="directory" value="fastq.gz_files_id" />
|
|
60 <param name="list_name" value="test_files" />
|
|
61 <param name="results|required" value="listing"/>
|
|
62 <output name="listing">
|
|
63 <assert_contents>
|
|
64 <has_line line="sample1.fastqsanger" />
|
|
65 <has_line line="other.fastqsanger" />
|
|
66 </assert_contents>
|
|
67 </output>
|
|
68 </test>
|
|
69 <test>
|
|
70 <param name="directory" value="fastq.gz_files_id" />
|
|
71 <output name="listing_fastq_gz">
|
|
72 <assert_contents>
|
|
73 <has_line line="sample1.fastqsanger" />
|
|
74 </assert_contents>
|
|
75 </output>
|
|
76 <output_collection name="data_collection" type="list">
|
|
77 <element name="sample1" ftype="fastqsanger" file="sample1.fastq" />
|
|
78 <element name="other" ftype="fastqsanger" file="other.fastq" />
|
|
79 </output_collection>
|
|
80 </test>
|
|
81 <test>
|
|
82 <param name="directory" value="fastq_files_id" />
|
|
83 <param name="results|start" value="sam" />
|
|
84 <output name="listing_fastq">
|
|
85 <assert_contents>
|
|
86 <has_line line="sample1.fastq" />
|
1
|
87 <not_has_text text="other.fastq" />
|
|
88 </assert_contents>
|
|
89 </output>
|
|
90 <output_collection name="data_collection" type="list">
|
|
91 <element name="sample1" ftype="fastq" file="sample1.fastq" />
|
|
92 </output_collection>
|
|
93 </test>
|
|
94 <test>
|
|
95 <param name="directory" value="fastq_files_id" />
|
|
96 <param name="results|regex" value="le.?" />
|
|
97 <output name="listing_fastq">
|
|
98 <assert_contents>
|
|
99 <has_line line="sample1.fastq" />
|
|
100 <not_has_text text="other.fastq" />
|
0
|
101 </assert_contents>
|
|
102 </output>
|
|
103 <output_collection name="data_collection" type="list">
|
|
104 <element name="sample1" ftype="fastq" file="sample1.fastq" />
|
|
105 </output_collection>
|
|
106 </test>
|
|
107 </tests>
|
|
108
|
|
109 <help>
|
|
110 <![CDATA[
|
|
111 This tool will lookup files on the Galaxy server machine, including mounted directories.
|
|
112
|
|
113 Only directories and ending combinations set up by a Galaxy admin can be listed or loaded in this way.
|
|
114 These endings are case senitive.
|
|
115
|
|
116 ====
|
|
117
|
|
118 The data options will look for all files that have a particular ending in the selected directory.
|
|
119
|
|
120 The tool will return two things.
|
|
121
|
|
122 1. A Dataset collection of all the detected files. (If data requested)
|
|
123
|
|
124 2. A file with the names of all the detected files. These will be sorted in the same order as galaxy builds the dataset collection.
|
|
125
|
|
126 The files can be filtered by setting a specific start string for the file name.
|
|
127 Only files that start with this string (case senstive) will be included.
|
|
128
|
|
129 Files can also be filter for the last part before the file extsentions.
|
|
130
|
1
|
131 Files can also be filtered by a regex pattern.
|
|
132 Only files that contain the regex string will be included.
|
|
133 This uses the python search funtion so as long as the Regex pattern is found somewhere in file name (excluding extension).
|
|
134
|
|
135 The three filter start, last and regex if supplied work indepently, so only files that pass all supplied test will be included.
|
|
136
|
|
137 Note: Before applying the last and regex test the ending (includig the . just before the ending are removed)
|
|
138
|
0
|
139 Assuming the directory has:
|
1
|
140 C01_R1_001.fasta C01_R2_001.fatsa C02_R1_001.fasta C02_R2_002.fatsa
|
0
|
141
|
1
|
142 Setting start C01 will return just the C01 files: C01_R1_001.fasta C01_R2_002.fatsa
|
0
|
143
|
|
144 Setting last R1_001 will return the read1 files: C01_R1_001.fasta C02_R1_001.fasta
|
|
145
|
1
|
146 Setting regex R2_00.$ will return the R2 files: C01_R2_001.fatsa C02_R2_002.fatsa
|
|
147
|
0
|
148 As Galaxy detects the file type based on the extension this tool will change the exstension as setup by the admin.
|
|
149
|
|
150 This tool will unzip gz files if requested to by the admin,
|
|
151
|
|
152 ]]>
|
|
153 </help>
|
|
154 <citations>
|
|
155 </citations>
|
|
156
|
|
157 </tool>
|