GithubHelp home page GithubHelp logo

mcellteam / cellblender Goto Github PK

View Code? Open in Web Editor NEW
60.0 22.0 10.0 30.47 MB

Create, Simulate, Visualize, and Analyze Realistic 3D Cell Models

Home Page: http://mcell.org/tutorials/index.html

License: GNU General Public License v2.0

C 4.30% Java 2.99% Python 88.08% Makefile 0.43% Lex 0.17% Yacc 0.68% C++ 2.92% Shell 0.07% SWIG 0.37%
mcell blender molecule

cellblender's People

Contributors

adamhusar avatar asinansaglam avatar cnlbob avatar dipakbarua avatar haskelladdict avatar jczech avatar jjtapia avatar kch34 avatar marordyan avatar tebuck avatar tmbartol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cellblender's Issues

Make most paths relative to .blend file.

CellBlender uses a variety of paths for things like visualization data and 
reaction output (and possibly more).

The purpose of this task will be to make all such paths relative to the 
location of the .blend file. So if a .blend file is moved from one place to 
another, then all of the paths used by CellBlender should move with the .blend 
file to the new location.

Note that there may be some problems with this if the .blend file stores any 
external "state" regarding the status of external files. If the .blend file is 
moved, then the stored state may (likely) be inconsistent with the external 
files at that new location.

Note that this task may also have implications in the flexibility of sharing 
files in common locations.

For all of these reasons, the initial changes will try to leave the old code 
inside comments in case this new behavior is to be removed or made as an option.

Original issue reported on code.google.com by [email protected] on 23 Apr 2013 at 11:01

Store properties by reference instead of name

In the current implementation, many properties are stored by name instead of 
reference/pointer, which can lead to problems when updating a CellBlender 
model. For instance, a molecule has a name which is simply a string property. 
That same molecule name might appear in other places like reactions and release 
sites. If the original molecule name is updated, that change won't be known or 
propagated to the reactions and release sites. This illustrates a fundamental 
problem in how properties are stored, and the fix will almost certainly break 
previous CellBlender models.

Original issue reported on code.google.com by [email protected] on 7 Feb 2013 at 9:02

Update README

The README has not been updated in some time and is out-of-date in a number of 
places. This should be fixed for the upcoming 1.0 release. The introduction 
should be updated. The "Installing" and "Activating" sections can pretty much 
stay the same (aside from the filename). The "Using CellBlender" section can 
probably be largely eliminated and instead simply point to the tutorials.

Original issue reported on code.google.com by [email protected] on 10 Mar 2014 at 12:37

Load Factory Settings Crash

Reproduce the problem with these steps:

  1. Start Blender (with CellBlender addon installed and enabled)
  2. File / Load Factory Settings
  3. File / Load Factory Settings

After the first Load of Factory Settings, the console shows:
===========================================================
    addon_utils.reset_all unloading cellblender
CellBlender unregistered
Traceback (most recent call last):
  File "/home/bobkuczewski/.config/blender/2.66/scripts/addons/cellblender/cellblender_operators.py", line 1311, in clear_run_list
    processes_list = context.scene.mcell.run_simulation.processes_list
AttributeError: 'tuple' object has no attribute 'processes_list'
Traceback (most recent call last):
  File "/home/bobkuczewski/.config/blender/2.66/scripts/addons/cellblender/cellblender_operators.py", line 2246, in model_objects_update
    if ((len(model_obj_names) == 0) & (len(mobjs.object_list) > 0)):
AttributeError: 'tuple' object has no attribute 'object_list'
===========================================================

After the second unload, the console shows:
===========================================================
Writing: /tmp/blender.crash.txt
===========================================================

Here are the contents of /tmp/blender.crash.txt:
===========================================================
# Blender 2.66 (sub 1), Revision: 55057

# backtrace
blender2661() [0xea6c1c]
blender2661() [0xea6e5a]
/lib/x86_64-linux-gnu/libc.so.6(+0x324f0) [0x7f654b2f04f0]
blender2661() [0x16cb496]
blender2661(pyrna_struct_CreatePyObject+0x25) [0x16cabb5]
blender2661(pyrna_prop_to_py+0xde) [0x16ced0e]
blender2661() [0x16cf090]
blender2661(PyEval_EvalFrameEx+0x2a00) [0x2973eb0]
blender2661(PyEval_EvalCodeEx+0x81e) [0x29713fe]
blender2661() [0x28f13cf]
blender2661(PyObject_Call+0x5a) [0x28cb96a]
blender2661(bpy_app_generic_callback+0x8c) [0x16c600c]
blender2661(BLI_callback_exec+0x2d) [0x172d5ed]
blender2661(wm_homefile_read+0x12f) [0xeaea8f]
blender2661(wm_homefile_read_exec+0x32) [0xeaec72]
blender2661() [0xec065b]
blender2661() [0xec0b8c]
blender2661() [0x114fd86]
blender2661() [0x115cf9b]
blender2661() [0xec1aec]
blender2661() [0xec2106]
blender2661(wm_event_do_handlers+0x198) [0xec2408]
blender2661(WM_main+0x18) [0xeae008]
blender2661(main+0x2b0) [0xea9114]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f654b2dcead]
blender2661() [0xde5305]
===========================================================

Original issue reported on code.google.com by [email protected] on 2 May 2013 at 5:46

Scrolling forward/backward near time 0 shows different results

When stepping through visualization files, I've noticed the following odd 
behavior:

1: Show intro.cellbin.0000.dat, all molecules appear correct
2: Show intro.cellbin.0001.dat, all move, but some (all?) newly created 
molecules don't appear
3: Show intro.cellbin.0002.dat, all molecules appear correct again (all show up 
and move)
4: Show intro.cellbin.0001.dat (go back), all are now correct and the "missing" 
molecules appear
5: Show intro.cellbin.0000.dat (go back again), all appear as in Step 1.
6: Show intro.cellbin.0001.dat (go forward again), newly created molecules 
still don't appear.

To summarize, stepping forward seems to skip some of the molecules that are 
newly created after initialization (possibly only on the first step), but 
stepping backward appears to display them all properly.

I've given this a low priority, but I did want to document it.

Original issue reported on code.google.com by [email protected] on 9 Apr 2013 at 2:22

Molecule orientation not applied

The orientation is not being applied for molecules in Blender 2.66. This 
results in all molecules having the same vertex normal. In more practical 
terms, this means that all molecules will point up along the global z-axis. 
This will be most noticeable when using a glyph/shape with an obvious 
directionality to it like the Cone.

Original issue reported on code.google.com by [email protected] on 22 Feb 2013 at 6:26

Apparently property arrays are limited to 32767 elements

Apparently property arrays are limited to 65535 elements.

This mean that you can't have a region with more than this many
faces.  One possible fix is to store large regions as multiple arrays.

Original issue reported on code.google.com by t.m.bartol on 9 Apr 2013 at 6:03

Importing objects with same names in different metaobjects

If you have two meta objects each with identical named polygon objects within 
them, then CellBlender will only import one of those of objects. For example, 
assume you have the following MDL:

meta_obj1 OBJECT {
  poly_obj POLYGON_LIST {
    ...
  }
}

meta_obj2 OBJECT {
  poly_obj POLYGON_LIST {
    ...
  }
}

Only one of the "poly_obj" objects will actually be imported. However, if the 
polygon objects have unique names, then this will work correctly, as in this 
example:

meta_obj1 OBJECT {
  poly_obj1 POLYGON_LIST {
    ...
  }
}

meta_obj2 OBJECT {
  poly_obj2 POLYGON_LIST {
    ...
  }
}

In the first example, we need to take care of naming conflicts to solve the 
problem. One possibility would be to import them with  fully qualified names 
(i.e "meta_obj1.poly_obj" and "meta_obj2.poly_obj"). 



Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 11:15

Support for more COUNT statements

CellBlender does not support the following features for COUNT statements:

-Surface molecules with a specified surface orientation
-ALL_ENCLOSED
-ESTIMATE_CONC
-hits and crossings (FRONT_HITS, BACK_HITS, ALL_HITS, FRONT_CROSSINGS, 
BACK_CROSSINGS, and ALL_CROSSINGS)

Original issue reported on code.google.com by [email protected] on 14 Apr 2014 at 7:24

Test: Activity Notifications

This is just a test to see if the "Activity Notifications" feature under 
Administer>Issue Tracking will automatically send out an email when a new task 
is created. 

Original issue reported on code.google.com by [email protected] on 15 May 2013 at 1:01

Triangulating Meshes

It's possible for users to export meshes that are not triangulated. To solve 
this, we could either automatically triangulate meshes or at least warn them 
that their meshes aren't triangulated at an appropriate time. We would likely 
want to do this when meshes are being added to the Model Objects list and/or 
the first time a surface region is being defined for an object. It might be 
considered bad practice to modify a user's mesh without their knowledge, 
although this is likely what everyone using CellBlender would want. Maybe we 
could make it an option under the proposed CellBlender Preferences panel. Any 
thoughts on the matter?

Original issue reported on code.google.com by [email protected] on 5 Apr 2013 at 7:19

Triangulate

Describe the new task that you think might need to be accomplished within
the CellBlender project.

Original issue reported on code.google.com by [email protected] on 5 Apr 2013 at 6:22

Optional initialization commands

With regards to initialization commands, CellBlender only allows users to 
change the number of iterations and the time step, but there are many other 
optional commands (including notifications and warnings) that still need to be 
added.

MCell documentation on initialization commands:
http://www.mcell.org/documentation/mcell3_qrg.xhtml#magicparlabel-131

Original issue reported on code.google.com by [email protected] on 25 Jan 2013 at 4:21

Context error when running simulation

A context error is sometimes generated when trying to run a simulation after 
having previously deleted an object (mesh, camera, lamp, etc). Selecting 
another object before running the simulation prevents this error for some 
reason. This is the traceback:

Traceback (most recent call last):
  File "/home/jacob/.config/blender/2.70/scripts/addons/cellblender/cellblender_operators.py", line 1200, in execute
    bpy.ops.mcell.export_project()
  File "/home/jacob/bin/blender/blender-2.70-linux-glibc211-x86_64/2.70/scripts/modules/bpy/ops.py", line 188, in __call__
    ret = op_call(self.idname_py(), None, kw)
RuntimeError: Error: Traceback (most recent call last):
  File "/home/jacob/.config/blender/2.70/scripts/addons/cellblender/cellblender_operators.py", line 1463, in execute
    bpy.ops.export_mdl_mesh.mdl('EXEC_DEFAULT', filepath=filepath)
  File "/home/jacob/bin/blender/blender-2.70-linux-glibc211-x86_64/2.70/scripts/modules/bpy/ops.py", line 186, in __call__
    ret = op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Operator bpy.ops.export_mdl_mesh.mdl.poll() failed, context is 
incorrect

Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 5:58

Fix regions so that each polygon knows its region memberships

Fix regions so that each polygon knows its region memberships. This is 
necessary so that deletion or insertion of new polygons in a mesh, which causes 
re-indexing of the mesh polygons, does not mangle the region memberships.  
We'll need to store an array of region id's with each polygon, indicating it's 
membership in those regions.  The region id's will need to be unique id's which 
map to the appropriate region so that changes in region names will not mangle 
the region memberships. So, the unique id's will need to be a new class 
variable added to the named regions and the polygons which are a member of a 
given region will be assigned the id of that region.  A question is how to 
guarantee that the id's are truly unique.  Do they need to be unique within an 
object, within a CellBlender project, or in the universe of projects?  If they 
are not unique in the universe of projects then appending objects between 
CellBlender projects will require special handling (i.e re-assignment of unique 
id's to named regions and their associated polygons). We'll need to  discuss 
this.

Original issue reported on code.google.com by t.m.bartol on 15 Mar 2013 at 8:27

CellBlender does not work properly with Blender 2.66

The official testbuild for Blender 2.66 does not work properly with the current 
version of CellBlender. The changes made to the template list in 2.66 are at 
least partially (if not entirely) responsible. Documentation can be found here:

http://www.blender.org/documentation/blender_python_api_2_65_8/bpy.types.UIList.
html

Original issue reported on code.google.com by [email protected] on 6 Feb 2013 at 4:19

Partitioning

Give users the ability to create partitions within CellBlender for an MCell 
simulation.

MCell documentation on partitions:
http://www.mcell.org/documentation/mcell3_qrg.xhtml#magicparlabel-3760

Example of partitions used in an MDL:

PARTITION_X = [ [-0.1 TO 0.1 STEP 0.01] ]
PARTITION_Y = [ [-0.1 TO 0.1 STEP 0.01] ]
PARTITION_Z = [ [-0.1 TO 0.1 STEP 0.01] ]

A Lattice object might work well for a visual representation of partition 
boundaries and spacing.

Original issue reported on code.google.com by [email protected] on 25 Jan 2013 at 4:21

Fix absolute viz directory problem

Although we previously attempted to change all uses of absolute directories to 
relative directories in CellBlender, we must have missed the viz directory. One 
should be able to move a blend file and the associated project directory around 
without needing to regenerate the viz data (i.e. rerun the simulation).

Original issue reported on code.google.com by [email protected] on 10 Mar 2014 at 12:44

Create semi-automated tests

Creating a test suite for a GUI can be difficult. However, given the nature of 
Blender's operators (i.e. every button press can be scripted), we can automate 
at least some of the testing for CellBlender. Specifically, we can have a 
script that essentially creates a CellBlender project from scratch, exports the 
MDLs, runs the simulation, and imports the viz data. Assuming there are some 
features that we cannot create in an automated fashion, then we could 
additionally include blend files that make use of said features.

Original issue reported on code.google.com by [email protected] on 14 Feb 2013 at 5:35

Plotting Interface within CellBlender

Add a mechanism which allows CellBlender users to plot various kinds of data 
from within CellBlender.

Initially, this may be simple canned plots of reaction data, but should 
ultimately be expandable to more general plotting.

This task came from our Google hang out discussion on March 27th, 2013.

Original issue reported on code.google.com by [email protected] on 27 Mar 2013 at 10:06

LIST based release sites

CellBlender does not currently support MCell's list based release sites. This 
can be quite useful if there are many molecules of one type that you want to 
release at specific XYZ locations.

Here is an example of what this looks like in MDL:


Release_Site RELEASE_SITE
{
  SHAPE = LIST
  MOLECULE_POSITIONS
  {
    Molecule
    [.1, .1, .1]
    Molecule
    [.2, .1, .1]
    ...
  }  
}

Original issue reported on code.google.com by [email protected] on 14 Apr 2014 at 7:11

Handle existing rxn/viz data when running new simulations

On Wednesday's meeting, we discussed how to handle cases where the user begins 
running a new simulation and there is already viz and/or rxn data present from 
previous simulations. We agreed to present the user with two options: remove 
the existing data or append to it. Removing is usually the logical choice if 
you have changed any simulation settings. Appending makes sense if you simply 
need to run some additional seed values (e.g. You want to run seed values 
11-100 after having previously run 1-10).

Original issue reported on code.google.com by [email protected] on 3 May 2013 at 2:48

Version Tracking and Compatibility

Come up with a way to tag CellBlender versions for the purpose of identifying 
(and possibly recovering from) incompatibilities between different versions of 
the CellBlender addon and the .blend files produced by different versions of 
the CellBlender addon.

Initial direction is to make an effort to incorporate the GIT hash tags in some 
way so that they can be used to identify the addon version and potentially 
stamp that into the .blend file so that it may be checked at run time.

The previous CellBlender .blend files (may) have no known identification 
information in them, so one thought is that their "version string" might be 
defaulted to "Unknown".

Original issue reported on code.google.com by [email protected] on 7 Feb 2013 at 8:48

Supporting release patterns

Release patterns (http://www.mcell.org/tutorials/rel_pattern.html) are not 
currently supported in CellBlender.

Original issue reported on code.google.com by [email protected] on 3 Aug 2013 at 2:35

Supporting time-dependent rate constants

Currently, we can only define static rate constants for reactions in 
CellBlender, even though MCell supports time-dependent rate constants. In the 
MDL, this is done by referring to a filename, which has two columns: the first 
being the time and the second being the rate constant. Perhaps the simplest way 
to support this in CellBlender would be to let the user click a file navigator 
button to select such a file. The file would then be created in the project 
directory upon export. This could either be accomplished by simply copying the 
file (problematic if the original file moves) or the contents could be stored 
within the blend file and written out upon export.

Original issue reported on code.google.com by [email protected] on 3 Aug 2013 at 2:27

Store API version in blend

The API version number should be stored in the blend file by the release of 
CellBlender 1.0. This will help us more gracefully handle version changes and 
compatibility issues for users.

Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 8:13

Change "Toggle All" molecule viz button

Under the "Visualization Output Settings" panel, there is a button called 
"Toggle All" which refers to the list of molecules to be visualized. We should 
replace that button with a simple check box that, if selected, will always 
visualize all the available species. This prevents the problem of having to 
continually go back and select new molecules to be visualized every time a new 
one is defined.

Original issue reported on code.google.com by [email protected] on 10 Mar 2014 at 12:50

Importing over existing objects with identical names

CellBlender will not import over existing objects with the same name. It will 
leave the existing object there without any warning/error. If you try to delete 
the existing object first, it will bring that object back when you try to 
import the new object.

Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 11:29

Improving the Status Messages and Error Checking

When a user creates an invalid entry, a status message indicating the nature of 
the error will be printed in the panel. Once that user starts to change another 
item in the list, the status message will be replaced by a new status message 
or nothing at all. The user no longer has a record of what was wrong with the 
original item. 

If we associate the status with the items themselves, however, we could keep 
track of what is wrong with a given item. For instance, we could add an error 
icon and message to any invalid entries thus creating a quick visual reference 
of what needs to be fixed. Furthermore, on export, we could filter out any 
entries that have errors associated with them, thus lessening the chances of 
invalid models being created.

One problem with this approach is that since we still don't have a perfect 
solution for the "store by reference" problem, then some things will appear to 
be valid when they are in fact invalid and vice versa.

I'm attaching an image of how this interface might look in the Define Reactions 
panel.

Original issue reported on code.google.com by [email protected] on 8 Apr 2013 at 3:48

Attachments:

Cleaning up previous viz files

I've gotten some interesting results if I run a simulation for 2000 iterations, 
change the model, and then run it again for only 1000 iterations. The higher 
numbered viz files (1001 to 2000) are still around and get read by the 
simulation when it runs.

This is a pretty low priority problem, but I just wanted to get it on the list 
somewhere.

Original issue reported on code.google.com by [email protected] on 15 Mar 2013 at 7:33

Parameters - Implement a generic interface for entering MCell Parameters

This task is building on the work done by Dipak which imports BNGL parameters.

The goal is to allow setting and evaluation of parameters.

Parameters should retain their identity and participation in expressions when 
their name is changed.

Changes to any parameter should cause updates to all other parameters which use 
it in their own expressions.


Original issue reported on code.google.com by [email protected] on 7 Aug 2013 at 4:40

Introduce

Hello everyone, 
I'm faizal fajrie, nice to know you all, 
I'm interest in MCell and my final research in graduate is use program MCell, 
where I start this?
and I'm use ubuntu 12.04 LTS,
thanks for your attention.
hope I can learn everything about MCell and Cellblender from you all.

Best Regards.
Faizal Fajrie

Original issue reported on code.google.com by [email protected] on 11 Oct 2013 at 3:39

Can only assign faces to regions in face select mode

Currently can only assign faces to region in "face select mode".  Fix
this so that we can also use vertex, and edge select modes. Note, this
will still mean that only full faces are assigned (i.e. incomplete sets
of vertices or edges that don't map to a full face will be ignored). 

Original issue reported on code.google.com by t.m.bartol on 9 Apr 2013 at 5:53

Add mouse over descriptions for all buttons, drop-down menus, etc

When you mouseover a button, drop-down menu, float property, check box, or 
other UI element, a description of what that element does is presented to the 
user (assuming the description exists). Many of the UI elements already have 
descriptions, but some are still missing. This is a simple addition that can be 
very useful to the user. Since there is very little chance of this breaking 
anything, I think it should be added to release_candidate_1.0.

Original issue reported on code.google.com by [email protected] on 16 May 2013 at 3:36

Save MCell path between runs.

The current version doesn't seem to save the mcell path between runs. I think 
it should be storing this in the .blend file, and I will look into fixing this.

Original issue reported on code.google.com by [email protected] on 28 Mar 2013 at 6:07

Validate before adding to list

Currently, we add a new molecule, reaction, release site, or surface class to 
the relevant template_list with some default (and possibly invalid) values. In 
effect, this means the user can create broken models. Instead, it might be 
better to first have the user fill out some blank template fields, and, only 
after having validated it, we allow it into the list.

Original issue reported on code.google.com by [email protected] on 24 Jan 2013 at 4:37

Namespace of molecules and surface classes

Currently, in CellBlender molecules and surface classes can have the same name. 
However, in MCell this is illegal, which makes sense since surface classes can 
appear in reactions. As such, a warning/error should also be generated in 
CellBlender when a user attempts to define a molecule with the same name as a 
surface class and vice versa. 

Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 8:01

Increase Visibility of CellBlender Panels

The goal of this issue is similar to Issue 12 in that both of them are 
concerned with making CellBlender stand out more. However, to the best of my 
knowledge, we cannot create our own Editor in Blender at this time using the 
Blender Python API. As a compromise, Markus suggested simply adding a prefix to 
each of the panels with the word "CellBlender". For instance, the "Model 
Objects" panel would become "CellBlender - Model Objects". Obviously, this is 
not nearly as nice as having our own Editor space, but it's a simple change to 
make, and it really helps everything stand out imo. Does anyone have a problem 
with this change? 

Original issue reported on code.google.com by [email protected] on 5 Apr 2013 at 6:07

Attachments:

Candidate Python expressions of MDL

Post suggestions for Python APIs that express various aspects of MDL.

This task resulted from today's meeting (March 20th, 2013). This task is 
intended to capture as many creative ideas as possible, so please feel free to 
toss in any ideas you have.

I believe that reactions might be the most difficult to represent pythonically 
(other than as strings) because they use commas and apostrophe's which have 
special meanings in Python and are not overloadable. So with that thought in 
mind, I've included the reaction examples from the quick reference guide below. 
Any proposed pythonic API would have to be able to express all of these 
examples.

Examples from Quick Reference Guide (units were dropped for ASCII simplicity):

    Example = Explanation

    A -> B [100] = Molecule A changes into molecule B at a rate of 100
    A -> A + B [100] = Molecule A emits molecules of B at a rate of 100
    A -> NULL [100] = Molecule A is destroyed at a rate of 100
    A + B -> A [1e6] = Molecule A destroys molecule B at a rate of 1e6
    A + B -> A + C [1e6] = Molecule A catalytically converts B to C at a rate of 1e6
    A+B -> A+B+C [1e6] = Collision of A and B catalytically generates C at a rate of 1e6

    B' -> B, [10] = Molecule B flips (changes its orientation) at a rate of 10
    B' -> B' + A' + C, [10] = Molecule B emits molecules of A on the side it's pointing to and emits C on the other side, at a rate of 10
    B, -> B, + A, + C' [10] = This specifies exactly the same reaction as above. B and A end up with the same orientation, while C has opposite orientation.

    A' + B' -> C' [1e5] = Molecule A binds to B if it is on the side that B is pointing to, producing a C facing the same way as B, at a rate of 1e5
    A, + B, -> C, [1e5] = The same reaction again-everything occurs on the same side, but we wrote it on the bottom this time.
    A' + B, -> C' [1e5] = Molecule A binds when it hits the opposite side of B, producing a C facing the opposite way as B (i.e. towards the side A came from), at a rate of 1e5
    A, + B' -> C, [1e5] = Same as above

    A'' + B, -> C' [1e5] = Molecule A binds to either side of B (since they are in different orientation classes); this produces a C facing the opposite way as B, at a rate of 1e5
    A,, + B, -> C' [1e5] = This is the same reaction-since A is the only molecule in the second orientation class, it doesn't matter which way we specify things.
    A,, + B' -> C, [1e5] = Same again- B and C still have opposite orientations.
    A, + B' -> C,, [1e5] = Molecule A hits the opposite side of B and produces C that is equally likely to point either way, at a rate of 1e5
    A, + B' -> C'' [1e5] = Same as above, since C is still not in the same orientation class as the others.
    A'+B'' -> A,+B''' [1e5] = Molecule A hits molecule B on either side; A keeps traveling (goes to the other side) and B tumbles to a random orientation, at a rate of 1e5
    A'+B'' -> C'''+D'''' [1e5] = A and B react in any orientation and produce C and D in random orientations. All orientation classes are different, so there are no geometrical constraints here.

    A' + B' @ surf' -> C, [1e5] = The reaction affects surface molecules B located on surface regions identified by surface class surf which have their top domain at the front of the surface. B reacts with A approaching from the front at a rate of 1e5 to yield surface molecule C whose orientation is flipped with respect to B, i.e., C has its top domain aligned to the back of the surface regions.
    A' + B, @ surf' -> C, [1e5] = Same as above, but B now has its top domain at the back of the surface and reaction product C assumes the same orientation.

    A,, + B, @ surf' -> C' [1e5] = Since A is in an orientation class different from both B and surf, A can react from both sides. B has its top domain at the back of the surface and the reaction product has its orientation flipped, i.e., its top domain is at the front of the surface.
    A' + B' @ surf' -> C,, [1e5] = Same as the the first reaction, but since product C is in a orientation class different from either A, B, and surf, its orientation is random with respect to the surface regions, i.e., its top domain can be either on the front or back.

    A + B + C -> D [1e12] = Volume molecules A, B and C react to yield product D, at a rate 1e12
    A + B + C -> D + E + F [1e11] = Volume molecule A, B and C react to yield the three volume products D, E and F at a rate of 1e11
    A' + B' + S, -> D' [1e12] = Volume molecules A and B both react with the bottom of surface molecule S to yield volume product D which is released toward the same side from which A and B came from at a rate of 1e12
    A, + B, + S' -> D, [1e12] = This reaction is identical to the previous one.
    A, + B, + S' -> A' + B' + S' [1e9] = This reaction describes the action of a surface bound symporter molecule S. Molecules A and B bind to the bottom of S which then re-releases A and B at its top domain. This reaction happens with a rate of 1e9
    A, + B' + S' -> A' + B, + S' [1e9] = This is similar to the previous reaction but S now acts as an antiporter for A and B.
    A, + S' + R'' -> T'' [1e11] = In this reaction, volume molecule A facilitates the dimerization of surface molecules S and R. A reacts with the bottom of S and R in arbitrary orientation to produce a dimer T that is oriented like R. The reaction happens with a rate of 1e11
    R, + S, + T'' -> T''+ U,,, [1e11] = Identically oriented surface molecules R and S dimerize in the presence of surface molecule T which is oriented opposite to both R and S. The reaction regenerates T in its original orientation and creates the dimer U which can have an arbitrary orientation. This reaction occurs at a rate of 1e11


Original issue reported on code.google.com by [email protected] on 21 Mar 2013 at 12:42

Allow plotting of reactions

We allow the counting of named reactions (e.g. "my_rxn" in "a->NULL [1e3] 
my_rxn"), but reaction counts cannot currently be plotted.

Original issue reported on code.google.com by [email protected] on 19 Mar 2014 at 6:27

Make a new tab or space type for cellblender panels

Having CellBlender live under the "Scene" tab of the Properties Space
is workable but is not our ideal solution.  It would be better to add
a new custom "CellBlender" tab to the Properties Space or perhaps a 
whole new "CellBlender" Space Type.  But it's not clear if either of 
these solutions is possible.  Let's explore the possibilities...

Original issue reported on code.google.com by t.m.bartol on 12 Mar 2013 at 7:19

Update CHANGELOG

The CHANGELOG needs updated to mention any significant features and bug fixes 
that have been added since the last release (1.0 RC).

Original issue reported on code.google.com by [email protected] on 10 Mar 2014 at 12:41

Complete Minimal CellBlender

Make minimal changes to allow CellBlender to be functional without needing to 
hand-edit MDL files or run mcell from the command line.

This task is intended to offer just enough support for simple projects, but 
hand-editing of MDL may still be required to take advantage of more advanced 
MCell features.

Original issue reported on code.google.com by [email protected] on 11 Mar 2013 at 7:15

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.