-
Notifications
You must be signed in to change notification settings - Fork 508
Odgi update #7903
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Odgi update #7903
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,76 @@ | ||||||
| <tool id="odgi_cover" name="odgi cover" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="24.1"> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| <description>generate path covers for graph components</description> | ||||||
| <macros> | ||||||
| <import>macros.xml</import> | ||||||
| </macros> | ||||||
| <expand macro="requirements"/> | ||||||
| <command detect_errors="exit_code"><![CDATA[ | ||||||
| odgi cover | ||||||
| --idx '$idx' | ||||||
| --out '$output' | ||||||
| #if str($hogwild_depth) | ||||||
| --hogwild-depth $hogwild_depth | ||||||
| #end if | ||||||
| #if str($num_paths_per_component) | ||||||
| --num-paths-per-component $num_paths_per_component | ||||||
| #end if | ||||||
| #if str($node_windows_size) | ||||||
| --node-windows-size $node_windows_size | ||||||
| #end if | ||||||
| #if str($min_node_coverage) | ||||||
| --min-node-coverage $min_node_coverage | ||||||
| #end if | ||||||
| $ignore_paths | ||||||
| #if str($save_coverages) | ||||||
| --write-node-depth '$node_coverages' | ||||||
| #end if | ||||||
| @THREADS@ | ||||||
| ]]></command> | ||||||
| <inputs> | ||||||
| <expand macro="graph_input_param"/> | ||||||
| <param argument="--hogwild-depth" type="float" optional="true" min="0" label="Cover graph to this average depth" help="Randomly cover the graph until reaching the specified average depth."/> | ||||||
| <param argument="--num-paths-per-component" type="integer" optional="true" min="1" label="Number of paths to generate per component"/> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Please add |
||||||
| <param argument="--node-windows-size" type="integer" optional="true" min="2" label="Node window size when extending paths"/> | ||||||
| <param argument="--min-node-coverage" type="integer" optional="true" min="1" label="Minimum node coverage to reach"/> | ||||||
| <param argument="--ignore-paths" type="boolean" truevalue="--ignore-paths" falsevalue="" checked="false" label="Ignore embedded paths when initializing coverage"/> | ||||||
| <param argument="--save-coverages" type="boolean" truevalue="true" falsevalue="" checked="false" label="Write node coverages table" help="Generate a tabular file with per-node coverage statistics."/> | ||||||
| </inputs> | ||||||
| <outputs> | ||||||
| <data name="output" format="odgi" label="${tool.name} on ${on_string}"/> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Some output label?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| <data name="node_coverages" format="tabular" label="${tool.name} on ${on_string}: node coverages"> | ||||||
| <filter>save_coverages</filter> | ||||||
| </data> | ||||||
| </outputs> | ||||||
| <tests> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="idx" value="t.og" /> | ||||||
| <param name="num_paths_per_component" value="2" /> | ||||||
| <output name="output" file="cover_out.og" ftype="odgi" /> | ||||||
| </test> | ||||||
| <test expect_num_outputs="2"> | ||||||
| <param name="idx" value="t.og" /> | ||||||
| <param name="num_paths_per_component" value="2" /> | ||||||
| <param name="save_coverages" value="true" /> | ||||||
| <output name="output" file="cover_out.og" ftype="odgi" /> | ||||||
| <output name="node_coverages" file="cover_node_coverages.tabular" ftype="tabular" /> | ||||||
| </test> | ||||||
| </tests> | ||||||
| <help format="markdown"><![CDATA[ | ||||||
| @HELP_HEADER@ | ||||||
|
|
||||||
| `odgi cover` generates path covers for each connected component of the graph. | ||||||
|
|
||||||
| ### Inputs | ||||||
|
|
||||||
| - **Input odgi graph**: Graph to cover. | ||||||
| - **Average depth / Paths per component / Node window size / Minimum node coverage**: Control coverage generation heuristics. | ||||||
| - **Ignore embedded paths**: Start covering from scratch ignoring existing paths. | ||||||
| - **Write node coverages table**: Emit per-node coverage values. | ||||||
|
|
||||||
| ### Outputs | ||||||
|
|
||||||
| - **odgi**: Graph augmented with generated cover paths. | ||||||
| - **node coverages**: Optional tabular coverage summary. | ||||||
| ]]></help> | ||||||
| <expand macro="citations"/> | ||||||
| </tool> | ||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,104 @@ | ||||||
| <tool id="odgi_depth" name="odgi depth" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="24.1"> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| <description>compute path depth statistics</description> | ||||||
| <macros> | ||||||
| <import>macros.xml</import> | ||||||
| </macros> | ||||||
| <expand macro="requirements"/> | ||||||
| <command detect_errors="exit_code"><![CDATA[ | ||||||
| odgi depth | ||||||
| --input '$input' | ||||||
| #if $subset_paths | ||||||
| --subset-paths '$subset_paths' | ||||||
| #end if | ||||||
| #if str($path) | ||||||
| --path '$path' | ||||||
| #end if | ||||||
| #if $paths | ||||||
| --paths '$paths' | ||||||
| #end if | ||||||
| #if str($graph_pos) | ||||||
| --graph-pos '$graph_pos' | ||||||
| #end if | ||||||
| #if $graph_pos_file | ||||||
| --graph-pos-file '$graph_pos_file' | ||||||
| #end if | ||||||
| #if str($path_pos) | ||||||
| --path-pos '$path_pos' | ||||||
| #end if | ||||||
| #if $path_pos_file | ||||||
| --path-pos-file '$path_pos_file' | ||||||
| #end if | ||||||
| #if $bed_input | ||||||
| --bed-input '$bed_input' | ||||||
| #end if | ||||||
| $graph_depth_table | ||||||
| $graph_depth_vec | ||||||
| $path_depth | ||||||
| $self_depth | ||||||
| $summarize | ||||||
| #if str($windows_in) | ||||||
| --windows-in '$windows_in' | ||||||
| #end if | ||||||
| #if str($windows_out) | ||||||
| --windows-out '$windows_out' | ||||||
| #end if | ||||||
| @THREADS@ | ||||||
| > '$output' | ||||||
| ]]></command> | ||||||
| <inputs> | ||||||
| <expand macro="graph_input_param_input"/> | ||||||
| <param argument="--subset-paths" type="data" format="txt" optional="true" label="Subset of paths for depth calculation" help="Text file with one path name per line."/> | ||||||
| <param argument="--path" type="text" optional="true" label="Single path to analyze"/> | ||||||
| <param argument="--paths" type="data" format="txt" optional="true" label="Report depth for these paths" help="Text file with one path name per line."/> | ||||||
| <param argument="--graph-pos" type="text" optional="true" label="Graph position (node[,offset[,strand]])"/> | ||||||
| <param argument="--graph-pos-file" type="data" format="txt" optional="true" label="File of graph positions"/> | ||||||
| <param argument="--path-pos" type="text" optional="true" label="Path position (path[,offset[,strand]])"/> | ||||||
| <param argument="--path-pos-file" type="data" format="txt" optional="true" label="File of path positions"/> | ||||||
| <param argument="--bed-input" type="data" format="bed" optional="true" label="BED intervals to evaluate"/> | ||||||
| <param argument="--graph-depth-table" type="boolean" truevalue="--graph-depth-table" falsevalue="" checked="false" label="Write node depth/unique depth table"/> | ||||||
| <param argument="--graph-depth-vec" type="boolean" truevalue="--graph-depth-vec" falsevalue="" checked="false" label="Write graph depth vector"/> | ||||||
| <param argument="--path-depth" type="boolean" truevalue="--path-depth" falsevalue="" checked="false" label="Write per-base path depth"/> | ||||||
| <param argument="--self-depth" type="boolean" truevalue="--self-depth" falsevalue="" checked="false" label="Write self depth per base"/> | ||||||
| <param argument="--summarize" type="boolean" truevalue="--summarize" falsevalue="" checked="false" label="Summarize depth distribution"/> | ||||||
| <param argument="--windows-in" type="text" optional="true" label="Depth windows inside range (LEN:MIN:MAX)"/> | ||||||
| <param argument="--windows-out" type="text" optional="true" label="Depth windows outside range (LEN:MIN:MAX)"/> | ||||||
| </inputs> | ||||||
| <outputs> | ||||||
| <expand macro="standard_tabular_output"/> | ||||||
| </outputs> | ||||||
| <tests> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="input" value="t.og" /> | ||||||
| <param name="graph_depth_table" value="true" /> | ||||||
| <output name="output" file="depth_graph_table.tabular" ftype="tabular" /> | ||||||
| </test> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="input" value="t.og" /> | ||||||
| <param name="path_depth" value="true" /> | ||||||
| <output name="output" file="depth_path.tabular" ftype="tabular" /> | ||||||
| </test> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="input" value="t.og" /> | ||||||
| <param name="summarize" value="true" /> | ||||||
| <output name="output" file="depth_summarize.tabular" ftype="tabular" /> | ||||||
| </test> | ||||||
| </tests> | ||||||
| <help format="markdown"><![CDATA[ | ||||||
| @HELP_HEADER@ | ||||||
|
|
||||||
| `odgi depth` reports depth metrics for selected paths, positions, or intervals. | ||||||
|
|
||||||
| ### Inputs | ||||||
|
|
||||||
| - **Input odgi graph**: Graph to profile. | ||||||
| - **Subset/path/path lists**: Limit the analysis to specific paths. | ||||||
| - **Positions / BED intervals**: Query exact positions or ranges. | ||||||
| - **Depth summary toggles**: Emit tables or vectors describing depth per node or path. | ||||||
| - **Depth windows**: Report intervals within or outside depth ranges. | ||||||
|
|
||||||
| ### Outputs | ||||||
|
|
||||||
| - **Tabular**: Depth metrics written in tab-separated form. | ||||||
| ]]></help> | ||||||
| <expand macro="citations"/> | ||||||
| </tool> | ||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,125 @@ | ||||||
| <tool id="odgi_draw" name="odgi draw" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="24.1"> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| <description>draw previously-determined 2D layouts of the graph with diverse annotations</description> | ||||||
| <macros> | ||||||
| <import>macros.xml</import> | ||||||
| </macros> | ||||||
| <expand macro="requirements"/> | ||||||
| <command detect_errors="exit_code"><![CDATA[ | ||||||
| odgi draw | ||||||
| --idx '$idx' | ||||||
| --coords-in '$coords_in' | ||||||
| #if $png | ||||||
| --png '$png_output' | ||||||
| #end if | ||||||
| #if $svg | ||||||
| --svg '$svg_output' | ||||||
| #end if | ||||||
| #if $tsv | ||||||
| --tsv '$tsv_output' | ||||||
| #end if | ||||||
| #if $path_index | ||||||
| --path-index '$path_index' | ||||||
| #end if | ||||||
| #if str($png_height) | ||||||
| --png-height $png_height | ||||||
| #end if | ||||||
| #if str($png_border) | ||||||
| --png-border $png_border | ||||||
| #end if | ||||||
| $color_paths | ||||||
| #if str($scale) | ||||||
| --scale $scale | ||||||
| #end if | ||||||
| #if str($border) | ||||||
| --border $border | ||||||
| #end if | ||||||
| #if str($line_width) | ||||||
| --line-width $line_width | ||||||
| #end if | ||||||
| #if str($path_line_spacing) | ||||||
| --path-line-spacing $path_line_spacing | ||||||
| #end if | ||||||
| #if $bed_file | ||||||
| --bed-file '$bed_file' | ||||||
| #end if | ||||||
| @THREADS@ | ||||||
| ]]></command> | ||||||
| <inputs> | ||||||
| <expand macro="graph_input_param"/> | ||||||
| <param argument="--coords-in" type="data" format="txt" label="Layout coordinates file" help="Read the layout coordinates from this .lay format file produced by odgi layout."/> | ||||||
| <param argument="--png" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Output PNG rendering"/> | ||||||
| <param argument="--svg" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Output SVG rendering"/> | ||||||
| <param argument="--tsv" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Output TSV layout"/> | ||||||
|
Comment on lines
+50
to
+52
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we instead have a select param here and allow users to select the required output? |
||||||
| <param argument="--path-index" type="data" format="txt" optional="true" label="Path index file"/> | ||||||
| <param argument="--png-height" type="integer" optional="true" min="1" label="PNG height" help="Height of PNG rendering in pixels (default: 1000)."/> | ||||||
| <param argument="--png-border" type="integer" optional="true" min="0" label="PNG border size" help="Size of PNG border in bp (default: 10)."/> | ||||||
| <param argument="--color-paths" type="boolean" truevalue="--color-paths" falsevalue="" checked="false" label="Color paths in PNG output"/> | ||||||
| <param argument="--scale" type="float" optional="true" min="0" label="Image scaling factor" help="Default: 1.0"/> | ||||||
| <param argument="--border" type="float" optional="true" min="0" label="Image border in approximate bp" help="Default: 100.0"/> | ||||||
| <param argument="--line-width" type="float" optional="true" min="0" label="Line width in approximate bp" help="Default: 0.0"/> | ||||||
| <param argument="--path-line-spacing" type="float" optional="true" min="0" label="Path line spacing in approximate bp" help="Default: 0.0"/> | ||||||
| <param argument="--bed-file" type="data" format="bed" optional="true" label="BED file for node coloring" help="Color nodes based on annotations. Colors from 4th column if present, else from path name."/> | ||||||
| </inputs> | ||||||
| <outputs> | ||||||
| <data name="png_output" format="png" label="${tool.name} on ${on_string}: PNG"> | ||||||
| <filter>png</filter> | ||||||
| </data> | ||||||
| <data name="svg_output" format="svg" label="${tool.name} on ${on_string}: SVG"> | ||||||
| <filter>svg</filter> | ||||||
| </data> | ||||||
| <data name="tsv_output" format="tabular" label="${tool.name} on ${on_string}: TSV"> | ||||||
| <filter>tsv</filter> | ||||||
| </data> | ||||||
| </outputs> | ||||||
| <tests> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="idx" value="t.og" /> | ||||||
| <param name="coords_in" value="t.lay" /> | ||||||
| <param name="png" value="true" /> | ||||||
| <param name="svg" value="false" /> | ||||||
| <param name="tsv" value="false" /> | ||||||
| <output name="png_output" file="draw_out.png" ftype="png" compare="sim_size" delta="5000"/> | ||||||
| </test> | ||||||
| <test expect_num_outputs="2"> | ||||||
| <param name="idx" value="t.og" /> | ||||||
| <param name="coords_in" value="t.lay" /> | ||||||
| <param name="png" value="true" /> | ||||||
| <param name="svg" value="true" /> | ||||||
| <param name="tsv" value="false" /> | ||||||
| <param name="color_paths" value="true" /> | ||||||
| <output name="png_output" file="draw_color.png" ftype="png" compare="sim_size" delta="5000"/> | ||||||
| <output name="svg_output" file="draw_out.svg" ftype="svg" /> | ||||||
| </test> | ||||||
| <test expect_num_outputs="1"> | ||||||
| <param name="idx" value="t.og" /> | ||||||
| <param name="coords_in" value="t.lay" /> | ||||||
| <param name="png" value="false" /> | ||||||
| <param name="svg" value="false" /> | ||||||
| <param name="tsv" value="true" /> | ||||||
| <output name="tsv_output" file="draw_out.tabular" ftype="tabular" /> | ||||||
| </test> | ||||||
| </tests> | ||||||
| <help format="markdown"><![CDATA[ | ||||||
| @HELP_HEADER@ | ||||||
|
|
||||||
| `odgi draw` renders previously-computed 2D graph layouts (produced by `odgi layout`) into visual outputs. | ||||||
|
|
||||||
| ### Inputs | ||||||
|
|
||||||
| - **Input odgi graph**: The graph to draw. | ||||||
| - **Layout coordinates file**: The `.lay` file produced by `odgi layout`. | ||||||
| - **Path index**: Optional path index file. | ||||||
| - **BED file**: Optional annotations to color nodes. | ||||||
|
|
||||||
| ### Outputs | ||||||
|
|
||||||
| - **PNG**: Rasterized image rendering. | ||||||
| - **SVG**: Vector image rendering. | ||||||
| - **TSV**: Layout coordinates plus annotations as a table. | ||||||
|
|
||||||
| ### Visualization Options | ||||||
|
|
||||||
| Control the appearance with height, border, scale, line width, path spacing, and path coloring options. | ||||||
| ]]></help> | ||||||
| <expand macro="citations"/> | ||||||
| </tool> | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can introduce above TOKEN in macros.xml