Comments (3)
The real problem is that to properly define a cycle you have to have the list of edges belonging to that cycle, which is not how NetworkX defines cycles. They use a list of nodes to define a cycle which is inherently ambiguous. For a given set of nodes, there can be many ways to draw edges between them. Now, it is only ambiguous if the order is not specified, at least for all of the cases I have observed.
from kda.
Small fix has been added to kda.generate_flux_diagrams(). It now checks if input cycle contains all nodes in the input diagram and returns "None" if so. Still allows for the operation of kda.calc_cycle_flux() without a glitch, but the issue of valid cycles that contain all nodes still needs to be addressed. Maybe write a new function just to find all possible cycles that contain all nodes in a diagram, such that users who are looking at these cycles can easily obtain a list of all of them since kda.find_unique_cycles() will only give them 1.
from kda.
A slightly better band-aid has been added, where it takes in an input diagram G and finds all the possible node lists (cycles) for that diagram. For simple diagrams where the number of unique edges is equal to the number of nodes, there should only be 1. But for more complicated diagrams, there can be many different ways to put N edges in M possible locations (N is number of nodes, M is number of edges). For the time being, if one wants to calculate the cycle flux of a cycle that contains all possible nodes, they can use the normal process, but they should keep in mind that the order of the nodes matters in that context. This is now added in a print statement if this case arises.
from kda.
Related Issues (20)
- MAINT: Change plotting function `label`/`path` behavior
- MAINT: Move single cycle/diagram plotting code into new, public plotting function
- CI: Update `codecov` configuration HOT 1
- DOC: Purge "directional partial" from function docstrings
- ENH: Change graphs to store rates as edge weights instead of attributes HOT 1
- ENH: Add `KineticModel` method for calculating net cycle fluxes HOT 3
- MAINT: create `KineticDiagram` object and move relevant functions into class body HOT 2
- CI: Add Python 3.10 to CI
- DOC: Add algorithm references to function docstrings HOT 1
- TST: Add test for transition/cycle/operational flux relations HOT 3
- ENH: Improve KDA API HOT 1
- ENH: Add thermodynamic consistency checker
- make a release HOT 10
- CI, BUG: Tests Failing on Python 3.9 HOT 1
- Replace deprecated `np.product()` function calls HOT 1
- TST: Add test which verifies number of spanning trees using Kirchhoff's Matrix-Tree Theorem HOT 3
- MAINT, TST: hypothesis FailedHealthCheck error due to multiple executors
- CI: Update CI Python versions
- BUG, MAINT: Fix `arrows=True` parameter for `nx.draw_networkx_edges` in `plotting.draw_diagrams()` HOT 1
- MAINT: Pin `mpmath` to version 1.3.0 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kda.