Changes between Initial Version and Version 1 of ChIMP/Meetings


Ignore:
Timestamp:
Oct 15, 2009, 4:54:56 PM (17 years ago)
Author:
Scooter Morris
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ChIMP/Meetings

    v1 v1  
     1
     2= ChIMP Meetings (Joint Sali-Ferrin Lab Meetings) =
     3
     4[[PageOutline]]
     5
     6== October 15, 2009 ==
     7Attendees: Conrad, Scooter, yz, TomF, TomG, Keren, Elena, Dina
     8
     9=== Preliminary Progress ===
     10 1. SAXS: TomG & Dina
     11  * Chimera interface to the SAXS module from IMP
     12  * Can calculate and plot a SAXS profile for a PDB model
     13  * Can overlay experimentally derived SAXS profile on the same plot
     14  * Potential licensing issues with distributing this with Chimera
     15  * Some potential UI enhancements:
     16   * Re-use of a plot window to compare experimental profiles vs. changed model
     17 1. Opal: Conrad
     18  * Web service framework (from SDSC)
     19  * Easy to deploy web services -- can quickly wrap existing software (legacy command-line programs)
     20  * Currently running 1.9 on the Plato cluster
     21  * 2.0 is out, but not much change in functionality (primarily internal changes)
     22  * Currently using Opal in Chimera for:
     23   * Template lookup (interactive)
     24   * BLAST pdb/nr
     25    * Asynchronous -- can save in sessions, etc.
     26  * Others
     27   * GOElite
     28  * Output is whatever the program outputs
     29   * Files
     30   * stdout, stderr
     31
     32=== Action Plan ===
     33 1. ~~Hire postdoc~~ - Done!
     34 1. Hire programmer
     35  1. Write job description (yz, TomF)
     36  1. Post through HR
     37  1. Go through Craig's List?
     38 1. SAXS Interface
     39  1. Work is known
     40   * Share plot
     41   * Use web services
     42  1. Resolve license
     43 1. Bring yz up to speed
     44  * Chimera
     45  * IMP
     46 1. Develop an action plan for
     47  * !MultiFit Interface
     48  * Protein Homology modeling/loop modeling
     49
     50
     51=== Additional Projects ===
     52 1. Future/new projects
     53  1. Coarse-grained models (beads)
     54   * Fitting/optimization of coarse-grained models into density
     55  1. Flexible fitting
     56   * Refining data after manipulating structures within densities
     57  1. Finding components within 2D micrographs
     58   * Manipulate component in 3D, view on micrographs
     59
     60=== Issues ===
     61 1. Licensing issues with the SAXS module
     62  * Ben is working with UCSF to get license approved
     63   * Complicated: not all team members are only at UCSF, and some team members have left UCSF
     64  * Goal is to release IMP as LGPL
     65  * Would like to release IMP before releasing an IMP component (e.g. SAXS) separately as part of Chimera
     66  * Tom thinks that the SAXS component for IMP should be included with Chimera download
     67  * May need to think about incremental downloads
     68
     69== March 18, 2009 ==
     70=== Introduction to IMP (Ben Webb) ===
     71 1. Aim of IMP:
     72  * Use structural information from any source (experiment, physics, statistics)
     73  * Information at different resolutions
     74  * Generate models at low, high, or mixed resolution
     75  * Obtain the set of all models that are consistent with the input data
     76 1. Satisfaction of spatial restraints
     77  * Representation of a system
     78  * Scoring function
     79  * Optimization/sampling
     80 1. Example: nuclear pore complex
     81  * Optimizing individual protein positions (500 proteins)
     82  * Information:
     83   * Low-resolution information
     84   * Protein interactions
     85 1. Example: 26S proteasome
     86  * Information:
     87   * EM density map
     88   * Some model information
     89   * Gross (very low resolution)
     90 1. Design
     91  1. Small Kernel + modules
     92   * Kernel provides some basic C++ classes, utility functions, and a set of abstract bases
     93   * Modules provide the bulk of the functionality
     94   * Sali lab provides the kernel and a basic set of modules
     95  1. Kernel
     96   * Encodes for:
     97    * Representation
     98     * Particle class provides data storage for the system
     99     * Each Particle object is simply a hash of key/value pairs
     100      * values can be integers, floats, strings, or pointers to Particles
     101      * Keys can be added or removed at runtime
     102      * Eash Particle is an independent hash
     103     * Model object is a simple contains of Particles (plus Restraints and ScoreStates)
     104     * e.g. a Model may contains particles with:
     105      * x,y, z float attributes
     106      * x,y,z and R float attributes
     107      * particle 1 and particle2 pointer attributes (bonds)
     108     * Particle access is usually through Decorators which:
     109      * wrap Particles
     110      * provide convenient interface
     111      * add runtime checks
     112      * provide a runtime class hierarchy
     113     * e.g. a Particle with x,y,z keys can be wrapped by an XYZDecorator
     114     * e.g. a Particle wrapped by a ResidueDecorator could provide residue information
     115    * Scoring
     116     * Most simply, the Restraint abstract class takes a set of Particles and returns:
     117      * a score
     118      * first derivatives w.r.t. Particle atttributes
     119     * Known structural information is encoded as implementations of Restraint
     120     * ScoreState class allows for derived system state information
     121     * Building blocks
     122      * UnaryFunction: return the score & derivative of the input w.r.t. some function
     123      * PairScore: given two Particles, return some pairwise score & derivatives between them
     124      * PairsRestraint: apply a PairScore to each of a list of Particle pais
     125     * Example: combine Harmonic UnaryFunction with DistancePairScore to enforce a simple distance restraint
     126   * Optimization
     127    * Floating-point Particle attributes can be marked as 'optimizable'
     128    * The Optimizer class
     129     * Takes a Model as input
     130     * Modifies the optimizable attributes to give the best score
     131     * Yields the final Model state
     132  1. IMP modules
     133   * Modules provide useful functionality such as
     134    * General purpose optimizers (e.g. conjugate gradients, steepest descent)
     135    * Building block restraints
     136    * Support for certain representations
     137    * Special purpose optimizers (e.g. molecular dynamics, inference)
     138    * Interfaces to other packages (e.g. import of homology-derived restraints from Modeller)
     139    * Implementations of restraints for specific kinds of structural data (e.g. SAXS, EM, proteomics)
     140    * Specific applications, e.g. docking
     141   * Use defined interfaces in the IMP kernal
     142   * Can be implemented in C++ or Python
     143   * Live in their own IMP.foo namespace
     144   * Can be part of IMP or maintained by other labs
     145   * Can be released under any license compatible with IMP's (LGPL like)
     146   * Wrapping
     147    * Kernel and module C++ code wrapped by SWIG
     148    * Resulting Python code very similar to the C++
     149 1. Compilation
     150  * Type 'scons'
     151  * Required dependencies: a C++ compiler, SWIG, boost
     152  * Optional dependencies: Modeller, CGAL, our EM library
     153  * Should work with reasonably recent version of g++, MSVC and boost
     154 1. Interfaces with Chimera
     155  * Python frontend allows easy integration with other Python-based packages
     156  * e.g. a Chimera extension can simply "import IMP"
     157  * Alternatively
     158   * can generate IMP inputs and run IMP in a separate process
     159   * can read IMP outputs for visualization
     160  * For loose integration in future, could use the same web server interface framework proposed for ModWeb, ModLoop, etc.
     161
     162=== Discussion ===
     163 * Chimera is interactive, IMP is not necessarily
     164 * Is there a benefit to monitoring an IMP run?
     165  * Depends on the application
     166   * NPC was very iterative
     167  * Might definitely need user interaction during the optimization
     168  * Biggest category is to have Chimera "check in" on results during optimization
     169  * If you can visualize the current state of the system, you can change position with Chimera
     170   * Guide be used to move things out of a local minimum
     171 * Can Chimera be used to setup the constraints/restraints?
     172  * Could use sequence conservation, etc.
     173  * Chimera could be to prepare the information for an IMP job
     174 * Chimera <--> IMP: Visualize IMP representation directly in Chimera (translator)
     175  * Can IMP output an XML-based format?  Not yet, but it should be relatively straightforward
     176
     177== February 24, 2009 ==
     178
     179=== Introductions ===
     180
     181=== Background ===
     182 * Goal: leverage work going on in each lab to "make something that is more than the sum of the independent parts"
     183 * History: past attempts have never come together
     184 * Tom and Andre started a renewed conversation to establish the collaboration
     185
     186=== Demo ===
     187 * Chimera and model evaluation
     188  * Using Render By Attribute to show Modbase error profile (using B-Factor)
     189  * Question: How does "Render by Attribute" work when you don't have atoms or residues?
     190   * Answer: Currently it doesn't.  Probably something to look at -- how to set up an equivalent mechanism for low-resolution structures?
     191     * Perhaps we could use volume tracer pseudo-atoms (markers) with render-by-attribute?
     192  * Question: Can you make worms transparent?
     193   * Answer: You should be able to...
     194  * Question: in molmap, could you set the threshold such that the volume within the mesh is a certain value.
     195   * Answer: The underlying code would support that, but there is no UI, yet.  You can also report the volume as you adjust the threshold (which would be an adequate approach)
     196  * Restraints
     197   * One solution would be to extend the structure measurements tool (or use something similar)
     198   * How would you visualize restraints involving multiple atoms?
     199    * Structure/volume violations
     200    * Chimera can detect several restraint violations already
     201    * One solution might be to combine restraints and then plot the first derivative
     202    * Chimera's new 2D plotting library might be used for constraints that are not spatially correlated. 
     203    * Spatially correlated constraints could be plotted using "normal mode"-style arrows (currently can be done using bild).
     204     * Getting an interface to do this interactively would be useful
     205    * Can the tracer pseudo-atom XML file add new attributes?
     206    * TODO: enhance markers (tracer pseudo-atoms) to support user-defined attributes.
     207  * Ensembles
     208   * EnsembleCluster
     209    * Question: Can EnsembleCluster be used for points in space rather than molecules?
     210    * Answer: Yes, if you read them in as atoms.  Might also be able to to use markers.
     211    * TODO: enhance markers to be used by EnsembleMatch
     212    * Suggestion: How to represent objects that represent structures, but are not atomic resolution?
     213     * Maybe this is one area groups could work together to define standards
     214     * Currently Chimera uses model, residue, atom as it's hierarchical nomenclature.  Would be useful to support additional nomenclature hierarchies that might represent lower resolution structures and other "weird" representations.
     215  * Animations
     216   * Continuing to enhance our command set
     217   * No time-line based UI as of yet
     218   * Tom's animation example...
     219
     220=== Specific Applications ===
     221 * Multifit - Keren Lasker, Tom Goddard
     222  * fit multiple proteins in EM maps with steric clash handling.
     223  * Illustration [http://www.cgl.ucsf.edu/home/goddard/temp/1z5s/1z5s.html Chimera & MultiFit]
     224  * Interface looks easily tractable, but there will need to be work to develop a general mechanism to support stand-alone runs without freezing Chimera
     225 * SAXS - Dina Schneidman
     226  * using small angle x-ray scattering as a modeling constraint
     227  * want interactive 2-d plot of saxs curve and model display
     228 * 2-d EM micrograph restraints - Javier Velazquez-Muriel
     229  * use 2-d EM micrographs as modeling restraint
     230  * can Chimera project simulated maps from models and correlate 2-d maps?
     231 * ModWeb
     232=== Discussion ===
     233 * What is the best way to interface between Chimera and other programs?
     234 * One initial possibility would be to use readStdin, but use it "in reverse"
     235  * Applications: MultiFit, projecting 3D models to 2D, SAXS 2-d plots.
     236    * Our issues aren't with the simpler algorithms, the time consuming part is the user interface
     237    * Where we need algorithmic help is in more complicated algorithms (e.g. MultiFit)
     238  * TODO: improve 3D to 2D projection capabilities
     239  * TODO: Andre and Tom -- discuss supplemental funding proposal
     240 * Web server interface
     241  * In the process of building Chimera infrastructure to support asynchronous requests to web servers, including saving and checking on session state.
     242  * TODO: include Hau, Dina, and Karen with meeting with John Irwin to talk about web services implementation
     243  * TODO: think about including Chimera<-->ModWeb functionality.  Include Ben and Ursula in John Irwin meeting?
     244   * Key exchange would be the blocking point -- perhaps we could implement a Chimera interface that could be used to get the key automatically
     245
     246=== Moving Forward ===
     247 * Meet every two weeks, but focus on a specific area and advertise the topic in advance.
     248 * Keep content on wiki -- ChIMP project (Chimera-IMP)
     249
     250
     251
     252