All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

‘M’, ‘m’ and ‘p’ are respectively corresponding to major, minor and patch

[1.7.0] - 2023-05-08#


  • p: new data for test (ir-sc case)

  • p: Jupyter notebook for quick usage and better doc

  • m: AssemblyGraph.from_solution_metadata class method to easily instantiate an assembly graph with a solution metadata object MetadataSolution

  • m: the user can import the user-usefull things directly from khloraascaf

  • m: NoSolution exception for MetadataSolution class

  • m: MetadataSolution and MetadataAllSolutions class methods there_is_a_solution to answer if at least one solution was generated in the given directory


  • m: Use immutable tuples instead of mutable lists

[1.6.0] - 2023-05-07#


  • p: pip installation way

  • m: In run_metadata module: IOConfig, MetadataSolution, MetadataAllSolutions, MetadataDebug and MetadataAllDebugs to work with metadata logics easily


  • p: update deps for sphinx

  • m: use pulp.LpStatuts dictionary to obtain string representation of pulp.LpProblem.status


  • m: RegionCodeT, SC_CODE, DR_CODE, IR_CODE

[1.5.1] - 2023-04-18#


  • p: fix GitLab CI/CD

[1.5.0] - 2023-04-18#


  • p: Simplify path_to_regions function


  • m: adirf function: some cases were not yielded

[1.4.2] - 2023-04-13#


  • p: Refactor region extraction functions

[1.4.1] - 2023-04-12#


  • p: fix type for occurrence_priority function

[1.4.0] - 2023-04-12#


  • m: Separate speed-up constraint and add occurrence_priority one to all the models


  • m: pos attribute for PuLP variable classes


  • m: typo at word “occurrence”

[1.3.0] - 2023-03-30#


  • m: Rename UN by SC, unique by single-copy or singlecopy: some function and method names have changed.

[1.2.4] - 2023-03-22#


  • p: PuLPVarRepFModelT type for IR and DR models


  • p: The big-M upper bound is thinner

[1.2.3] - 2023-03-15#


  • p: Ensure all the region eulerian circuits are yielded by AssemblyGraph.all_region_paths method

[1.2.2] - 2023-03-15#


  • p: khloraascaf.inputs.IdLT Link identifier type


  • p: Ensure the region circuits yielded by AssemblyGraph.all_region_paths method are eulerian

[1.2.1] - 2023-03-11#


  • p AssemblyGraph returned twice the unique region in the region path when there is just one region

[1.2.0] - 2023-03-10#


  • m: From and to files function linked to the assembly_graph.AssemblyGraph class:

    • write_region_paths, read_region_paths, fmt_region_paths_filename

    • write_oriented_contig_paths, read_oriented_contig_paths, fmt_oriented_contig_paths_filename


  • p: Reuse of AssemblyGraph.region_path_to_oriented_contigs method in AssemblyGraph.all_oriented_contig_paths


  • m: outputs.generate_output_directory use a correct format yyyy-mm-dd instead of yyyy-dd-mm

[1.1.0] - 2023-03-08#


  • p: Update PyPI classifier

  • m: outputs.read_contigs_of_regions stop returning useless region index (the user can use for in enumerate)

  • m: utils_debug.read_vertices_of_regions stop returning useless region index (the user can use for in enumerate)


  • p: utils_debug.read_vertices_of_regions function

[1.0.0] - 2023-03-07#


  • p: Package introduction

  • m: Debug files for repeated fragments

  • m: Method for repeated fragments solution for repeated fragments variable classes

  • m: Function to generated unique output directory path

  • m: ILP codes are in khloraascaf.lib (shortcut khloraascaf)

  • m: Use ILP code sequence for file name formatting

  • m: ScaffoldingResult is now just a viewer: new getter and new attributes

  • m: YAML output for I/O configs, solutions and debug metadata

  • m: Debug files with repeated fragments solution (canonicals)

  • m: Method region_path_to_oriented_contigs for AssemblyGraph class

  • M: Fix result for repeated region scaffolding ILP

  • M: ILP combination for repeated scaffolding


  • m: Required arguments in CLI are now positional arguments

  • m: Fix English typos:

    • contigs_attr[ibute]s -> contig_attr[ibute]s

    • contigs_links -> contig_links

    • khloraascaf.multiplied_doubled_contigs_graph -> khloraascaf.multiplied_doubled_contig_graph

  • m: Rename <REG>_CODE_SUFFIX to <REG>_CODE to use it not only for filename but as string codes

  • m: Use small cases for solver name

  • m: Constants for solver log filenames: general log extension and use solver name instead of specific solver constant name for logs

  • p: Use files only for module path shortcuts

  • m: Fix typo on direct repeat

  • m: Output directory default is not current directory but unique generated one from the current place

  • m: Use fix_result key for optional parameter instead of result

  • m: Move command line constants and function from to

  • m: The option output_dir is for the directory that will contain the uniquely generated directory

  • m: By default the user output directory option is the current working directory

  • m: Uniformise ILP codes UNIQUE_CODE becomes UN_CODE

  • m: solve_pulp_problem function now takes log_path as an optional argument

  • M: The scaffolding functions have changed a lot

  • M: The exceptions have changed a lot


  • m: scaffold_<region_type> functions (use instead scaffolding_region)


  • p: Readthedocs paths

[0.0.0] - 2023-02-16#


  • Scaffold unique and direct repeats

  • Numerous public functions that can be reused for scientific tests

  • Option to choose between the solvers CBC (by default) or GUROBI

  • Assembly graph class and functions

  • Debug option for debug files output


  • Manage pairs of inverted fragments when they have the same identifiers


  • Reduce the number of alpha variables

  • Use canonical edges instead of pairs of inverted fragments in PInvF set

  • Prioritise scaffolding problems