Wiki

Clone wiki

bio3d / To do list

Version 2.3 [devel]

Version 2.2 [released]

Version 2.1 [old]

Towards version 2.3 and beyond

Outstanding

  • Integrated structure visualization with rgl using the recently prototyped view.*() family of functions [Julien & Barry]
  • The convert.pdb() function could and probably should be made more robust and useful [open]
  • Improve cross-platform and CRAN testing features - all new functionality should have tests [all]
  • New functionality for Perturbation-Response Scanning (PRS) analysis based on linear response theory [Xinqiu]
  • SCOP database searching, annotation and ASTRAL PDB file retrieval [Andrew & Barry]
  • Add ability to further annotate plot.bio3d() margin.segments with domain structure as in plot.dccm(). See Issue #146
  • Add code for optional 'fancy' SSEs to plot.bio3d() and new plot.fluct()
  • Consider merging plot.bio3d() and plot.fluct() in future
  • Enhanced cnapath() taking multiple source/sink nodes as input (to calculate paths when source/sink is not single residue but a subset of residues belonging to ligand binding sites) [Xinqiu] done
  • Enhanced plot.dccm() for more flexible cross correlation presentation [Xinqiu] (temporarily done under new_funs/)
    • support "upper" and "lower" triangular plot
    • support customized x and y axis tick labeling
    • support post-plotting sse/segment annotation with the new functions add.sse() and add.segment() (See below)
    • better control of 'outer' and 'inner' box drawing
  • New functions for SSE/segment annotation on existing plot, add.sse() and add.segment() [Xinqiu] (temporarily done under new_funs/)
    • Currently only support 'lattice' plot and classic 'SSE'

In Progress

  • Improve functionality for visualizing NMA results in VMD e.g. (1) a function to generate a pymol script to visualize cross correlation, (2) function 'view.nma' to open vmd or pymol to visualize modes (wrapper for mktrj.pca/nma). [Lars & Barry]
  • Tidy up codes related to parallelization [Xinqiu]
    • Write a generic function for multicore setup, setup.ncore() [done]
    • Set mc.cores=XX explicitly for every mclapply() call to avoid *resetting* of user specified ncore (see issue) [Xinqiu]
    • Remove the treatment for serialization problem (on feature_para branch)
    • Optimize functions operating on large data, e.g. fit.xyz(), rmsd(), etc., with big.memory package; This will potentially solve heavy load problems in memory sometimes happening with ncore>>1 (feature_para)
    • Nicer message print with ncore>1: Disaply progress bar instead of detailed information when ncore>1 (feature_para)
  • Add TMalign - temporary version in "new_funs" [Lars]
  • Functions to read and parse Amber files (see branch feature_amber) [Lars]
  • Functions to import all-atom NMA 'vecs' files from Amber (or nab) [Lars]
  • HMMER sequence search capabilities ( plot.hmmer() needs attention ) [Lars]
  • Improve function names [all]
    • filter.dccm -> dccm.filter done
  • Side chain torsional angle mutation information calculation [Xinqiu & Shashank]
  • Functions to calculate and plot SSE data for a xyz matrix (e.g. from MD simulation) [Xinqiu]
  • Updates and refinements of biounit() function.
    • More control on the biounit() function return value, e.g. only the units determined by authors (author.only=TRUE), the units contain certain chains (chain=XXX), oligomeric state (n=X), save copies as multiple xyz models instead of generating new chains (multi=TRUE), etc.
    • A class assigned to the return value, e.g. 'biounit'?
    • Associated print.biounit() or summary.biounit() for quickly peeking at the object
    • Update read.pdb(..., biounit=TRUE) to call biounit() and return biological units (After more testing of biounit() function) [Xinqiu]
  • Check functions for their consistency with the two types of definition for "empty" SSE (See comments in this commit): [Xinqiu & others]
    • If is.null(pdb$helix), the annotation is missing.
    • If !is.null(pdb$helix) and length(pdb$helix$start)==0, the annotation is complete but there is no helix.
  • Improvement on clean.pdb() [Xinqiu]
    • suggestions are welcomed to write here

Future

  • GPU support [open]
  • Optimize for performance - check package 'compiler'? [open]
  • SNP and disease mutation mapping [Hongyang]
  • Free energy calculation and plotting with properly selected reaction coordinates (see issue 93) [Open]
  • Consider adding a atom.select.pdbs() function (see issue 212)

--------------------------------------

Towards version 2.2

Done (version 2.2)

  • Pass all local and CRAN 'R CMD CHECK' tests without NOTES or WARNINGS [all]
    • Pass windows build test
    • Update html docs and post online
    • Build manual
    • Check/update all vignette PDFs and upload new PDB vignette to website
  • Lower down precision tolerance in all test functions for CRAN [Xinqiu]
  • New clean.pdb function for producing 'cleaned' PDB objects [Xinqiu] done
    • return 'log' instead of 'clean.log'
    • use 'data.frame' for the log
    • verbose=FALSE by default
  • new introductory PDB vignette [All] [done]
  • aa.table data file for amino acids mass and 3:1 name conversion [Lars] [done]
  • biounit construct the biological unit [Xinqiu] [done]
    • read REMARK records from a 'pdb' object (coordinate with updated read.pdb()) done
  • cat.pdb to combine two or more PDB files [Xinqiu, Lars] [done]
  • ATOM.only option in read.pdb(), store all info including REMARK in 'pdb' if ATOM.only=FALSE [Xinqiu] done
  • s3 generic functions for pdbfit, core.find, and geostas [Lars] [done]
  • plot and print geostas results [Lars] [done]
  • as.pdb to build a PDB object from vectors [Lars] [done]
  • Provide mass weighting option in pca.xyz() [Lars & Xinqiu] [done]
  • New improved plot.cmap() function [Lars] [done]
  • Sub-optimal path analysis in correlation networks function cnapath [Xinqiu, Guido & Barry] [done]
  • General atom.select() improvements. Including implementing more keywords and speed improvements [Lars] [done]
    • atom.selection(): make '& I !' combination options more accessible. [Lars] [done]
  • Spline option in view.cnapath() to draw all paths explicitly [Xinqiu] [done]
  • Use "parallel" package and mclapply() rather than previous parallelization scheme [done]
  • Improvement of is.gap() function for matrix/alignment/vector TRUE/FALSE gap inspection (a more simple approach to using gap.inspect() [Barry] [done]
  • Improvement of plot.pca() allowing PC1-PC2 and overview plot with better annotation [Barry] [done]
  • Improvements to plot.bio3d() SSE annotation for added robustness with multi-chain systems [Barry] [done]
  • Add SSE storage to read.fasta.pdb() and make consistent with dssp.pdbs() [Barry] [done]
  • basename.pdb simple utility function for simplifying working with PDB file names [Barry] [done]
  • Add conservation line to output of print.fasta() [Lars] [done]

--------------------------------------

OLD: [Towards version 2.1]

FINISHED

  • Add vignettes for 'intro', 'pdb/pca' [Barry & Xinqiu] done
  • Prototype structure visualization with rgl [Julien] done
  • Modify the plot.blast() function to warn before attempting to cluster "lots of hits" (i.e. 1k+) as this will take a long time [done]
  • Update website with new html docs, package source/binaries, and vignettes [Barry & Xinqiu] done
  • Incorporate specific test functions that can run on windows, linux and mac [all] done
  • Add cna() functions: Correlation Network Analysis, which is Basically consensus dynamical network analysis (clustering Cij, and incorporation of network analysis and plotting methods) [Guido & Barry] done
  • Improve functionality for visualizing NMA results. e.g. (1) a function to generate a pymol script to visualize cross correlation, (2) function 'view.nma' to open vmd or pymol to visualize modes (wrapper for mktrj.pca/nma). [Lars & Barry] done
  • Functions to import all-atom NMA 'vecs' files from Amber (or nab) [Lars]
  • Tidy up codes related to parallelization [Xinqiu] done
    • Write a generic function for multicore setup, setup.ncore() done
    • Remove the treatment for serialization problem (on feature_para branch)
    • Adapted to "parallel" package and use mclapply() exclusively (feature_para)
    • Optimize functions operating on large data, e.g. fit.xyz(), rmsd(), etc., with big.memory package; This will potentially solve heavy load problems in memory sometimes happening with ncore>>1 (feature_para) done
    • Nicer message print with ncore>1: Disaply progress bar instead of detailed information when ncore>1 (feature_para) done
  • Add TMalign - temporary version in "new_funs" [Lars]
  • Functions to read and parse Amber files (see branch feature_amber) [Lars]
  • HMMER sequence search capabilities [Lars] done
  • Improve function names [all]
    • pca.project, pca.tor, pca.z2xyz [see issue #101] done
    • filter.dccm -> dccm.filter done
  • PDB $atom component migration to data.frame [Barry & others] done
  • Add vignettes for 'install', 'nma', 'md' [done].
  • Add demos for major package features - pca, nma, pdb, md [done]
  • Resolve the Windows problems [Xinqiu] done
  • Parallelization with multicore package [Xinqiu] done
  • Multi-model support for PDB (read.pdb, split.pdb, get.pdb) [Lars] done
  • New function, binding.site [Lars] done
  • New function, read.mol2 [Lars] done
  • New function, aln2trj (find indices correspondence between alignment and trajectory) [Xinqiu] done
  • Fix plot.bio3d(x, sse=stride(pdb)) bug/error when there are no sheet or helix elements present [Barry] done
  • Change name of aln2trj() to pdb2aln(). [Xinqiu] done
  • Normal Modes Analysis (C-alpha elastic network model) [Lars] done
  • NMA: Correlation matrix, Fluctuations, and overlap analysis [Lars] done
  • consider changing the function name identity? [open] done
  • Add various summary and print functions [Barry] done
  • New function for custom report generation for PDB annotation [Hongyang] done
  • Add better instructions on how to contribute a new function via git/bitbucket for new developers. [Barry] done

Updated