From: Karol L. <kar...@gm...> - 2018-04-03 07:17:20
|
Hi guys, This is a good idea - let's create a GitHub issue for it lest we forget about it. This has come up in the past when we talked about having Z-matrices. I guess that would be the next step. Regarding the coordinate-to-angle calculations - they'll be so fast for 99% of the cases that it's not worthwhile to think about calculating things on-the-fly. - Karol On Mon, Apr 2, 2018 at 3:44 PM, Eric Berquist <er...@pi...> wrote: > 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%7C99323476a9ec40b3fa1d08d596 >>>> fb6271%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1&sdata=vtaWqxXd >>>> aJ13NDCnSkApw%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> >> > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > cclib-devel mailing list > ccl...@li... > https://lists.sourceforge.net/lists/listinfo/cclib-devel > > |