Skip to content

Releases: metagenopolis/CroCoDeEL

CroCoDeEL v1.3.1

Choose a tag to compare

@fplazaonate fplazaonate released this 28 Aug 14:32

Performance

  • Contamination search is about 4.5 times faster: on a 237-sample dataset it now takes 12.5 seconds instead of 58 seconds using 8 CPUs, with identical results

Bug fixes

  • easy_wf again exposes only the three mandatory files (-s, -c, -r); use search_conta and plot_conta to change any other setting
  • Fixed scatterplots being wrong when a second abundance table is provided: species absent from one table were drawn at 100% abundance instead of being treated as absent
  • Made contamination event ordering deterministic, so identical inputs always produce identical output files
  • Contamination rates of zero are no longer reported or accepted
  • No PDF report is written when no contamination is found, instead of an unreadable empty file
  • --nproc now defaults to the CPUs actually available to the process, rather than every core on the machine, and an existing OMP_NUM_THREADS setting is preserved

Improved error handling

  • Malformed species abundance tables (empty or with an inconsistent number of columns) now report a clear message instead of a traceback
  • Malformed contamination event files are rejected with the offending line number, including rows with missing or extra fields
  • Contamination event files that name samples absent from the abundance table are rejected before the report is generated
  • Invalid Random Forest model files are rejected before the search starts
  • Species abundance tables containing missing values are rejected
  • Error messages listing many sample names are truncated instead of printing thousands of names on one line

Other

  • Replaced scikit-learn's RANSAC with a specialised implementation in a dedicated module, giving identical results
  • Added mypy and pylint to the continuous integration workflow
  • Added Python 3.13 to the test matrix and restricted supported versions to 3.12–3.13
  • Added unit tests, bringing coverage to 98%
  • Refactored the command-line interface, packaged-resource handling and execution description

CroCoDeEL v1.3.0

Choose a tag to compare

@fplazaonate fplazaonate released this 19 Aug 12:39

Bug fixes

  • Replaced abrupt sys.exit calls with proper exception handling for input-data errors
  • Improved validation of contamination event files to provide clearer error messages for malformed input files
  • Improved CLI error handling and exit codes

Other

  • Refactored plot_conta, search_conta, and train_model modules
  • Added extensive unit tests for the main modules and CLI
  • Added input validation and type checking throughout the codebase
  • Added documentation and missing docstrings
  • Renamed the test_install command to self_test

CroCoDeEL v1.2.2

Choose a tag to compare

@fplazaonate fplazaonate released this 12 May 14:55

Update README and improve CroCoDeEL log messages.

CroCoDeEL v1.2.1

Choose a tag to compare

@fplazaonate fplazaonate released this 19 Mar 14:22

Bug fixes

  • Switched output format from raw numbers to scientific notation to improve handling of low-rate contamination events.
  • Updated rounding logic: replaced fixed decimal rounding with dynamic, magnitude-based rounding.

CroCoDeEL v1.2.0

Choose a tag to compare

@fplazaonate fplazaonate released this 20 Feb 21:19

Bug fixes

  • Fixed a rare bug where RANSAC fails to find a valid consensus set
  • Fixed incorrect score function in the linear model

New features

  • Added a function to refine contamination line detection using Tukey's technique

Other

  • Updated the Random Forest model with more relevant features

CroCoDeEL v1.1.1

Choose a tag to compare

@fplazaonate fplazaonate released this 18 Feb 14:16

Improvements

  • Refactored and simplified the linear regression implementation
  • Vectorized the search for candidate species forming a contamination line
  • Limited the maximum number of trials in the RANSAC procedure

Performance

  • Achieved ~65% reduction in total runtime (~3× speedup) 🚀

CroCoDeEL v1.1.0

Choose a tag to compare

@fplazaonate fplazaonate released this 09 Feb 14:52

Improvements

  • Refactored the codebase for improved structure and maintainability
  • Optimized classification performance by reducing the Random Forest size from 1000 to 100 trees

Performance

  • Achieved ~35% reduction in total runtime (~1.5× speedup) 🚀

CroCoDeEL v1.0.8

Choose a tag to compare

@fplazaonate fplazaonate released this 22 Jul 13:40

Replace deprecated argparse.FileType to support Python >= 3.14

CroCoDeEL v1.0.7

Choose a tag to compare

@fplazaonate fplazaonate released this 13 Jun 09:52

Add CLI parameters to customize contamination reporting cutoffs
Add a new subcommand (train_model) to train a custom Random Forest classifier
Slight performance improvements
Improve documentation and logging messages

CroCoDeEL v1.0.6

Choose a tag to compare

@fplazaonate fplazaonate released this 20 Jan 20:56

Add a feature to filter low-abundance species and enhance CroCoDeEL's sensitivity with taxonomic profilers other than Meteor.
Fix a bug when merging two abundance tables containing a different number of species. #2
Improve logging messages and update the documentation.