From: Eric B. <er...@pi...> - 2018-04-02 23:00:13
|
Hi Tyler, I know you didn't ask this, but regarding the different implementations, I'll implement them and try them out. In general, I think that assuming performance doesn't vary too wildly, we're more interested in implementations that are close to the original intent (the equations), thought the "fast" one seems reasonable. A better timing test would compare both small molecules and very large ones, like MOFs or proteins, using `timeit`. > should one calculate all bonds, angles, dihedrals automatically, or should the code simply return specific bonds/angles/dihedrals that are requested by the user (or both)? What I propose is a new method (see https://github.com/cclib/cclib/tree/master/src/cclib/method) that would take a `ccdata` instance and calculate all possible distances, angles, and torsions. In general, when we parse, we don't compute derived data; the only things we compute are quantities for attributes _if_ they can be computed from other attributes. The need for this is rare (see trickery for `coreelectrons` in Q-Chem). Once the `ccdata` is passed to the method, it is probably fine to precompute all values rather than on-the-fly, but this is not as important as keeping the calculation separate from the parsing. Eventually we could do both. See if you can write a method that would basically look like the `Molecule` but is initialized from a `ccdata` instance. Eric On Mon, Apr 2, 2018 at 10:10 AM, Tyler Josephson <jos...@um...> wrote: > Thanks, Eric, this is helpful! > > I did find a useful and simple implementation of dihedrals in Python on > this page: https://stackoverflow.com/questions/20305272/dihedral- > torsion-angle-from-four-points-in-cartesian-coordinates-in-python > <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F20305272%2Fdihedral-torsion-angle-from-four-points-in-cartesian-coordinates-in-python&data=01%7C01%7Cerb74%40pitt.edu%7C0cb5cf0f698b4584176e08d598a3a50c%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=LRIupf4KL2vU2HJH0SuJpkEdUie0rUOiSgEGq61VZv0%3D&reserved=0> > I especially like Praexolitic's careful evaluation of the different > equations in order to select the fastest one. > > For my current application, I added this in a rather ad-hoc manner to a > copy of the ccget script, calling it from within an if statement to be > executed when attr == 'atomcoords' . So I have what I need for now. I would > be interested in helping add this to cclib in a more formal way. After > seeing your code, I realize the community should probably have a discussion > about what this should entail and how it should be organized - should one > calculate all bonds, angles, dihedrals automatically, or should the code > simply return specific bonds/angles/dihedrals that are requested by the > user (or both)? > > What would you recommend? I'm rather new to collaborative code development. > > Regards, > Tyler > > > > On Sun, Apr 1, 2018 at 10:09 PM, Eric Berquist <er...@pi...> wrote: > >> Hi Tyler, >> >> Nothing is present right now in the package to do that, though it may be >> a useful method in the future. >> >> For reference, if you're looking for the expressions, I've coded up >> distances, torsions, and angles in the past from this project: >> https://github.com/CrawfordGroup/ProgrammingProject >> s/tree/master/Project%2301 >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FCrawfordGroup%2FProgrammingProjects%2Ftree%2Fmaster%2FProject%252301&data=01%7C01%7Cerb74%40pitt.edu%7C0cb5cf0f698b4584176e08d598a3a50c%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=RVJgFfkFGATY7cQmozjV8zYWZuCOa2KWhxYBE5l3uC8%3D&reserved=0> >> >> Some of it is available (https://github.com/berquist/p >> rogramming_party/blob/master/eric/molecule.py >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fberquist%2Fprogramming_party%2Fblob%2Fmaster%2Feric%2Fmolecule.py&data=01%7C01%7Cerb74%40pitt.edu%7C0cb5cf0f698b4584176e08d598a3a50c%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=rHZe4h49qc4HM3Tow2VMDdfHYm9hWxlLEBr58Kk5zL4%3D&reserved=0>), >> though the torsions aren't present for some reason. I can find them if >> you're interested. >> >> Eric >> >> On Sat, Mar 31, 2018 at 7:14 AM, Tyler Josephson <jos...@um...> >> wrote: >> >>> Hi there! >>> >>> I'm new to cclib, and enjoying it so far! It's a powerful tool. I wanted >>> to ask the community if you've worked on functions that would extract >>> particular distance, angle, or dihedral measurements (I need dihedrals for >>> my particular problem). I could read in the atomcoords and calculate them >>> myself, but I wanted to check if something else is available. >>> >>> Regards, >>> Tyler >>> >>> -- >>> Tyler Josephson >>> PhD Chemical Engineering >>> Postdoctoral Research Associate, Siepmann Group >>> University of Minnesota, Twin Cities >>> 651-269-1433 | | LinkedIn >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Ftrjosephson%2F&data=01%7C01%7Cerb74%40pitt.edu%7C99323476a9ec40b3fa1d08d596fb6271%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=bqoJnaPbbc1W%2BSq81RrBgbARpQHFmXsemHI2Sbi9eiY%3D&reserved=0> >>> >>> ------------------------------------------------------------ >>> ------------------ >>> Check out the vibrant tech community on one of the world's most >>> engaging tech sites, Slashdot.org! https://na01.safelinks.protect >>> ion.outlook.com/?url=http%3A%2F%2Fsdm.link%2Fslashdot&data=0 >>> 1%7C01%7Cerb74%40pitt.edu%7C99323476a9ec40b3fa1d08d596fb6271 >>> %7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=9ijts%2FUMc6h6 >>> 5RYv2EYB3lVuEHgIjuFVLInwZ3z1SKI%3D&reserved=0 >>> _______________________________________________ >>> cclib-devel mailing list >>> ccl...@li... >>> https://na01.safelinks.protection.outlook.com/?url=https%3A% >>> 2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fcclib-devel& >>> data=01%7C01%7Cerb74%40pitt.edu%7C99323476a9ec40b3fa1d08d5 >>> 96fb6271%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata= >>> vtaWqxXdaJ13NDCnSkApw%2FCihxRwbWBxJK9fDfK%2FpeY%3D&reserved=0 >>> >>> >> > > > -- > Tyler Josephson > PhD Chemical Engineering > Postdoctoral Research Associate, Siepmann Group > University of Minnesota, Twin Cities > 651-269-1433 | | LinkedIn > <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Ftrjosephson%2F&data=01%7C01%7Cerb74%40pitt.edu%7C0cb5cf0f698b4584176e08d598a3a50c%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=qV%2BEiuoXrqlCNf9K8scXONaMiRvip5fImikj%2BYFdalc%3D&reserved=0> > |