comparison abjbrowse2.xml @ 13:1d86925dbb4c draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 873a12803692b0a84814a6dc08331d772d0e5492-dirty
author fubar
date Mon, 22 Jan 2024 11:52:19 +0000
parents
children
comparison
equal deleted inserted replaced
12:247e17ce504b 13:1d86925dbb4c
1 <tool id="jbrowse2" name="JBrowse2" version="@TOOL_VERSION@+@WRAPPER_VERSION@">
2 <description>genome browser</description>
3 <macros>
4 <import>macros.xml</import>
5 </macros>
6 <edam_topics>
7 <edam_topic>topic_3307</edam_topic>
8 <edam_topic>topic_0092</edam_topic>
9 </edam_topics>
10 <edam_operations>
11 <edam_operation>operation_0573</edam_operation>
12 <edam_operation>operation_0564</edam_operation>
13 </edam_operations>
14 <xrefs>
15 <xref type="bio.tools">jbrowse</xref>
16 </xrefs>
17 <expand macro="requirements"/>
18 <version_command>python '${__tool_directory__}/jbrowse2.py' --version</version_command>
19 <command detect_errors="aggressive"><![CDATA[
20 mkdir -p $output.files_path &&
21 #if $action.action_select != "create":
22 cp -R $action.update_jbrowse.extra_files_path/data $output.files_path/data &&
23 #end if
24
25 ## Copy the XML file into the directory, mostly for debugging
26 ## but nice if users want to reproduce locally
27 cp $trackxml $output.files_path/galaxy.xml &&
28
29 export JBROWSE2_SOURCE_DIR=\$(dirname \$(which jbrowse))/../opt/jbrowse2 &&
30
31 ## Once that's done, we run the python script to handle the real work
32 python '$__tool_directory__/jbrowse2.py'
33
34 --jbrowse \${JBROWSE2_SOURCE_DIR}
35
36 --outdir $output.files_path
37 $trackxml &&
38
39 cp $output.files_path/index.html $output;
40
41 ## Ugly testing hack since I cannot get <extra_files> to test the files I want to test. Hmph.
42 #if str($uglyTestingHack) == "enabled":
43 cp $trackxml $output
44 #end if
45 ]]></command>
46 <configfiles>
47 <configfile name="trackxml"><![CDATA[<?xml version="1.0"?>
48 <root>
49 <metadata>
50 <genomes>
51 #if str($reference_genome.genome_type_select) == "indexed":
52 <genome path="${reference_genome.genomes.fields.path}" label="${reference_genome.genomes.fields.name}">
53 <metadata />
54 </genome>s
55 #else
56 <genome path="$reference_genome.genome" label="${reference_genome.genome.element_identifier}">
57 <metadata>
58 <dataset id="${__app__.security.encode_id($reference_genome.genome.id)}" hid="${reference_genome.genome.hid}"
59 size="${reference_genome.genome.get_size(nice_size=True)}"
60 edam_format="${reference_genome.genome.datatype.edam_format}"
61 file_ext="${reference_genome.genome.ext}" />
62 <history id="${__app__.security.encode_id($reference_genome.genome.history_id)}"
63 #if $reference_genome.genome.history.user:
64 user_email="${reference_genome.genome.history.user.email}"
65 user_id="${reference_genome.genome.history.user_id}"
66 display_name="${reference_genome.genome.history.get_display_name()}"/>
67 #else
68 user_email="anonymous"
69 user_id="-1"
70 display_name="Unnamed History"/>
71 #end if
72 <metadata
73 #for (key, value) in $reference_genome.genome.get_metadata().items():
74 #if "_types" not in $key:
75 #if isinstance($value, list):
76 #set value_str = "[%s]" % ','.join([str(val) for val in value])
77 ${key}="$value_str"
78 #else
79 ${key}="${value}"
80 #end if
81 #end if
82 #end for
83 />
84 <tool
85 tool_id="${reference_genome.genome.creating_job.tool_id}"
86 tool_version="${reference_genome.genome.creating_job.tool_version}"
87 />
88 </metadata>
89 </genome>
90 #end if
91 </genomes>
92 <general>
93 <defaultLocation>${jbgen.defaultLocation}</defaultLocation>
94 <analytics>${jbgen.enableAnalytics}</analytics>
95 <primary_color>${jbgen.primary_color}</primary_color>
96 <secondary_color>${jbgen.secondary_color}</secondary_color>
97 <tertiary_color>${jbgen.tertiary_color}</tertiary_color>
98 <quaternary_color>${jbgen.quaternary_color}</quaternary_color>
99 <font_size>${jbgen.font_size}</font_size>
100 <session_name>${jbgen.session_name}</session_name>
101 </general>
102 <galaxyUrl>${__app__.config.galaxy_infrastructure_url}</galaxyUrl>
103 </metadata>
104 <tracks>
105 #for $tg in $track_groups:
106 #for $track in $tg.data_tracks:
107 <track cat="${tg.category}" format="${track.data_format.data_format_select}" visibility="${track.data_format.track_visibility}">
108 #if $track.data_format.data_format_select != "sparql":
109 <files>
110 #for $dataset in $track.data_format.annotation:
111 <trackFile path="${dataset}" ext="${dataset.ext}" label="${dataset.element_identifier}">
112 <metadata>
113 <dataset id="${__app__.security.encode_id($dataset.id)}" hid="${dataset.hid}"
114 size="${dataset.get_size(nice_size=True)}"
115 edam_format="${dataset.datatype.edam_format}"
116 file_ext="${dataset.ext}" />
117 <history id="${__app__.security.encode_id($dataset.history_id)}"
118 #if $dataset.history.user:
119 user_email="${dataset.history.user.email}"
120 user_id="${dataset.history.user_id}"
121 display_name="${dataset.history.get_display_name()}"/>
122 #else
123 user_email="anonymous"
124 user_id="-1"
125 display_name="Unnamed History"/>
126 #end if
127 <metadata
128 #for (key, value) in $dataset.get_metadata().items():
129 #if "_types" not in $key and $value is not None and len(str($value)) < 5000:
130 #if isinstance($value, list):
131 #set value_str = "[%s]" % ','.join([str(val) for val in value])
132 ${key}="$value_str"
133 #else
134 ${key}="${value}"
135 #end if
136 #end if
137 #end for
138 />
139 <tool
140 tool_id="${dataset.creating_job.tool_id}"
141 tool_version="${dataset.creating_job.tool_version}"
142 />
143 </metadata>
144 </trackFile>
145 #end for
146 </files>
147 #end if
148
149 <options>
150 <style>
151 <display>${track.data_format.jbstyle.track_style.display}</display>
152 ## TODO change this to a for loop?
153 #if 'show_labels' in $track.data_format.jbstyle.track_style
154 <trackShowLabels type="boolean">${track.data_format.jbstyle.track_style.show_labels}</trackShowLabels>
155 #end if
156 #if 'show_descriptions' in $track.data_format.jbstyle.track_style
157 <trackShowDescriptions type="boolean">${track.data_format.jbstyle.track_style.show_descriptions}</trackShowDescriptions>
158 #end if
159 #if 'display_mode' in $track.data_format.jbstyle.track_style
160 <trackDisplayMode>${track.data_format.jbstyle.track_style.display_mode}</trackDisplayMode>
161 #end if
162 #if 'max_height' in $track.data_format.jbstyle.track_style
163 <trackMaxHeight type="integer">${track.data_format.jbstyle.track_style.max_height}</trackMaxHeight>
164 #end if
165 #if 'autoscale' in $track.data_format.jbstyle.track_style
166 <autoscale>${track.data_format.jbstyle.track_style.autoscale}</autoscale>
167 #end if
168 #if 'resolution' in $track.data_format.jbstyle.track_style
169 <resolution type="integer">${track.data_format.jbstyle.track_style.resolution}</resolution>
170 #end if
171 #if 'summaryScoreMode' in $track.data_format.jbstyle.track_style
172 <summaryScoreMode>${track.data_format.jbstyle.track_style.summaryScoreMode}</summaryScoreMode>
173 #end if
174 #if 'scaleType' in $track.data_format.jbstyle.track_style
175 <scaleType>${track.data_format.jbstyle.track_style.scaleType}</scaleType>
176 #end if
177 #if 'filled' in $track.data_format.jbstyle.track_style
178 <filled type="boolean">${track.data_format.jbstyle.track_style.filled}</filled>
179 #end if
180 #if 'displayCrossHatches' in $track.data_format.jbstyle.track_style
181 <displayCrossHatches type="boolean">${track.data_format.jbstyle.track_style.displayCrossHatches}</displayCrossHatches>
182 #end if
183 #if 'minScore' in $track.data_format.jbstyle.track_style and $track.data_format.jbstyle.track_style.minScore
184 <minScore type="integer">${track.data_format.jbstyle.track_style.minScore}</minScore>
185 #end if
186 #if 'maxScore' in $track.data_format.jbstyle.track_style and $track.data_format.jbstyle.track_style.maxScore
187 <maxScore type="integer">${track.data_format.jbstyle.track_style.maxScore}</maxScore>
188 #end if
189 ## TODO other coloring/etc options in each renderer (e.g https://github.com/GMOD/jbrowse-components/blob/main/plugins/svg/src/SvgFeatureRenderer/configSchema.ts)
190 </style>
191 <style_labels>
192 ## TODO other label options: https://github.com/GMOD/jbrowse-components/blob/main/plugins/svg/src/SvgFeatureRenderer/configSchema.ts
193 #if 'label' in $track.data_format.jbstyle.track_style
194 <name>${track.data_format.jbstyle.track_style.label}</name>
195 #end if
196 #if 'description' in $track.data_format.jbstyle.track_style
197 <description>${track.data_format.jbstyle.track_style.description}</description>
198 #end if
199 </style_labels>
200 #if str($track.data_format.data_format_select) == "gene_calls" or str($track.data_format.data_format_select) == "blast" or str($track.data_format.data_format_select) == "sparql":
201 <scaling>
202 #if str($track.data_format.jbcolor_scale.color_score.color_score_select) == "none":
203 <method>ignore</method>
204 <scheme>
205 #if str($track.data_format.jbcolor_scale.color_score.color.color_select) == "automatic":
206 <color>__auto__</color>
207 #else
208 <color>${track.data_format.jbcolor_scale.color_score.color.style_color}</color>
209 #end if
210 </scheme>
211 #else
212 <method>score</method>
213 <algo>${track.data_format.jbcolor_scale.color_score.score_scaling}</algo>
214 <scales>
215 <type>${track.data_format.jbcolor_scale.color_score.score_scales.scale_select}</type>
216
217 #if str($track.data_format.jbcolor_scale.color_score.score_scales.scale_select) == "manual":
218 <min>${track.data_format.jbcolor_scale.color_score.score_scales.minimum}</min>
219 <max>${track.data_format.jbcolor_scale.color_score.score_scales.maximum}</max>
220 #end if
221 </scales>
222 <scheme>
223 <type>${track.data_format.jbcolor_scale.color_score.color_scheme.score_scheme}</type>
224 ## auto_color
225 #if str($track.data_format.jbcolor_scale.color_score.color_scheme.score_scheme) == "opacity":
226 #if str($track.data_format.jbcolor_scale.color_score.color_scheme.color.color_select) == "automatic":
227 <color>__auto__</color>
228 #else
229 <color>${track.data_format.jbcolor_scale.color_score.color_scheme.color.style_color}</color>
230 #end if
231 #end if
232 </scheme>
233 #end if
234 </scaling>
235 <menus>
236 #for $menu_item in $track.data_format.jbmenu.track_menu:
237 <menu>
238 <action>${menu_item.menu_action}</action>
239 #if str($menu_item.menu_label) != "":
240 <label>${menu_item.menu_label}</label>
241 #end if
242 #if str($menu_item.menu_title) != "":
243 <title>${menu_item.menu_title}</title>
244 #end if
245 #if str($menu_item.menu_url) != "":
246 <url>${menu_item.menu_url.replace("&", "&amp;").replace("\"", "&quot;")}</url>
247 #end if
248 #if str($menu_item.menu_icon) != "":
249 <iconClass>${menu_item.menu_icon}</iconClass>
250 #end if
251 </menu>
252 #end for
253 </menus>
254 #end if
255
256 #if str($track.data_format.data_format_select) == "wiggle":
257 <wiggle>
258 <type>${track.data_format.xyplot}</type>
259 <variance_band>${track.data_format.var_band}</variance_band>
260 #if str($track.data_format.scaling.scale_select) == "auto_local":
261 <autoscale>local</autoscale>
262 #else if str($track.data_format.scaling.scale_select) == "auto_global":
263 <autoscale>global</autoscale>
264 #else:
265 <min>${track.data_format.scaling.minimum}</min>
266 <max>${track.data_format.scaling.maximum}</max>
267 #end if
268 <scale>${track.data_format.scale_select2}</scale>
269
270 ## Wiggle tracks need special color config
271 #if str($track.data_format.jbcolor.color.color_select) != "automatic":
272 <color_pos>${track.data_format.jbcolor.color.style_pos_color}</color_pos>
273 <color_neg>${track.data_format.jbcolor.color.style_neg_color}</color_neg>
274 #else:
275 <color_pos>__auto__</color_pos>
276 <color_neg>__auto__</color_neg>
277 #end if
278
279 ## Bicolor pivot config
280 #if str($track.data_format.jbcolor.bicolor_pivot.bicolor_pivot_select) == "zero":
281 <bicolor_pivot>zero</bicolor_pivot>
282 #else if str($track.data_format.jbcolor.bicolor_pivot.bicolor_pivot_select) == "mean":
283 <bicolor_pivot>mean</bicolor_pivot>
284 #else:
285 <bicolor_pivot>${track.data_format.jbcolor.bicolor_pivot.pivot_point}</bicolor_pivot>
286 #end if
287 </wiggle>
288 #else if str($track.data_format.data_format_select) == "pileup":
289 <pileup>
290 <bam_indices>
291 #for $dataset in $track.data_format.annotation:
292 <bam_index>${dataset.metadata.bam_index}</bam_index>
293 #end for
294 </bam_indices>
295 </pileup>
296 #else if str($track.data_format.data_format_select) == "cram":
297 <cram>
298 <cram_indices>
299 #for $dataset in $track.data_format.annotation:
300 <cram_index>${dataset.metadata.cram_index}</cram_index>
301 #end for
302 </cram_indices>
303 </cram>
304 #else if str($track.data_format.data_format_select) == "blast":
305 <blast>
306 #if str($track.data_format.blast_parent) != "":
307 <parent>${track.data_format.blast_parent}</parent>
308 #end if
309 <protein>${track.data_format.is_protein}</protein>
310 <min_gap>${track.data_format.min_gap}</min_gap>
311 <index>${track.data_format.index}</index>
312 </blast>
313 #else if str($track.data_format.data_format_select) == "gene_calls":
314 <gff>
315 #if $track.data_format.match_part.match_part_select:
316 <match>${track.data_format.match_part.name}</match>
317 #end if
318 <index>${track.data_format.index}</index>
319 </gff>
320 #else if str($track.data_format.data_format_select) == "synteny":
321 <synteny>
322 <genome>${track.data_format.synteny_genome}</genome>
323 <genome_label>${track.data_format.synteny_genome.element_identifier}</genome_label>
324 </synteny>
325 #else if str($track.data_format.data_format_select) == "hic":
326 <hic>
327 </hic>
328 #else if str($track.data_format.data_format_select) == "sparql":
329 <label>${track.data_format.label}</label>
330 <sparql>
331 <url>${track.data_format.url}</url>
332 <query>${track.data_format.query}</query>
333 <query_refnames>${track.data_format.query_refnames}</query_refnames>
334 </sparql>
335 #end if
336 </options>
337 </track>
338 #end for
339 #end for
340 </tracks>
341 </root>
342 ]]></configfile>
343 </configfiles>
344 <inputs>
345 <conditional name="reference_genome">
346 <param help="Built-in references" label="Reference genome to display" name="genome_type_select" type="select">
347 <option selected="True" value="indexed">Use a built-in genome</option>
348 <option value="history">Use a genome from history</option>
349 </param>
350 <when value="indexed">
351 <param
352 help="If your genome of interest is not listed, contact the Galaxy team"
353 label="Select a reference genome"
354 name="genomes"
355 type="select"
356 >
357 <options from_data_table="all_fasta">
358 <filter column="2" type="sort_by" />
359 <validator message="No genomes are available for the selected input dataset" type="no_options" />
360 </options>
361 </param>
362 </when>
363 <when value="history">
364 <param
365 format="fasta"
366 label="Select the reference genome"
367 name="genome"
368 type="data" />
369 </when>
370 </conditional>
371 <!-- TODO auto add GC track when implemented
372 https://github.com/GMOD/jbrowse-components/pull/2683
373 https://github.com/GMOD/jbrowse-components/pull/3328
374 -->
375
376 <!-- TODO genetic code not yet supported in jbrowse2
377 https://github.com/GMOD/jbrowse-components/issues/1765
378 -->
379
380 <conditional name="action">
381 <param type="select" label="JBrowse-in-Galaxy Action" name="action_select">
382 <option value="create">New JBrowse Instance</option>
383 <option value="update">Update exising JBrowse Instance</option>
384 </param>
385 <when value="create" />
386 <when value="update">
387 <param name="update_jbrowse" type="data" format="html" label="Previous JBrowse Instance" />
388 </when>
389 </conditional>
390
391 <repeat name="track_groups" title="Track Group">
392 <param label="Track Category"
393 name="category"
394 type="text"
395 value="Default"
396 help="Organise your tracks into Categories for a nicer end-user experience. You can use #date# and it will be replaced with the current date in 'yyyy-mm-dd' format, which is very useful for repeatedly updating a JBrowse instance when member databases / underlying tool versions are updated." optional="False"/>
397 <repeat name="data_tracks" title="Annotation Track">
398 <conditional name="data_format" label="Track Options">
399 <param type="select" label="Track Type" name="data_format_select">
400 <option value="gene_calls">GFF/GFF3/BED Features</option>
401 <option value="pileup">BAM Pileups</option>
402 <option value="cram">CRAM</option>
403 <option value="blast">Blast XML</option>
404 <option value="wiggle">BigWig XY</option>
405 <option value="vcf">VCF SNPs</option>
406 <option value="synteny">Synteny</option>
407 <option value="hic">HiC</option>
408 <option value="sparql">SPARQL</option>
409 </param>
410 <when value="blast">
411 <expand macro="input_conditional" label="BlastXML Track Data" format="blastxml" />
412
413 <param label="Features used in Blast Search"
414 help="in GFF3. This is used so we know where to map features. E.g. where results of which CDS Protein32 match up to. The query IDs in your blast results should MATCH some feature IDs in your GFF3 file. This is an optional field and is most useful if using JBrowse to display protein blast results on a DNA genome. blastn results don't need this, blastp results on a protein sequence don't need this."
415 format="gff3"
416 name="blast_parent"
417 optional="true"
418 type="data"/>
419
420 <param label="Minimum Gap Size"
421 help="before a new match_part feature is created"
422 name="min_gap"
423 type="integer"
424 value="10"
425 min="2" />
426 <param label="Is this a protein blast search?"
427 type="boolean"
428 name="is_protein"
429 truevalue="true"
430 falsevalue="false" />
431
432 <param label="Index this track" name="index" type="boolean" checked="false" truevalue="true" falsevalue="false" />
433
434 <expand macro="track_styling_feature"
435 classname="feature"
436 label="description"
437 description="Hit_titles"
438 height="600px"/>
439 <expand macro="color_selection"
440 token_scaling_lin_select="false"
441 token_scaling_log_select="true" />
442 <expand macro="track_menu" />
443 <expand macro="track_visibility" />
444 </when>
445 <when value="vcf">
446 <expand macro="input_conditional" label="SNP Track Data" format="vcf,vcf_bgzip" />
447 <expand macro="track_styling_vcf"/>
448 <expand macro="track_visibility" />
449 </when>
450 <when value="gene_calls">
451 <expand macro="input_conditional" label="GFF/GFF3/BED Track Data" format="gff,gff3,bed" />
452 <conditional name="match_part" label="match/match_part data">
453 <param label="This is match/match_part data"
454 type="boolean"
455 name="match_part_select"
456 truevalue="true"
457 falsevalue="false" />
458 <when value="true">
459 <param label="Match Part Feature Type"
460 name="name"
461 type="text"
462 value="match"
463 help="Match_parts have several options for the parent feature type, such as cDNA_match, match, translated_nucleotide_match, etc. Please select the appropriate one here. You can leave empty to try autodetection (only works with CanvasFeatures track type)."
464 optional="True"/>
465 </when>
466 <when value="false" />
467 </conditional>
468
469 <param label="Index this track" name="index" type="boolean" checked="false" truevalue="true" falsevalue="false" />
470
471 <expand macro="track_styling_feature"
472 classname="feature"
473 label="product,name,id"
474 description="note,description"
475 height="10px"/>
476 <expand macro="color_selection" />
477 <expand macro="track_menu" />
478 <expand macro="track_visibility" />
479 </when>
480 <when value="pileup">
481 <expand macro="input_conditional" label="BAM Track Data" format="bam" />
482 <expand macro="track_styling_xam"/>
483 <expand macro="track_visibility" />
484 </when>
485 <when value="cram">
486 <expand macro="input_conditional" label="CRAM Track Data" format="cram" />
487 <expand macro="track_styling_xam"/>
488 <expand macro="track_visibility" />
489 </when>
490 <when value="wiggle">
491 <expand macro="input_conditional" label="BigWig Track Data" format="bigwig" />
492
493 <param label="Use XYPlot"
494 help="instead of continuous colored band"
495 type="boolean"
496 name="xyplot"
497 truevalue="JBrowse/View/Track/Wiggle/XYPlot"
498 falsevalue="JBrowse/View/Track/Wiggle/Density" />
499 <param label="Show variance band"
500 help="Only for XYPlots"
501 type="boolean"
502 name="var_band"
503 truevalue="true"
504 falsevalue="false" />
505
506 <conditional name="scaling" label="Scaling">
507 <param type="select" label="Track Scaling" name="scale_select">
508 <option value="auto_local" selected="true">Autoscale (local)</option>
509 <option value="auto_global">Autoscale (global)</option>
510 <option value="fixed">Specify Min/Max</option>
511 </param>
512 <when value="auto_local"></when>
513 <when value="auto_global"></when>
514 <when value="fixed">
515 <param label="Track minimum" name="minimum"
516 type="integer" value="0" />
517 <param label="Track maximum" name="maximum"
518 type="integer" value="100" />
519 </when>
520 </conditional>
521 <param type="select" label="Visual Scaling" name="scale_select2">
522 <option value="linear" selected="true">Linear</option>
523 <option value="log">Logarithmic (Dynamically Calculated)</option>
524 </param>
525
526 <expand macro="color_selection_minmax" />
527
528 <expand macro="track_styling_bigwig"/>
529 <expand macro="track_visibility" />
530 </when>
531
532 <when value="synteny">
533 <param label="Other genome sequence"
534 format="fasta"
535 name="synteny_genome"
536 type="data" />
537 <!-- TODO add .out (MashMap) .chain (UCSC), .delta (mummer) and .anchors (mcscan) inputs -->
538 <expand macro="input_conditional" label="Synteny data" format="paf" />
539 <expand macro="track_visibility" />
540 </when>
541
542 <when value="hic">
543 <!-- TODO no hic datatype by default, but input for hicConvertFormat? hic_matrix datatype on .eu -->
544 <expand macro="input_conditional" label="HiC data" format="hic" />
545 <expand macro="track_visibility" />
546 </when>
547
548 <when value="sparql">
549 <param type="text" label="SPARQL Server URL" name="url" />
550 <param type="text" label="Track Label" name="label" value="SPARQL Genes" />
551 <param type="text" label="SPARQL Query" name="query" area="true">
552 <sanitizer>
553 <mapping initial="galaxy.util.mapped_chars">
554 <add source="&#10;" target=" " />
555 <add source="&gt;" target="__gt__" />
556 <add source="&lt;" target="__lt__" />
557 </mapping>
558 <valid initial="default">
559 <add value="|" />
560 <add value="#" />
561 <add value="{"/>
562 <add value="}"/>
563 <add value="!"/>
564 <add value="?"/>
565 <add value="&amp;"/>
566 <add value="+"/>
567 <add value="="/>
568 <add value="'"/>
569 <add value='"'/>
570 </valid>
571 </sanitizer>
572 </param>
573 <param type="text" label="SPARQL reference names query" help="This query should return a line for each reference name in a `refName` column" name="query_refnames" area="true">
574 <sanitizer>
575 <mapping initial="galaxy.util.mapped_chars">
576 <add source="&#10;" target=" " />
577 <add source="&gt;" target="__gt__" />
578 <add source="&lt;" target="__lt__" />
579 </mapping>
580 <valid initial="default">
581 <add value="|" />
582 <add value="#" />
583 <add value="{"/>
584 <add value="}"/>
585 <add value="!"/>
586 <add value="?"/>
587 <add value="&amp;"/>
588 <add value="+"/>
589 <add value="="/>
590 <add value="'"/>
591 <add value='"'/>
592 </valid>
593 </sanitizer>
594 </param>
595 <expand macro="track_visibility" />
596 </when>
597 </conditional>
598 </repeat>
599 </repeat>
600
601 <expand macro="general_options" />
602
603 <param type="hidden" name="uglyTestingHack" value="" />
604 </inputs>
605 <outputs>
606 <!-- TODO create a jbrowse2 datatype -->
607 <data format="html" name="output" label="JBrowse2 on $on_string"/>
608 </outputs>
609 <tests>
610 <test>
611 <param name="reference_genome|genome_type_select" value="history"/>
612 <param name="reference_genome|genome" value="merlin.fa"/>
613 <param name="uglyTestingHack" value="enabled" />
614 <output name="output">
615 <assert_contents>
616 <has_text text="genome path="></has_text>
617 <has_text text="dataset id="></has_text>
618 <has_text text="history id="></has_text>
619 <has_text text="metadata"></has_text>
620 <has_text text="tool_id"></has_text>
621 </assert_contents>
622 </output>
623 </test>
624 <test>
625 <param name="reference_genome|genome_type_select" value="history"/>
626 <param name="reference_genome|genome" value="merlin.fa"/>
627 <repeat name="track_groups">
628 <param name="category" value="Default" />
629 <repeat name="data_tracks">
630 <conditional name="data_format">
631 <param name="data_format_select" value="gene_calls"/>
632 <param name="annotation" value="bed/test-3.bed,bed/test-6.bed"/>
633 </conditional>
634 </repeat>
635 </repeat>
636 <param name="uglyTestingHack" value="enabled" />
637 <output name="output">
638 <assert_contents>
639 <has_text text="genome path="></has_text>
640 <has_text text="dataset id="></has_text>
641 <has_text text="history id="></has_text>
642 <has_text text="metadata"></has_text>
643 <has_text text="tool_id"></has_text>
644 <has_text text="trackFile path="></has_text>
645 <has_text text="ext=&quot;bed&quot; label=&quot;test-3.bed&quot;"></has_text>
646 <has_text text="NeatHTMLFeatures"></has_text>
647 </assert_contents>
648 </output>
649 </test>
650 <test>
651 <param name="reference_genome|genome_type_select" value="history"/>
652 <param name="reference_genome|genome" value="merlin.fa"/>
653 <repeat name="track_groups">
654 <param name="category" value="Auto Coloured" />
655 <repeat name="data_tracks">
656 <conditional name="data_format">
657 <param name="data_format_select" value="gene_calls"/>
658 <param name="annotation" value="gff3/A.gff,gff3/B.gff,gff3/C.gff,gff3/D.gff"/>
659 <conditional name="match_part">
660 <param name="match_part_select" value="false"/>
661 </conditional>
662 <section name="jbcolor_scale">
663 <conditional name="color_score">
664 <param name="color_score_select" value="none"/>
665 </conditional>
666 <conditional name="color">
667 <param name="color_select" value="automatic"/>
668 </conditional>
669 </section>
670 </conditional>
671 </repeat>
672 </repeat>
673
674 <repeat name="track_groups">
675 <param name="category" value="Ignore Scale" />
676 <repeat name="data_tracks">
677 <conditional name="data_format">
678 <param name="data_format_select" value="gene_calls"/>
679 <param name="annotation" value="gff3/1.gff"/>
680 <conditional name="match_part">
681 <param name="match_part_select" value="false"/>
682 </conditional>
683 <section name="jbcolor_scale">
684 <conditional name="color_score">
685 <param name="color_score_select" value="none"/>
686 <conditional name="color">
687 <param name="color_select" value="manual"/>
688 <param name="style_color" value="#ff00ff"/>
689 </conditional>
690 </conditional>
691 </section>
692 </conditional>
693 </repeat>
694 </repeat>
695
696 <repeat name="track_groups">
697 <param name="category" value="Scaled Colour" />
698 <repeat name="data_tracks">
699 <conditional name="data_format">
700 <param name="data_format_select" value="gene_calls"/>
701 <param name="annotation" value="gff3/1.gff"/>
702 <conditional name="match_part">
703 <param name="match_part_select" value="false"/>
704 </conditional>
705 <section name="jbcolor_scale">
706 <conditional name="color_score">
707 <param name="color_score_select" value="score"/>
708 <param name="score_scaling" value="linear"/>
709 <conditional name="score_scales">
710 <param name="scale_select" value="automatic"/>
711 </conditional>
712 <conditional name="color_scheme">
713 <param name="score_scheme" value="opacity"/>
714 <conditional name="color">
715 <param name="color_select" value="automatic"/>
716 </conditional>
717 </conditional>
718 </conditional>
719 </section>
720 </conditional>
721 </repeat>
722 <repeat name="data_tracks">
723 <conditional name="data_format">
724 <param name="data_format_select" value="gene_calls"/>
725 <param name="annotation" value="gff3/1.gff"/>
726 <conditional name="match_part">
727 <param name="match_part_select" value="false"/>
728 </conditional>
729 <section name="jbcolor_scale">
730 <conditional name="color_score">
731 <param name="color_score_select" value="score"/>
732 <param name="score_scaling" value="linear"/>
733 <conditional name="score_scales">
734 <param name="scale_select" value="automatic"/>
735 </conditional>
736 <conditional name="color_scheme">
737 <param name="score_scheme" value="opacity"/>
738 <conditional name="color">
739 <param name="color_select" value="manual"/>
740 <param name="style_color" value="#0000ff"/>
741 </conditional>
742 </conditional>
743 </conditional>
744 </section>
745 </conditional>
746 </repeat>
747 <repeat name="data_tracks">
748 <conditional name="data_format">
749 <param name="data_format_select" value="gene_calls"/>
750 <param name="annotation" value="gff3/1.gff"/>
751 <conditional name="match_part">
752 <param name="match_part_select" value="false"/>
753 </conditional>
754 <section name="jbcolor_scale">
755 <conditional name="color_score">
756 <param name="color_score_select" value="score"/>
757 <param name="score_scaling" value="linear"/>
758 <conditional name="score_scales">
759 <param name="scale_select" value="manual"/>
760 <param name="minimum" value="0"/>
761 <param name="maximum" value="1000"/>
762 </conditional>
763 <conditional name="color_scheme">
764 <param name="score_scheme" value="opacity"/>
765 <conditional name="color">
766 <param name="color_select" value="automatic"/>
767 </conditional>
768 </conditional>
769 </conditional>
770 </section>
771 </conditional>
772 </repeat>
773 <repeat name="data_tracks">
774 <conditional name="data_format">
775 <param name="data_format_select" value="gene_calls"/>
776 <param name="annotation" value="gff3/1.gff"/>
777 <conditional name="match_part">
778 <param name="match_part_select" value="false"/>
779 </conditional>
780 <section name="jbcolor_scale">
781 <conditional name="color_score">
782 <param name="color_score_select" value="score"/>
783 <param name="score_scaling" value="linear"/>
784 <conditional name="score_scales">
785 <param name="scale_select" value="manual"/>
786 <param name="minimum" value="0"/>
787 <param name="maximum" value="1000"/>
788 </conditional>
789 <conditional name="color_scheme">
790 <param name="score_scheme" value="opacity"/>
791 <conditional name="color">
792 <param name="color_select" value="manual"/>
793 <param name="style_color" value="#ff0000"/>
794 </conditional>
795 </conditional>
796 </conditional>
797 </section>
798 </conditional>
799 </repeat>
800 </repeat>
801
802 <repeat name="track_groups">
803 <param name="category" value="Realistic" />
804 <repeat name="data_tracks">
805 <conditional name="data_format">
806 <param name="data_format_select" value="gene_calls"/>
807 <param name="annotation" value="gff3/interpro.gff"/>
808 <conditional name="match_part">
809 <param name="match_part_select" value="false"/>
810 </conditional>
811 <section name="jbcolor_scale">
812 <conditional name="color_score">
813 <param name="color_score_select" value="none"/>
814 </conditional>
815 <conditional name="color">
816 <param name="color_select" value="automatic"/>
817 </conditional>
818 </section>
819 </conditional>
820 </repeat>
821 <repeat name="data_tracks">
822 <conditional name="data_format">
823 <param name="data_format_select" value="gene_calls"/>
824 <param name="annotation" value="gff3/2.gff"/>
825 <conditional name="match_part">
826 <param name="match_part_select" value="true"/>
827 <param name="name" value="cDNA_match"/>
828 </conditional>
829 <section name="jbcolor_scale">
830 <conditional name="color_score">
831 <param name="color_score_select" value="none"/>
832 </conditional>
833 <conditional name="color">
834 <param name="color_select" value="automatic"/>
835 </conditional>
836 </section>
837 </conditional>
838 </repeat>
839 </repeat>
840
841 <param name="uglyTestingHack" value="enabled" />
842 <output name="output">
843 <assert_contents>
844 <has_text text="Auto Coloured"/>
845 <has_text text="A.gff"/>
846 <has_text text="B.gff"/>
847 <has_text text="C.gff"/>
848 <has_text text="D.gff"/>
849 <has_text text="Scaled Colour"/>
850 <has_text text="1.gff"/>
851 <has_text text="2.gff"/>
852 </assert_contents>
853 </output>
854 </test>
855 <test>
856 <param name="reference_genome|genome_type_select" value="history"/>
857 <param name="reference_genome|genome" value="merlin.fa"/>
858
859 <repeat name="track_groups">
860 <param name="category" value="With menu or index" />
861 <repeat name="data_tracks">
862 <conditional name="data_format">
863 <param name="data_format_select" value="gene_calls"/>
864 <param name="annotation" value="gff3/1.gff"/>
865 <conditional name="match_part">
866 <param name="match_part_select" value="false"/>
867 </conditional>
868 <section name="jbcolor_scale">
869 <conditional name="color_score">
870 <param name="color_score_select" value="none"/>
871 </conditional>
872 <conditional name="color">
873 <param name="color_select" value="automatic"/>
874 </conditional>
875 </section>
876 <section name="jbmenu">
877 <repeat name="track_menu">
878 <param name="menu_action" value="iframeDialog"/>
879 <param name="menu_label" value="Some menu item"/>
880 <param name="menu_title" value="Frame title"/>
881 <param name="menu_url" value="https://example.com/#!/?id={name}&amp;q={type}&amp;z=&quot;{end}&quot;"/>
882 <param name="menu_icon" value="dijitIconNewTask"/>
883 </repeat>
884 <repeat name="track_menu">
885 <param name="menu_action" value="newWindow"/>
886 <param name="menu_label" value="Another menu item"/>
887 <param name="menu_title" value="Frame title 2"/>
888 <param name="menu_url" value="https://example.com/#!/?id={name}&amp;q={type}&amp;z=&quot;{end}&quot;"/>
889 </repeat>
890 </section>
891 </conditional>
892 </repeat>
893 <repeat name="data_tracks">
894 <conditional name="data_format">
895 <param name="data_format_select" value="gene_calls"/>
896 <param name="annotation" value="gff3/1.gff"/>
897 <param name="index" value="true"/>
898 <conditional name="match_part">
899 <param name="match_part_select" value="false"/>
900 </conditional>
901 <section name="jbcolor_scale">
902 <conditional name="color_score">
903 <param name="color_score_select" value="none"/>
904 </conditional>
905 <conditional name="color">
906 <param name="color_select" value="automatic"/>
907 </conditional>
908 </section>
909 </conditional>
910 </repeat>
911 </repeat>
912
913 <param name="uglyTestingHack" value="enabled" />
914 <output name="output">
915 <assert_contents>
916 <has_text text="With menu or index"/>
917 <has_text text="Some menu item"/>
918 <has_text text="Frame title"/>
919 <has_text text="dijitIconNewTask"/>
920 </assert_contents>
921 </output>
922 </test>
923 <test>
924 <param name="reference_genome|genome_type_select" value="history"/>
925 <param name="reference_genome|genome" value="merlin.fa"/>
926
927 <repeat name="track_groups">
928 <param name="category" value="With canvas config" />
929 <repeat name="data_tracks">
930 <conditional name="data_format">
931 <param name="data_format_select" value="gene_calls"/>
932 <param name="annotation" value="gff3/1.gff"/>
933 <conditional name="match_part">
934 <param name="match_part_select" value="false"/>
935 </conditional>
936 <conditional name="track_config">
937 <param name="track_class" value="JBrowse/View/Track/CanvasFeatures"/>
938 <section name="canvas_options">
939 <param name="transcriptType" value="transcript"/>
940 <param name="subParts" value="exon"/>
941 <param name="impliedUTRs" value="true"/>
942 </section>
943 </conditional>
944 <section name="jbcolor_scale">
945 <conditional name="color_score">
946 <param name="color_score_select" value="none"/>
947 </conditional>
948 <conditional name="color">
949 <param name="color_select" value="automatic"/>
950 </conditional>
951 </section>
952 </conditional>
953 </repeat>
954 </repeat>
955
956 <param name="uglyTestingHack" value="enabled" />
957 <output name="output">
958 <assert_contents>
959 <has_text text="With canvas config"></has_text>
960 <has_text text="&lt;transcriptType&gt;transcript&lt;/transcriptType&gt;"></has_text>
961 <has_text text="&lt;subParts&gt;exon&lt;/subParts&gt;"></has_text>
962 </assert_contents>
963 </output>
964 </test>
965 <test>
966 <param name="reference_genome|genome_type_select" value="history"/>
967 <param name="reference_genome|genome" value="merlin.fa"/>
968
969 <repeat name="track_groups">
970 <param name="category" value="With custom track config" />
971 <repeat name="data_tracks">
972 <conditional name="data_format">
973 <param name="data_format_select" value="gene_calls"/>
974 <param name="annotation" value="gff3/1.gff"/>
975 <conditional name="match_part">
976 <param name="match_part_select" value="false"/>
977 </conditional>
978 <section name="jb_custom_config">
979 <repeat name="option">
980 <param name="opt_key" value="displayMode"/>
981 <conditional name="opt_value">
982 <param name="val_type" value="text"/>
983 <param name="val" value="collapsed"/>
984 </conditional>
985 </repeat>
986 <repeat name="option">
987 <param name="opt_key" value="histograms.height"/>
988 <conditional name="opt_value">
989 <param name="val_type" value="integer"/>
990 <param name="val" value="150"/>
991 </conditional>
992 </repeat>
993 <repeat name="option">
994 <param name="opt_key" value="maxFeatureScreenDensity"/>
995 <conditional name="opt_value">
996 <param name="val_type" value="float"/>
997 <param name="val" value="0.1"/>
998 </conditional>
999 </repeat>
1000 <repeat name="option">
1001 <param name="opt_key" value="style.strandArrow"/>
1002 <conditional name="opt_value">
1003 <param name="val_type" value="boolean"/>
1004 <param name="val" value="false"/>
1005 </conditional>
1006 </repeat>
1007 </section>
1008 </conditional>
1009 </repeat>
1010 </repeat>
1011
1012 <param name="uglyTestingHack" value="enabled" />
1013 <output name="output">
1014 <assert_contents>
1015 <has_text text="1.gff"/>
1016 <has_text text="collapsed"/>
1017 <has_text text="150"/>
1018 <has_text text="maxFeatureScreenDensity"/>
1019 <has_text text="style.strandArrow"/>
1020 </assert_contents>
1021 </output>
1022 </test>
1023 <test>
1024 <param name="reference_genome|genome_type_select" value="history"/>
1025 <param name="reference_genome|genome" value="merlin.fa"/>
1026
1027 <repeat name="track_groups">
1028 <param name="category" value="Auto Coloured" />
1029 <repeat name="data_tracks">
1030 <conditional name="data_format">
1031 <param name="data_format_select" value="pileup"/>
1032 <param name="annotation" value="bam/merlin-sample.bam"/>
1033 </conditional>
1034 </repeat>
1035 </repeat>
1036
1037 <param name="uglyTestingHack" value="enabled" />
1038 <output name="output">
1039 <assert_contents>
1040 <has_text text="merlin-sample.bam"/>
1041 <has_text text="sort_order=&quot;coordinate&quot;"/>
1042 <has_text text="bam_index"/>
1043 </assert_contents>
1044 </output>
1045 </test>
1046 <test>
1047 <!-- data_table -->
1048 <param name="reference_genome|genome_type_select" value="indexed"/>
1049 <param name="reference_genome|genome" value="merlin"/>
1050 <param name="uglyTestingHack" value="enabled" />
1051 <output name="output">
1052 <assert_contents>
1053 <has_text text="merlin.fa"/>
1054 </assert_contents>
1055 </output>
1056 </test>
1057 <!-- TODO add a synteny test -->
1058 <!-- TODO add a cram test -->
1059 <!-- TODO add an hic test -->
1060 <!-- TODO add a vcf_bgzip test -->
1061 </tests>
1062 <!-- TODO update doc -->
1063 <help><![CDATA[
1064 JBrowse-in-Galaxy
1065 =================
1066
1067 JBrowse-in-Galaxy offers a highly configurable, workflow-compatible
1068 alternative to Trackster.
1069
1070 Overview
1071 --------
1072
1073 JBrowse is a fast, embeddable genome browser built completely with
1074 JavaScript and HTML5.
1075
1076 The JBrowse-in-Galaxy (JiG) tool was written to help build complex
1077 JBrowse installations straight from Galaxy, taking advantage of the
1078 latest Galaxy features such as dataset collections, sections, and colour
1079 pickers. It allows you to build up a JBrowse instance without worrying
1080 about how to run the command line tools to format your data, and which
1081 options need to be supplied and where. Additionally it comes with many
1082 javascript functions to handle colouring of features which would be
1083 nearly impossible to write without the assistance of this tool.
1084
1085 The JBrowse-in-Galaxy tool is maintained by `the Galaxy IUC
1086 <https://github.com/galaxyproject/tools-iuc/issues>`__, who you can help you
1087 with missing features or bugs in the tool.
1088
1089 Options
1090 -------
1091
1092 The first option you encounter is the **Fasta Sequence(s)**. This option
1093 now accepts multiple fasta files, allowing you to build JBrowse
1094 instances that contain data for multiple genomes or chrosomomes
1095 (generally known as "landmark features" in gff3 terminology.) Up to 30
1096 will be shown from the dropdown selector within JBrowse, this is a known
1097 issue.
1098
1099 **Genetic Code** is a new feature in v0.4 of JiG / v1.12.0 of JBrowse,
1100 which allows users to specify a non standard genetic code, and have
1101 JBrowse highlight the correct start and stop codons.
1102
1103 **Track Groups** represent a set of tracks in a single category. These
1104 can be used to let your users understand relationships between large
1105 groups of tracks.
1106
1107 .. image:: sections.png
1108
1109 Annotation Tracks
1110 -----------------
1111
1112 Within Track Groups, you have one or more **Annotation Tracks**. Each
1113 Annotation Track is a groups of datasets which have similar styling.
1114 This allows you to rapidly build up JBrowse instances without having to
1115 configure tracks individually. A massive improvement over previous
1116 versions. For example, if you have five different GFF3 files from
1117 various gene callers that you wish to display, you can take advantage of
1118 this feature to style all of them similarly.
1119
1120 There are a few different types of tracks supported, each with their own
1121 set of options:
1122
1123 GFF3/BED
1124 ~~~~~~~~
1125
1126 These are your standard feature tracks. They usually highlight genes,
1127 mRNAs and other features of interest along a genomic region. The
1128 underlying tool and this help documentation focus primarily on GFF3
1129 data, and have not been tested extensively with other formats. Automatic
1130 min/max detection will fail under BED datasets.
1131
1132 The data may be of a subclass we call **match/match part** data. This
1133 consists of top level ``match`` features, with a child ``match_part``
1134 feature, and is often used in displaying alignments. (See "Alignments"
1135 section on the `GFF3
1136 specification <https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md>`__ for more
1137 information). If the data is match/match part, you will need to specify
1138 the top level match feature name, as it can be one of a few different SO
1139 terms, and JiG does not yet have the ability to understand SO terms.
1140
1141 Next up is the **Styling Options** section, which lets you control a few
1142 properties on how the track is styled. Most of these you will not need
1143 to configure and can safely leave on defaults. Occasionally you will
1144 want to change what information is shown in the end product.
1145
1146 .. image:: styling.png
1147
1148 In the above image you can see some black text, and some blue text. The
1149 source of the black text is configured with the **style.label** option,
1150 and the source of the blue text is configured with the
1151 **style.description** option.
1152
1153 Feature Score Scaling & Colouring Options
1154 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1155
1156 First, you need to choose between ignoring the score attribute of GFF3
1157 files, or using it. If you choose to ignore it, all features will be
1158 coloured with a solid colour. If you choose to use it, features will
1159 have slightly different colours based on their scores.
1160
1161 .. image:: opacity.png
1162
1163 If you choose **Ignore score**, you may choose between automatically
1164 choosing a colour, or manually specifying one. The automatically chosen
1165 colours vary along a brewer palette and generally look quite nice with
1166 no human intervention required. The manual colour choice is somewhat
1167 self explanatory. Clicking on the small coloured square will bring up a
1168 colour palette.
1169
1170 If you choose **Base on score**, you're faced with a dizzying array of
1171 options. First is the function to map the colour choices to colour
1172 values. JiG comes with a few functions built in such as linear scaling,
1173 logarithmic scaling, and blast scaling.
1174
1175 The **linear scaling** method says "take these values, and they map
1176 directly to a range of output values". **Logarithmic scaling** says
1177 "please take the log of the score before mapping", and **Blast scaling**
1178 is further specialised to handle blast data more nicely. These are
1179 convenience functions to help transform the wide array of possible
1180 values in the GFF3 score attribute to more meaningful numbers. If you
1181 need more comprehensive score scaling, it is recommended that you
1182 pre-process your GFF3 files somehow.
1183
1184 Once you've selected a scaling method, you can choose to manually
1185 specify the minimum and maximum expected values, or you can let JiG
1186 determine them for you automatically.
1187
1188 Finally, opacity is the only mapping we currently provide. Future
1189 iterations will attempt to improve upon this and provide more colour
1190 scales. The Opacity option maps the highest scoring features to full
1191 opacity, and everything else to lower ones.
1192
1193 BAM Pileups
1194 ~~~~~~~~~~~
1195
1196 We support BAM files and can automatically generate SNP tracks based on
1197 that bam data.
1198
1199 .. image:: bam.png
1200
1201 This is *strongly discouraged* for high coverage density datasets.
1202 Unfortunately there are no other configuration options exposed for bam
1203 files.
1204
1205 BlastXML
1206 ~~~~~~~~
1207
1208 .. image:: blast.png
1209
1210 JiG now supports both blastn and blastp datasets. JiG internally uses a
1211 blastXML to gapped GFF3 tool to convert your blastxml datasets into a
1212 format amenable to visualization in JBrowse. This tool is also
1213 available separately from the IUC on the toolshed.
1214
1215 **Minimum Gap Size** reflects how long a gap must be before it becomes a
1216 real gap in the processed gff3 file. In the picture above, various sizes
1217 of gaps can be seen. If the minimum gap size was set much higher, say
1218 100nt, many of the smaller gaps would disappear, and the features on
1219 both sides would be merged into one, longer feature. This setting is
1220 inversely proportional to runtime and output file size. *Do not set this
1221 to a low value for large datasets*. By setting this number lower, you
1222 will have extremely large outputs and extremely long runtimes. The
1223 default was configured based off of the author's experience, but the
1224 author only works on small viruses. It is *strongly* recommended that
1225 you filter your blast results before display, e.g. picking out the top
1226 10 hits or so.
1227
1228 **Protein blast search** option merely informs underlying tools that
1229 they should adjust feature locations by 3x.
1230
1231 Styling Options
1232 ^^^^^^^^^^^^^^^
1233
1234 Please see the styling options for GFF3 datasets, they are identical.
1235
1236 Feature Score Scaling & Coloring Options
1237 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1238
1239 Please see the score scaling and colouring options for GFF3 datasets,
1240 they are identical. Remember to set your score scaling to "blast" method
1241 if you do use it.
1242
1243 Bigwig XY
1244 ~~~~~~~~~
1245
1246 .. image:: bigwig.png
1247
1248 **XYPlot**
1249
1250 BigWig tracks can be displayed as a "density" plot which is continuous
1251 line which varies in colour, or as an "XYplot." XYplots are preferable
1252 for users to visually identify specific features in a bigwig track,
1253 however density tracks are more visually compact.
1254
1255 **Variance Band** is an option available to XYPlots, and can be seen in
1256 the third and fourth tracks in the above picture. This overlays a mean
1257 line, and 1 and 2 standard deviation areas.
1258
1259 **Track Scaling** is different from colour scaling, instead it
1260 configures how the track behaves inside of JBrowse. **Autoscaling
1261 globally** means that JBrowse will determine the minimum and maximum for
1262 the track, and fix the bounds of the viewport to that. E.g. if your
1263 track ranges from 1-1000, and the region you're currently zoomed to only
1264 goes from 0-50, then the viewport range will still show 1-1000. This is
1265 good for global genomic context. However you may wish to consider
1266 **autoscaling locally** instead. In the example of a region which varies
1267 from 0-50, autoscaling locally would cause the individual track's
1268 viewport to re-adjust and show just the 0-50 region. If neither of these
1269 options are palatable, you may manually hardcode the minimum and
1270 maximums for the track to scale to.
1271
1272 Colour Options
1273 ^^^^^^^^^^^^^^
1274
1275 BigWig tracks have two colours in JBrowse, a positive and a negative
1276 colour.
1277
1278 As always you may manually choose a colour, or let JiG choose for you.
1279
1280 One of the more interesting options is the **Bicolor pivot**. This
1281 option allows you to control the point at which JBrowse switches from
1282 the positive colour to the negative. In the above graphic, you can see
1283 this has been configured to "mean" for the first two (orange and blue)
1284 tracks.
1285
1286 VCFs/SNPs
1287 ~~~~~~~~~
1288
1289 These tracks do not support any special configuration.
1290
1291 @ATTRIBUTION@
1292 ]]></help>
1293 <expand macro="citations"/>
1294 </tool>
1295