Title: Vida, Visualization and Visions
1Vida, Visualization and Visions
Jon Christopher Kevin Schmidt OpenEye Scientific
Software Sunday February 29, 2004
2Where we came fromThe original plan for VIDA
- Designed as a small molcule visualization
application - Focused on large numbers of molecules
- OpenEye's entry into visualization
- Lots of effort by Joe
3What happened Why VIDA has had problems
- VIDA began to be used more widely
- Feature creep - or how we blame the customers
- As VIDA grew, people wanted more
- VIDA began to do things outside of the original
plan - Relied heavily on OELib
- Upgrade was going to be long and difficult
4What happened cont.
- New stewardship of VIDA meant some new issues
- VIDA grew outside its goals and design
- As more features were shoe-horned in, problems
grew - VIDA became large and fragile.
5So now what?Why hasn't there been a new
release?!
- Needed a strong visualization and application
framework - Needed to be OEChemplete
- Make it easier to control development
- Easier to add (and remove) features
- Divide it up into workable parts
6So now what? cont.
- Needed to refocus VIDA back to small molecules
- Building other visualization applications
- Application front ends
- Protein visualization
- Modelling
- Make it STABLE
7No, really, what have you been doing?Enough
talk!
- The OpenEye visualization and application
framework - OEgg A new graphics library
- OEDepict A 2D depiction library
- OERepository A molecule database
- OEInterpreter An extensible python iterpreter
- OEMessageBoard A way for everyone to talk nicely
- Kernels Provides access to the above and to a GUI
8Put these together...So what?
- Combine the previous parts with visualization
modules to make an application - 3D, 2D viewers
- List browsers
- Modelling modules
- Python Interpreter
- More..
9Why this is goodWhy is this good?
- Easier to manage a few smaller parts than one
massive piece - Can easily extend any application
- Can share parts between applications
- Makes development easier
- Makes the application stable
10(No Transcript)
11AFITT Advanced Fitting Tool
- Bring OE Expertise to bear on Crystallography
- 2-year partnership with 5 industry partners
- Project kickoff at CUP IV
- Features
- OEChemplete (handles small molecules well)
- Based on OEVidafitt kernel
- Python scriptable
12(No Transcript)
13AFITT Modeling Featureswhat does it do?
- All the standard stuff
- Rotations, translations, rotamer library,
append/prepend residue, mutate, etc. - Stuff you wish was standard
- Structure Generation SMILES to 3D
- Refinement constraint generation
- Ligand fitting
- MMFF -based geometric refinement
14A little Python on the side
import oechem import oerepo import
oeomi _smilesMoloechem.OEMol() def
GenerateFromSmiles(str) global _smilesMol
genoeomi.OEFF3DGenerator()
oechem.OEParseSmiles(_smilesMol, str)
gen(_smilesMol) oerepo.OERepoAddCopy(_smilesMo
l.SCMol()) GenerateFromSmiles(PromptStrin
g())
15A little more Python
def LoadPDB(id) if (id "") return
import httplib print "Contacting www.rcsb.org"
connhttplib.HTTPConnection("www.rcsb.org")
conn.request("GET", "/pdb/cgi/export.cgi/" id
".pdb?formatPDBpdbId" id) r1
conn.getresponse() if r1.status 200
datar1.read() if len(data) gt 0
conn.close() fopen(id ".pdb", "w")
f.write(data) f.close() Open(id
".pdb") else raise IOError, "PDB id
not found" AddButtonToMenu(File", "Open from
PDB", 'LoadPDB(PromptString("Enter PDB id"))')
16Keeps on slithering
def GetCompound(registryNumber) dbcConnectToCor
porateDatabase(yourdatabase) sqlselect smiles
from compounds where regnums dbc.sth.execute(s
ql, registryNumber) comdbc.sth.fetchone() if
(com!None) GenerateFromSmiles(com) AddButtonTo
Menu(File", "Open from DB", 'GetCompound(PromptS
tring("Enter registry number"))')
17The not-so-distant future
- Loop construction
- More refinement options
- More QC
- Database integration
- Sequence/homology modeling?
- Residual density analysis