forked from msneddon/nfsim
-
Notifications
You must be signed in to change notification settings - Fork 9
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
jjtapia
wants to merge
496
commits into
nfsim_lib_shared_ptr
Choose a base branch
from
master
base: nfsim_lib_shared_ptr
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.