comparison gffread.xml @ 19:d928c656a8f3 draft

Uploaded
author enios
date Sat, 22 May 2021 07:35:58 +0000
parents
children
comparison
equal deleted inserted replaced
18:11d232ed904c 19:d928c656a8f3
1 <tool id="gffread" name="gffreadB" version="@VERSION@.0">
2 <description>Filters and/or converts GFF3/GTF2 records</description>
3 <requirements>
4 <container type="docker">343307676715.dkr.ecr.eu-central-1.amazonaws.com/galaxy:gffread</container>
5 </requirements>
6 <macros>
7 <token name="@VERSION@">0.11.6</token>
8 <xml name="fasta_output_select">
9 <param name="fa_outputs" type="select" display="checkboxes" multiple="true" label="Select fasta outputs">
10 <option value="-w exons.fa">fasta file with spliced exons for each GFF transcript (-w exons.fa)</option>
11 <option value="-x cds.fa">fasta file with spliced CDS for each GFF transcript (-x cds.fa)</option>
12 <option value="-y pep.fa">protein fasta file with the translation of CDS for each record (-y pep.fa)</option>
13 <option value="-W">for each fasta: record the exon coordinates projected onto the spliced sequence (-W)</option>
14 </param>
15 </xml>
16 <xml name="ref_filtering_select">
17 <param name="ref_filtering" type="select" display="checkboxes" multiple="true" label="reference based filters">
18 <option value="-N">discard multi-exon mRNAs that have any intron with a non-canonical splice site consensus, i.e. not GT-AG, GC-AG or AT-AC (-N)</option>
19 <option value="-J">discard any mRNAs that either lack initial START codon or the terminal STOP codon, or have an in-frame stop codon (-J)</option>
20 <option value="-V">discard any mRNAs with CDS having in-frame stop codons (-V)</option>
21 <option value="-H">check and adjust the starting CDS phase if the original phase leads to a translation with an in-frame stop codon (-H with -V)</option>
22 <!-- gffread bug: B not in missing from param to the arg parser
23 <option value="-B">single-exon transcripts are also checked on the opposite strand (-B with -V)</option>
24 -->
25 </param>
26 </xml>
27 <xml name="trackname">
28 <param name="tname" type="text" value="" optional="true" label="Trackname to use in the second column of each GFF output line" help="(-t track_name}">
29 <validator type="regex">\w+</validator>
30 </param>
31 </xml>
32 <xml name="merge_opts">
33 <option value="-K">also collapse shorter, fully contained transcripts with fewer introns than the container (-K)</option>
34 <option value="-Q">remove the containment restriction: multi-exon transcripts will be collapsed if just their introns match, while single-exon transcripts can partially overlap 80% (-Q)</option>
35 <option value="-d dupinfo">output collapsing info (-d dupinfo)</option>
36 </xml>
37 <xml name="cluster_opts">
38 <option value="--force-exons"> make sure that the lowest level GFF features are printed as 'exon' features (--force-exons)</option>
39 <option value="-Z">merge close exons into a single exon (for intron size &lt; 4) (-Z)</option>
40 </xml>
41 <xml name="merge_opt_sel">
42 <param name="merge_options" type="select" display="checkboxes" multiple="true" label="Merge options">
43 <expand macro="cluster_opts" />
44 <expand macro="merge_opts" />
45 </param>
46 </xml>
47 <xml name="cluster_opt_sel">
48 <param name="merge_options" type="select" display="checkboxes" multiple="true" label="Cluster options">
49 <expand macro="cluster_opts" />
50 </param>
51 </xml>
52 </macros>
53 <command detect_errors="aggressive">
54 <![CDATA[
55 #if $reference_genome.source == 'history':
56 ln -s '$reference_genome.genome_fasta' genomeref.fa &&
57 #end if
58 gffread '$input'
59 #if $reference_genome.source == 'cached':
60 -g '${reference_genome.fasta_indexes.fields.path}'
61 #if $reference_genome.ref_filtering and str($reference_genome.ref_filtering) != '':
62 #echo ' '.join(str($reference_genome.ref_filtering).split(','))
63 #end if
64 #elif $reference_genome.source == 'history':
65 -g genomeref.fa
66 #if $reference_genome.ref_filtering and str($reference_genome.ref_filtering) != '':
67 #echo ' '.join(str($reference_genome.ref_filtering).split(','))
68 #end if
69 #end if
70 #if $filtering and str($filtering) != '':
71 #echo " "
72 #echo ' '.join(str($filtering).split(','))
73 #end if
74 #if $maxintron and $maxintron > 0:
75 -i $maxintron
76 #end if
77 #if $region.region_filter == 'filter':
78 -r '$region.range' $region.discard_partial
79 #end if
80 #if $merging.merge_sel != 'none':
81 $merging.merge_cmd
82 #if $merging.merge_options:
83 #echo ' '.join(str($merging.merge_options).split(','))
84 #end if
85 #end if
86 #if $chr_replace:
87 -m '$chr_replace'
88 #end if
89
90 $full_gff_attribute_preservation
91 $decode_url
92 $expose
93
94 ##
95 ## Although documented, does not appear to be used in the gffread code
96 ## #if $seq_info:
97 ## -A -s "$seq_info"
98 ## #end if
99 ##
100 ## outputs
101 #if $reference_genome.source != 'none':
102 #if $reference_genome.fa_outputs and str($reference_genome.fa_outputs) != '':
103 #echo ' ' + ' '.join(str($reference_genome.fa_outputs).split(','))
104 #end if
105 #end if
106 #if $gffs.gff_fmt != 'none':
107 #if $gffs.tname:
108 -t '$gffs.tname'
109 #end if
110 #if $gffs.gff_fmt == 'gff':
111 #if $input.datatype.file_ext == 'gft':
112 $gffs.ensembl
113 #end if
114 $gffs.output_cmd
115 #elif $gffs.gff_fmt == 'gtf':
116 $gffs.output_cmd
117 #end if
118 #end if
119 ]]>
120 </command>
121 <inputs>
122 <param name="input" type="data" format="gff3,gtf" label="Input GFF3 or GTF feature file"/>
123 <!-- filtering -->
124 <param name="filtering" type="select" display="checkboxes" multiple="true" label="filters">
125 <option value="-U">discard single-exon transcripts (-U)</option>
126 <option value="-C">coding only: discard mRNAs that have no CDS feature (-C)</option>
127 <option value="-G">only parse additional exon attributes from the first exon and move them to the mRNA level (useful for GTF input) (-G)</option>
128 <option value="-O">process also non-transcript GFF records (by default non-transcript records are ignored) (-O)</option>
129 <option value="--no-pseudo">filter out records matching the 'pseudo' keyword (--no-pseudo)</option>
130 </param>
131 <conditional name="region">
132 <param name="region_filter" type="select" label="Filter by genome region">
133 <option value="none">No</option>
134 <option value="filter">Yes</option>
135 </param>
136 <when value="none"/>
137 <when value="filter">
138 <param name="range" type="text" value="" label="Only show transcripts overlapping coordinate range">
139 <help><![CDATA[
140 (-r [['strand']'chr':]'start'..'end') <br>
141 examples: <br>
142 1000..500000 <br>
143 chr1:1000..500000 <br>
144 +chr1:1000..500000 <br>
145 -chr1:1000..500000
146 ]]>
147 </help>
148 <validator type="regex">(([+-])?(\w+:))?\d+\.\.\d+</validator>
149 </param>
150 <param name="discard_partial" type="boolean" truevalue="-R" falsevalue="" checked="false"
151 label="Discard all transcripts that are not fully contained within the given range" help="(-R)"/>
152 </when>
153 </conditional>
154 <param name="maxintron" type="integer" value="" optional="true" min="0" label="Filter out transcipts with large introns"
155 help="If set, discard transcripts having an intron larger (-i max_intron)"/>
156 <param name="chr_replace" type="data" format="tabular" optional="true" label="Replace reference sequence names" >
157 <help><![CDATA[(-m chr_replace) <br>
158 chr_replace is a reference sequence replacement table consisting of 2 columns: "original_ref_ID" "new_ref_ID"<br>
159 It is useful for switching between Ensembl and UCSC naming conventions <br>
160 NOTE: GFF records on reference sequences that are not found among the "original_ref_ID" entries in this file will be filtered out
161 ]]>
162 </help>
163 </param>
164
165 <!-- Although documented, does not appear to be used in the gffread code
166 <param name="seq_info" type="data" format="tabular" optional="true" label="Use the description field as the value for a 'descr' attribute to the GFF record">
167 <help>
168 (-s seq_info.fsize -A) useful with mRNA/EST/protein mappings &lt;br&gt;
169 seq_info input file is a 3 column tab-delimited file providing this info for each of the mapped sequences: &lt;br&gt;
170 "seq-name" "seq-length" "seq-description" &lt;br&gt;
171 </help>
172 </param>
173 -->
174
175 <!-- merging -->
176 <conditional name="merging">
177 <param name="merge_sel" type="select" label="Transcript merging" help="(-M/--merge or --cluster-only)">
178 <option value="none">none</option>
179 <option value="merge">merge: cluster the input transcripts into loci, collapsing matching transcripts</option>
180 <option value="cluster">cluster-only: merge but without collapsing matching transcripts</option>
181 </param>
182 <when value="none"/>
183 <when value="merge">
184 <param name="merge_cmd" type="hidden" value="--merge"/>
185 <expand macro="merge_opt_sel" />
186 </when>
187 <when value="cluster">
188 <param name="merge_cmd" type="hidden" value="--cluster-only"/>
189 <expand macro="cluster_opt_sel" />
190 </when>
191 </conditional>
192 <!-- reference sequence file -->
193 <!-- Error: -g option is required for options -w, -x, -y, -V, -N, -M -->
194 <conditional name="reference_genome">
195 <param name="source" type="select" label="Reference Genome" help="(-g genome.fasta) NOTE: Required for fasta outputs">
196 <option value="none">none</option>
197 <option value="cached"></option>
198 <option value="history">From your history</option>
199 </param>
200 <when value="none">
201 </when>
202 <when value="cached">
203 <param name="fasta_indexes" type="select" label="Source FASTA Sequence">
204 <options from_data_table="all_fasta"/>
205 </param>
206 <expand macro="ref_filtering_select" />
207 <expand macro="fasta_output_select" />
208 </when>
209 <when value="history">
210 <param name="genome_fasta" type="data" format="fasta" label="Genome Reference Fasta"/>
211 <expand macro="ref_filtering_select" />
212 <expand macro="fasta_output_select" />
213 </when>
214 </conditional>
215
216 <!-- outputs -->
217 <conditional name="gffs">
218 <param name="gff_fmt" type="select" label="Feature File Output" help="(-o output.gff3|output.gtf)">
219 <option value="none">none</option>
220 <option value="gff">GFF</option>
221 <option value="gtf">GTF</option>
222 </param>
223 <when value="none">
224 </when>
225 <when value="gff">
226 <param name="output_cmd" type="hidden" value="-o output.gff3"/>
227 <param name="ensembl" type="boolean" truevalue="-L" falsevalue="" checked="false" label="Ensembl GTF to GFF3 conversion" help="(-L)"/>
228 <expand macro="trackname" />
229 </when>
230 <when value="gtf">
231 <param name="output_cmd" type="hidden" value="-T -o output.gtf"/>
232 <expand macro="trackname" />
233 </when>
234 </conditional>
235
236 <param name="full_gff_attribute_preservation" type="boolean" truevalue="-F" falsevalue="" checked="false"
237 label="full GFF attribute preservation (all attributes are shown)" help="(-F)"/>
238 <param name="decode_url" type="boolean" truevalue="-D" falsevalue="" checked="false"
239 label="decode url encoded characters within attributes" help="(-D)"/>
240 <param name="expose" type="boolean" truevalue="-E" falsevalue="" checked="false"
241 label="warn about duplicate transcript IDs and other potential problems with the given GFF/GTF records" help="(-E)"/>
242
243 </inputs>
244 <outputs>
245 <data name="output_gff" format="gff3" metadata_source="input" label="${tool.name} on ${on_string}: gff3" from_work_dir="output.gff3">
246 <filter>gffs['gff_fmt'] == 'gff'</filter>
247 </data>
248 <data name="output_gtf" format="gtf" metadata_source="input" label="${tool.name} on ${on_string}: gtf" from_work_dir="output.gtf">
249 <filter>gffs['gff_fmt'] == 'gtf'</filter>
250 </data>
251 <data name="output_exons" format="fasta" label="${tool.name} on ${on_string}: exons.fa" from_work_dir="exons.fa">
252 <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('exons.fa') > 0 </filter>
253 </data>
254 <data name="output_cds" format="fasta" label="${tool.name} on ${on_string}: cds.fa" from_work_dir="cds.fa">
255 <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('cds.fa') > 0</filter>
256 </data>
257 <data name="output_pep" format="fasta" label="${tool.name} on ${on_string}: pep.fa" from_work_dir="pep.fa">
258 <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('pep.fa') > 0</filter>
259 </data>
260 <data name="output_dupinfo" format="txt" label="${tool.name} on ${on_string}: dupinfo" from_work_dir="dupinfo">
261 <filter>'merge_options' in merging and merging['merge_options'].find('dupinfo') > 0</filter>
262 </data>
263 </outputs>
264 <tests>
265 <test>
266 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
267 <param name="gff_fmt" value="gff"/>
268 <output name="output_gff" file="Homo_sapiens.GRCh37_19.71.gff3" ftype="gff3" lines_diff="2" />
269 </test>
270 <test>
271 <param name="input" ftype="gtf" value="ecoli-k12.gff3"/>
272 <param name="gff_fmt" value="gff"/>
273 <param name="full_gff_attribute_preservation" value="-F"/>
274 <output name="output_gff" file="ecoli-k12.processed.gff3" ftype="gff3" lines_diff="2" />
275 </test>
276 <test>
277 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
278 <param name="filtering" value="--no-pseudo"/>
279 <param name="gff_fmt" value="gtf"/>
280 <output name="output_gtf">
281 <assert_contents>
282 <not_has_text text="pseudo" />
283 </assert_contents>
284 </output>
285 </test>
286 <test>
287 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
288 <param name="region_filter" value="filter"/>
289 <param name="range" value="19:496500..504965"/>
290 <param name="gff_fmt" value="gtf"/>
291 <output name="output_gtf">
292 <assert_contents>
293 <has_text text="ENST00000587541" />
294 <has_text text="ENST00000382683" />
295 </assert_contents>
296 </output>
297 </test>
298 <test>
299 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
300 <param name="region_filter" value="filter"/>
301 <param name="range" value="19:496500..504965"/>
302 <param name="discard_partial" value="true"/>
303 <param name="gff_fmt" value="gtf"/>
304 <output name="output_gtf">
305 <assert_contents>
306 <not_has_text text="ENST00000587541" />
307 <has_text text="ENST00000382683" />
308 </assert_contents>
309 </output>
310 </test>
311 <test>
312 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
313 <param name="filtering" value="-C"/>
314 <param name="region_filter" value="filter"/>
315 <param name="range" value="19:496500..504965"/>
316 <param name="gff_fmt" value="gtf"/>
317 <output name="output_gtf">
318 <assert_contents>
319 <not_has_text text="ENST00000587541" />
320 <has_text text="ENST00000382683" />
321 </assert_contents>
322 </output>
323 </test>
324 <test>
325 <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/>
326 <param name="source" value="history"/>
327 <param name="genome_fasta" ftype="fasta" value="Homo_sapiens.GRCh37.71.dna.chromosome.19.fa"/>
328 <param name="fa_outputs" value="-w exons.fa,-x cds.fa,-y pep.fa"/>
329 <param name="region_filter" value="filter"/>
330 <param name="range" value="19:496500..504965"/>
331 <param name="gff_fmt" value="gtf"/>
332 <output name="output_gtf">
333 <assert_contents>
334 <has_text text="ENST00000587541" />
335 <has_text text="ENST00000382683" />
336 </assert_contents>
337 </output>
338 <output name="output_exons">
339 <assert_contents>
340 <has_text text="ENST00000346144 CDS=47-934" />
341 <has_text text="CTATTTAAGCGGCTTCCCCGCGGCCTCGGGACAGAGGGGACTGAGCATGGATTTCGGACTGGCCCTCCTG" />
342 </assert_contents>
343 </output>
344 <output name="output_cds">
345 <assert_contents>
346 <has_text text="ENST00000346144" />
347 <has_text text="ATGGATTTCGGACTGGCCCTCCTGCTGGCGGGGCTTCTGGGGCTCCTCCTCGGCCAGTCCCTCCAGGTGA" />
348 </assert_contents>
349 </output>
350 <output name="output_pep">
351 <assert_contents>
352 <has_text text="ENST00000346144" />
353 <has_text text="MDFGLALLLAGLLGLLLGQSLQVKPLQVEPPEPVVAVALGASRQLTCRLACADRGASVQWRGLDTSLGAV" />
354 </assert_contents>
355 </output>
356 </test>
357
358 </tests>
359 <help>
360 <![CDATA[
361 **gffread Filters and/or converts GFF3/GTF2 records**
362
363 The gffread command is documented with the stringtie_ package.
364
365 .. _stringtie: http://ccb.jhu.edu/software/stringtie/gff.shtml#gffread
366
367
368 gffread v0.11.4. Usage: ::
369
370 gffread <input_gff> [-g <genomic_seqs_fasta> | <dir>][-s <seq_info.fsize>]
371 [-o <outfile>] [-t <trackname>] [-r [[<strand>]<chr>:]<start>..<end> [-R]]
372 [-CTVNJMKQAFPGUBHZWTOLE] [-w <exons.fa>] [-x <cds.fa>] [-y <tr_cds.fa>]
373 [-i <maxintron>] [--bed] [--table <attrlist>] [--sort-by <refseq_list.txt>]
374
375 Filter, convert or cluster GFF/GTF/BED records, extract the sequence of
376 transcripts (exon or CDS) and more.
377 By default (i.e. without -O) only transcripts are processed, discarding any
378 other non-transcript features. Default output is a simplified GFF3 with only
379 the basic attributes.
380
381 <input_gff> is a GFF file, use '-' for stdin
382
383 Options:
384
385 -i discard transcripts having an intron larger than <maxintron>
386 -l discard transcripts shorter than <minlen> bases
387 -r only show transcripts overlapping coordinate range <start>..<end>
388 (on chromosome/contig <chr>, strand <strand> if provided)
389 -R for -r option, discard all transcripts that are not fully
390 contained within the given range
391 -U discard single-exon transcripts
392 -C coding only: discard mRNAs that have no CDS features
393 --nc non-coding only: discard mRNAs that have CDS features
394 --ignore-locus : discard locus features and attributes found in the input
395 -A use the description field from <seq_info.fsize> and add it
396 as the value for a 'descr' attribute to the GFF record
397 -s <seq_info.fsize> is a tab-delimited file providing this info
398 for each of the mapped sequences:
399 <seq-name> <seq-length> <seq-description>
400 (useful for -A option with mRNA/EST/protein mappings)
401
402 Sorting: (by default, chromosomes are kept in the order they were found)
403 --sort-alpha : chromosomes (reference sequences) are sorted alphabetically
404 --sort-by : sort the reference sequences by the order in which their
405 names are given in the <refseq.lst> file
406
407 Misc options:
408 -F preserve all GFF attributes (for non-exon features)
409 --keep-exon-attrs : for -F option, do not attempt to reduce redundant
410 exon/CDS attributes
411 -G do not keep exon attributes, move them to the transcript feature
412 (for GFF3 output)
413 --keep-genes : in transcript-only mode (default), also preserve gene records
414 --keep-comments: for GFF3 input/output, try to preserve comments
415 -O process other non-transcript GFF records (by default non-transcript
416 records are ignored)
417 -V discard any mRNAs with CDS having in-frame stop codons (requires -g)
418 -H for -V option, check and adjust the starting CDS phase
419 if the original phase leads to a translation with an
420 in-frame stop codon
421 -B for -V option, single-exon transcripts are also checked on the
422 opposite strand (requires -g)
423 -P add transcript level GFF attributes about the coding status of each
424 transcript, including partialness or in-frame stop codons (requires -g)
425 --add-hasCDS : add a "hasCDS" attribute with value "true" for transcripts
426 that have CDS features
427 --adj-stop stop codon adjustment: enables -P and performs automatic
428 adjustment of the CDS stop coordinate if premature or downstream
429 -N discard multi-exon mRNAs that have any intron with a non-canonical
430 splice site consensus (i.e. not GT-AG, GC-AG or AT-AC)
431 -J discard any mRNAs that either lack initial START codon
432 or the terminal STOP codon, or have an in-frame stop codon
433 (i.e. only print mRNAs with a complete CDS)
434 --no-pseudo: filter out records matching the 'pseudo' keyword
435 --in-bed: input should be parsed as BED format (automatic if the input
436 filename ends with .bed*)
437 --in-tlf: input GFF-like one-line-per-transcript format without exon/CDS
438 features (see --tlf option below); automatic if the input
439 filename ends with .tlf)
440
441 Clustering:
442 -M/--merge : cluster the input transcripts into loci, discarding
443 "duplicated" transcripts (those with the same exact introns
444 and fully contained or equal boundaries)
445 -d <dupinfo> : for -M option, write duplication info to file <dupinfo>
446 --cluster-only: same as -M/--merge but without discarding any of the
447 "duplicate" transcripts, only create "locus" features
448 -K for -M option: also discard as redundant the shorter, fully contained
449 transcripts (intron chains matching a part of the container)
450 -Q for -M option, no longer require boundary containment when assessing
451 redundancy (can be combined with -K); only introns have to match for
452 multi-exon transcripts, and >=80% overlap for single-exon transcripts
453 -Y for -M option, enforce -Q but also discard overlapping single-exon
454 transcripts, even on the opposite strand (can be combined with -K)
455
456 Output options:
457 --force-exons: make sure that the lowest level GFF features are considered
458 "exon" features
459 --gene2exon: for single-line genes not parenting any transcripts, add an
460 exon feature spanning the entire gene (treat it as a transcript)
461 --t-adopt: try to find a parent gene overlapping/containing a transcript
462 that does not have any explicit gene Parent
463 -D decode url encoded characters within attributes
464 -Z merge very close exons into a single exon (when intron size<4)
465 -g full path to a multi-fasta file with the genomic sequences
466 for all input mappings, OR a directory with single-fasta files
467 (one per genomic sequence, with file names matching sequence names)
468 -w write a fasta file with spliced exons for each GFF transcript
469 -x write a fasta file with spliced CDS for each GFF transcript
470 -y write a protein fasta file with the translation of CDS for each record
471 -W for -w and -x options, write in the FASTA defline the exon
472 coordinates projected onto the spliced sequence;
473 for -y option, write transcript attributes in the FASTA defline
474 -S for -y option, use '*' instead of '.' as stop codon translation
475 -L Ensembl GTF to GFF3 conversion (implies -F; should be used with -m)
476 -m <chr_replace> is a name mapping table for converting reference
477 sequence names, having this 2-column format:
478 <original_ref_ID> <new_ref_ID>
479 WARNING: all GFF records on reference sequences whose original IDs
480 are not found in the 1st column of this table will be discarded!
481 -t use <trackname> in the 2nd column of each GFF/GTF output line
482 -o write the records into <outfile> instead of stdout
483 -T main output will be GTF instead of GFF3
484 --bed output records in BED format instead of default GFF3
485 --tlf output "transcript line format" which is like GFF
486 but exons, CDS features and related data are stored as GFF
487 attributes in the transcript feature line, like this:
488 exoncount=N;exons=<exons>;CDSphase=<N>;CDS=<CDScoords>
489 <exons> is a comma-delimited list of exon_start-exon_end coordinates;
490 <CDScoords> is CDS_start:CDS_end coordinates or a list like <exons>
491 --table output a simple tab delimited format instead of GFF, with columns
492 having the values of GFF attributes given in <attrlist>; special
493 pseudo-attributes (prefixed by @) are recognized:
494 @chr, @start, @end, @strand, @numexons, @exons, @cds, @covlen, @cdslen
495 -v,-E expose (warn about) duplicate transcript IDs and other potential
496 problems with the given GFF/GTF records
497 ]]>
498 </help>
499 <citations>
500 <citation type="doi">10.1038/nbt.1621</citation>
501 </citations>
502 </tool>
503