[INFO] cloning repository https://github.com/Jakeelamb/Raptor
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jakeelamb/Raptor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJakeelamb%2FRaptor", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJakeelamb%2FRaptor'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2817d46538ee1172cac1e57b10357c4d468ea01d
[INFO] checking Jakeelamb/Raptor against try#e117153a45c546e883c1f91d82611775fcaeffe0 for pr-146470
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJakeelamb%2FRaptor" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Jakeelamb/Raptor
[INFO] finished tweaking git repo https://github.com/Jakeelamb/Raptor
[INFO] tweaked toml for git repo https://github.com/Jakeelamb/Raptor written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jakeelamb/Raptor on toolchain e117153a45c546e883c1f91d82611775fcaeffe0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Jakeelamb/Raptor already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 62392f7dcddc813d8fa794eabe3a4ee9cf1518ba8a2ee48ceed0740399844b4a
[INFO] running `Command { std: "docker" "start" "-a" "62392f7dcddc813d8fa794eabe3a4ee9cf1518ba8a2ee48ceed0740399844b4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62392f7dcddc813d8fa794eabe3a4ee9cf1518ba8a2ee48ceed0740399844b4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62392f7dcddc813d8fa794eabe3a4ee9cf1518ba8a2ee48ceed0740399844b4a", kill_on_drop: false }`
[INFO] [stdout] 62392f7dcddc813d8fa794eabe3a4ee9cf1518ba8a2ee48ceed0740399844b4a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c0ab161b7b1355853a1302e5c9d9ad376157995caadbcbe274b049552a819b86
[INFO] running `Command { std: "docker" "start" "-a" "c0ab161b7b1355853a1302e5c9d9ad376157995caadbcbe274b049552a819b86", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling prettyplease v0.2.31
[INFO] [stderr]    Compiling cc v1.2.18
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling bitflags v2.9.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling libloading v0.8.6
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling shell-words v1.1.0
[INFO] [stderr]    Compiling build-probe-mpi v0.1.4
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking miniz_oxide v0.8.7
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling pathfinder_simd v0.5.4
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling yeslogic-fontconfig-sys v6.0.0
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]    Compiling anyhow v1.0.97
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking indexmap v2.8.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling fasthash-sys v0.3.2
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling newtype_derive v0.1.6
[INFO] [stderr]     Checking simba v0.5.1
[INFO] [stderr]    Compiling nom v5.1.3
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking custom_derive v0.1.7
[INFO] [stderr]    Compiling freetype-sys v0.20.1
[INFO] [stderr]    Compiling libffi-sys v2.3.0
[INFO] [stderr]    Compiling font-kit v0.14.2
[INFO] [stderr]    Compiling rustix v1.0.5
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking pathfinder_geometry v0.5.1
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]    Compiling mpi v0.8.0
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking linux-raw-sys v0.9.3
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking chrono v0.4.40
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking xoroshiro128 v0.3.0
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking clap_builder v4.5.35
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking conv v0.3.3
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.14
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking noisy_float v0.2.0
[INFO] [stderr]     Checking ordered-float v3.9.2
[INFO] [stderr]     Checking itertools-num v0.1.3
[INFO] [stderr]     Checking fixedbitset v0.5.7
[INFO] [stderr]     Checking triple_accel v0.4.0
[INFO] [stderr]     Checking editdistancek v1.0.2
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking seahash v3.0.7
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking petgraph v0.7.1
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking tempfile v3.19.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking smartcore v0.3.2
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking ndarray-stats v0.5.1
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking nalgebra v0.27.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking gfa v0.10.1
[INFO] [stderr]     Checking bio-types v1.0.4
[INFO] [stderr]     Checking fasthash v0.4.0
[INFO] [stderr]     Checking wide v0.7.32
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking clap v4.5.35
[INFO] [stderr]     Checking plotters-bitmap v0.3.7
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]    Compiling mpi-sys v0.2.2
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking multimap v0.9.1
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking libffi v3.2.0
[INFO] [stderr]     Checking statrs v0.15.0
[INFO] [stderr]     Checking bio v1.6.0
[INFO] [stderr]     Checking raptor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]  --> src/visualize/pca.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_stats::QuantileExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/graph/assembler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/graph/assembler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]  --> src/visualize/pca.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_stats::QuantileExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contigs`
[INFO] [stdout]   --> src/graph/partition.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     contigs: &[String]
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contigs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contigs`
[INFO] [stdout]   --> src/graph/partition.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     contigs: &[String]
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contigs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/pipeline/assemble.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut k = 31; // Default k-mer size
[INFO] [stdout]    |                 ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_gfa`
[INFO] [stdout]    --> src/pipeline/assemble.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     output_gfa: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_gfa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adaptive_k`
[INFO] [stdout]    --> src/pipeline/assemble.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     adaptive_k: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adaptive_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_rle`
[INFO] [stdout]    --> src/pipeline/assemble.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     use_rle: bool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_rle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     output_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gtf_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     gtf_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gtf_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_tpm`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     min_tpm: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tpm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_aware`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     strand_aware: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_aware`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bam_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     bam_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bam_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `long_reads`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     long_reads: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_reads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_output_filename`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     get_output_filename: fn(&str, Option<&str>) -> String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_output_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `csv_path`
[INFO] [stdout]    --> src/quant/align_counts.rs:135:27
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_csv_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]    --> src/kmer/normalize.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn median(values: &mut [u16]) -> u16 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_confidence` is never used
[INFO] [stdout]    --> src/graph/isoform_parallel.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn calculate_path_confidence(graph: &IsoformGraph, path: &[usize]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]   --> src/accel/gpu.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub struct GpuKmerCounter {
[INFO] [stdout]    |                -------------- field in this struct
[INFO] [stdout]  9 |         width: usize,
[INFO] [stdout] 10 |         capacity: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/pipeline/assemble.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut k = 31; // Default k-mer size
[INFO] [stdout]    |                 ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_gfa`
[INFO] [stdout]    --> src/pipeline/assemble.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     output_gfa: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_gfa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adaptive_k`
[INFO] [stdout]    --> src/pipeline/assemble.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     adaptive_k: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adaptive_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_rle`
[INFO] [stdout]    --> src/pipeline/assemble.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     use_rle: bool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_rle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     output_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gtf_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     gtf_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gtf_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_tpm`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     min_tpm: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tpm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_aware`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     strand_aware: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_aware`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bam_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     bam_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bam_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `long_reads`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     long_reads: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_reads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_output_filename`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     get_output_filename: fn(&str, Option<&str>) -> String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_output_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `csv_path`
[INFO] [stdout]    --> src/quant/align_counts.rs:135:27
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_csv_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> examples/traverse_paths.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, BufWriter, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/bin/assemble.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |     for (kmer, &count) in sorted_kmers {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> examples/traverse_paths.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 |         for (i, (seg_id, orientation)) in path.iter().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/bin/count_gpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]  --> src/bin/count_gpu.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let k = 25;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequences`
[INFO] [stdout]   --> src/bin/count_gpu.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let sequences: Vec<String> = records.iter().map(|r| r.sequence.clone()).collect();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequences`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/bin/assemble.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |     for (kmer, &count) in sorted_kmers {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_contigs` is never used
[INFO] [stdout]    --> src/io/metadata.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn create_test_contigs() -> Vec<Contig> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]    --> src/kmer/normalize.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn median(values: &mut [u16]) -> u16 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_confidence` is never used
[INFO] [stdout]    --> src/graph/isoform_parallel.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn calculate_path_confidence(graph: &IsoformGraph, path: &[usize]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]   --> src/accel/gpu.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub struct GpuKmerCounter {
[INFO] [stdout]    |                -------------- field in this struct
[INFO] [stdout]  9 |         width: usize,
[INFO] [stdout] 10 |         capacity: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_MAX_READS` is never used
[INFO] [stdout]   --> src/bin/normalize_paired_reads.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const DEFAULT_MAX_READS: usize = 5_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_MAX_READS` is never used
[INFO] [stdout]   --> src/bin/normalize_paired_reads.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const DEFAULT_MAX_READS: usize = 5_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/bin/count_gpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]  --> src/bin/count_gpu.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let k = 25;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequences`
[INFO] [stdout]   --> src/bin/count_gpu.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let sequences: Vec<String> = records.iter().map(|r| r.sequence.clone()).collect();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequences`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/graph/assembler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]  --> src/visualize/pca.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_stats::QuantileExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contigs`
[INFO] [stdout]   --> src/graph/partition.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     contigs: &[String]
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contigs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/pipeline/assemble.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut k = 31; // Default k-mer size
[INFO] [stdout]    |                 ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_gfa`
[INFO] [stdout]    --> src/pipeline/assemble.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     output_gfa: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_gfa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adaptive_k`
[INFO] [stdout]    --> src/pipeline/assemble.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     adaptive_k: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adaptive_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_rle`
[INFO] [stdout]    --> src/pipeline/assemble.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     use_rle: bool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_rle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     output_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gtf_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     gtf_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gtf_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_tpm`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     min_tpm: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tpm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_aware`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     strand_aware: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_aware`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bam_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     bam_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bam_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `long_reads`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     long_reads: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_reads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_output_filename`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     get_output_filename: fn(&str, Option<&str>) -> String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_output_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `csv_path`
[INFO] [stdout]    --> src/quant/align_counts.rs:135:27
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_csv_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threads`
[INFO] [stdout]   --> src/main.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             threads, 
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `threads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coverage_target`
[INFO] [stdout]   --> src/main.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |             coverage_target, 
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: try ignoring the field: `coverage_target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_reads`
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             max_reads 
[INFO] [stdout]    |             ^^^^^^^^^ help: try ignoring the field: `max_reads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threads`
[INFO] [stdout]   --> src/main.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             threads, 
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `threads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distributed`
[INFO] [stdout]   --> src/main.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |             distributed,
[INFO] [stdout]    |             ^^^^^^^^^^^ help: try ignoring the field: `distributed: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buckets`
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             buckets,
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `buckets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_path_len`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             min_path_len,
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: try ignoring the field: `min_path_len: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev_mode`
[INFO] [stdout]   --> src/main.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             dev_mode, 
[INFO] [stdout]    |             ^^^^^^^^ help: try ignoring the field: `dev_mode: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/main.rs:437:39
[INFO] [stdout]     |
[INFO] [stdout] 437 |         Commands::Visualize { matrix, output, heatmap, pca, components } => {
[INFO] [stdout]     |                                       ^^^^^^ help: try ignoring the field: `output: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Log2` is never used
[INFO] [stdout]    --> src/main.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |             trait Log2 {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_long_reads` is never used
[INFO] [stdout]    --> src/io/fastq.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn read_long_reads(path: &str) -> io::Result<Vec<FastqRecord>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_record` is never used
[INFO] [stdout]   --> src/io/fasta.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl FastaWriter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn write_record(&mut self, header: &str, sequence: &str) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_paths` is never used
[INFO] [stdout]   --> src/io/gfa.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl GfaWriter {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn write_paths(&mut self, contigs: &[Contig]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_coverage` is never used
[INFO] [stdout]   --> src/io/gfa2.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Gfa2Writer {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn with_coverage(path: &str, coverage: HashMap<usize, f32>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_detailed_gff3` is never used
[INFO] [stdout]   --> src/io/gff3.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn write_detailed_gff3(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_detailed_gtf` is never used
[INFO] [stdout]   --> src/io/gtf.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn write_detailed_gtf(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_nanopore_reads` is never used
[INFO] [stdout]  --> src/io/longread.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn filter_nanopore_reads(reads: &[FastqRecord], min_len: usize) -> Vec<FastqRecord> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `align_long_reads` is never used
[INFO] [stdout]   --> src/io/longread.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn align_long_reads(contig: &str, long_reads: &[FastqRecord]) -> Vec<(usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_exact_position` is never used
[INFO] [stdout]   --> src/io/longread.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn find_exact_position(contig: &str, read: &str, approximate_start: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `integrate_long_reads_for_polishing` is never used
[INFO] [stdout]   --> src/io/longread.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn integrate_long_reads_for_polishing(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OdgiNode` is never constructed
[INFO] [stdout]  --> src/io/odgi.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct OdgiNode {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OdgiPath` is never constructed
[INFO] [stdout]   --> src/io/odgi.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct OdgiPath {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OdgiGraph` is never constructed
[INFO] [stdout]   --> src/io/odgi.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct OdgiGraph {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_odgi_json` is never used
[INFO] [stdout]   --> src/io/odgi.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn export_odgi_json(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_path_metadata_json` is never used
[INFO] [stdout]    --> src/io/odgi.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn export_path_metadata_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_paths_to_fasta` is never used
[INFO] [stdout]  --> src/io/export.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn export_paths_to_fasta(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_path_metadata` is never used
[INFO] [stdout]   --> src/io/export.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn export_path_metadata(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_odgi_paths` is never used
[INFO] [stdout]   --> src/io/export.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn export_odgi_paths(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_dot_graph` is never used
[INFO] [stdout]   --> src/io/export.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn export_dot_graph(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_transcript_json` is never used
[INFO] [stdout]    --> src/io/transcript_io.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn write_transcript_json(path: &str, transcripts: &[Transcript]) -> io::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rle_decode` is never used
[INFO] [stdout]   --> src/kmer/rle.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn rle_decode(encoded: &[(u8, u8)]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Kmer` is never used
[INFO] [stdout]  --> src/kmer/kmer.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type Kmer = String;
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_kmer` is never used
[INFO] [stdout]  --> src/kmer/kmer.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn encode_kmer(seq: &str) -> Option<u64> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AbundanceStats` is never constructed
[INFO] [stdout]  --> src/kmer/normalize.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AbundanceStats {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_read_abundance` is never used
[INFO] [stdout]   --> src/kmer/normalize.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn estimate_read_abundance(seq: &str, k: usize, sketch: &[u32]) -> AbundanceStats {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]    --> src/kmer/normalize.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn median(values: &mut [u16]) -> u16 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_rle_repeats` is never used
[INFO] [stdout]  --> src/kmer/repeat.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn detect_rle_repeats(seq: &str, min_len: usize, min_unit: usize) -> Vec<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_repeat_positions` is never used
[INFO] [stdout]   --> src/kmer/repeat.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn find_repeat_positions(seq: &str, pattern: &str, min_len: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collapse_repeats` is never used
[INFO] [stdout]   --> src/kmer/repeat.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn collapse_repeats(seq: &str, min_length: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kmer_path` is never read
[INFO] [stdout]   --> src/graph/assembler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Contig {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub kmer_path: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Contig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_rle` is never used
[INFO] [stdout]   --> src/graph/assembler.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Contig {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 14 |     /// Convert the contig sequence to run-length encoding
[INFO] [stdout] 15 |     pub fn to_rle(&self) -> Vec<(u8, u8)> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `distance` and `shift` are never read
[INFO] [stdout]    --> src/graph/stitch.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct OverlapInfo {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 152 |     pub overlap_length: usize,
[INFO] [stdout] 153 |     pub distance: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 154 |     pub shift: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OverlapInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_paths_from_gfa` is never used
[INFO] [stdout]    --> src/graph/stitch.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn load_paths_from_gfa(gfa_path: &str) -> Result<Vec<Path>, std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cluster_contigs` is never used
[INFO] [stdout]   --> src/graph/partition.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn cluster_contigs(graph: &DiGraphMap<usize, f32>) -> HashMap<usize, Vec<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_small_clusters` is never used
[INFO] [stdout]   --> src/graph/partition.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn merge_small_clusters(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cluster_similarity` is never used
[INFO] [stdout]   --> src/graph/partition.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn calculate_cluster_similarity(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_clusters` is never used
[INFO] [stdout]    --> src/graph/partition.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn merge_clusters(clusters: Vec<Vec<usize>>, _distance_matrix: &[Vec<f32>], _contigs: &[String]) -> Vec<Vec<usize>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_edge_weight` is never used
[INFO] [stdout]   --> src/graph/edge_weight.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn compute_edge_weight(from: usize, to: usize, coverage: &[f32], pair_support: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PairLinkTracker` is never constructed
[INFO] [stdout]   --> src/graph/edge_weight.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PairLinkTracker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_pair_link`, `get_pair_support`, and `get_all_pair_links` are never used
[INFO] [stdout]   --> src/graph/edge_weight.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl PairLinkTracker {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 37 |     /// Create a new PairLinkTracker
[INFO] [stdout] 38 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn add_pair_link(&mut self, from: usize, to: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn get_pair_support(&self, from: usize, to: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn get_all_pair_links(&self) -> &HashMap<(usize, usize), usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_contig_string` is never used
[INFO] [stdout]   --> src/graph/polish.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn polish_contig_string(contig: &str, aligned_reads: &[String], correction_threshold: f32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hybrid_polish_contig` is never used
[INFO] [stdout]    --> src/graph/polish.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn hybrid_polish_contig(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_and_parse_gfa_paths` is never used
[INFO] [stdout]   --> src/graph/navigation.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn load_and_parse_gfa_paths(path: &str) -> Result<HashMap<String, Vec<(String, char)>>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_oriented_sequence` is never used
[INFO] [stdout]   --> src/graph/navigation.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn get_oriented_sequence(segment: &str, dir: char, map: &HashMap<String, String>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `revcomp` is never used
[INFO] [stdout]   --> src/graph/navigation.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn revcomp(seq: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_path_metadata` is never used
[INFO] [stdout]    --> src/graph/navigation.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn extract_path_metadata(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathMetadata` is never constructed
[INFO] [stdout]    --> src/graph/navigation.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct PathMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_strand`, `with_tpm`, and `with_splicing` are never used
[INFO] [stdout]   --> src/graph/transcript.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Transcript {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn with_strand(mut self, strand: char) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn with_tpm(mut self, tpm: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn with_splicing(mut self, splicing: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transcript_to_fasta` is never used
[INFO] [stdout]    --> src/graph/transcript.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn transcript_to_fasta(transcript: &Transcript) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transcript_to_gfa_path` is never used
[INFO] [stdout]    --> src/graph/transcript.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn transcript_to_gfa_path(transcript: &Transcript) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edit_distance` is never used
[INFO] [stdout]  --> src/graph/isoform_filter.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn edit_distance(a: &str, b: &str) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_sequence_similarity` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn calculate_sequence_similarity(t1: &Transcript, t2: &Transcript) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_similarity` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn calculate_path_similarity(t1: &Transcript, t2: &Transcript) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_transcript_similarity` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn calculate_transcript_similarity(t1: &Transcript, t2: &Transcript) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cluster_similar_transcripts` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn cluster_similar_transcripts(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_depth`, `bubble_count`, and `branchiness` are never read
[INFO] [stdout]   --> src/graph/complexity.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PathStats {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub max_depth: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub bubble_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub branchiness: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PathStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parallel_path_discovery` is never used
[INFO] [stdout]  --> src/graph/isoform_parallel.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn parallel_path_discovery(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parallel_transcript_assembly` is never used
[INFO] [stdout]   --> src/graph/isoform_parallel.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn parallel_transcript_assembly(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assemble_single_transcript` is never used
[INFO] [stdout]   --> src/graph/isoform_parallel.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn assemble_single_transcript(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parallel_path_filtering` is never used
[INFO] [stdout]   --> src/graph/isoform_parallel.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn parallel_path_filtering(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_confidence` is never used
[INFO] [stdout]    --> src/graph/isoform_parallel.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn calculate_path_confidence(graph: &IsoformGraph, path: &[usize]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_kmers_simd` is never used
[INFO] [stdout]   --> src/accel/simd.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn match_kmers_simd(a: &[u8], b: &[u8], max_mismatches: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `batch_match_kmers_simd` is never used
[INFO] [stdout]    --> src/accel/simd.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn batch_match_kmers_simd<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_overlap` is never used
[INFO] [stdout]    --> src/accel/simd.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn find_best_overlap(query: &[u8], target: &[u8], min_overlap: usize, max_distance: usize) -> (Option<(usize, usize)>, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GpuKmerCounter` is never constructed
[INFO] [stdout]  --> src/accel/gpu.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub struct GpuKmerCounter {
[INFO] [stdout]   |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `count` are never used
[INFO] [stdout]   --> src/accel/gpu.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     impl GpuKmerCounter {
[INFO] [stdout]    |     ------------------- associated items in this implementation
[INFO] [stdout] 14 |         pub fn new(_k: usize, expected_reads: usize) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |         pub fn count(&self, sequences: &[String], k: usize) -> Vec<u32> {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `partition_by_minimizer` is never used
[INFO] [stdout]  --> src/dist/partition.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn partition_by_minimizer(sequences: &[String], k: usize, buckets: usize) -> HashMap<usize, Vec<String>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_partitions` is never used
[INFO] [stdout]   --> src/dist/partition.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn save_partitions(partitions: &HashMap<usize, Vec<String>>, output_dir: &str, prefix: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimizer` is never used
[INFO] [stdout]   --> src/dist/partition.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn minimizer(kmer: &[u8], m: usize) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_minimizer_positions` is never used
[INFO] [stdout]   --> src/dist/partition.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_minimizer_positions(seq: &str, k: usize, m: usize) -> Vec<(usize, u64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DistributedConfig` is never constructed
[INFO] [stdout]  --> src/dist/scheduler.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DistributedConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_parallel_assembly` is never used
[INFO] [stdout]   --> src/dist/scheduler.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn run_parallel_assembly(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_slurm_script` is never used
[INFO] [stdout]   --> src/dist/scheduler.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn generate_slurm_script(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `submit_slurm_jobs` is never used
[INFO] [stdout]    --> src/dist/scheduler.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn submit_slurm_jobs(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_distributed_assembly` is never used
[INFO] [stdout]    --> src/dist/scheduler.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn run_distributed_assembly(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assemble_reads` is never used
[INFO] [stdout]   --> src/pipeline/assemble.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn assemble_reads(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distributed_assembly` is never used
[INFO] [stdout]    --> src/pipeline/assemble.rs:545:8
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub fn distributed_assembly(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_contig_coverages` is never used
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn load_contig_coverages(expression_path: &str) -> Result<HashMap<usize, f64>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_gpu_available` is never used
[INFO] [stdout]   --> src/gpu/kmer_gpu.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn is_gpu_available() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_kmers_gpu` is never used
[INFO] [stdout]    --> src/gpu/kmer_gpu.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn normalize_kmers_gpu(_kmers: &[String], _target_coverage: u32) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_kmers_gpu` is never used
[INFO] [stdout]    --> src/gpu/kmer_gpu.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn count_kmers_gpu(_sequences: &[String], _k: usize) -> HashMap<String, u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stats` is never constructed
[INFO] [stdout]  --> src/cli/stats.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Stats {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_stats` is never used
[INFO] [stdout]   --> src/cli/stats.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn calculate_stats(path: &str) -> Stats {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tpm_matrix` is never used
[INFO] [stdout]   --> src/quant/matrix.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn read_tpm_matrix(path: &str) -> std::io::Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiffExpResult` is never constructed
[INFO] [stdout]  --> src/quant/diffexp.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DiffExpResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Log2` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Log2 {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_fold_change_matrix` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compute_fold_change_matrix(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `t_test` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn t_test(a: &[f64], b: &[f64]) -> f64 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variance` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn variance(x: &[f64]) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_diffexp` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn write_diffexp(results: &[DiffExpResult], output: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_tpm_from_bam` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn estimate_tpm_from_bam(_bam_path: &str, transcripts: &[Transcript]) -> Result<Vec<f64>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_transcripts_with_tpm` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn update_transcripts_with_tpm(transcripts: &mut [Transcript], bam_path: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_by_tpm` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn filter_by_tpm(transcripts: Vec<Transcript>, min_tpm: f64) -> Vec<Transcript> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_expression_matrix` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn create_expression_matrix(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_counts_matrix` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:135:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tpm_to_counts` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn tpm_to_counts(transcripts: &[Transcript], tpm_values: &[f64]) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_expressed_transcripts` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn count_expressed_transcripts(transcripts: &[Transcript], tpm_values: &[f64], threshold: f64) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_transcript_abundances_from_alignments` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn estimate_transcript_abundances_from_alignments(transcripts: &[Transcript], _bam_path: &str) -> Result<Vec<f64>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_transcripts_with_long_reads` is never used
[INFO] [stdout]    --> src/polish/longread.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn polish_transcripts_with_long_reads(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_aligned_reads` is never used
[INFO] [stdout]    --> src/polish/longread.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn find_aligned_reads(transcript_seq: &str, long_reads: &[FastqRecord]) -> Vec<FastqRecord> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_sequence` is never used
[INFO] [stdout]    --> src/polish/longread.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn polish_sequence(seq: &str, reads: &[FastqRecord]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_approximate_position` is never used
[INFO] [stdout]    --> src/polish/longread.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn find_approximate_position(reference: &str, read: &str) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_consensus_counts` is never used
[INFO] [stdout]    --> src/polish/longread.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn update_consensus_counts(counts: &mut Vec<[u32; 5]>, start_pos: usize, read_seq: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_consensus_sequence` is never used
[INFO] [stdout]    --> src/polish/longread.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn build_consensus_sequence(counts: &Vec<[u32; 5]>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptLocation` is never constructed
[INFO] [stdout]  --> src/eval/gtf_compare.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TranscriptLocation {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_gtf_ranges` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn load_gtf_ranges(path: &str) -> IoResult<HashSet<TranscriptLocation>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gtf` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn compare_gtf(truth: &str, predicted: &str) -> IoResult<(usize, usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_metrics` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn calculate_metrics(tp: usize, fp: usize, fn_: usize) -> (f64, f64, f64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_exon_intervals` is never used
[INFO] [stdout]    --> src/eval/gtf_compare.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn load_exon_intervals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gtf_advanced` is never used
[INFO] [stdout]    --> src/eval/gtf_compare.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn compare_gtf_advanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gfa` is never used
[INFO] [stdout]    --> src/eval/mod.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     pub fn compare_gfa(truth_path: &str, pred_path: &str) -> io::Result<(usize, usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_gfa_paths` is never used
[INFO] [stdout]    --> src/eval/mod.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn load_gfa_paths(path: &str) -> io::Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_pca_simple` is never used
[INFO] [stdout]    --> src/visualize/pca.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn plot_pca_simple(pca_result: &Array2<f64>, output: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_heatmap` is never used
[INFO] [stdout]  --> src/visualize/plot.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn plot_heatmap(matrix: &Array2<f64>, output: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/graph/assembler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]  --> src/visualize/pca.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_stats::QuantileExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contigs`
[INFO] [stdout]   --> src/graph/partition.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     contigs: &[String]
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contigs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/pipeline/assemble.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut k = 31; // Default k-mer size
[INFO] [stdout]    |                 ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_gfa`
[INFO] [stdout]    --> src/pipeline/assemble.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     output_gfa: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_gfa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adaptive_k`
[INFO] [stdout]    --> src/pipeline/assemble.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     adaptive_k: bool, 
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adaptive_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_rle`
[INFO] [stdout]    --> src/pipeline/assemble.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     use_rle: bool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_rle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     output_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gtf_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     gtf_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gtf_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_tpm`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     min_tpm: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tpm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_aware`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     strand_aware: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_aware`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bam_path`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     bam_path: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bam_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `long_reads`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     long_reads: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_reads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_output_filename`
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     get_output_filename: fn(&str, Option<&str>) -> String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_output_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `csv_path`
[INFO] [stdout]    --> src/quant/align_counts.rs:135:27
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_csv_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threads`
[INFO] [stdout]   --> src/main.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             threads, 
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `threads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coverage_target`
[INFO] [stdout]   --> src/main.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |             coverage_target, 
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: try ignoring the field: `coverage_target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_reads`
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             max_reads 
[INFO] [stdout]    |             ^^^^^^^^^ help: try ignoring the field: `max_reads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threads`
[INFO] [stdout]   --> src/main.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             threads, 
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `threads: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distributed`
[INFO] [stdout]   --> src/main.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |             distributed,
[INFO] [stdout]    |             ^^^^^^^^^^^ help: try ignoring the field: `distributed: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buckets`
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             buckets,
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `buckets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_path_len`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             min_path_len,
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: try ignoring the field: `min_path_len: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev_mode`
[INFO] [stdout]   --> src/main.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             dev_mode, 
[INFO] [stdout]    |             ^^^^^^^^ help: try ignoring the field: `dev_mode: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/main.rs:437:39
[INFO] [stdout]     |
[INFO] [stdout] 437 |         Commands::Visualize { matrix, output, heatmap, pca, components } => {
[INFO] [stdout]     |                                       ^^^^^^ help: try ignoring the field: `output: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_long_reads` is never used
[INFO] [stdout]    --> src/io/fastq.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn read_long_reads(path: &str) -> io::Result<Vec<FastqRecord>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_record` is never used
[INFO] [stdout]   --> src/io/fasta.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl FastaWriter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn write_record(&mut self, header: &str, sequence: &str) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_paths` is never used
[INFO] [stdout]   --> src/io/gfa.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl GfaWriter {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn write_paths(&mut self, contigs: &[Contig]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_coverage` is never used
[INFO] [stdout]   --> src/io/gfa2.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Gfa2Writer {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn with_coverage(path: &str, coverage: HashMap<usize, f32>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_detailed_gff3` is never used
[INFO] [stdout]   --> src/io/gff3.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn write_detailed_gff3(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_detailed_gtf` is never used
[INFO] [stdout]   --> src/io/gtf.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn write_detailed_gtf(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `integrate_long_reads_for_polishing` is never used
[INFO] [stdout]   --> src/io/longread.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn integrate_long_reads_for_polishing(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_path_metadata_json` is never used
[INFO] [stdout]    --> src/io/odgi.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn export_path_metadata_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_odgi_paths` is never used
[INFO] [stdout]   --> src/io/export.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn export_odgi_paths(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_dot_graph` is never used
[INFO] [stdout]   --> src/io/export.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn export_dot_graph(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_contigs` is never used
[INFO] [stdout]    --> src/io/metadata.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn create_test_contigs() -> Vec<Contig> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Kmer` is never used
[INFO] [stdout]  --> src/kmer/kmer.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type Kmer = String;
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_kmer` is never used
[INFO] [stdout]  --> src/kmer/kmer.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn encode_kmer(seq: &str) -> Option<u64> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AbundanceStats` is never constructed
[INFO] [stdout]  --> src/kmer/normalize.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AbundanceStats {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_read_abundance` is never used
[INFO] [stdout]   --> src/kmer/normalize.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn estimate_read_abundance(seq: &str, k: usize, sketch: &[u32]) -> AbundanceStats {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]    --> src/kmer/normalize.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn median(values: &mut [u16]) -> u16 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_repeat_positions` is never used
[INFO] [stdout]   --> src/kmer/repeat.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn find_repeat_positions(seq: &str, pattern: &str, min_len: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kmer_path` is never read
[INFO] [stdout]   --> src/graph/assembler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Contig {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub kmer_path: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Contig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_rle` is never used
[INFO] [stdout]   --> src/graph/assembler.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Contig {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 14 |     /// Convert the contig sequence to run-length encoding
[INFO] [stdout] 15 |     pub fn to_rle(&self) -> Vec<(u8, u8)> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shift` is never read
[INFO] [stdout]    --> src/graph/stitch.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct OverlapInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub shift: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OverlapInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_paths_from_gfa` is never used
[INFO] [stdout]    --> src/graph/stitch.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn load_paths_from_gfa(gfa_path: &str) -> Result<Vec<Path>, std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cluster_contigs` is never used
[INFO] [stdout]   --> src/graph/partition.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn cluster_contigs(graph: &DiGraphMap<usize, f32>) -> HashMap<usize, Vec<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_small_clusters` is never used
[INFO] [stdout]   --> src/graph/partition.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn merge_small_clusters(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cluster_similarity` is never used
[INFO] [stdout]   --> src/graph/partition.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn calculate_cluster_similarity(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_clusters` is never used
[INFO] [stdout]    --> src/graph/partition.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn merge_clusters(clusters: Vec<Vec<usize>>, _distance_matrix: &[Vec<f32>], _contigs: &[String]) -> Vec<Vec<usize>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_all_pair_links` is never used
[INFO] [stdout]   --> src/graph/edge_weight.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl PairLinkTracker {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn get_all_pair_links(&self) -> &HashMap<(usize, usize), usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_contig_string` is never used
[INFO] [stdout]   --> src/graph/polish.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn polish_contig_string(contig: &str, aligned_reads: &[String], correction_threshold: f32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hybrid_polish_contig` is never used
[INFO] [stdout]    --> src/graph/polish.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn hybrid_polish_contig(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_and_parse_gfa_paths` is never used
[INFO] [stdout]   --> src/graph/navigation.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn load_and_parse_gfa_paths(path: &str) -> Result<HashMap<String, Vec<(String, char)>>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_oriented_sequence` is never used
[INFO] [stdout]   --> src/graph/navigation.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn get_oriented_sequence(segment: &str, dir: char, map: &HashMap<String, String>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_path_metadata` is never used
[INFO] [stdout]    --> src/graph/navigation.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn extract_path_metadata(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_strand`, `with_tpm`, and `with_splicing` are never used
[INFO] [stdout]   --> src/graph/transcript.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Transcript {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn with_strand(mut self, strand: char) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn with_tpm(mut self, tpm: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn with_splicing(mut self, splicing: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transcript_to_fasta` is never used
[INFO] [stdout]    --> src/graph/transcript.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn transcript_to_fasta(transcript: &Transcript) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transcript_to_gfa_path` is never used
[INFO] [stdout]    --> src/graph/transcript.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn transcript_to_gfa_path(transcript: &Transcript) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_transcript_similarity` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn calculate_transcript_similarity(t1: &Transcript, t2: &Transcript) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cluster_similar_transcripts` is never used
[INFO] [stdout]   --> src/graph/isoform_filter.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn cluster_similar_transcripts(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_depth`, `bubble_count`, and `branchiness` are never read
[INFO] [stdout]   --> src/graph/complexity.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PathStats {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub max_depth: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub bubble_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub branchiness: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PathStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parallel_path_discovery` is never used
[INFO] [stdout]  --> src/graph/isoform_parallel.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn parallel_path_discovery(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parallel_path_filtering` is never used
[INFO] [stdout]   --> src/graph/isoform_parallel.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn parallel_path_filtering(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_confidence` is never used
[INFO] [stdout]    --> src/graph/isoform_parallel.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn calculate_path_confidence(graph: &IsoformGraph, path: &[usize]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `batch_match_kmers_simd` is never used
[INFO] [stdout]    --> src/accel/simd.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn batch_match_kmers_simd<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_overlap` is never used
[INFO] [stdout]    --> src/accel/simd.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn find_best_overlap(query: &[u8], target: &[u8], min_overlap: usize, max_distance: usize) -> (Option<(usize, usize)>, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GpuKmerCounter` is never constructed
[INFO] [stdout]  --> src/accel/gpu.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub struct GpuKmerCounter {
[INFO] [stdout]   |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `count` are never used
[INFO] [stdout]   --> src/accel/gpu.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     impl GpuKmerCounter {
[INFO] [stdout]    |     ------------------- associated items in this implementation
[INFO] [stdout] 14 |         pub fn new(_k: usize, expected_reads: usize) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |         pub fn count(&self, sequences: &[String], k: usize) -> Vec<u32> {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_partitions` is never used
[INFO] [stdout]   --> src/dist/partition.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn save_partitions(partitions: &HashMap<usize, Vec<String>>, output_dir: &str, prefix: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimizer` is never used
[INFO] [stdout]   --> src/dist/partition.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn minimizer(kmer: &[u8], m: usize) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_minimizer_positions` is never used
[INFO] [stdout]   --> src/dist/partition.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_minimizer_positions(seq: &str, k: usize, m: usize) -> Vec<(usize, u64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DistributedConfig` is never constructed
[INFO] [stdout]  --> src/dist/scheduler.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DistributedConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_parallel_assembly` is never used
[INFO] [stdout]   --> src/dist/scheduler.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn run_parallel_assembly(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_slurm_script` is never used
[INFO] [stdout]   --> src/dist/scheduler.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn generate_slurm_script(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `submit_slurm_jobs` is never used
[INFO] [stdout]    --> src/dist/scheduler.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn submit_slurm_jobs(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_distributed_assembly` is never used
[INFO] [stdout]    --> src/dist/scheduler.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn run_distributed_assembly(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assemble_reads` is never used
[INFO] [stdout]   --> src/pipeline/assemble.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn assemble_reads(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distributed_assembly` is never used
[INFO] [stdout]    --> src/pipeline/assemble.rs:545:8
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub fn distributed_assembly(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_contig_coverages` is never used
[INFO] [stdout]   --> src/pipeline/isoform_processor.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn load_contig_coverages(expression_path: &str) -> Result<HashMap<usize, f64>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_gpu_available` is never used
[INFO] [stdout]   --> src/gpu/kmer_gpu.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn is_gpu_available() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_kmers_gpu` is never used
[INFO] [stdout]    --> src/gpu/kmer_gpu.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn normalize_kmers_gpu(_kmers: &[String], _target_coverage: u32) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_kmers_gpu` is never used
[INFO] [stdout]    --> src/gpu/kmer_gpu.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn count_kmers_gpu(_sequences: &[String], _k: usize) -> HashMap<String, u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tpm_matrix` is never used
[INFO] [stdout]   --> src/quant/matrix.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn read_tpm_matrix(path: &str) -> std::io::Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiffExpResult` is never constructed
[INFO] [stdout]  --> src/quant/diffexp.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DiffExpResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Log2` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Log2 {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_fold_change_matrix` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compute_fold_change_matrix(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `t_test` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn t_test(a: &[f64], b: &[f64]) -> f64 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variance` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn variance(x: &[f64]) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_diffexp` is never used
[INFO] [stdout]   --> src/quant/diffexp.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn write_diffexp(results: &[DiffExpResult], output: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_tpm_from_bam` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn estimate_tpm_from_bam(_bam_path: &str, transcripts: &[Transcript]) -> Result<Vec<f64>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_transcripts_with_tpm` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn update_transcripts_with_tpm(transcripts: &mut [Transcript], bam_path: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_by_tpm` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn filter_by_tpm(transcripts: Vec<Transcript>, min_tpm: f64) -> Vec<Transcript> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_expression_matrix` is never used
[INFO] [stdout]   --> src/quant/align_counts.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn create_expression_matrix(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_counts_matrix` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:135:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn load_counts_matrix(csv_path: &str, transcripts: &[Transcript]) -> Result<HashMap<String, Vec<f64>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tpm_to_counts` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn tpm_to_counts(transcripts: &[Transcript], tpm_values: &[f64]) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_expressed_transcripts` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn count_expressed_transcripts(transcripts: &[Transcript], tpm_values: &[f64], threshold: f64) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_transcript_abundances_from_alignments` is never used
[INFO] [stdout]    --> src/quant/align_counts.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn estimate_transcript_abundances_from_alignments(transcripts: &[Transcript], _bam_path: &str) -> Result<Vec<f64>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_transcripts_with_long_reads` is never used
[INFO] [stdout]    --> src/polish/longread.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn polish_transcripts_with_long_reads(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_aligned_reads` is never used
[INFO] [stdout]    --> src/polish/longread.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn find_aligned_reads(transcript_seq: &str, long_reads: &[FastqRecord]) -> Vec<FastqRecord> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polish_sequence` is never used
[INFO] [stdout]    --> src/polish/longread.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn polish_sequence(seq: &str, reads: &[FastqRecord]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_approximate_position` is never used
[INFO] [stdout]    --> src/polish/longread.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn find_approximate_position(reference: &str, read: &str) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_consensus_counts` is never used
[INFO] [stdout]    --> src/polish/longread.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn update_consensus_counts(counts: &mut Vec<[u32; 5]>, start_pos: usize, read_seq: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_consensus_sequence` is never used
[INFO] [stdout]    --> src/polish/longread.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn build_consensus_sequence(counts: &Vec<[u32; 5]>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptLocation` is never constructed
[INFO] [stdout]  --> src/eval/gtf_compare.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TranscriptLocation {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_gtf_ranges` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn load_gtf_ranges(path: &str) -> IoResult<HashSet<TranscriptLocation>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gtf` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn compare_gtf(truth: &str, predicted: &str) -> IoResult<(usize, usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_metrics` is never used
[INFO] [stdout]   --> src/eval/gtf_compare.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn calculate_metrics(tp: usize, fp: usize, fn_: usize) -> (f64, f64, f64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_exon_intervals` is never used
[INFO] [stdout]    --> src/eval/gtf_compare.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn load_exon_intervals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gtf_advanced` is never used
[INFO] [stdout]    --> src/eval/gtf_compare.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn compare_gtf_advanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_gfa` is never used
[INFO] [stdout]    --> src/eval/mod.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     pub fn compare_gfa(truth_path: &str, pred_path: &str) -> io::Result<(usize, usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_gfa_paths` is never used
[INFO] [stdout]    --> src/eval/mod.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn load_gfa_paths(path: &str) -> io::Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_pca_simple` is never used
[INFO] [stdout]    --> src/visualize/pca.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn plot_pca_simple(pca_result: &Array2<f64>, output: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_heatmap` is never used
[INFO] [stdout]  --> src/visualize/plot.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn plot_heatmap(matrix: &Array2<f64>, output: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 23s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nalgebra v0.27.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "c0ab161b7b1355853a1302e5c9d9ad376157995caadbcbe274b049552a819b86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0ab161b7b1355853a1302e5c9d9ad376157995caadbcbe274b049552a819b86", kill_on_drop: false }`
[INFO] [stdout] c0ab161b7b1355853a1302e5c9d9ad376157995caadbcbe274b049552a819b86
