Skip to content

merging c+11 changes with master branch #25

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 496 commits into
base: nfsim_lib_shared_ptr
Choose a base branch
from

Conversation

jjtapia
Copy link
Member

@jjtapia jjtapia commented Apr 12, 2018

No description provided.

jczech and others added 30 commits August 7, 2018 12:01
If you looked at the travis logs, it looks like the only thing the
osx_install script was doing anything in the osx_install script was the
brew update, so I removed it and added that one line to travis.yml. It's
not even clear if that one line is necessary.
Added few lines to print reaction details for
specific molecules and reactions.

Realized why endocleavage at stall was not working
properly. See the notes in data/sim180620.
This code is buggy for TASEP since it ignores state changes of
trailing ribosomes that are stacked behind a leading ribosome but are
not bonded to it.
To solve this problem, I am going to look at the MappingSet of mRNA
molecules to identify the spatial region around the state change and
include any associated bonded molecules in the product list.
Will involve introducing notion of a polymer molecule and spatial
states.
PySB, BioNetGen have also been modified to be able to specify polymeric
sites on molecules, their type, location, and interaction distance.
The ribosome that has collided at the stall site is not able to
move subsequently. Needs fixing.
Also updated README listing major lessons learned.
Need to figure out how reactantTemplates are assigned for each
reactionClass instance.
The reactions match between the old exhaustive search and the new
polymerneighborhood search.
No random printing to screen.
Transcription is failing in the polymerNeighborhood search. But this
should be a fixable problem.
But the neighborhood search on its own did not improve speed
significantly. See README.org from today for details. I will come back
to this at a later time.
Once the system has been set up, I have verified that all the reactant
and product patterns read into the vector for allReactantTemplates and
allProductTemplates.
Now have to infer the connectivity matrix between the reactions.
This comparison has to be used for checking whether the reactant and
product templates of one reaction match with the reactants of any other
reaction.
I am looking at connectivity separately for reactant and product
templatemolecules.
I instead need to look at only the reactant comps that are changed by
the particular reaction.
I read the list of connected reactions into a vector for each reaction.
I have to use this connectivity now during the molecule and reaction
rate update.
My first test as to whether this speeds up the code gave about 20%
improvement with and without considering connected reactions. This was
with 100 site mRNA. I am going to try this with 200 site mRNA and see if
the difference is bigger between the two methods.
When two mRNAs had the possibility of elongation at the same position,
then the full network and the connected network simulation picked
different mRNAs. I need to figure out why this difference occurs.
I removed the search for connected reaction in every reaction firing.
Instead created a lookup array for checking whether reactions are
connected.
This has cut down the simulation time by almost 4-10 fold.
The other things remaining are to see why connected and full search
slightly differ.
Also, replace the Python code for inferring connectivity with native C++
code that uses the already defined TemplateMolecule methods.
I reordered BasicReactionClass::tryToAdd() to prevent reordering of
mappingSet in reactantList when the molecule is already part of the
reaction. This solved the difference between connected and full at the
early stage, but there seems to be still some diffence in the trajectory
later in the reaction.
Based on my tests, it looks like I am inferring and processing the
connected reactions correctly.

I removed some debugging cruft.
TODO: Further optimizations that can/should be done:

1. Instead of iterating over all reactions for each molecule to update
its membership, iterate over all the connected reactions for the fired
Reaction in =MoleculeType::updateRxnMembership()=. This is a much
smaller set with the network topology of ribosomes and mRNAs.

2. Remove =onTheFlyObservable= calculation. Right now, this loop
needlessly slows down the fire. But it can be readily removed because it
is automatically assumed for the =TotalRate= calculation for
=initiation=.

3. Identify network connectivity within =NFsim= itself. This will speed
up the reaction considerably.
=MoleculeType::updateRxnMembership()= loop is much more efficient now. I
got a 6-7 fold decrease in running time.

Need to infer the connectedReactions in C++ instead of python script
outside for speed.
ASinanSaglam and others added 30 commits April 3, 2023 16:24
was missing a "[" if no operations were present
Ubuntu binary not working under WsL at least, testing different version
Merging branch made to address seg fault in Issue 37
Repackages zip files containing executables for each OS into .tgz files that are used for releases.
Uncommented lines that stopped copying of windows dll's
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants