You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Requested features and ideas that have been floating around.
Each of them makes an interesting and useful scientific programming project.
French-Wilson method
It has been requested a few times over the years. Popular implementations of F-W (truncate, ctruncate, cctbx, XDSconv) differ in details, as mentioned here (I haven't found a comparison of all the implementations). In recent years new implementations were written: in STARANISO, reciprocalspaceship, Servalcat.
DSSP
A classical method of assigning secondary structure, published by Kabsch and Sander in 1983. Either implementing it from scratch or porting one of the existing implementations. Here are all implementations that I've found:
dssp in C++, license BSD-2, with minor improvements to the original method, associated with PDB_REDO,
gmx-dssp – for GROMACS, C++, LGPL (incompatible license!), from 2023, reported to give the same results as the first one.
SASA
Calculating solvent-accessible surface area. There are different methods; I don't know how they differ. We'd need to check what is used in Pymol, BioPython, MDTraj, DSSP, FreeSASA, dr-sasa, etc.
new parser libraries
Evaluate newer parser libraries. I've been happy with PEGTL; it's been a much better experience than using Boost.Spirit. I wrote Gemmi's CIF parser around 2017 using PEGTL and it's still the fastest open-source CIF parser. Since then, a few other C++ libraries have emerged: lexy which is inspired by PEGTL, Boost.Parser which is a newer alternative to Boost.Spirit, and some others. Lexy is interesting because it comes with benchmarks. But I won't have time to try it out anytime soon.
PyMOL-like selection syntax
This has been proposed several times by different people. We use the selection syntax from MMDB (a.k.a CID) which is also used by Coot and some CCP4 programs. However, many users strongly prefer chain A and resname HIS over //A/(HIS)/. It's unfortunate that each program (PyMOL, Chimera, VMD, cctbx, ...) uses different syntax. I don't have a strong preference; PyMOL is proposed here because it seems to be more widely known than other programs. Note that a new selection would not fit into gemmi's current Selection class. The CID selection is simpler, it is matched separately for each level of the model-chain-residue-atom hierarchy (no boolean operators). I suppose a PyMOL-like selection would require a tree.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I'll edit this post if anything changes.
Requested features and ideas that have been floating around.
Each of them makes an interesting and useful scientific programming project.
French-Wilson method
It has been requested a few times over the years. Popular implementations of F-W (truncate, ctruncate, cctbx, XDSconv) differ in details, as mentioned here (I haven't found a comparison of all the implementations). In recent years new implementations were written: in STARANISO, reciprocalspaceship, Servalcat.
DSSP
A classical method of assigning secondary structure, published by Kabsch and Sander in 1983. Either implementing it from scratch or porting one of the existing implementations. Here are all implementations that I've found:
SASA
Calculating solvent-accessible surface area. There are different methods; I don't know how they differ. We'd need to check what is used in Pymol, BioPython, MDTraj, DSSP, FreeSASA, dr-sasa, etc.
new parser libraries
Evaluate newer parser libraries. I've been happy with PEGTL; it's been a much better experience than using Boost.Spirit. I wrote Gemmi's CIF parser around 2017 using PEGTL and it's still the fastest open-source CIF parser. Since then, a few other C++ libraries have emerged: lexy which is inspired by PEGTL, Boost.Parser which is a newer alternative to Boost.Spirit, and some others. Lexy is interesting because it comes with benchmarks. But I won't have time to try it out anytime soon.
PyMOL-like selection syntax
This has been proposed several times by different people. We use the selection syntax from MMDB (a.k.a CID) which is also used by Coot and some CCP4 programs. However, many users strongly prefer
chain A and resname HIS
over//A/(HIS)/
. It's unfortunate that each program (PyMOL, Chimera, VMD, cctbx, ...) uses different syntax. I don't have a strong preference; PyMOL is proposed here because it seems to be more widely known than other programs. Note that a new selection would not fit into gemmi's currentSelection
class. The CID selection is simpler, it is matched separately for each level of the model-chain-residue-atom hierarchy (no boolean operators). I suppose a PyMOL-like selection would require a tree.Beta Was this translation helpful? Give feedback.
All reactions