[INFO] fetching crate modtector 0.15.4...
[INFO] checking modtector-0.15.4 against master#89a99936d9e76a50e8df622e7242190841fd871b for pr-156160-1
[INFO] extracting crate modtector 0.15.4 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate modtector 0.15.4
[INFO] finished tweaking crates.io crate modtector 0.15.4
[INFO] tweaked toml for crates.io crate modtector 0.15.4 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate modtector 0.15.4 on toolchain 89a99936d9e76a50e8df622e7242190841fd871b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate modtector 0.15.4 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" "+89a99936d9e76a50e8df622e7242190841fd871b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-htslib v0.47.0
[INFO] [stderr]   Downloaded newtype_derive v0.1.6
[INFO] [stderr]   Downloaded semver v0.1.20
[INFO] [stderr]   Downloaded derive-new v0.5.9
[INFO] [stderr]   Downloaded fs-utils v1.1.4
[INFO] [stderr]   Downloaded windows-targets v0.53.2
[INFO] [stderr]   Downloaded redox_users v0.5.0
[INFO] [stderr]   Downloaded libredox v0.1.4
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.9
[INFO] [stderr]   Downloaded anstyle-query v1.1.3
[INFO] [stderr]   Downloaded rustc_version v0.1.7
[INFO] [stderr]   Downloaded cmake v0.1.51
[INFO] [stderr]   Downloaded ieee754 v0.2.6
[INFO] [stderr]   Downloaded editdistancek v1.0.2
[INFO] [stderr]   Downloaded itertools-num v0.1.3
[INFO] [stderr]   Downloaded multimap v0.10.0
[INFO] [stderr]   Downloaded enum-map-derive v0.17.0
[INFO] [stderr]   Downloaded linear-map v1.2.0
[INFO] [stderr]   Downloaded custom_derive v0.1.7
[INFO] [stderr]   Downloaded pathfinder_simd v0.5.5
[INFO] [stderr]   Downloaded bio-types v1.0.4
[INFO] [stderr]   Downloaded anstream v0.6.19
[INFO] [stderr]   Downloaded enum-map v2.7.3
[INFO] [stderr]   Downloaded ordered-float v4.2.2
[INFO] [stderr]   Downloaded bytecount v0.6.8
[INFO] [stderr]   Downloaded dwrote v0.11.3
[INFO] [stderr]   Downloaded clap_derive v4.5.40
[INFO] [stderr]   Downloaded url v2.5.2
[INFO] [stderr]   Downloaded anyhow v1.0.87
[INFO] [stderr]   Downloaded clap v4.5.40
[INFO] [stderr]   Downloaded triple_accel v0.4.0
[INFO] [stderr]   Downloaded openssl-sys v0.9.103
[INFO] [stderr]   Downloaded font-kit v0.14.3
[INFO] [stderr]   Downloaded safe_arch v0.7.2
[INFO] [stderr]   Downloaded cc v1.1.18
[INFO] [stderr]   Downloaded matrixmultiply v0.3.9
[INFO] [stderr]   Downloaded wide v0.7.28
[INFO] [stderr]   Downloaded statrs v0.17.1
[INFO] [stderr]   Downloaded regex v1.11.3
[INFO] [stderr]   Downloaded clap_builder v4.5.40
[INFO] [stderr]   Downloaded bio v2.0.1
[INFO] [stderr]   Downloaded syn v2.0.87
[INFO] [stderr]   Downloaded ndarray v0.15.6
[INFO] [stderr]   Downloaded nalgebra v0.32.6
[INFO] [stderr]   Downloaded regex-automata v0.4.11
[INFO] [stderr]   Downloaded bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]   Downloaded libz-sys v1.1.20
[INFO] [stderr]   Downloaded csv v1.3.0
[INFO] [stderr]   Downloaded curl-sys v0.4.74+curl-8.9.0
[INFO] [stderr]   Downloaded hts-sys v2.1.4
[INFO] [stderr]   Downloaded openssl-src v300.3.2+3.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:fd22e2154e7db748230f413534f3a6d034160c9d2b7c14b90fba4e9bfc1a36d4" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a
[INFO] running `Command { std: "docker" "start" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]     Checking bytemuck v1.18.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling libloading v0.8.5
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling bindgen v0.69.4
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling cc v1.1.18
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling openssl-src v300.3.2+3.3.2
[INFO] [stderr]    Compiling cmake v0.1.51
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling pathfinder_simd v0.5.5
[INFO] [stderr]     Checking safe_arch v0.7.2
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling yeslogic-fontconfig-sys v6.0.0
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]    Compiling libz-sys v1.1.20
[INFO] [stderr]    Compiling freetype-sys v0.20.1
[INFO] [stderr]    Compiling curl-sys v0.4.74+curl-8.9.0
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]     Checking tinyvec v1.8.0
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling fs-utils v1.1.4
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking wide v0.7.28
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling newtype_derive v0.1.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling feature-probe v0.1.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling bv v0.11.1
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking simba v0.8.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]    Compiling font-kit v0.14.3
[INFO] [stderr]    Compiling anyhow v1.0.87
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking bio-types v1.0.4
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling hts-sys v2.1.4
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking indexmap v2.5.0
[INFO] [stderr]     Checking pathfinder_geometry v0.5.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking csv-core v0.1.11
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking custom_derive v0.1.7
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]     Checking csv v1.3.0
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking plotters-bitmap v0.3.7
[INFO] [stderr]     Checking url v2.5.2
[INFO] [stderr]     Checking nalgebra v0.32.6
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking multimap v0.10.0
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking ordered-float v4.2.2
[INFO] [stderr]     Checking itertools-num v0.1.3
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]    Compiling derive-new v0.5.9
[INFO] [stderr]     Checking linear-map v1.2.0
[INFO] [stderr]     Checking triple_accel v0.4.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking editdistancek v1.0.2
[INFO] [stderr]     Checking bytecount v0.6.8
[INFO] [stderr]     Checking ieee754 v0.2.6
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking statrs v0.17.1
[INFO] [stderr]     Checking bio v2.0.1
[INFO] [stderr]     Checking rust-htslib v0.47.0
[INFO] [stderr]     Checking modtector v0.15.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]   --> src/main.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::atomic::{AtomicUsize, Ordering};
[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: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]   --> src/main.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | use ndarray::{Array1, Array2};
[INFO] [stdout]    |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]     --> src/convert.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     use std::collections::HashMap;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/correct.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/duet.rs:2823:21
[INFO] [stdout]      |
[INFO] [stdout] 2823 |                     ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout]      |                     ^                         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2823 -                     ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout] 2823 +                     (165.0 * (1.0 - t)) as u8 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/duet.rs:2866:17
[INFO] [stdout]      |
[INFO] [stdout] 2866 |                 ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout]      |                 ^                         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2866 -                 ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout] 2866 +                 (165.0 * (1.0 - t)) as u8 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/reactivity.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{BufRead, BufReader, Write, Read};
[INFO] [stdout]   |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]   --> src/main.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::atomic::{AtomicUsize, Ordering};
[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: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]   --> src/main.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | use ndarray::{Array1, Array2};
[INFO] [stdout]    |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]     --> src/convert.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     use std::collections::HashMap;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/correct.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/duet.rs:2823:21
[INFO] [stdout]      |
[INFO] [stdout] 2823 |                     ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout]      |                     ^                         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2823 -                     ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout] 2823 +                     (165.0 * (1.0 - t)) as u8 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/duet.rs:2866:17
[INFO] [stdout]      |
[INFO] [stdout] 2866 |                 ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout]      |                 ^                         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2866 -                 ((165.0 * (1.0 - t)) as u8),
[INFO] [stdout] 2866 +                 (165.0 * (1.0 - t)) as u8 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/reactivity.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{BufRead, BufReader, Write, Read};
[INFO] [stdout]   |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/compare.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 325 |     let n = base.len();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compare.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let mut region_start = i;
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_radius`
[INFO] [stdout]    --> src/compare.rs:355:5
[INFO] [stdout]     |
[INFO] [stdout] 355 |     window_radius: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/convert.rs:867:28
[INFO] [stdout]     |
[INFO] [stdout] 867 |         let (mut ref_base, mut mutation_count, mut rt_stops, mut coverage) = 
[INFO] [stdout]     |                            ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]     --> src/convert.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     args: &ConvertArgs,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `in_transcript` is assigned to, but never used
[INFO] [stdout]     --> src/convert.rs:1204:9
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     let mut in_transcript = false;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_in_transcript` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `in_transcript` is never read
[INFO] [stdout]     --> src/convert.rs:1214:25
[INFO] [stdout]      |
[INFO] [stdout] 1214 |                         in_transcript = true;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1246 |                         in_transcript = false;
[INFO] [stdout]      |                         --------------------- `in_transcript` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `in_transcript` is never read
[INFO] [stdout]     --> src/convert.rs:1246:25
[INFO] [stdout]      |
[INFO] [stdout] 1246 |                         in_transcript = false;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/convert.rs:1858:9
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     let mut line_iter = reader.lines();
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]     --> src/convert.rs:2095:10
[INFO] [stdout]      |
[INFO] [stdout] 2095 |     for (key, mut entries) in entries_by_key {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/compare.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 325 |     let n = base.len();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compare.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let mut region_start = i;
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_radius`
[INFO] [stdout]    --> src/compare.rs:355:5
[INFO] [stdout]     |
[INFO] [stdout] 355 |     window_radius: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]   --> src/correct.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let df = 2.0;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/correct.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let mut p: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 131 |             p = (x - v) * q - (x - w) * r;
[INFO] [stdout]     |             ----------------------------- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `q` is never read
[INFO] [stdout]    --> src/correct.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut q: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 130 |             q = (x - v) * (fx - fw);
[INFO] [stdout]     |             ----------------------- `q` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `r` is never read
[INFO] [stdout]    --> src/correct.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut r: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 129 |             r = (x - w) * (fx - fv);
[INFO] [stdout]     |             ----------------------- `r` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_mutation`
[INFO] [stdout]    --> src/correct.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let max_mutation = binned.iter().map(|(_, mr)| *mr).fold(0.0, f64::max);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_mutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutation_rate`
[INFO] [stdout]    --> src/correct.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     mutation_rate: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_decrease`
[INFO] [stdout]    --> src/correct.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     weight_decrease: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_decrease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/convert.rs:867:28
[INFO] [stdout]     |
[INFO] [stdout] 867 |         let (mut ref_base, mut mutation_count, mut rt_stops, mut coverage) = 
[INFO] [stdout]     |                            ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]     --> src/convert.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     args: &ConvertArgs,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `in_transcript` is assigned to, but never used
[INFO] [stdout]     --> src/convert.rs:1204:9
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     let mut in_transcript = false;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_in_transcript` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `in_transcript` is never read
[INFO] [stdout]     --> src/convert.rs:1214:25
[INFO] [stdout]      |
[INFO] [stdout] 1214 |                         in_transcript = true;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1246 |                         in_transcript = false;
[INFO] [stdout]      |                         --------------------- `in_transcript` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `in_transcript` is never read
[INFO] [stdout]     --> src/convert.rs:1246:25
[INFO] [stdout]      |
[INFO] [stdout] 1246 |                         in_transcript = false;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/convert.rs:1858:9
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     let mut line_iter = reader.lines();
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:2697:9
[INFO] [stdout]      |
[INFO] [stdout] 2697 |     let mut reordered_ensemble_ids: Vec<usize> = row_order.iter().map(|&idx| ensemble_ids[idx]).collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:2698:9
[INFO] [stdout]      |
[INFO] [stdout] 2698 |     let mut reordered_matrix: Vec<Vec<f64>> = row_order.iter().map(|&idx| reactivity_matrix[idx].clone()).collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_plot_height`
[INFO] [stdout]     --> src/duet.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let base_plot_height = 800;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_plot_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]     --> src/convert.rs:2095:10
[INFO] [stdout]      |
[INFO] [stdout] 2095 |     for (key, mut entries) in entries_by_key {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ensemble`
[INFO] [stdout]     --> src/duet.rs:3033:21
[INFO] [stdout]      |
[INFO] [stdout] 3033 |         if let Some(ensemble) = global_ensembles.iter().find(|e| e.id == ensemble_id) {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ensemble`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]     --> src/duet.rs:3244:21
[INFO] [stdout]      |
[INFO] [stdout] 3244 |                 let range = max_pos - min_pos;
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]   --> src/correct.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let df = 2.0;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/correct.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let mut p: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 131 |             p = (x - v) * q - (x - w) * r;
[INFO] [stdout]     |             ----------------------------- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `q` is never read
[INFO] [stdout]    --> src/correct.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut q: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 130 |             q = (x - v) * (fx - fw);
[INFO] [stdout]     |             ----------------------- `q` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `r` is never read
[INFO] [stdout]    --> src/correct.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut r: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 129 |             r = (x - w) * (fx - fv);
[INFO] [stdout]     |             ----------------------- `r` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/duet.rs:3417:10
[INFO] [stdout]      |
[INFO] [stdout] 3417 |     for (idx, (pos, reactivity)) in full_reactivity_data.iter().enumerate() {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/duet.rs:3445:10
[INFO] [stdout]      |
[INFO] [stdout] 3445 |     for (idx, (pos, reactivity)) in non_full_reactivity_data.iter().enumerate() {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3743:9
[INFO] [stdout]      |
[INFO] [stdout] 3743 |     let mut sigmas: Vec<f64> = knn_distances.iter().map(|dists| {
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]     --> src/duet.rs:3708:9
[INFO] [stdout]      |
[INFO] [stdout] 3708 |     let p = data[0].len();
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_mutation`
[INFO] [stdout]    --> src/correct.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let max_mutation = binned.iter().map(|(_, mr)| *mr).fold(0.0, f64::max);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_mutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutation_rate`
[INFO] [stdout]    --> src/correct.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     mutation_rate: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3830:9
[INFO] [stdout]      |
[INFO] [stdout] 3830 |     let mut cluster_distances: Vec<Vec<f64>> = distances.clone();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_decrease`
[INFO] [stdout]    --> src/correct.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     weight_decrease: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_decrease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_distances`
[INFO] [stdout]     --> src/duet.rs:3830:9
[INFO] [stdout]      |
[INFO] [stdout] 3830 |     let mut cluster_distances: Vec<Vec<f64>> = distances.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_distances`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3890:9
[INFO] [stdout]      |
[INFO] [stdout] 3890 |     let mut centered: Vec<Vec<f64>> = data.iter().map(|row| {
[INFO] [stdout]      |         ----^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `single_stranded_count`
[INFO] [stdout]    --> src/evaluate.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let single_stranded_count = is_single_stranded.iter().filter(|&&x| x).count();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_single_stranded_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `double_stranded_count`
[INFO] [stdout]    --> src/evaluate.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let double_stranded_count = is_single_stranded.iter().filter(|&&x| !x).count();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_double_stranded_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_lines`
[INFO] [stdout]    --> src/evaluate.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let total_lines = std::fs::read_to_string(csv_file)?.lines().count();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `match_rate`
[INFO] [stdout]    --> src/evaluate.rs:336:9
[INFO] [stdout]     |
[INFO] [stdout] 336 |     let match_rate = if best_match_count > 0 {
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_match_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `match_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let mut match_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_match_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mismatch_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |     let mut mismatch_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_mismatch_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipped_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |     let mut skipped_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_skipped_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `match_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:360:21
[INFO] [stdout]     |
[INFO] [stdout] 360 |                     match_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mismatch_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:362:21
[INFO] [stdout]     |
[INFO] [stdout] 362 |                     mismatch_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:370:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 skipped_count += 1;
[INFO] [stdout]     |                 ------------------ `skipped_count` is overwritten here before the previous value is read
[INFO] [stdout] ...
[INFO] [stdout] 370 |             skipped_count += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:366:17
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 skipped_count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `thresholds` is never read
[INFO] [stdout]    --> src/evaluate.rs:624:26
[INFO] [stdout]     |
[INFO] [stdout] 624 |     let mut thresholds = Vec::new();
[INFO] [stdout]     |                          ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 671 |     thresholds = unique_values.clone();
[INFO] [stdout]     |     ---------- `thresholds` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tn` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:1579:13
[INFO] [stdout]      |
[INFO] [stdout] 1579 |         let mut tn = 0;
[INFO] [stdout]      |             ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_tn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fn_count` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:1580:13
[INFO] [stdout]      |
[INFO] [stdout] 1580 |         let mut fn_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_fn_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tn` is never read
[INFO] [stdout]     --> src/evaluate.rs:1597:21
[INFO] [stdout]      |
[INFO] [stdout] 1597 |                     tn += 1;
[INFO] [stdout]      |                     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `fn_count` is never read
[INFO] [stdout]     --> src/evaluate.rs:1595:21
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                     fn_count += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/evaluate.rs:1839:16
[INFO] [stdout]      |
[INFO] [stdout] 1839 |     for (base, data) in &base_groups {
[INFO] [stdout]      |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auc`
[INFO] [stdout]     --> src/evaluate.rs:1900:37
[INFO] [stdout]      |
[INFO] [stdout] 1900 | ...                   let auc = result.auc;
[INFO] [stdout]      |                           ^^^ help: if this is intentional, prefix it with an underscore: `_auc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signal_type`
[INFO] [stdout]     --> src/evaluate.rs:1952:5
[INFO] [stdout]      |
[INFO] [stdout] 1952 |     signal_type: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signal_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tn` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:2013:13
[INFO] [stdout]      |
[INFO] [stdout] 2013 |         let mut tn = 0;
[INFO] [stdout]      |             ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_tn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fn_count` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:2014:13
[INFO] [stdout]      |
[INFO] [stdout] 2014 |         let mut fn_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_fn_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tn` is never read
[INFO] [stdout]     --> src/evaluate.rs:2031:21
[INFO] [stdout]      |
[INFO] [stdout] 2031 |                     tn += 1;
[INFO] [stdout]      |                     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `fn_count` is never read
[INFO] [stdout]     --> src/evaluate.rs:2029:21
[INFO] [stdout]      |
[INFO] [stdout] 2029 |                     fn_count += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_val`
[INFO] [stdout]    --> src/norm.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let min_val = valid_values
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logger`
[INFO] [stdout]    --> src/norm.rs:234:34
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn norm_csv(args: &NormArgs, logger: &mut crate::Logger) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:2697:9
[INFO] [stdout]      |
[INFO] [stdout] 2697 |     let mut reordered_ensemble_ids: Vec<usize> = row_order.iter().map(|&idx| ensemble_ids[idx]).collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:2698:9
[INFO] [stdout]      |
[INFO] [stdout] 2698 |     let mut reordered_matrix: Vec<Vec<f64>> = row_order.iter().map(|&idx| reactivity_matrix[idx].clone()).collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/norm.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut window_start = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_start`
[INFO] [stdout]    --> src/norm.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut window_start = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_plot_height`
[INFO] [stdout]     --> src/duet.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let base_plot_height = 800;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_plot_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_regex`
[INFO] [stdout]   --> src/plot.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let base_regex = Regex::new(r"<text[^>]*>([ATCGU])</text>")?;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_regex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipped_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |     let mut skipped_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_skipped_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let mut total_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_lines` is never read
[INFO] [stdout]    --> src/plot.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             skipped_lines += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_lines` is never read
[INFO] [stdout]    --> src/plot.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |         total_lines += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `written_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let mut written_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_written_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `written_lines` is never read
[INFO] [stdout]    --> src/plot.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |             written_lines += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ensemble`
[INFO] [stdout]     --> src/duet.rs:3033:21
[INFO] [stdout]      |
[INFO] [stdout] 3033 |         if let Some(ensemble) = global_ensembles.iter().find(|e| e.id == ensemble_id) {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ensemble`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_pos2base`
[INFO] [stdout]    --> src/plot.rs:493:13
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let ref_pos2base = load_reference_sequence(ref_file)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_pos2base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]     --> src/duet.rs:3244:21
[INFO] [stdout]      |
[INFO] [stdout] 3244 |                 let range = max_pos - min_pos;
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_stop_file`
[INFO] [stdout]    --> src/plot.rs:741:9
[INFO] [stdout]     |
[INFO] [stdout] 741 |     let is_stop_file = csv_file.contains("stop");
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_stop_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_mutation_file`
[INFO] [stdout]    --> src/plot.rs:742:9
[INFO] [stdout]     |
[INFO] [stdout] 742 |     let is_mutation_file = csv_file.contains("mutation");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_mutation_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/duet.rs:3417:10
[INFO] [stdout]      |
[INFO] [stdout] 3417 |     for (idx, (pos, reactivity)) in full_reactivity_data.iter().enumerate() {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/duet.rs:3445:10
[INFO] [stdout]      |
[INFO] [stdout] 3445 |     for (idx, (pos, reactivity)) in non_full_reactivity_data.iter().enumerate() {
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3743:9
[INFO] [stdout]      |
[INFO] [stdout] 3743 |     let mut sigmas: Vec<f64> = knn_distances.iter().map(|dists| {
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]     --> src/duet.rs:3708:9
[INFO] [stdout]      |
[INFO] [stdout] 3708 |     let p = data[0].len();
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3830:9
[INFO] [stdout]      |
[INFO] [stdout] 3830 |     let mut cluster_distances: Vec<Vec<f64>> = distances.clone();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_distances`
[INFO] [stdout]     --> src/duet.rs:3830:9
[INFO] [stdout]      |
[INFO] [stdout] 3830 |     let mut cluster_distances: Vec<Vec<f64>> = distances.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_distances`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/duet.rs:3890:9
[INFO] [stdout]      |
[INFO] [stdout] 3890 |     let mut centered: Vec<Vec<f64>> = data.iter().map(|row| {
[INFO] [stdout]      |         ----^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `single_stranded_count`
[INFO] [stdout]    --> src/evaluate.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let single_stranded_count = is_single_stranded.iter().filter(|&&x| x).count();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_single_stranded_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `double_stranded_count`
[INFO] [stdout]    --> src/evaluate.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let double_stranded_count = is_single_stranded.iter().filter(|&&x| !x).count();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_double_stranded_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_lines`
[INFO] [stdout]    --> src/evaluate.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let total_lines = std::fs::read_to_string(csv_file)?.lines().count();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `match_rate`
[INFO] [stdout]    --> src/evaluate.rs:336:9
[INFO] [stdout]     |
[INFO] [stdout] 336 |     let match_rate = if best_match_count > 0 {
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_match_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `match_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let mut match_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_match_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mismatch_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |     let mut mismatch_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_mismatch_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipped_count` is assigned to, but never used
[INFO] [stdout]    --> src/evaluate.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |     let mut skipped_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_skipped_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `match_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:360:21
[INFO] [stdout]     |
[INFO] [stdout] 360 |                     match_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mismatch_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:362:21
[INFO] [stdout]     |
[INFO] [stdout] 362 |                     mismatch_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:370:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 skipped_count += 1;
[INFO] [stdout]     |                 ------------------ `skipped_count` is overwritten here before the previous value is read
[INFO] [stdout] ...
[INFO] [stdout] 370 |             skipped_count += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_count` is never read
[INFO] [stdout]    --> src/evaluate.rs:366:17
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 skipped_count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `thresholds` is never read
[INFO] [stdout]    --> src/evaluate.rs:624:26
[INFO] [stdout]     |
[INFO] [stdout] 624 |     let mut thresholds = Vec::new();
[INFO] [stdout]     |                          ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 671 |     thresholds = unique_values.clone();
[INFO] [stdout]     |     ---------- `thresholds` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reactivity_file`
[INFO] [stdout]     --> src/plot.rs:9018:5
[INFO] [stdout]      |
[INFO] [stdout] 9018 |     reactivity_file: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reactivity_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bases_filter`
[INFO] [stdout]     --> src/plot.rs:9021:5
[INFO] [stdout]      |
[INFO] [stdout] 9021 |     bases_filter: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bases_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_filter`
[INFO] [stdout]     --> src/plot.rs:9023:5
[INFO] [stdout]      |
[INFO] [stdout] 9023 |     strand_filter: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id_regex`
[INFO] [stdout]     --> src/plot.rs:9101:9
[INFO] [stdout]      |
[INFO] [stdout] 9101 |     let id_regex = Regex::new(r#"id="node_(\d+)""#)?;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_id_regex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tn` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:1579:13
[INFO] [stdout]      |
[INFO] [stdout] 1579 |         let mut tn = 0;
[INFO] [stdout]      |             ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_tn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fn_count` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:1580:13
[INFO] [stdout]      |
[INFO] [stdout] 1580 |         let mut fn_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_fn_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tn` is never read
[INFO] [stdout]     --> src/evaluate.rs:1597:21
[INFO] [stdout]      |
[INFO] [stdout] 1597 |                     tn += 1;
[INFO] [stdout]      |                     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `fn_count` is never read
[INFO] [stdout]     --> src/evaluate.rs:1595:21
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                     fn_count += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/progress.rs:85:29
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn with_description(mut self, description: &str) -> io::Result<()> {
[INFO] [stdout]    |                             ----^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/evaluate.rs:1839:16
[INFO] [stdout]      |
[INFO] [stdout] 1839 |     for (base, data) in &base_groups {
[INFO] [stdout]      |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auc`
[INFO] [stdout]     --> src/evaluate.rs:1900:37
[INFO] [stdout]      |
[INFO] [stdout] 1900 | ...                   let auc = result.auc;
[INFO] [stdout]      |                           ^^^ help: if this is intentional, prefix it with an underscore: `_auc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signal_type`
[INFO] [stdout]     --> src/evaluate.rs:1952:5
[INFO] [stdout]      |
[INFO] [stdout] 1952 |     signal_type: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signal_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tn` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:2013:13
[INFO] [stdout]      |
[INFO] [stdout] 2013 |         let mut tn = 0;
[INFO] [stdout]      |             ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_tn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fn_count` is assigned to, but never used
[INFO] [stdout]     --> src/evaluate.rs:2014:13
[INFO] [stdout]      |
[INFO] [stdout] 2014 |         let mut fn_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_fn_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tn` is never read
[INFO] [stdout]     --> src/evaluate.rs:2031:21
[INFO] [stdout]      |
[INFO] [stdout] 2031 |                     tn += 1;
[INFO] [stdout]      |                     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `fn_count` is never read
[INFO] [stdout]     --> src/evaluate.rs:2029:21
[INFO] [stdout]      |
[INFO] [stdout] 2029 |                     fn_count += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_threshold` is assigned to, but never used
[INFO] [stdout]    --> src/reactivity.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut best_threshold = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_threshold` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_threshold` is never read
[INFO] [stdout]    --> src/reactivity.rs:666:13
[INFO] [stdout]     |
[INFO] [stdout] 666 |             best_threshold = threshold;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_score_on_left`
[INFO] [stdout]    --> src/reactivity.rs:857:9
[INFO] [stdout]     |
[INFO] [stdout] 857 |     let best_score_on_left = best_initial_k < 1.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score_on_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_coarse_auc` is assigned to, but never used
[INFO] [stdout]    --> src/reactivity.rs:893:9
[INFO] [stdout]     |
[INFO] [stdout] 893 |     let mut best_coarse_auc = best_initial_auc;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_coarse_auc` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]     --> src/reactivity.rs:1002:13
[INFO] [stdout]      |
[INFO] [stdout] 1002 |             best_coarse_score = score_left;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:998:13
[INFO] [stdout]     |
[INFO] [stdout] 998 |             best_coarse_score = score_right;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:987:13
[INFO] [stdout]     |
[INFO] [stdout] 987 |             best_coarse_score = score;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:979:13
[INFO] [stdout]     |
[INFO] [stdout] 979 |             best_coarse_score = score;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]     --> src/reactivity.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             best_coarse_auc = auc_left;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |             best_coarse_auc = auc_right;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:988:13
[INFO] [stdout]     |
[INFO] [stdout] 988 |             best_coarse_auc = auc;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:980:13
[INFO] [stdout]     |
[INFO] [stdout] 980 |             best_coarse_auc = auc;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_val`
[INFO] [stdout]    --> src/norm.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let min_val = valid_values
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logger`
[INFO] [stdout]    --> src/norm.rs:234:34
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn norm_csv(args: &NormArgs, logger: &mut crate::Logger) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/norm.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut window_start = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_start`
[INFO] [stdout]    --> src/norm.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut window_start = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_regex`
[INFO] [stdout]   --> src/plot.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let base_regex = Regex::new(r"<text[^>]*>([ATCGU])</text>")?;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_regex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipped_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |     let mut skipped_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_skipped_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let mut total_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `skipped_lines` is never read
[INFO] [stdout]    --> src/plot.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             skipped_lines += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_lines` is never read
[INFO] [stdout]    --> src/plot.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |         total_lines += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `written_lines` is assigned to, but never used
[INFO] [stdout]    --> src/plot.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let mut written_lines = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_written_lines` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `written_lines` is never read
[INFO] [stdout]    --> src/plot.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |             written_lines += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_pos2base`
[INFO] [stdout]    --> src/plot.rs:493:13
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let ref_pos2base = load_reference_sequence(ref_file)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_pos2base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]    --> src/main.rs:417:9
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let df = 2.0;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/main.rs:510:26
[INFO] [stdout]     |
[INFO] [stdout] 510 |         let mut p: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 519 |             p = (x - v) * q - (x - w) * r;
[INFO] [stdout]     |             ----------------------------- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `q` is never read
[INFO] [stdout]    --> src/main.rs:511:26
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut q: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 518 |             q = (x - v) * (fx - fw);
[INFO] [stdout]     |             ----------------------- `q` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `r` is never read
[INFO] [stdout]    --> src/main.rs:512:26
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut r: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 517 |             r = (x - w) * (fx - fv);
[INFO] [stdout]     |             ----------------------- `r` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_stop_file`
[INFO] [stdout]    --> src/plot.rs:741:9
[INFO] [stdout]     |
[INFO] [stdout] 741 |     let is_stop_file = csv_file.contains("stop");
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_stop_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_mutation_file`
[INFO] [stdout]    --> src/plot.rs:742:9
[INFO] [stdout]     |
[INFO] [stdout] 742 |     let is_mutation_file = csv_file.contains("mutation");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_mutation_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_params`
[INFO] [stdout]    --> src/main.rs:762:9
[INFO] [stdout]     |
[INFO] [stdout] 762 |     let initial_params = vec![
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutation_rate`
[INFO] [stdout]     --> src/main.rs:1202:5
[INFO] [stdout]      |
[INFO] [stdout] 1202 |     mutation_rate: f64,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_decrease`
[INFO] [stdout]     --> src/main.rs:1206:5
[INFO] [stdout]      |
[INFO] [stdout] 1206 |     weight_decrease: f64,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_decrease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1466:9
[INFO] [stdout]      |
[INFO] [stdout] 1466 |     let mut expected_refs: HashSet<String> = region_intervals.keys().cloned().collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]     --> src/main.rs:1436:5
[INFO] [stdout]      |
[INFO] [stdout] 1436 |     num_threads: usize,
[INFO] [stdout]      |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_recommendation`
[INFO] [stdout]     --> src/main.rs:2950:9
[INFO] [stdout]      |
[INFO] [stdout] 2950 |     let base_recommendation = (bam_file_count * 2).min(64);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_recommendation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reactivity_file`
[INFO] [stdout]     --> src/plot.rs:9018:5
[INFO] [stdout]      |
[INFO] [stdout] 9018 |     reactivity_file: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reactivity_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bases_filter`
[INFO] [stdout]     --> src/plot.rs:9021:5
[INFO] [stdout]      |
[INFO] [stdout] 9021 |     bases_filter: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bases_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strand_filter`
[INFO] [stdout]     --> src/plot.rs:9023:5
[INFO] [stdout]      |
[INFO] [stdout] 9023 |     strand_filter: &str,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strand_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed`
[INFO] [stdout]     --> src/main.rs:3095:9
[INFO] [stdout]      |
[INFO] [stdout] 3095 |     let completed = Arc::new(AtomicUsize::new(0));
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_seq`
[INFO] [stdout]     --> src/main.rs:3359:24
[INFO] [stdout]      |
[INFO] [stdout] 3359 |         for (ref_name, ref_seq) in &reference_sequences {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id_regex`
[INFO] [stdout]     --> src/plot.rs:9101:9
[INFO] [stdout]      |
[INFO] [stdout] 9101 |     let id_regex = Regex::new(r#"id="node_(\d+)""#)?;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_id_regex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/progress.rs:85:29
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn with_description(mut self, description: &str) -> io::Result<()> {
[INFO] [stdout]    |                             ----^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_name`
[INFO] [stdout]     --> src/main.rs:3727:10
[INFO] [stdout]      |
[INFO] [stdout] 3727 |     for (ref_name, intervals) in &distribution {
[INFO] [stdout]      |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_base`
[INFO] [stdout]     --> src/main.rs:3996:21
[INFO] [stdout]      |
[INFO] [stdout] 3996 |                 let ref_base = if pos < ref_seq.len() as u32 {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_threshold` is assigned to, but never used
[INFO] [stdout]    --> src/reactivity.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut best_threshold = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_threshold` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_threshold` is never read
[INFO] [stdout]    --> src/reactivity.rs:666:13
[INFO] [stdout]     |
[INFO] [stdout] 666 |             best_threshold = threshold;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]     --> src/main.rs:4444:9
[INFO] [stdout]      |
[INFO] [stdout] 4444 |     let header = bam.header().to_owned();
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_score_on_left`
[INFO] [stdout]    --> src/reactivity.rs:857:9
[INFO] [stdout]     |
[INFO] [stdout] 857 |     let best_score_on_left = best_initial_k < 1.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_score_on_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_coarse_auc` is assigned to, but never used
[INFO] [stdout]    --> src/reactivity.rs:893:9
[INFO] [stdout]     |
[INFO] [stdout] 893 |     let mut best_coarse_auc = best_initial_auc;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_coarse_auc` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]     --> src/reactivity.rs:1002:13
[INFO] [stdout]      |
[INFO] [stdout] 1002 |             best_coarse_score = score_left;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:998:13
[INFO] [stdout]     |
[INFO] [stdout] 998 |             best_coarse_score = score_right;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:987:13
[INFO] [stdout]     |
[INFO] [stdout] 987 |             best_coarse_score = score;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_score` is never read
[INFO] [stdout]    --> src/reactivity.rs:979:13
[INFO] [stdout]     |
[INFO] [stdout] 979 |             best_coarse_score = score;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]     --> src/reactivity.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             best_coarse_auc = auc_left;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |             best_coarse_auc = auc_right;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:988:13
[INFO] [stdout]     |
[INFO] [stdout] 988 |             best_coarse_auc = auc;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_coarse_auc` is never read
[INFO] [stdout]    --> src/reactivity.rs:980:13
[INFO] [stdout]     |
[INFO] [stdout] 980 |             best_coarse_auc = auc;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PositionData` is more private than the item `ReplicateData::replicates`
[INFO] [stdout]    --> src/compare.rs:54:5
[INFO] [stdout]     |
[INFO] [stdout]  54 |     pub replicates: Vec<PositionData>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ReplicateData::replicates` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PositionData` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/compare.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct PositionData {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tid` is never read
[INFO] [stdout]    --> src/main.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 397 | struct Item {
[INFO] [stdout]     |        ---- field in this struct
[INFO] [stdout] 398 |     tid: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Item` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_signal` is never used
[INFO] [stdout]     --> src/main.rs:1608:4
[INFO] [stdout]      |
[INFO] [stdout] 1608 | fn normalize_signal(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompareMode` is never used
[INFO] [stdout]   --> src/compare.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum CompareMode {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `test_type` is never read
[INFO] [stdout]   --> src/compare.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct StatisticalResult {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 43 |     pub test_type: StatisticalTest,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatisticalResult` 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: struct `ReplicateData` is never constructed
[INFO] [stdout]   --> src/compare.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ReplicateData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComparisonResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct ComparisonResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiffScanResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct DiffScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaSHAPEResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct DeltaSHAPEResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalizationParams` is never constructed
[INFO] [stdout]    --> src/compare.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct NormalizationParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ins`, `del`, `a`, `c`, `g`, and `t` are never read
[INFO] [stdout]    --> src/compare.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct PositionData {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     ins: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 119 |     del: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 120 |     a: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 121 |     c: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 122 |     g: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 123 |     t: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionData` 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 `normalize_reactivity_data` is never used
[INFO] [stdout]    --> src/compare.rs:437:4
[INFO] [stdout]     |
[INFO] [stdout] 437 | fn normalize_reactivity_data(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantile_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:451:4
[INFO] [stdout]     |
[INFO] [stdout] 451 | fn quantile_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robust_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn robust_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:535:4
[INFO] [stdout]     |
[INFO] [stdout] 535 | fn median_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_mad` is never used
[INFO] [stdout]    --> src/compare.rs:575:4
[INFO] [stdout]     |
[INFO] [stdout] 575 | fn calculate_mad(values: &[f64], median: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_samples` is never used
[INFO] [stdout]     --> src/compare.rs:1764:8
[INFO] [stdout]      |
[INFO] [stdout] 1764 | pub fn compare_samples(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_reference_sequence` is never used
[INFO] [stdout]    --> src/convert.rs:372:4
[INFO] [stdout]     |
[INFO] [stdout] 372 | fn load_reference_sequence(fasta_path: &str, chr_name: Option<&str>) -> Result<Vec<char>, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SHARED_FRACTION` is never used
[INFO] [stdout]   --> src/duet.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const MIN_SHARED_FRACTION: f64 = 0.15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_REACTIVITY_CORRELATION` is never used
[INFO] [stdout]   --> src/duet.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_REACTIVITY_CORRELATION: f64 = 0.60;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_single_track` is never used
[INFO] [stdout]     --> src/duet.rs:3555:4
[INFO] [stdout]      |
[INFO] [stdout] 3555 | fn plot_single_track(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReactivityData` is never constructed
[INFO] [stdout]   --> src/norm.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | struct ReactivityData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dynamic_window_norm` is never used
[INFO] [stdout]    --> src/norm.rs:475:4
[INFO] [stdout]     |
[INFO] [stdout] 475 | fn dynamic_window_norm(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_adaptive_window` is never used
[INFO] [stdout]    --> src/norm.rs:581:4
[INFO] [stdout]     |
[INFO] [stdout] 581 | fn find_adaptive_window(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_dynamic_window` is never used
[INFO] [stdout]    --> src/norm.rs:620:4
[INFO] [stdout]     |
[INFO] [stdout] 620 | fn find_dynamic_window(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_window` is never used
[INFO] [stdout]    --> src/norm.rs:630:4
[INFO] [stdout]     |
[INFO] [stdout] 630 | fn normalize_window(values: &[f64], norm_method: &StopNormMethod) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SvgElement` is never constructed
[INFO] [stdout]   --> src/plot.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct SvgElement {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_high` is never read
[INFO] [stdout]    --> src/plot.rs:663:5
[INFO] [stdout]     |
[INFO] [stdout] 657 | struct GenePlotTask {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 663 |     is_high: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GenePlotTask` 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: fields `gene_id` and `cov_x_depth` are never read
[INFO] [stdout]    --> src/plot.rs:668:5
[INFO] [stdout]     |
[INFO] [stdout] 667 | struct GeneStat {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 668 |     gene_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     cov_x_depth: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GeneStat` 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 `find_best_shift_for_base` is never used
[INFO] [stdout]     --> src/plot.rs:2155:8
[INFO] [stdout]      |
[INFO] [stdout] 2155 | pub fn find_best_shift_for_base(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBar` is never constructed
[INFO] [stdout]  --> src/progress.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ProgressBar {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_width`, `update`, `display`, `finish`, and `with_description` are never used
[INFO] [stdout]   --> src/progress.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProgressBar {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 12 |     /// Create a new progress bar
[INFO] [stdout] 13 |     pub fn new(total: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn with_width(mut self, width: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn update(&mut self, current: usize) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn display(&self) -> io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn finish(&mut self) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn with_description(mut self, description: &str) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DescriptiveProgress` is never constructed
[INFO] [stdout]    --> src/progress.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct DescriptiveProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `finish` are never used
[INFO] [stdout]    --> src/progress.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl DescriptiveProgress {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 170 |     /// Create a new descriptive progress displayer
[INFO] [stdout] 171 |     pub fn new(total: usize, description: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn update(&mut self, current: usize) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn finish(&mut self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vs_low_p50`, `vs_overall_p50`, and `correction_p50` are never read
[INFO] [stdout]    --> src/reactivity.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct DistributionTargets {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 270 |     vs_low_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     vs_overall_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     correction_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_auc_for_k` is never used
[INFO] [stdout]    --> src/reactivity.rs:713:4
[INFO] [stdout]     |
[INFO] [stdout] 713 | fn calculate_auc_for_k(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1442:5
[INFO] [stdout]      |
[INFO] [stdout] 1442 |     bam.set_threads(1);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1442 |     let _ = bam.set_threads(1);
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:3493:13
[INFO] [stdout]      |
[INFO] [stdout] 3493 |             bam.set_threads(1);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3493 |             let _ = bam.set_threads(1);
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:4442:5
[INFO] [stdout]      |
[INFO] [stdout] 4442 |     bam.set_threads(1); // Avoid internal multi-threading conflicts
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4442 |     let _ = bam.set_threads(1); // Avoid internal multi-threading conflicts
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:4475:9
[INFO] [stdout]      |
[INFO] [stdout] 4475 |         window_bam.set_threads(1);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4475 |         let _ = window_bam.set_threads(1);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/main.rs:4549:32
[INFO] [stdout]      |
[INFO] [stdout] 4549 | ...                   if qpos >= 0 && (qpos as usize) < quals.len() {
[INFO] [stdout]      |                          ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_scan_Q` should have a snake case name
[INFO] [stdout]    --> src/compare.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn compute_scan_Q(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compute_scan_q`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]    --> src/main.rs:417:9
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let df = 2.0;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/main.rs:510:26
[INFO] [stdout]     |
[INFO] [stdout] 510 |         let mut p: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 519 |             p = (x - v) * q - (x - w) * r;
[INFO] [stdout]     |             ----------------------------- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `q` is never read
[INFO] [stdout]    --> src/main.rs:511:26
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut q: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 518 |             q = (x - v) * (fx - fw);
[INFO] [stdout]     |             ----------------------- `q` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `r` is never read
[INFO] [stdout]    --> src/main.rs:512:26
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut r: f64 = 0.0;
[INFO] [stdout]     |                          ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 517 |             r = (x - w) * (fx - fv);
[INFO] [stdout]     |             ----------------------- `r` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_params`
[INFO] [stdout]    --> src/main.rs:762:9
[INFO] [stdout]     |
[INFO] [stdout] 762 |     let initial_params = vec![
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutation_rate`
[INFO] [stdout]     --> src/main.rs:1202:5
[INFO] [stdout]      |
[INFO] [stdout] 1202 |     mutation_rate: f64,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_decrease`
[INFO] [stdout]     --> src/main.rs:1206:5
[INFO] [stdout]      |
[INFO] [stdout] 1206 |     weight_decrease: f64,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_decrease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1466:9
[INFO] [stdout]      |
[INFO] [stdout] 1466 |     let mut expected_refs: HashSet<String> = region_intervals.keys().cloned().collect();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]     --> src/main.rs:1436:5
[INFO] [stdout]      |
[INFO] [stdout] 1436 |     num_threads: usize,
[INFO] [stdout]      |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_recommendation`
[INFO] [stdout]     --> src/main.rs:2950:9
[INFO] [stdout]      |
[INFO] [stdout] 2950 |     let base_recommendation = (bam_file_count * 2).min(64);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_recommendation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed`
[INFO] [stdout]     --> src/main.rs:3095:9
[INFO] [stdout]      |
[INFO] [stdout] 3095 |     let completed = Arc::new(AtomicUsize::new(0));
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_seq`
[INFO] [stdout]     --> src/main.rs:3359:24
[INFO] [stdout]      |
[INFO] [stdout] 3359 |         for (ref_name, ref_seq) in &reference_sequences {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_name`
[INFO] [stdout]     --> src/main.rs:3727:10
[INFO] [stdout]      |
[INFO] [stdout] 3727 |     for (ref_name, intervals) in &distribution {
[INFO] [stdout]      |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_base`
[INFO] [stdout]     --> src/main.rs:3996:21
[INFO] [stdout]      |
[INFO] [stdout] 3996 |                 let ref_base = if pos < ref_seq.len() as u32 {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]     --> src/main.rs:4444:9
[INFO] [stdout]      |
[INFO] [stdout] 4444 |     let header = bam.header().to_owned();
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PositionData` is more private than the item `ReplicateData::replicates`
[INFO] [stdout]    --> src/compare.rs:54:5
[INFO] [stdout]     |
[INFO] [stdout]  54 |     pub replicates: Vec<PositionData>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ReplicateData::replicates` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PositionData` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/compare.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct PositionData {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tid` is never read
[INFO] [stdout]    --> src/main.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 397 | struct Item {
[INFO] [stdout]     |        ---- field in this struct
[INFO] [stdout] 398 |     tid: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Item` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_signal` is never used
[INFO] [stdout]     --> src/main.rs:1608:4
[INFO] [stdout]      |
[INFO] [stdout] 1608 | fn normalize_signal(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompareMode` is never used
[INFO] [stdout]   --> src/compare.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum CompareMode {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `test_type` is never read
[INFO] [stdout]   --> src/compare.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct StatisticalResult {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 43 |     pub test_type: StatisticalTest,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatisticalResult` 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: struct `ReplicateData` is never constructed
[INFO] [stdout]   --> src/compare.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ReplicateData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComparisonResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct ComparisonResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiffScanResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct DiffScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaSHAPEResult` is never constructed
[INFO] [stdout]   --> src/compare.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct DeltaSHAPEResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalizationParams` is never constructed
[INFO] [stdout]    --> src/compare.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct NormalizationParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ins`, `del`, `a`, `c`, `g`, and `t` are never read
[INFO] [stdout]    --> src/compare.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct PositionData {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     ins: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 119 |     del: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 120 |     a: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 121 |     c: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 122 |     g: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout] 123 |     t: u32,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionData` 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 `normalize_reactivity_data` is never used
[INFO] [stdout]    --> src/compare.rs:437:4
[INFO] [stdout]     |
[INFO] [stdout] 437 | fn normalize_reactivity_data(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantile_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:451:4
[INFO] [stdout]     |
[INFO] [stdout] 451 | fn quantile_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robust_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn robust_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median_normalization` is never used
[INFO] [stdout]    --> src/compare.rs:535:4
[INFO] [stdout]     |
[INFO] [stdout] 535 | fn median_normalization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_mad` is never used
[INFO] [stdout]    --> src/compare.rs:575:4
[INFO] [stdout]     |
[INFO] [stdout] 575 | fn calculate_mad(values: &[f64], median: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_samples` is never used
[INFO] [stdout]     --> src/compare.rs:1764:8
[INFO] [stdout]      |
[INFO] [stdout] 1764 | pub fn compare_samples(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_reference_sequence` is never used
[INFO] [stdout]    --> src/convert.rs:372:4
[INFO] [stdout]     |
[INFO] [stdout] 372 | fn load_reference_sequence(fasta_path: &str, chr_name: Option<&str>) -> Result<Vec<char>, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SHARED_FRACTION` is never used
[INFO] [stdout]   --> src/duet.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const MIN_SHARED_FRACTION: f64 = 0.15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_REACTIVITY_CORRELATION` is never used
[INFO] [stdout]   --> src/duet.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_REACTIVITY_CORRELATION: f64 = 0.60;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_single_track` is never used
[INFO] [stdout]     --> src/duet.rs:3555:4
[INFO] [stdout]      |
[INFO] [stdout] 3555 | fn plot_single_track(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReactivityData` is never constructed
[INFO] [stdout]   --> src/norm.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | struct ReactivityData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dynamic_window_norm` is never used
[INFO] [stdout]    --> src/norm.rs:475:4
[INFO] [stdout]     |
[INFO] [stdout] 475 | fn dynamic_window_norm(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_adaptive_window` is never used
[INFO] [stdout]    --> src/norm.rs:581:4
[INFO] [stdout]     |
[INFO] [stdout] 581 | fn find_adaptive_window(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_dynamic_window` is never used
[INFO] [stdout]    --> src/norm.rs:620:4
[INFO] [stdout]     |
[INFO] [stdout] 620 | fn find_dynamic_window(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_window` is never used
[INFO] [stdout]    --> src/norm.rs:630:4
[INFO] [stdout]     |
[INFO] [stdout] 630 | fn normalize_window(values: &[f64], norm_method: &StopNormMethod) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SvgElement` is never constructed
[INFO] [stdout]   --> src/plot.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct SvgElement {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_high` is never read
[INFO] [stdout]    --> src/plot.rs:663:5
[INFO] [stdout]     |
[INFO] [stdout] 657 | struct GenePlotTask {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 663 |     is_high: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GenePlotTask` 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: fields `gene_id` and `cov_x_depth` are never read
[INFO] [stdout]    --> src/plot.rs:668:5
[INFO] [stdout]     |
[INFO] [stdout] 667 | struct GeneStat {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 668 |     gene_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     cov_x_depth: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GeneStat` 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 `find_best_shift_for_base` is never used
[INFO] [stdout]     --> src/plot.rs:2155:8
[INFO] [stdout]      |
[INFO] [stdout] 2155 | pub fn find_best_shift_for_base(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBar` is never constructed
[INFO] [stdout]  --> src/progress.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ProgressBar {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_width`, `update`, `display`, `finish`, and `with_description` are never used
[INFO] [stdout]   --> src/progress.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProgressBar {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 12 |     /// Create a new progress bar
[INFO] [stdout] 13 |     pub fn new(total: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn with_width(mut self, width: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn update(&mut self, current: usize) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn display(&self) -> io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn finish(&mut self) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn with_description(mut self, description: &str) -> io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DescriptiveProgress` is never constructed
[INFO] [stdout]    --> src/progress.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct DescriptiveProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `finish` are never used
[INFO] [stdout]    --> src/progress.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl DescriptiveProgress {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 170 |     /// Create a new descriptive progress displayer
[INFO] [stdout] 171 |     pub fn new(total: usize, description: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn update(&mut self, current: usize) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn finish(&mut self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vs_low_p50`, `vs_overall_p50`, and `correction_p50` are never read
[INFO] [stdout]    --> src/reactivity.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct DistributionTargets {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 270 |     vs_low_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     vs_overall_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     correction_p50: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_auc_for_k` is never used
[INFO] [stdout]    --> src/reactivity.rs:713:4
[INFO] [stdout]     |
[INFO] [stdout] 713 | fn calculate_auc_for_k(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1442:5
[INFO] [stdout]      |
[INFO] [stdout] 1442 |     bam.set_threads(1);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1442 |     let _ = bam.set_threads(1);
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:3493:13
[INFO] [stdout]      |
[INFO] [stdout] 3493 |             bam.set_threads(1);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3493 |             let _ = bam.set_threads(1);
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:4442:5
[INFO] [stdout]      |
[INFO] [stdout] 4442 |     bam.set_threads(1); // Avoid internal multi-threading conflicts
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4442 |     let _ = bam.set_threads(1); // Avoid internal multi-threading conflicts
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:4475:9
[INFO] [stdout]      |
[INFO] [stdout] 4475 |         window_bam.set_threads(1);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4475 |         let _ = window_bam.set_threads(1);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/main.rs:4549:32
[INFO] [stdout]      |
[INFO] [stdout] 4549 | ...                   if qpos >= 0 && (qpos as usize) < quals.len() {
[INFO] [stdout]      |                          ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_scan_Q` should have a snake case name
[INFO] [stdout]    --> src/compare.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn compute_scan_Q(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compute_scan_q`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 09s
[INFO] running `Command { std: "docker" "inspect" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a", kill_on_drop: false }`
[INFO] [stdout] 6665793c939ca679798aeab070c2c51672083fb2278b6bd2fea8e6a5ff92a07a
