shirtsgroup / foldamers Goto Github PK
View Code? Open in Web Editor NEWTools to model folding and evaluate thermodynamic properties for polymers and oligomers
License: MIT License
Tools to model folding and evaluate thermodynamic properties for polymers and oligomers
License: MIT License
So, the file foldamers/foldamers.py seems to be causing problems. When it's present, and I try to import the CGModel class definition with from foldamers.cg_model.cgmodel import CGModel
, then I get the error:
ModuleNotFoundError: No module named 'foldamers.cg_model'; 'foldamers' is not a package
.
When I move the file out of the way, things function correctly. @tlfobe , you added this file in #28 - any guesses as to what is happening?
This function in cgmodel.py is broken - particle_2_type is not defined and there is no error handling. If we keep this function, should we add get by name for everything else?
If you pass in a list like [4,2] to "backbone_lengths", it only uses the first entry. I assume that might be used for A/B monomers, but would have to check. . .
We've cycled through a couple ways to name atoms and residues in PDB files - we should solidify on something.
@cwalker7, @covo6734, and I talked about this in our meeting last Friday (May 22nd). We asked if it would be useful to separate the analysis and running of simulations?
For a lot of the current analysis scripts, simulations are run and analyzed in the same file. Many of these scripts then also have logic in them where they can read previous simulation data from the outputs
directory if it exists. I feel like this makes it confusing as to what exactly is happening when a script is run.
I think if we separate analysis from simulations, we would be more flexible with what we could do with a single simulation. I think this also asks the question, what is a good file system structure for keeping simulation output and analysis output organized?
There's a number of large files in the history that are making it hard to clone foldamers - I'm going to try to remove them from the history.
We were working on getting the conversion between CG PyRosetta objects (Poses) and CGOpenMM/Foldamers (CGModel). This is important for being able to compare structures and energies from both codebases.
Garrett started this process in this branch of CG PyRosetta:
https://github.com/shirtsgroup/cg_pyrosetta/tree/cgopenmm_comparison/cg_pyrosetta
With the dependencies between cg_openmm and foldamers, it seems like we may want to move a lot of the functionality into the same repository, and just have analysis code that could be run on both cg_openmm and cg_pyrosetta code in a separate analyze_foldamers repository. What do people think of this?
After our sub-group meeting on 7/2 we decided that we would like foldamers to not depend on CG OpenMM, to remove the circlular dependency of these two repos. If they both depend on each other then they would be better suited being a single repo.
To this end, let's discuss how we can go about removing the CG OpenMM dependencies in foldamers here.
In some cases there is an extra temperature added to the temperature list created with get_temperature_list in foldamers/parameters/reweight.py. Looks like it's a rounding issue. For example, if I specify 24 replicas with min_temp = 50K, max_temp = 400K, the 24th replica is 399.999... and 25th is 437K.
The script scan_torsions.py ( foldamers/examples/varying_model_parameters/scan_torsions ) is outputting raw trajectory data (.nc files) into files organized by the angles of sc_bb_bb_sc and sc_bb_bb_bb. PDB files are extracted from these the .nc files and are classified as native or non-native, based on how well they match a determined native structure (I think established before the simulation). The files output into these directories are pdb files from all replicas, but individual replicas are not evident from the native/non-native classification. The values necessary to be considered a native contact and the range of angles used for the sc_bb_bb_sc and sc_bb_bb_bb are both defined in the script.
We want to be able to visualize the individual trajectories of each replica without the extra step of native/non-native classification, so the full of the trajectory of a given replica can be visualized in one file.
Currently, I'm making changes to the file mentioned above and running using the following command.
python scan_torsions.py
A couple thoughts for discussion on building heteropolymers- please chime in @tlfobe and @cwalker7 on your thoughts?
There's a moderate amount of heteropolymers support in the code right now. There needs to be a little tweaking for it to run correctly, but it looks like it is possible to define a dictionary for each monomer, each with their own backbone backbone bond lengths, sigma and epsilons. and then have as many different monomers as one likes.
Two things that it DOESN'T look like it it is supported right now is:
It would take a moderate amount more work to support such changes - so the question is whether it would be best to get it up and running as is, or to retool a lot more code and get it working.
My instinct is to get working what's currently almost working, i.e. with the drawbacks identified above, and go with that, then work on expanding the bead potentials within particles, and generalizing the torsional potentials. A lot of the stuff we would want to do in the near future (ABAB or ABCABC heteropolymers with fixed backbone but and different sidechains) can be supported with this.
Thoughts?
There are some scripts for calculating angle and torsion distributions in examples/evaluating_parameter_distributions. We probably want to generalize these and turn into functions for angle and torsion calculators - very useful if we are going to test out different torsion functional forms.
Starting from foldamers/examples/generate_random_structures/get_initial_structure.py, validate and test the process for building new initial folding structures.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.