GithubHelp home page GithubHelp logo

gfaestus's Introduction

gfaestus - Vulkan-accelerated GFA visualization

gfaestus is a tool for visualizing and interacting with genome graphs in the GFA format.

It can display GFA graphs using a provided 2D layout (produced with odgi's layout command), and is intended to deliver an interactive visual interface for exploring genome graphs that is fast, powerful, and easy to use.

In addition to the 2D layout, a handlegraph representation of the GFA is created, which will enable visualizations and interactivity that take advantage of the graph topology, paths, and more.

gfaestus uses Vulkan for hardware-acceleration, via the ash crate.

Requirements

Compiling gfaestus requires the Vulkan SDK, available here: https://vulkan.lunarg.com/sdk/home

To run gfaestus, you must have a GPU with drivers that support

Vulkan. If you're on Windows or Linux, and have an AMD, Nvidia, or integrated Intel GPU, you should be good to go.

If you're on Mac, you'll need to install MoltenVK.

Usage

With a working Vulkan SDK environment (make sure you have glslc on your path), you can build gfaestus using cargo.

cargo build --release

Due to technical reasons, gfaestus must be run from the repo directory for shaders and scripts to be found. An easy way to do this is to use the generated shell script, which can be copied to your PATH:

./gfaestus-release <GFA> <layout TSV>

# use whichever directory on your path you like
cp gfaestus-release ~/.local/bin/gfaestus
gfaestus <GFA> <layout TSV>

Instructions

The easiest way to display annotations is via the BED Label Wizard under Tools in the top menubar.

You can also load a custom TSV format, which makes it easy to assign colors and labels to nodes.

Each line assigns either a color, in CSS-style hexadecimal format, or a text string, to a node. For example, for node 1223:

1223 #44BBCC
1223 this line is a label

Keyboard

  • Space: Reset view
  • Arrow keys: Pan view
  • Escape: Clear selection
  • F9 - Toggle light/dark mode

Mouse

  • Left Mouse: Select node

  • Left Mouse (click and drag): Pan view

  • Shift + Left Mouse (click and drag): Rectangle select

  • Scroll wheel: Zoom view

  • Right Mouse: Context menu

gfaestus's People

Contributors

chfi avatar ekg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gfaestus's Issues

cargo build error

Hi
when i build in Macos with. cargo build --release
It go with :

error: failed to download `emath v0.15.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `/Users/masen/.cargo/registry/src/github.com-1ecc6299db9ec823/emath-0.15.0/Cargo.toml`

Caused by:
  feature `resolver` is required

  consider adding `cargo-features = ["resolver"]` to the manifest

after add cargo-features = ["resolver"] to the end of Cargo.toml. still another message:
error: failed to parse manifest at/Users/masen/Documents/gfaestus/Cargo.toml`

Caused by:
invalid type: sequence, expected a version string like "0.9.8" or a detailed dependency like { version = "0.9.8" } for key patch.crates-io.cargo-features

`

Can't Compile on macOS

Hi,

I'm trying to compile gfaestus on MacOS 10.14.2 but I can't get past this error:

$ git clone --recursive https://github.com/chfi/gfaestus.git
Cloning into 'gfaestus'...
remote: Enumerating objects: 9657, done.
remote: Counting objects: 100% (9657/9657), done.
remote: Compressing objects: 100% (3964/3964), done.
remote: Total 9657 (delta 7291), reused 7853 (delta 5491), pack-reused 0
Receiving objects: 100% (9657/9657), 1.89 MiB | 1.91 MiB/s, done.
Resolving deltas: 100% (7291/7291), done.

$ cd gfaestus/
$ RUST_BACKTRACE=full
$ cargo build --release
   Compiling libc v0.2.101
   Compiling autocfg v1.0.1
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.24
   Compiling libm v0.2.1
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.60
   Compiling bitflags v1.2.1
   Compiling version_check v0.9.2
   Compiling lazy_static v1.4.0
   Compiling crossbeam-utils v0.8.5
   Compiling memchr v2.3.4
   Compiling getrandom v0.2.2
   Compiling scopeguard v1.1.0
   Compiling foreign-types-shared v0.1.1
   Compiling core-foundation-sys v0.8.2
   Compiling once_cell v1.5.2
   Compiling crossbeam-epoch v0.9.5
   Compiling getrandom v0.1.16
   Compiling block v0.1.6
   Compiling ppv-lite86 v0.2.10
   Compiling log v0.4.14
   Compiling static_assertions v1.1.0
   Compiling core-foundation-sys v0.7.0
   Compiling futures-core v0.3.15
   Compiling proc-macro-hack v0.5.19
   Compiling rayon-core v1.9.0
   Compiling ryu v1.0.5
   Compiling lexical-core v0.7.6
   Compiling futures-channel v0.3.15
   Compiling futures-task v0.3.15
   Compiling byteorder v1.4.2
   Compiling typenum v1.12.0
   Compiling proc-macro-nested v0.1.7
   Compiling anyhow v1.0.38
   Compiling crossbeam-queue v0.3.2
   Compiling ttf-parser v0.12.3
   Compiling regex-syntax v0.6.22
   Compiling arrayvec v0.5.2
   Compiling futures-sink v0.3.15
   Compiling rawpointer v0.2.1
   Compiling unicode-segmentation v1.8.0
   Compiling either v1.6.1
   Compiling slab v0.4.2
   Compiling ab_glyph_rasterizer v0.1.4
   Compiling futures-io v0.3.15
   Compiling pin-project-lite v0.2.6
   Compiling pin-utils v0.1.0
   Compiling smallvec v1.6.1
   Compiling paste v1.0.4
   Compiling cc v1.0.66
   Compiling argh_shared v0.1.5
   Compiling atomic_refcell v0.1.6
   Compiling cfg-if v0.1.10
   Compiling fnv v1.0.7
   Compiling winit v0.25.0
   Compiling emath v0.14.0
   Compiling glob v0.3.0
   Compiling yansi v0.5.0
   Compiling gfaestus v0.1.0 (/Users/baxter/gfaestus)
   Compiling dispatch v0.2.0
   Compiling colorous v1.0.5
   Compiling rustc-hash v1.1.0
   Compiling futures-timer v3.0.2
   Compiling libloading v0.7.0
   Compiling instant v0.1.10
   Compiling num-traits v0.2.14
   Compiling memoffset v0.6.1
   Compiling num-integer v0.1.44
   Compiling futures-macro v0.3.15
   Compiling num-rational v0.3.2
   Compiling futures-util v0.3.15
   Compiling rayon v1.5.0
   Compiling ahash v0.7.0
   Compiling generic-array v0.14.4
   Compiling nom v5.1.2
   Compiling lock_api v0.4.2
   Compiling foreign-types v0.3.2
   Compiling thread_local v1.1.3
   Compiling smartstring v0.2.9
   Compiling regex-automata v0.1.9
   Compiling matrixmultiply v0.2.4
   Compiling heck v0.3.3
   Compiling owned_ttf_parser v0.12.1
   Compiling vk-mem v0.2.2
   Compiling ash v0.32.0
   Compiling ab_glyph v0.2.11
   Compiling quote v1.0.8
   Compiling crossbeam-channel v0.5.1
   Compiling malloc_buf v0.0.6
   Compiling num_cpus v1.13.0
   Compiling raw-window-handle v0.3.3
   Compiling time v0.1.43
   Compiling memmap v0.7.0
   Compiling atty v0.2.14
   Compiling parking_lot_core v0.8.2
   Compiling aho-corasick v0.7.15
   Compiling bstr v0.2.15
   Compiling core-foundation v0.9.1
   Compiling core-foundation v0.7.0
   Compiling num-complex v0.3.1
   Compiling approx v0.4.0
   Compiling ordered-float v2.1.1
   Compiling succinct v0.5.2
   Compiling rand_core v0.6.1
   Compiling objc v0.2.7
   Compiling rand_core v0.5.1
   Compiling parking_lot v0.11.1
   Compiling regex v1.4.3
   Compiling core-graphics-types v0.1.1
   Compiling core-graphics v0.19.2
   Compiling crossbeam-deque v0.8.0
   Compiling chrono v0.4.19
   Compiling simba v0.3.1
   Compiling wyhash v0.5.0
   Compiling rand_chacha v0.3.1
   Compiling epaint v0.14.0
   Compiling rand_chacha v0.2.2
   Compiling objc_id v0.1.1
   Compiling core-graphics v0.22.2
   Compiling cocoa-foundation v0.1.0
   Compiling core-video-sys v0.1.4
   Compiling crossbeam v0.8.1
   Compiling bytemuck_derive v1.0.1
   Compiling thiserror-impl v1.0.28
   Compiling argh_derive v0.1.5
   Compiling rhai_codegen v1.0.0
   Compiling rand v0.8.4
   Compiling egui v0.14.2
   Compiling rand v0.7.3
   Compiling objc-foundation v0.1.1
   Compiling cocoa v0.24.0
   Compiling bytemuck v1.7.2
   Compiling thiserror v1.0.28
   Compiling argh v0.1.5
   Compiling rhai v1.0.2
   Compiling rand_distr v0.3.0
   Compiling clipboard v0.5.0
   Compiling gfa v0.10.0
   Compiling rgb v0.8.25
   Compiling raw-window-metal v0.1.2
   Compiling boomphf v0.5.9
   Compiling flexi_logger v0.18.0
   Compiling futures-executor v0.3.15
   Compiling nalgebra v0.24.1
   Compiling ash-window v0.6.0
   Compiling handlegraph v0.7.0-alpha.9 (https://github.com/chfi/rs-handlegraph#6b0a807b)
   Compiling futures v0.3.15
   Compiling nalgebra-glm v0.10.0
error[E0423]: expected value, found struct `InstanceExtensions`
   --> src/vulkan/init.rs:64:31
    |
64  |         instance_extensions = InstanceExtensions;
    |                               ^^^^^^^^^^^^^^^^^^
...
535 | pub struct InstanceExtensions {}
    | -------------------------------- `InstanceExtensions` defined here
    |
help: use struct literal syntax instead
    |
64  |         instance_extensions = InstanceExtensions {};
    |                               ~~~~~~~~~~~~~~~~~~~~~
help: a local variable with a similar name exists
    |
64  |         instance_extensions = instance_extensions;
    |                               ~~~~~~~~~~~~~~~~~~~

warning: unused import: `std::sync::Arc`
  --> src/app.rs:22:5
   |
22 | use std::sync::Arc;
   |     ^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: unused import: `crate::app::selection::NodeSelection`
  --> src/app.rs:29:5
   |
29 | use crate::app::selection::NodeSelection;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused macro definition: `handle`
   --> src/app.rs:418:30
    |
418 |                 macro_rules! handle {
    |                              ^^^^^^
    |
    = note: `#[warn(unused_macros)]` on by default

warning: unused imports: `HashMap`, `HashSet`, `path::PathBuf`
 --> src/context.rs:2:19
  |
2 |     collections::{HashMap, HashSet},
  |                   ^^^^^^^  ^^^^^^^
3 |     path::PathBuf,
  |     ^^^^^^^^^^^^^

warning: unused imports: `Direction`, `mutablehandlegraph::*`
  --> src/context.rs:13:14
   |
13 |     handle::{Direction, Handle, NodeId},
   |              ^^^^^^^^^
14 |     handlegraph::*,
15 |     mutablehandlegraph::*,
   |     ^^^^^^^^^^^^^^^^^^^^^

warning: unused imports: `Rect`, `selection::NodeSelection`
  --> src/context.rs:24:11
   |
24 |     app::{selection::NodeSelection, App, AppChannels, AppMsg, SharedState},
   |           ^^^^^^^^^^^^^^^^^^^^^^^^
25 |     geometry::{Point, Rect},
   |                       ^^^^

warning: unused imports: `SinkExt`, `future::RemoteHandle`
 --> src/reactor/modal.rs:2:15
  |
2 | use futures::{future::RemoteHandle, SinkExt};
  |               ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^

warning: unused imports: `RwLockUpgradableReadGuard`, `RwLockWriteGuard`
 --> src/reactor/modal.rs:4:37
  |
4 |     Mutex, RwLock, RwLockReadGuard, RwLockUpgradableReadGuard, RwLockWriteGuard,
  |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^

warning: unused import: `InstanceV1_0`
  --> src/vulkan/draw_system/edges.rs:11:32
   |
11 | use ash::version::{DeviceV1_0, InstanceV1_0};
   |                                ^^^^^^^^^^^^

warning: unused import: `VecDeque`
 --> src/annotations.rs:2:28
  |
2 |     collections::{HashMap, VecDeque},
  |                            ^^^^^^^^

warning: unused import: `parking_lot::Mutex`
  --> src/annotations.rs:18:5
   |
18 | use parking_lot::Mutex;
   |     ^^^^^^^^^^^^^^^^^^

warning: unused import: `Annotations`
  --> src/gui/console.rs:26:49
   |
26 |         AnnotationCollection, AnnotationRecord, Annotations, BedColumn,
   |                                                 ^^^^^^^^^^^

warning: unused import: `quad_tree::*`
  --> src/gui/console.rs:38:5
   |
38 |     quad_tree::*,
   |     ^^^^^^^^^^^^

warning: unused import: `self::text::draw_text_at_world_point`
  --> src/gui.rs:63:5
   |
63 | use self::text::draw_text_at_world_point;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `packed`
  --> src/context.rs:16:5
   |
16 |     packed::*,
   |     ^^^^^^

warning: unused import: `bstr::ByteSlice`
   --> src/script/plugins.rs:346:13
    |
346 |         use bstr::ByteSlice;
    |             ^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0423`.
warning: `gfaestus` (lib) generated 16 warnings
error: could not compile `gfaestus` due to previous error; 16 warnings emitted
warning: build failed, waiting for other jobs to finish...
error: build failed

I'd appreciate any thoughts or advice on this. Thanks in advance!

Compilation problem -> Execution problem

Hi Chris,

on my system (Ubuntu 20.04), doing

git clone --recursive https://github.com/chfi/gfaestus.git
cd gfaestus/
RUST_BACKTRACE=full cargo build --release

I get

[...]
   Compiling gif v0.11.1
   Compiling tokio v0.2.25
   Compiling dlib v0.4.2
   Compiling ash v0.31.0

error: failed to run custom build command for `gfaestus v0.1.0 (/home/guarracino/git/gfaestus)`

Caused by:
  process didn't exit successfully: `/home/guarracino/git/gfaestus/target/release/build/gfaestus-432db26c746973b7/build-script-build` (exit code: 101)
  --- stdout
  Compiling shaders...

  --- stderr
  thread 'main' panicked at 'Failed to compile shader. Cause: No such file or directory (os error 2)', build.rs:83:13
  stack backtrace:
     0:     0x5613d4e065b0 - std::backtrace_rs::backtrace::libunwind::trace::h74532f8b485906a1
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
     1:     0x5613d4e065b0 - std::backtrace_rs::backtrace::trace_unsynchronized::h2c8425dd0be5999b
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
     2:     0x5613d4e065b0 - std::sys_common::backtrace::_print_fmt::hd8ce6577f46119ce
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/sys_common/backtrace.rs:67:5
     3:     0x5613d4e065b0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6289eeebc1f97d57
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/sys_common/backtrace.rs:46:22
     4:     0x5613d4e20e0f - core::fmt::write::h3d3f8a8bb9d4c367
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/core/src/fmt/mod.rs:1092:17
     5:     0x5613d4e03c52 - std::io::Write::write_fmt::ha117cbfa72664a7b
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/io/mod.rs:1572:15
     6:     0x5613d4e08285 - std::sys_common::backtrace::_print::h112e8a4ac2720a21
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/sys_common/backtrace.rs:49:5
     7:     0x5613d4e08285 - std::sys_common::backtrace::print::h2a4ab5824600ebce
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/sys_common/backtrace.rs:36:9
     8:     0x5613d4e08285 - std::panicking::default_hook::{{closure}}::h399ab06c3b83a1f2
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:208:50
     9:     0x5613d4e07d33 - std::panicking::default_hook::h7481e93ca9c2d739
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:225:9
    10:     0x5613d4e0888d - std::panicking::rust_panic_with_hook::h01f9d4e9485ccb8b
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:591:17
    11:     0x5613d4e08427 - std::panicking::begin_panic_handler::{{closure}}::h25bff4eb752cc444
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:497:13
    12:     0x5613d4e06a6c - std::sys_common::backtrace::__rust_end_short_backtrace::h5dfd3f7920e58cc5
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/sys_common/backtrace.rs:141:18
    13:     0x5613d4e08389 - rust_begin_unwind
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:493:5
    14:     0x5613d4de1eab - std::panicking::begin_panic_fmt::h5ea05d30b78d4fb2
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:435:5
    15:     0x5613d4de536e - build_script_build::handle_program_result::hd616f239f03b87e5
    16:     0x5613d4de4c1a - build_script_build::compile_shaders::{{closure}}::h6a21294b2d2e3036
    17:     0x5613d4de6612 - core::iter::traits::iterator::Iterator::for_each::call::{{closure}}::hdba9e6f844b18f25
    18:     0x5613d4de8666 - core::iter::adapters::filter::filter_fold::{{closure}}::hd2335b6a7e938309
    19:     0x5613d4deb13d - core::iter::adapters::map::map_fold::{{closure}}::h5a9825aac41bb721
    20:     0x5613d4deb709 - core::iter::traits::iterator::Iterator::fold::h676a543d465bc74a
    21:     0x5613d4deacb1 - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::h9480345f9c19c8e0
    22:     0x5613d4de7f91 - <core::iter::adapters::filter::Filter<I,P> as core::iter::traits::iterator::Iterator>::fold::h9da373dcdbf0f4b1
    23:     0x5613d4de8562 - core::iter::traits::iterator::Iterator::for_each::hb13b215b1fca0e15
    24:     0x5613d4de4716 - build_script_build::compile_shaders::h4aaa1f5a16508b64
    25:     0x5613d4de448e - build_script_build::main::h71df4c9e67a911fe
    26:     0x5613d4de9253 - core::ops::function::FnOnce::call_once::hfb05eaca16c55879
    27:     0x5613d4de8739 - std::sys_common::backtrace::__rust_begin_short_backtrace::h7e77a3f26319a990
    28:     0x5613d4de5b09 - std::rt::lang_start::{{closure}}::ha0e46fb4d0791a39
    29:     0x5613d4e08c8a - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::ha7db63b609be77e3
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/core/src/ops/function.rs:259:13
    30:     0x5613d4e08c8a - std::panicking::try::do_call::h715c8c8ca0806d14
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:379:40
    31:     0x5613d4e08c8a - std::panicking::try::h2530c507ef432acf
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:343:19
    32:     0x5613d4e08c8a - std::panic::catch_unwind::h0c4984a63ffdd417
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panic.rs:431:14
    33:     0x5613d4e08c8a - std::rt::lang_start_internal::h12392519f60c6396
                                 at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/rt.rs:51:25
    34:     0x5613d4de5af1 - std::rt::lang_start::h4aa2d3928c63fb01
    35:     0x5613d4de5543 - main
    36:     0x7f2cd85770b3 - __libc_start_main
    37:     0x5613d4de290e - _start
    38:                0x0 - <unknown>
warning: build failed, waiting for other jobs to finish...
error: build failed

The problem happens with Rust 1.51.0 and 1.52.0.

Do you have any clues?

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: stream did not contain valid UTF-8', src/main.rs:102:61

Hi @chfi
Running

./target/release/gfaestus ~/Downloads/yeast/pggb_gfaestus/cerevisiae.pan.fa.pggb-W-s50000-l150000-p90-n5-a0-K16.seqwish-k8-B10000000.smooth-w30000-j5000-e5000-I0.7-p1_4_6_2_26_1.gfa ~/Downloads/yeast/pggb_gfaestus/cerevisiae.pan.fa.pggb-W-s50000-l150000-p90-n5-a0-K16.seqwish-k8-B10000000.smooth-w30000-j5000-e5000-I0.7-p1_4_6_2_26_1.chop.og.lay

I see

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: stream did not contain valid UTF-8', src/main.rs:102:61

Link to the data. Will expire in 10 days.
http://fex.belwue.de/fop/LTIrSTM5/pggb_gfaestus_issue.zip

Thanks for any feedback!

Error loading GFA file

Hi

I'm trying to load my GFA file, but I'm getting an error.

gfaestus *.smooth.gfa *.smooth.chop.og.lay
loading GFA
loading GFA with 734 nodes, 1003 edges
adding nodes
adding edges
adding paths
created path handles
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: stream did not contain valid UTF-8', src/main.rs:116:61
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

echo $RUST_BACKTRACE
1 

I've also set the environment variable RUST_BACKTRACE=1 but still get no more information about the error.

I'm trying to visualise graphs produced from PGGB (https://github.com/pangenome/pggb). At the moment I'm only looking at small graphs representing a gene region. Thanks for any help you can provide.

Error compiling in docker container

Hi @chfi,

I'm struggling compiling gfaestus in a docker container:

#10 63.84    Compiling libc v0.2.101
#10 63.84    Compiling cfg-if v1.0.0
#10 63.95    Compiling autocfg v1.0.1
#10 64.26    Compiling proc-macro2 v1.0.24
#10 64.42    Compiling unicode-xid v0.2.1
#10 64.57    Compiling version_check v0.9.2
#10 64.70    Compiling lazy_static v1.4.0
#10 64.82    Compiling libm v0.2.1
#10 65.00    Compiling syn v1.0.60
#10 65.12    Compiling bitflags v1.2.1
#10 65.41    Compiling memchr v2.3.4
#10 65.49    Compiling once_cell v1.5.2
#10 65.76    Compiling crossbeam-utils v0.8.5
#10 65.78    Compiling log v0.4.14
#10 66.07    Compiling pkg-config v0.3.19
#10 66.08    Compiling getrandom v0.2.2
#10 66.40    Compiling scopeguard v1.1.0
#10 66.53    Compiling crossbeam-epoch v0.9.5
#10 66.72    Compiling xml-rs v0.8.4
#10 66.84    Compiling smallvec v1.6.1
#10 67.10    Compiling getrandom v0.1.16
#10 67.42    Compiling ab_glyph_rasterizer v0.1.4
#10 67.75    Compiling ppv-lite86 v0.2.10
#10 67.93    Compiling rayon-core v1.9.0
#10 68.16    Compiling futures-core v0.3.15
#10 68.20    Compiling proc-macro-hack v0.5.19
#10 68.46    Compiling crossbeam-queue v0.3.2
#10 68.58    Compiling ryu v1.0.5
#10 68.77    Compiling static_assertions v1.1.0
#10 68.88    Compiling byteorder v1.4.2
#10 68.97    Compiling typenum v1.12.0
#10 69.20    Compiling downcast-rs v1.2.0
#10 69.33    Compiling futures-task v0.3.15
#10 69.63    Compiling lexical-core v0.7.6
#10 69.64    Compiling proc-macro-nested v0.1.7
#10 69.93    Compiling futures-channel v0.3.15
#10 70.00    Compiling nix v0.18.0
#10 70.23    Compiling scoped-tls v1.0.0
#10 70.25    Compiling minimal-lexical v0.1.3
#10 70.38    Compiling ttf-parser v0.6.2
#10 70.80    Compiling ttf-parser v0.12.3
#10 74.55    Compiling cfg-if v0.1.10
#10 74.66    Compiling anyhow v1.0.38
#10 75.06    Compiling maybe-uninit v2.0.0
#10 75.44    Compiling futures-sink v0.3.15
#10 75.44    Compiling arrayvec v0.5.2
#10 75.57    Compiling same-file v1.0.6
#10 75.82    Compiling regex-syntax v0.6.22
#10 75.84    Compiling futures-io v0.3.15
#10 76.17    Compiling pin-utils v0.1.0
#10 80.05    Compiling cc v1.0.66
#10 81.32    Compiling xdg v2.2.0
#10 82.57    Compiling pin-project-lite v0.2.6
#10 82.69    Compiling slab v0.4.2
#10 82.85    Compiling paste v1.0.4
#10 83.68    Compiling rawpointer v0.2.1
#10 83.80    Compiling either v1.6.1
#10 83.97    Compiling unicode-segmentation v1.8.0
#10 84.45    Compiling atomic_refcell v0.1.6
#10 84.61    Compiling fnv v1.0.7
#10 84.74    Compiling winit v0.25.0
#10 85.06    Compiling argh_shared v0.1.5
#10 85.29    Compiling emath v0.14.0
#10 85.98    Compiling glob v0.3.0
#10 85.99    Compiling yansi v0.5.0
#10 86.35    Compiling gfaestus v0.1.0 (/opt/gfaestus)
#10 86.81    Compiling percent-encoding v2.1.0
#10 87.48    Compiling futures-timer v3.0.2
#10 87.68    Compiling colorous v1.0.5
#10 88.03    Compiling rustc-hash v1.1.0
#10 88.16    Compiling libloading v0.7.0
#10 88.53    Compiling instant v0.1.10
#10 88.65    Compiling libloading v0.6.7
#10 88.93    Compiling num-traits v0.2.14
#10 89.02    Compiling memoffset v0.6.1
#10 89.23    Compiling num-integer v0.1.44
#10 89.32    Compiling futures-macro v0.3.15
#10 89.52    Compiling rayon v1.5.0
#10 89.62    Compiling futures-util v0.3.15
#10 89.81    Compiling num-rational v0.3.2
#10 90.03    Compiling nom v7.0.0
#10 90.10    Compiling ahash v0.7.0
#10 90.31    Compiling nom v5.1.2
#10 90.42    Compiling generic-array v0.14.4
#10 90.70    Compiling thread_local v1.1.3
#10 90.82    Compiling lock_api v0.4.2
#10 91.08    Compiling wayland-sys v0.28.6
#10 91.18    Compiling x11-dl v2.18.5
#10 91.50    Compiling smartstring v0.2.9
#10 91.63    Compiling regex-automata v0.1.9
#10 92.00    Compiling owned_ttf_parser v0.6.0
#10 92.01    Compiling owned_ttf_parser v0.12.1
#10 92.31    Compiling walkdir v2.3.2
#10 92.42    Compiling vk-mem v0.2.2
#10 92.88    Compiling matrixmultiply v0.2.4
#10 93.69    Compiling heck v0.3.3
#10 94.48    Compiling dlib v0.5.0
#10 94.69    Compiling ash v0.32.0
#10 97.07    Compiling dlib v0.4.2
#10 110.3    Compiling rusttype v0.9.2
#10 110.5    Compiling ab_glyph v0.2.11
#10 112.8    Compiling num_cpus v1.13.0
#10 113.9    Compiling memmap v0.7.0
#10 114.3    Compiling memmap2 v0.1.0
#10 114.8    Compiling raw-window-handle v0.3.3
#10 114.9    Compiling time v0.1.43
#10 116.0    Compiling parking_lot_core v0.8.2
#10 116.3    Compiling atty v0.2.14
#10 116.6    Compiling xcb v0.8.2
#10 116.9    Compiling quote v1.0.8
#10 117.3    Compiling nix v0.20.0
#10 123.6    Compiling aho-corasick v0.7.15
#10 126.2    Compiling bstr v0.2.15
#10 127.5    Compiling crossbeam-channel v0.5.1
#10 128.3    Compiling mio v0.7.13
#10 130.5    Compiling andrew v0.3.1
#10 133.2    Compiling rand_core v0.6.1
#10 133.9    Compiling rand_core v0.5.1
#10 134.2    Compiling ash-window v0.6.0
#10 136.1    Compiling parking_lot v0.11.1
#10 142.3    Compiling wayland-scanner v0.28.6
#10 144.3    Compiling approx v0.4.0
#10 144.5    Compiling num-complex v0.3.1
#10 145.1    Compiling ordered-float v2.1.1
#10 145.2    Compiling succinct v0.5.2
#10 145.3    Compiling calloop v0.6.5
#10 145.9    Compiling regex v1.4.3
#10 146.4    Compiling xcursor v0.3.4
#10 148.0    Compiling wayland-commons v0.28.6
#10 151.6    Compiling wyhash v0.5.0
#10 151.9    Compiling rand_chacha v0.3.1
#10 152.9    Compiling rand_chacha v0.2.2
#10 153.8    Compiling crossbeam-deque v0.8.0
#10 156.8    Compiling wayland-client v0.28.6
#10 157.4    Compiling wayland-protocols v0.28.6
#10 159.5    Compiling chrono v0.4.19
#10 162.2    Compiling simba v0.3.1
#10 162.5    Compiling bytemuck_derive v1.0.1
#10 164.9    Compiling thiserror-impl v1.0.28
#10 166.6    Compiling rhai_codegen v1.0.0
#10 168.3    Compiling argh_derive v0.1.5
#10 168.5    Compiling epaint v0.14.0
#10 170.2    Compiling rand v0.8.4
#10 171.2    Compiling rand v0.7.3
#10 172.7    Compiling crossbeam v0.8.1
#10 175.6    Compiling x11-clipboard v0.3.3
#10 177.6    Compiling bytemuck v1.7.2
#10 180.8    Compiling thiserror v1.0.28
#10 180.9    Compiling rhai v1.0.2
#10 182.7    Compiling egui v0.14.2
#10 184.3 error[E0425]: cannot find value `args` in this scope
#10 184.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:227:42
#10 184.3     |
#10 184.3 227 | gen_arithmetic_functions!(arith_basic => INT);
#10 184.3     |                                          ^^^ not found in this scope
#10 184.3     |
#10 184.3     = note: consider importing this function:
#10 184.3             std::env::args
#10 184.3 
#10 184.5 error[E0425]: cannot find value `args` in this scope
#10 184.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:44
#10 184.5     |
#10 184.5 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 184.5     |                                            ^^ not found in this scope
#10 184.5     |
#10 184.5     = note: consider importing this function:
#10 184.5             std::env::args
#10 184.5 
#10 184.6 error[E0425]: cannot find value `args` in this scope
#10 184.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:48
#10 184.6     |
#10 184.6 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 184.6     |                                                ^^ not found in this scope
#10 184.6     |
#10 184.6     = note: consider importing this function:
#10 184.6             std::env::args
#10 184.6 
#10 184.7 error[E0425]: cannot find value `args` in this scope
#10 184.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:52
#10 184.7     |
#10 184.7 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 184.7     |                                                    ^^^ not found in this scope
#10 184.7     |
#10 184.7     = note: consider importing this function:
#10 184.7             std::env::args
#10 184.7 
#10 184.8 error[E0425]: cannot find value `args` in this scope
#10 184.8    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:57
#10 184.8     |
#10 184.8 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 184.8     |                                                         ^^^ not found in this scope
#10 184.8     |
#10 184.8     = note: consider importing this function:
#10 184.8             std::env::args
#10 184.8 
#10 184.9 error[E0425]: cannot find value `args` in this scope
#10 184.9    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:62
#10 184.9     |
#10 184.9 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 184.9     |                                                              ^^^ not found in this scope
#10 184.9     |
#10 184.9     = note: consider importing this function:
#10 184.9             std::env::args
#10 184.9 
#10 185.0 error[E0425]: cannot find value `args` in this scope
#10 185.0    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:67
#10 185.0     |
#10 185.0 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.0     |                                                                   ^^^ not found in this scope
#10 185.0     |
#10 185.0     = note: consider importing this function:
#10 185.0             std::env::args
#10 185.0 
#10 185.2 error[E0425]: cannot find value `args` in this scope
#10 185.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:231:72
#10 185.2     |
#10 185.2 231 | gen_arithmetic_functions!(arith_numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.2     |                                                                        ^^^ not found in this scope
#10 185.2     |
#10 185.2     = note: consider importing this function:
#10 185.2             std::env::args
#10 185.2 
#10 185.3 error[E0425]: cannot find value `args` in this scope
#10 185.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:236:44
#10 185.3     |
#10 185.3 236 | gen_arithmetic_functions!(arith_num_128 => i128, u128);
#10 185.3     |                                            ^^^^ not found in this scope
#10 185.3     |
#10 185.3     = note: consider importing this function:
#10 185.3             std::env::args
#10 185.3 
#10 185.4 error[E0425]: cannot find value `args` in this scope
#10 185.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:236:50
#10 185.4     |
#10 185.4 236 | gen_arithmetic_functions!(arith_num_128 => i128, u128);
#10 185.4     |                                                  ^^^^ not found in this scope
#10 185.4     |
#10 185.4     = note: consider importing this function:
#10 185.4             std::env::args
#10 185.4 
#10 185.5 error[E0425]: cannot find value `args` in this scope
#10 185.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:238:39
#10 185.5     |
#10 185.5 238 | gen_signed_functions!(signed_basic => INT);
#10 185.5     |                                       ^^^ not found in this scope
#10 185.5     |
#10 185.5     = note: consider importing this function:
#10 185.5             std::env::args
#10 185.5 
#10 185.6 error[E0425]: cannot find value `args` in this scope
#10 185.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:242:41
#10 185.6     |
#10 185.6 242 | gen_signed_functions!(signed_numbers => i8, i16, i32);
#10 185.6     |                                         ^^ not found in this scope
#10 185.6     |
#10 185.6     = note: consider importing this function:
#10 185.6             std::env::args
#10 185.6 
#10 185.6 error[E0425]: cannot find value `args` in this scope
#10 185.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:242:45
#10 185.6     |
#10 185.6 242 | gen_signed_functions!(signed_numbers => i8, i16, i32);
#10 185.6     |                                             ^^^ not found in this scope
#10 185.6     |
#10 185.6     = note: consider importing this function:
#10 185.6             std::env::args
#10 185.6 
#10 185.6 error[E0425]: cannot find value `args` in this scope
#10 185.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:242:50
#10 185.6     |
#10 185.6 242 | gen_signed_functions!(signed_numbers => i8, i16, i32);
#10 185.6     |                                                  ^^^ not found in this scope
#10 185.6     |
#10 185.6     = note: consider importing this function:
#10 185.6             std::env::args
#10 185.6 
#10 185.6 error[E0425]: cannot find value `args` in this scope
#10 185.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/arithmetic.rs:247:41
#10 185.6     |
#10 185.6 247 | gen_signed_functions!(signed_num_128 => i128);
#10 185.6     |                                         ^^^^ not found in this scope
#10 185.6     |
#10 185.6     = note: consider importing this function:
#10 185.6             std::env::args
#10 185.6 
#10 185.6 error[E0425]: cannot find value `args` in this scope
#10 185.6   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:31
#10 185.6    |
#10 185.6 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.6    |                               ^^ not found in this scope
#10 185.6    |
#10 185.6    = note: consider importing this function:
#10 185.6            std::env::args
#10 185.6 
#10 185.7 error[E0425]: cannot find value `args` in this scope
#10 185.7   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:35
#10 185.7    |
#10 185.7 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.7    |                                   ^^ not found in this scope
#10 185.7    |
#10 185.7    = note: consider importing this function:
#10 185.7            std::env::args
#10 185.7 
#10 185.8 error[E0425]: cannot find value `args` in this scope
#10 185.8   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:39
#10 185.8    |
#10 185.8 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.8    |                                       ^^^ not found in this scope
#10 185.8    |
#10 185.8    = note: consider importing this function:
#10 185.8            std::env::args
#10 185.8 
#10 185.8 error[E0425]: cannot find value `args` in this scope
#10 185.8   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:44
#10 185.8    |
#10 185.8 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.8    |                                            ^^^ not found in this scope
#10 185.8    |
#10 185.8    = note: consider importing this function:
#10 185.8            std::env::args
#10 185.8 
#10 185.9 error[E0425]: cannot find value `args` in this scope
#10 185.9   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:49
#10 185.9    |
#10 185.9 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 185.9    |                                                 ^^^ not found in this scope
#10 185.9    |
#10 185.9    = note: consider importing this function:
#10 185.9            std::env::args
#10 185.9 
#10 186.0 error[E0425]: cannot find value `args` in this scope
#10 186.0   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:54
#10 186.0    |
#10 186.0 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 186.0    |                                                      ^^^ not found in this scope
#10 186.0    |
#10 186.0    = note: consider importing this function:
#10 186.0            std::env::args
#10 186.0 
#10 186.0 error[E0425]: cannot find value `args` in this scope
#10 186.0   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:74:59
#10 186.0    |
#10 186.0 74 | gen_cmp_functions!(numbers => i8, u8, i16, u16, i32, u32, u64);
#10 186.0    |                                                           ^^^ not found in this scope
#10 186.0    |
#10 186.0    = note: consider importing this function:
#10 186.0            std::env::args
#10 186.0 
#10 186.1 error[E0425]: cannot find value `args` in this scope
#10 186.1   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:79:31
#10 186.1    |
#10 186.1 79 | gen_cmp_functions!(num_128 => i128, u128);
#10 186.1    |                               ^^^^ not found in this scope
#10 186.1    |
#10 186.1    = note: consider importing this function:
#10 186.1            std::env::args
#10 186.1 
#10 186.2 error[E0425]: cannot find value `args` in this scope
#10 186.2   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:79:37
#10 186.2    |
#10 186.2 79 | gen_cmp_functions!(num_128 => i128, u128);
#10 186.2    |                                     ^^^^ not found in this scope
#10 186.2    |
#10 186.2    = note: consider importing this function:
#10 186.2            std::env::args
#10 186.2 
#10 186.2 error[E0425]: cannot find value `args` in this scope
#10 186.2   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/logic.rs:87:29
#10 186.2    |
#10 186.2 87 | gen_cmp_functions!(float => f64);
#10 186.2    |                             ^^^ not found in this scope
#10 186.2    |
#10 186.2    = note: consider importing this function:
#10 186.2            std::env::args
#10 186.2 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:480:58
#10 186.3     |
#10 186.3 480 | gen_conversion_as_functions!(basic_to_float => to_float (INT) -> FLOAT);
#10 186.3     |                                                          ^^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:60
#10 186.3     |
#10 186.3 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.3     |                                                            ^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:64
#10 186.3     |
#10 186.3 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.3     |                                                                ^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:68
#10 186.3     |
#10 186.3 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.3     |                                                                    ^^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:73
#10 186.3     |
#10 186.3 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.3     |                                                                         ^^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.3 error[E0425]: cannot find value `args` in this scope
#10 186.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:78
#10 186.3     |
#10 186.3 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.3     |                                                                              ^^^ not found in this scope
#10 186.3     |
#10 186.3     = note: consider importing this function:
#10 186.3             std::env::args
#10 186.3 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:83
#10 186.4     |
#10 186.4 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.4     |                                                                                   ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:88
#10 186.4     |
#10 186.4 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.4     |                                                                                        ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:485:93
#10 186.4     |
#10 186.4 485 | gen_conversion_as_functions!(numbers_to_float => to_float (i8, u8, i16, u16, i32, u32, i64, u64) -> FLOAT);
#10 186.4     |                                                                                             ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:491:60
#10 186.4     |
#10 186.4 491 | gen_conversion_as_functions!(num_128_to_float => to_float (i128, u128) -> FLOAT);
#10 186.4     |                                                            ^^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:491:66
#10 186.4     |
#10 186.4 491 | gen_conversion_as_functions!(num_128_to_float => to_float (i128, u128) -> FLOAT);
#10 186.4     |                                                                  ^^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:493:54
#10 186.4     |
#10 186.4 493 | gen_conversion_as_functions!(basic_to_int => to_int (char) -> INT);
#10 186.4     |                                                      ^^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:56
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                        ^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:60
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                            ^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:64
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:69
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                     ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:74
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                          ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:79
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                               ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:84
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                                    ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.4 error[E0425]: cannot find value `args` in this scope
#10 186.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:497:89
#10 186.4     |
#10 186.4 497 | gen_conversion_as_functions!(numbers_to_int => to_int (i8, u8, i16, u16, i32, u32, i64, u64) -> INT);
#10 186.4     |                                                                                         ^^^ not found in this scope
#10 186.4     |
#10 186.4     = note: consider importing this function:
#10 186.4             std::env::args
#10 186.4 
#10 186.5 error[E0425]: cannot find value `args` in this scope
#10 186.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:502:56
#10 186.5     |
#10 186.5 502 | gen_conversion_as_functions!(num_128_to_int => to_int (i128, u128) -> INT);
#10 186.5     |                                                        ^^^^ not found in this scope
#10 186.5     |
#10 186.5     = note: consider importing this function:
#10 186.5             std::env::args
#10 186.5 
#10 186.5 error[E0425]: cannot find value `args` in this scope
#10 186.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-1.0.2/src/packages/math_basic.rs:502:62
#10 186.5     |
#10 186.5 502 | gen_conversion_as_functions!(num_128_to_int => to_int (i128, u128) -> INT);
#10 186.5     |                                                              ^^^^ not found in this scope
#10 186.5     |
#10 186.5     = note: consider importing this function:
#10 186.5             std::env::args
#10 186.5 

I don't think this refers to a problem with the setup (but I may be wrong):

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive 
LABEL version="0.1.0"
LABEL description="gfaestus"
WORKDIR /opt
RUN apt-get update
RUN apt-get -y install build-essential curl wget git \ 
&& wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - \
&& wget -qO /etc/apt/sources.list.d/lunarg-vulkan-bionic.list http://packages.lunarg.com/vulkan/lunarg-vulkan-bionic.list \
&& apt-get update \
&& apt-get install -y apt vulkan-sdk \
&& apt-get -y clean all \
&& rm -rf /var/cache
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
RUN git clone --recursive https://github.com/chfi/gfaestus.git \
&& cd gfaestus \
&& RUST_BACKTRACE=full cargo build --release
```

Can you help with this ?

Thanks,

Davide

thread 'main' panicked

Hi there @chfi,
with the current master or dev branch gfaestus isn't working for me anymore.

gfaestus overlap.gfa overlap.gfa.lay.tsv
WARN [gfaestus::vulkan::init] enumerating instance extension properties
WARN [gfaestus::vulkan::init] "VK_KHR_device_group_creation"
WARN [gfaestus::vulkan::init] "VK_KHR_display"
WARN [gfaestus::vulkan::init] "VK_KHR_external_fence_capabilities"
WARN [gfaestus::vulkan::init] "VK_KHR_external_memory_capabilities"
WARN [gfaestus::vulkan::init] "VK_KHR_external_semaphore_capabilities"
WARN [gfaestus::vulkan::init] "VK_KHR_get_display_properties2"
WARN [gfaestus::vulkan::init] "VK_KHR_get_physical_device_properties2"
WARN [gfaestus::vulkan::init] "VK_KHR_get_surface_capabilities2"
WARN [gfaestus::vulkan::init] "VK_KHR_surface"
WARN [gfaestus::vulkan::init] "VK_KHR_surface_protected_capabilities"
WARN [gfaestus::vulkan::init] "VK_KHR_wayland_surface"
WARN [gfaestus::vulkan::init] "VK_KHR_xcb_surface"
WARN [gfaestus::vulkan::init] "VK_KHR_xlib_surface"
WARN [gfaestus::vulkan::init] "VK_EXT_acquire_drm_display"
WARN [gfaestus::vulkan::init] "VK_EXT_acquire_xlib_display"
WARN [gfaestus::vulkan::init] "VK_EXT_debug_report"
WARN [gfaestus::vulkan::init] "VK_EXT_direct_mode_display"
WARN [gfaestus::vulkan::init] "VK_EXT_display_surface_counter"
WARN [gfaestus::vulkan::init] "VK_EXT_debug_utils"
WARN [gfaestus::vulkan::init] "VK_KHR_portability_enumeration"
INFO [winit::platform_impl::platform::x11::window] Guessed window scale factor: 1
INFO [gfaestus::vulkan::init] Selected physical device: "AMD RADV RENOIR"
INFO [gfaestus] Loading GFA
INFO [gfaestus::gfa::load] loading GFA with 10 nodes, 11 edges
INFO [gfaestus::gfa::load] adding nodes
INFO [gfaestus::gfa::load] adding edges
INFO [gfaestus::gfa::load] adding paths
INFO [gfaestus::gfa::load] created path handles
INFO [gfaestus::universe] loading layout
INFO [gfaestus] layout bounding box	(1000.00, 1000.00)	(1012.14, 12018.01)
INFO [gfaestus] layout width: 12.14	height: 11018.01
INFO [gfaestus] GFA loaded in 0.004 sec
INFO [gfaestus] Loaded 10 nodes	20 points
WARN [gfaestus::vulkan::draw_system::nodes] node_renderer_type: TessellationQuads
[src/main.rs:389]
[src/main.rs:398]
[src/main.rs:403]
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: No such file or directory (os error 2)', src/main.rs:455:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
gfaestus: vendor/src/vk_mem_alloc.h:11791: void VmaDeviceMemoryBlock::Destroy(VmaAllocator): Assertion `m_pMetadata->IsEmpty() && "Some allocations were not freed before destruction of this memory block!"' failed.
Aborted (core dumped)

Any ideas?
Thanks!

Files are in toposort.zip.

Weired display on M1 Mac

Hi,

I installed MoltenVK and Vulkan on M1 Mac and gfaestus cargo building seems very smooth. But when I run the gfaestus with my graph, it display was all black and some weired thing displayed in the screen. I can choose the button.

./gfaestus-release chr1.fasta.gz.0eed25d.c2fac19.5c75112.smooth.final.gfa 
chr1.fasta.gz.0eed25d.c2fac19.5c75112.smooth.final.og.lay.tsv
DEBUG [gfaestus] Logger initalized
DEBUG [gfaestus] using /Users/zbao/software/gfaestus/chr1.fasta.gz.0eed25d.c2fac19.5c75112.smooth.final.gfa and /Users/zbao/software/gfaestus/chr1.fasta.gz.0eed25d.c2fac19.5c75112.smooth.final.og.lay.tsv
DEBUG [gfaestus::vulkan] Initializing GfaestusVk context
DEBUG [gfaestus::vulkan] Using default event loop
DEBUG [gfaestus::vulkan] Creating window
DEBUG [gfaestus::vulkan] Created Vulkan entry
DEBUG [gfaestus::vulkan::init] Creating instance
DEBUG [gfaestus::vulkan::init] Enumerated required instance extensions
DEBUG [gfaestus::vulkan::init] getting layer names and pointers
DEBUG [gfaestus::vulkan::init] Loading instance extension "VK_KHR_surface"
DEBUG [gfaestus::vulkan::init] Loading instance extension "VK_EXT_metal_surface"
DEBUG [gfaestus::vulkan::init] Loading instance extension "VK_KHR_get_physical_device_properties2"
DEBUG [gfaestus::vulkan] Created Vulkan instance
DEBUG [gfaestus::vulkan] Created window surface
DEBUG [gfaestus::vulkan::init] Enumerating physical devices
DEBUG [gfaestus::vulkan::init] Device 0 - "Apple M1 Pro"
INFO [gfaestus::vulkan::init] Selected physical device: "Apple M1 Pro"
DEBUG [gfaestus::vulkan::init] Found queue families; graphics: Some(0), present: Some(0), compute: Some(0)
WARN [gfaestus::vulkan::context] Device is missing the optional feature: wide_lines
DEBUG [gfaestus::vulkan::render_pass] Chose node ID image format: R32_UINT
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x135645a90
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x136804080
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x135647100
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x1356460b0
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x136811600
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x136b0c280
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x13680a530
DEBUG [gfaestus] futures thread pool: 3
DEBUG [gfaestus] rayon   thread pool: 4
INFO [gfaestus] Loading GFA
INFO [gfaestus::gfa::load] loading GFA with 4289958 nodes, 5937559 edges
INFO [gfaestus::gfa::load] adding nodes
INFO [gfaestus::gfa::load] adding edges
INFO [gfaestus::gfa::load] adding paths
INFO [gfaestus::gfa::load] created path handles
INFO [gfaestus::universe] loading layout
INFO [gfaestus] layout bounding box	(1000.00, 1000.00)	(29598796.00, 516053.66)
INFO [gfaestus] layout width: 29597796.00	height: 515053.66
INFO [gfaestus] GFA loaded in 24.537 sec
INFO [gfaestus] Loaded 4289958 nodes	8579916 points
WARN [gfaestus::vulkan::draw_system::nodes] node_renderer_type: TessellationQuads
DEBUG [gfaestus::vulkan::texture] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 2048, height: 64, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | TRANSFER_DST | SAMPLED | STORAGE, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan::texture] Allocating 524288 bytes of memory for image
DEBUG [gfaestus::vulkan::texture] Transitioning image to SHADER_READ_ONLY_OPTIMAL
DEBUG [gfaestus::vulkan::texture] Created image view
DEBUG [gfaestus::vulkan::texture] Image created: 0x2d6b47a70
DEBUG [gfaestus::reactor] spawning reactor task
DEBUG [gfaestus::reactor] spawning reactor task
DEBUG [gfaestus::reactor] spawning reactor task
DEBUG [gfaestus::reactor] spawning reactor task
DEBUG [gfaestus::reactor] spawning reactor task
DEBUG [gfaestus::script] Overlay values, min: 1, max: 4016
[src/main.rs:380]
DEBUG [gfaestus::vulkan::texture] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 1024, height: 64, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | TRANSFER_DST | SAMPLED | STORAGE, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan::texture] Allocating 262144 bytes of memory for image
DEBUG [gfaestus::vulkan::texture] Transitioning image to SHADER_READ_ONLY_OPTIMAL
DEBUG [gfaestus::vulkan::texture] Created image view
DEBUG [gfaestus::vulkan::texture] Image created: 0x2c1ff8a20
DEBUG [gfaestus::vulkan::texture] Copying buffer into texture
[src/main.rs:388]
[src/main.rs:391]
WARN [gfaestus::gui::console] initializing app_module
WARN [gfaestus::gui::console] initializing msg_module
WARN [gfaestus::gui::console] initializing db_module
WARN [gfaestus::gui::console] initializing geo_module
WARN [gfaestus::gui::console] initializing modal_module
DEBUG [gfaestus::vulkan::texture] Creating 2048x64 R8_UNORM texture from pixel slice
DEBUG [gfaestus::vulkan::texture] Created staging buffer
DEBUG [gfaestus::vulkan::texture] Copied pixels into staging buffer
DEBUG [gfaestus::vulkan::texture] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8_UNORM, extent: Extent3D { width: 2048, height: 64, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | TRANSFER_DST | SAMPLED, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan::texture] Filled image from staging buffer
WARN [gfaestus] uploaded path view texture: User(1)
DEBUG [gfaestus::vulkan::render_pass] Chose node ID image format: R32_UINT
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x135646740
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x2d8e70950
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x136b0c280
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x1252537c0
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x154754a20
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x2d6b5ba90
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 3024, height: 1890, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 22861440 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x1252566c0
DEBUG [gfaestus::vulkan::render_pass] Chose node ID image format: R32_UINT
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x2d6b5a720
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: B8G8R8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x1547367c0
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x2d6b5c870
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R32_UINT, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: TRANSFER_SRC | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x1369c6fa0
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_4, tiling: OPTIMAL, usage: COLOR_ATTACHMENT | TRANSIENT_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x154754a20
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x2d6b5bd80
DEBUG [gfaestus::vulkan] Creating image ImageCreateInfo { s_type: IMAGE_CREATE_INFO, p_next: 0x0, flags: , image_type: TYPE_2D, format: R8G8B8A8_UNORM, extent: Extent3D { width: 800, height: 600, depth: 1 }, mip_levels: 1, array_layers: 1, samples: TYPE_1, tiling: OPTIMAL, usage: SAMPLED | COLOR_ATTACHMENT, sharing_mode: EXCLUSIVE, queue_family_index_count: 0, p_queue_family_indices: 0x0, initial_layout: UNDEFINED }
DEBUG [gfaestus::vulkan] Allocating 1920000 bytes of memory for image
DEBUG [gfaestus::vulkan] Image created: 0x135646740

image

Assertion failed

Very nice project. I saw a working version of this program and it seems very promising. However,
I get errors when I try to compile gfaestus with RUST_BACKTRACE=full cargo build --release

error[E0277]:` `[gff::Gff3Column; 3]` is not an iterator
   --> src/gui.rs:449:18
    |
449 |             list.set_default_columns(
    |                  ^^^^^^^^^^^^^^^^^^^ borrow the array with `&` or call `.iter()` on it to iterate over it
    |
    = help: the trait `std::iter::Iterator` is not implemented for `[gff::Gff3Column; 3]`
    = note: arrays are not iterators, but slices like the following are: `&[1, 2, 3]`
    = note: required because of the requirements on the impl of `IntoIterator` for `[gff::Gff3Column; 3]`

error[E0277]: `[gff::Gff3Column; 4]` is not an iterator
   --> src/gui.rs:451:17
    |
451 |                 [Gff::SeqId, Gff::Start, Gff::End, Gff::Strand],
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                 |
    |                 expected an implementor of trait `IntoIterator`
    |                 help: consider borrowing here: `&[Gff::SeqId, Gff::Start, Gff::End, Gff::Strand]`
    |
    = note: the trait bound `[gff::Gff3Column; 4]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[gff::Gff3Column; 4]`

error[E0277]: `[_; 0]` is not an iterator
   --> src/gui.rs:466:18
    |
466 |             list.set_default_columns([], [Bed::Chr, Bed::Start, Bed::End]);
    |                  ^^^^^^^^^^^^^^^^^^^ borrow the array with `&` or call `.iter()` on it to iterate over it
    |
    = help: the trait `std::iter::Iterator` is not implemented for `[_; 0]`
    = note: arrays are not iterators, but slices like the following are: `&[1, 2, 3]`
    = note: required because of the requirements on the impl of `IntoIterator` for `[_; 0]`

error[E0277]: `[bed::BedColumn; 3]` is not an iterator
   --> src/gui.rs:466:42
    |
466 |             list.set_default_columns([], [Bed::Chr, Bed::Start, Bed::End]);
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                          |
    |                                          expected an implementor of trait `IntoIterator`
    |                                          help: consider borrowing here: `&[Bed::Chr, Bed::Start, Bed::End]`
    |
    = note: the trait bound `[bed::BedColumn; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[bed::BedColumn; 3]`

I do not know any Rust... so I don't know how to properly fix it. When I outcomment the offending lines the code compiles though

making core actions easy

Gfaestus is very good at loading large, complex variation graphs for whole human chromosomes. It also works very well on smaller subgraphs, where the odgi layout algorithm can be run longer to produce cleaner renderings.

It needs a lot of UI polish to be usable. Here are things that gfaestus is capable of, but for which the UI is very tricky:

  • coloring / highlighting / labeling annotations (regions, positions, genes) from GFF or BED
  • finding a position in a path
  • finding the position of a path at a given node
  • zooming into a particular node (by id or path position)
  • color overlays showing path depth and base content (e.g. node sequence hash)
  • color overlay showing annotation depth or numerical features given in annotations (e.g. the 4th column of a BED)

And here's a few that are nearly possible, but which would require a little work, but are essential to use:

  • subgraph selection and extraction (to GFA)
  • overlay (with an additional set of splines or segments) the approximate walk through the layout made by a given path, avoiding overplotting as much as possible so as to show the traversal of a path through a difficult region

There should be a menu of actions that provides GUIs that walk through the required steps to set these up. The amount of state that's kept around could be minimized. For instance, we may not need to many GFF or BED files into memory if we just want to take annotations from one and layer them on the graph. We can just read the file and store the required annotations and their positions on the layout.

Over time, we'll learn how to simplify the set of actions, and extend them. But focusing on these use cases should help us get to where the tool is solving current problems in our work.

How to install gfaestus

Hi @chfi,

I just got my 2D layout for a human pangenome using odgi. Just wondering how can I install gfaestus in order to use the interactive tool for navigating the VGS?

Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.