Changelog#

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.10.0] - 2023-05-26#

Changed#

  • m: Getter of metadata for file returns now the path with the metadata directory path in it. Before, it returned only the filename.

  • m: Standard getter directory for metadata classes

[1.9.0] - 2023-05-26#

Added#

  • m: Getter for exceptions

  • m: Can import python code from khloraascaf.inputs

Changed#

  • p: Test tutorials by simply importing the python example code

[1.8.0] - 2023-05-09#

Added#

  • m: MetadataAllSolutions.__iter__, MetadataAllSolutions.__len__, MetadataAllDebugs.__iter__ and MetadataAllDebugs.__len__ to a more pythonic way

Changed#

  • p: DR-SC instance test know has its starter that is not at the beginning of the first single-copy region

Removed#

  • m: MetadataAllSolutions.solutions and MetadataAllDebugs.debugs methods: use instead for object in container instead

Fixed#

  • p: function to find the initial vertex in the first SC region (yes, it has not been correctly fixed before)

  • p: Path for tests, as the absolute paths depend on the location

[1.7.1] - 2023-05-09#

Fixed#

  • p: function to find the initial vertex in the first SC region

[1.7.0] - 2023-05-08#

Added#

  • 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

Fixed#

  • m: Use immutable tuples instead of mutable lists

[1.6.0] - 2023-05-07#

Added#

  • p: pip installation way

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

Changed#

  • p: update deps for sphinx

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

Removed#

  • m: RegionCodeT, SC_CODE, DR_CODE, IR_CODE

[1.5.1] - 2023-04-18#

Fixed#

  • p: fix GitLab CI/CD

[1.5.0] - 2023-04-18#

Changed#

  • p: Simplify path_to_regions function

Fixed#

  • m: adirf function: some cases were not yielded

[1.4.2] - 2023-04-13#

Changed#

  • p: Refactor region extraction functions

[1.4.1] - 2023-04-12#

Fixed#

  • p: fix type for occurrence_priority function

[1.4.0] - 2023-04-12#

Added#

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

Removed#

  • m: pos attribute for PuLP variable classes

Fixed#

  • m: typo at word “occurrence”

[1.3.0] - 2023-03-30#

Changed#

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

[1.2.4] - 2023-03-22#

Added#

  • p: PuLPVarRepFModelT type for IR and DR models

Changed#

  • p: The big-M upper bound is thinner

[1.2.3] - 2023-03-15#

Fixed#

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

[1.2.2] - 2023-03-15#

Added#

  • p: khloraascaf.inputs.IdLT Link identifier type

Fixed#

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

[1.2.1] - 2023-03-11#

Fixed#

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

[1.2.0] - 2023-03-10#

Added#

  • 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

Changed#

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

Fixed#

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

[1.1.0] - 2023-03-08#

Changed#

  • 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)

Fixed#

  • p: utils_debug.read_vertices_of_regions function

[1.0.0] - 2023-03-07#

Added#

  • 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

Changed#

  • 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 __init__.py 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 __main__.py to cli.py

  • 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

Removed#

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

Fixed#

  • p: Readthedocs paths

[0.0.0] - 2023-02-16#

Added#

  • 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

Fixed#

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

Changed#

  • Reduce the number of alpha variables

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

  • Prioritise scaffolding problems