Git Product home page Git Product logo

rbn-matlab's People

Contributors

darthbeeblebrox avatar

Watchers

 avatar  avatar

Forkers

darthbeeblebrox

rbn-matlab's Issues

Heterogeneous cell grid

Katherine just brought up a really good point. With the current boolCellGrid classes, we can't have more than one boolean network (cell type) yet..... So if we want to introduce a mutant cell (chaotic network), we would have to modify the code, so it can store and call at least two different boolean networks in the classes. The wiring of the cells with say chaotic and non-chaotic networks would have to be carefully done.

I have a feeling this may be a little bit of a messy work given our short time limit. So, here are the two ways we can go about doing this:

  1. We can take the easy route for the project: we don't have to mix different types of boolean networks. We can just do a sensitive analysis of some sort, where given homogeneous grid of boolean networks, we just start changing initial states, (or connectivity) and observe the change in behaviors (and plot them). We would still be dealing with only one specific type of boolean network for all the cells (just altering their properties).

  2. We can take the hard route and fix the code, so you can introduce different cell types on the grid. I can see this being a slightly messy process in our short time we have....., but doable.

What say you?

Intercellular Functions

I may add another parameter in BoolCellGrid.m to specify what kind of intercellular function we want to use. Right now, everything is just an 'OR function,' but I think we can expand on that. I've recently learned that an intercellular function can be an "AND" function or even a "linear threshold" function.

This should be a quick change.

Please remember to always pull newest code

Please remember to always pull (fetch + merge) the newest code.

Last update (12/6/2016)

  • Added cell perturbation as a feature in the package (please read the README.md)
  • Deleted README.txt
  • Made significant changes in the comments

Future update (12/?/2016)

  • Add a feature to compute steady state distributions for each cell.

Add safety checks

User defined initial states, etc should have some quick checks on them

Cell randomizer: be careful to copy

Function to take a grid that's already been initialized and randomize the truth table for a certain number of cells.

Be careful: boolCellGrid is a handle, which DOESN'T COPY BY DEFAULT, which means that if you write something like:

a=boolCellGrid(...........);
b = a;
b = change_stuff(b);

Then you have changed the original grid 'a' as well!

Save seeds (small)

We really should save the seeds of everything we produce for reproducibility.

Distance function

Should take two different "boolCellGrid" classes and compare their final states in the "allStates" property, returning a Hamming distance.

Maybe this could just be a separate function.

Optional: could compare more than just the final states (e.g. if the grid is oscillating) and find some sort of "average distance"

Defaults in MATLAB are a pain

I've tried various things, from nargin==x to exist('x','var'), and they're workable but fragile/long (respectively).

What I do in my own code is use the v2struct() command from the exchange, always pass my functions a struct with the fields that will become variables, and any that I didn't set stay with their default values. I can of course show an example, but let me know if that sounds interesting.

Movie feature

I want to be able to save movies. So I guess I'll work on adding a movie feature...Because I'm selfish..

Categorizer?

We talked about categorizing the different network responses to the mutants through thresholding or some other method... should we implement that?

Ideas:
'linear' category if a linear fit to the Hamming distance is good, i.e. low error
'asymptotic' category if a sqrt function is a good fit? Or something
'jump' category if the derivative of the function has a spike (i.e. max>>mean and low variance overall)

Thoughts on moving public functions to a different class/.m ?

As I'm trying to add more and more support functions to the existing package, I'm beginning to wonder if we should just move all the support functions to a separate .m file?

For example, support functions like Hamming Distance, Plotting, Adding Mutants, Perturbations could all be on a separate file that includes only the support functions. boolCellGrid.m can just have all the main components (and the private access functions) for creating boolean networks on a grid.

Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.