Skip to content
CASCI-labPublic

About

CANAlization: Control & Redundancy in Boolean Networks

Topics

Resources

Stars

26 stars

Watchers

5 watching

Forks

Latest commit

 

History

349 Commits

Folders and files

Repository files navigation

CANAlization: Control & Redundancy in Boolean Networks

This package implements a series of methods used to study control, canalization and redundancy in Boolean Networks.

Citation:

If you use cana in your research, please cite us and check out our related papers below!

Installation:

Latest stable release

    pip install cana

Manuscript-specific version

    pip install cana=1.0.0

Latest development release on GitHub

    pip install git+https://github.com/CASCI-lab/CANA

Windows

CANA includes compiled C extensions. On Windows, installing CANA requires a C/C++ compiler. If you do not already have one installed, install the Microsoft C++ Build Tools with the Desktop development with C++ workload selected.

See the Cython documentation for additional information about compiling Python extensions on Windows.

Docs:

The full documentation can be found at: casci-lab.github.io/CANA/

Papers with the Theory, Formulations, and Analytical Examples:

Credits:

CANA was originally written by Rion Brattig Correia and Alexander Gates, and has been developed with the help of many others. Thanks to everyone who has improved CANA by contributing code, bug reports (and fixes), documentation, and input on design, and features.

Original Authors

Contributors

Support

Those who have contributed to CANA have received support throughout the years from a variety of sources. We list them below. If you have provided support to CANA and a support acknowledgment does not appear below, please help us remedy the situation, and similarly, please let us know if you'd like something modified or corrected.

Research Groups

CANA was developed with support from the following:

  • CASCI, Indiana University, Bloomington, IN; PI: Luis M. Rocha
  • CAPES Foundation, Ministry of Education of Brazil, Brasília, Brazil; Rion B. Correia.

Changelog

Master

  • BooleanFunction: store and convert among bit_lut, one-/two-symbol schemata, and positional expressions; build BooleanNode from any of them
  • High-k support: dense-LUT / coverage guardrails; sampled redundancy, activities, sensitivity, and bias
  • Expression → primes (Quine–McCluskey, PySAT Primer-B / unate shortcuts)
  • Fixed canalizing map (CM/DCM): LUT roundtrip, canonical builder with simplification, topology-based evaluation, and visualization
  • Schemata order and k_r/k_s values are now identical across processes (prime implicants sorted, sums use math.fsum); last digits of some k_r/k_s means change accordingly
  • Fixed input_symmetry_mean failing on a fresh node
  • Added calculation of distinct and raw symmetry
  • Added visualization routines to drawing (effective graph and conditional effective graph)

v1.0.1

  • Add Python 3.13 support (schematodes 1.0.1, PyO3 0.22)

v1.0.0

v0.1

  • Canalization methods ported to Cython

v0.0.4

  • Pep8 and python3
  • Pinned controllability methods

v0.0.3

  • Bugfixes

v0.0.2

  • Networkx 2.1 compatibility
  • Inclusion of tutorials
  • Derrida curve

v.0.0.1

  • Control (FVS, MDS, CSTG) methods.
  • Canalization methods.
  • Implementation ported to public package.

About

CANAlization: Control & Redundancy in Boolean Networks

Topics

Resources

Stars

26 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages