Git Product home page Git Product logo

pinetree's People

Contributors

alexismhill3 avatar benjaminjack avatar clauswilke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pinetree's Issues

Overlapping polymerase error

When running Pinetree on a mutant T7 genome, this error occurs:

Traceback (most recent call last):
File "phage_mutant_model.py", line 265, in
main()
File "phage_mutant_model.py", line 261, in main
sim.simulate(time_limit=1500, time_step=5, output="phage_counts.tsv")
RuntimeError: Polymerase __ribosome (start: 8323, stop: 8352, index: 11) is overlapping polymerase __ribosome (start: 8347, stop: 8376, index: 12) by more than one position on polymer __rna

The mutant T7 has a modified gene around coordinates 1200-2000, which shouldn't affect ribosome binding around coordinates 8323-8376.

Python environment used:
Python 3.7.5
biopython==1.76
cmake==3.17.2
numpy==1.18.5
pinetree==0.2.0

Codon usage / translation frames

Currently the effect of codon usage changing the speed of translation needs to be implemented by the user assigning normalized weights to each base in the genome. It would be helpful if there were a simpler and perhaps more fully featured way of having Pinetree do this... for example by having the user assign speeds for all 61 codons and then having Pinetree figure out the weights across each reading frame itself.

It would also be interesting/useful if ribosomes could keep track of what frame they were in, so that overlapping genes could have different weights and sites that lead to -1 frameshifts could be simulated.

Pinetree should be able to handle overlapping genes

The documentation states that Pinetree doesn't support overlapping genes or genes that overlap with a ribosome binding site. Confusingly, if the user does try to add overlapping genes to the simulation, Pinetree will run anyway; this sometimes (but not always; see #11) results in a seemingly unrelated error.

Given that overlapping genes are quite abundant in real phage genomes, it would be best to fix this undefined behavior and implement full support for overlapping genes.

Lotka-Volterra test segfaults with sufficient time

To Reproduce

  • Compile as normal
  • Change runtime in tests/params/lotka_voltera.yml to some large number (I have found >600 consistently works)
  • Run pinetree

This should segfault the library.

Cause

I've traced the segfault to pinetree/simulation.cpp on line 219. The following is the relevant snippet:

  auto next_reaction = Random::WeightedChoiceIndex(reactions_, alpha_list_);
  reactions_[next_reaction]->Execute();    // SEGFAULT HERE
  UpdatePropensity(next_reaction);
  iteration_++;

It seems the WeightedChoiceIndex is somehow choosing elements off the end of the list. Adding an assert(next_reaction < reactions_.size()) before this line will trigger the assertion.

Unable to install pinetree

Hi there -

I have been trying to install pinetree on an M2 MacBook and have installed all dependencies listed, however have been met with various error codes, the latest being "ERROR: Could not build wheels for pinetree which use PEP 517 and cannot be installed directly." I have tried numerous fixes suggested on online forums which have been unsuccessful, I was wondering if you had encountered this problem before or have any suggestions?

Thanks,
Gil

Support for multiple genomes

We would like to do some simulations with a separate plasmid and/or genome in a cell that is being infected by the phage. Is this possible already? (Can you call register_genome() twice and it will include both?)

If not, it seems like it could be faked by appending the sequences and making sure that there is a perfect terminator between them, but it would be easier for us to set up if they were separate.

It might also be helpful to have a copy_number parameter for each genome (=DNA molecule) that would scale all of the promoter rates on that piece of DNA, in case that was a parameter that we wanted to adjust for a plasmid.

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.