fiberseq / fibertools-rs

Tools for fiberseq data written in rust.
https://fiberseq.github.io/fibertools/fibertools.html
42 stars 5 forks source link

Panic during center #35

Closed ngamarra closed 7 months ago

ngamarra commented 9 months ago

ft center -t 30 -r -m 225 -d 5000 -w barcode01.filtered.sorted.bam ../peak.bed > barcode01.centered.values.tsv

thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `26`,
 right: `40`', src/basemods/mod.rs:166:17
stack backtrace:
   0: rust_begin_unwind
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/panicking.rs:67:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/panicking.rs:229:5
   4: fibertools_rs::basemods::BaseMods::my_mm_ml_parser
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/basemods/mod.rs:166:17
   5: fibertools_rs::basemods::BaseMods::new
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/basemods/mod.rs:109:9
   6: fibertools_rs::fiber::FiberseqData::new
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/fiber.rs:139:25
   7: fibertools_rs::fiber::FiberseqData::from_records::{{closure}}
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/fiber.rs:186:37
   8: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &F>::call_mut
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/ops/function.rs:272:13
   9: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/ops/function.rs:305:13
  10: core::option::Option<T>::map
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/option.rs:1075:29
  11: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/iter/adapters/map.rs:103:26
  12: rayon::iter::plumbing::Folder::consume_iter
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:178:21
  13: <rayon::iter::map::MapFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/map.rs:248:21
  14: <rayon::iter::map::MapFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/map.rs:248:21
  15: rayon::iter::plumbing::Producer::fold_with
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:110:9
  16: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:438:13
  17: rayon::iter::plumbing::bridge_producer_consumer
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:397:12
  18: <rayon::iter::plumbing::bridge::Callback<C> as rayon::iter::plumbing::ProducerCallback<I>>::callback
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:373:13
  19: <rayon::vec::Drain<T> as rayon::iter::IndexedParallelIterator>::with_producer
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/vec.rs:147:13
  20: <rayon::vec::IntoIter<T> as rayon::iter::IndexedParallelIterator>::with_producer
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/vec.rs:83:9
  21: rayon::iter::plumbing::bridge
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/plumbing/mod.rs:357:12
  22: <rayon::vec::IntoIter<T> as rayon::iter::ParallelIterator>::drive_unindexed
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/vec.rs:58:9
  23: <rayon::iter::map::Map<I,F> as rayon::iter::ParallelIterator>::drive_unindexed
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/map.rs:49:9
  24: <rayon::iter::map::Map<I,F> as rayon::iter::ParallelIterator>::drive_unindexed
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/map.rs:49:9
  25: rayon::iter::collect::special_extend::{{closure}}
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/collect/mod.rs:39:46
  26: rayon::iter::collect::collect_with_consumer
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/collect/mod.rs:84:18
  27: rayon::iter::collect::special_extend
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/collect/mod.rs:39:5
  28: rayon::iter::extend::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/extend.rs:582:17
  29: rayon::iter::from_par_iter::collect_extended
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/from_par_iter.rs:19:5
  30: rayon::iter::from_par_iter::<impl rayon::iter::FromParallelIterator<T> for alloc::vec::Vec<T>>::from_par_iter
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/from_par_iter.rs:32:9
  31: rayon::iter::ParallelIterator::collect
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.8.0/src/iter/mod.rs:2056:9
  32: fibertools_rs::fiber::FiberseqData::from_records
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/fiber.rs:187:14
  33: fibertools_rs::center::center
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/center.rs:292:22
  34: fibertools_rs::center::center_fiberdata
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/center.rs:371:9
  35: ft::main
             at /opt/conda/conda-bld/fibertools-rs_1695851432037/work/src/main.rs:114:13
  36: core::ops::function::FnOnce::call_once
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/ops/function.rs:250:5

Not sure what is most appropriate in terms of sharing bams that produce the error but the bam is a dorado v0.5 basecalled nanopore data that has been demultiplexed, filtered for primary alignments, sorted, and indexed

mrvollger commented 9 months ago

Are you sure there are no reads with hard clipping? See: https://github.com/fiberseq/fibertools-rs/issues/31

If you are sure can you upload a test bam with one read that recreates the issue?

Thanks, Mitchell