pren / poltype

POLTYPE: AMOEBA parametrization tool
https://pren.github.io/poltype
Other
4 stars 11 forks source link

add back support for two amino acids being connected (modifedresidue.py) #55

Open misterbrandonwalker opened 3 years ago

misterbrandonwalker commented 3 years ago

also support multiple modified amino acid residues

D16ERG commented 3 years ago

Dear all,

What is the most appropriate medium for discussing question regarding POLTYPE? In my particular case; Poltype itself seems to be working fine. Because of this; I am hesitant to open up a new issue on GitHub.

The current difficulty I would like to discuss; concerns the handling of missing torsions. According to past documentation, missing torsions can be fitted using torsfit. Unfortunately torsfit only accepts gaussian09 input files. Since I do not have access to Gaussian; I have only been able to zero out the values in torsionsmissing.txt to obtain final coordinate and parameter files. I presume such parameterizations are inaccurate because of the latter zeroing out procedure. Is there any other way to obtain the missing torsions using psi4?

misterbrandonwalker commented 3 years ago

Hello,

You can open a new issue if you would like. I am not familiar with any "torsfit" option. This maybe was from original poltype (not poltype 2)? Poltype 2 has a robust method for determining what is a "missing torsion", (see the docs on poltype2 branch for more details). However there is also a user input option (kinda redundant) to specify specifics bonds or rotate all possible bonds and derive torsion parameters. The file "torsionsmissing.txt" will indicate which torsions will have their parameters zeroed out in key_4, then after doing QM and using parameters from key_4, the energy difference between QM and MM is used to fit new parameters in .key_5 which will eventually move to final.key.

On Wed, May 12, 2021 at 2:59 PM D16ERG @.***> wrote:

Dear all,

What is the most appropriate medium for discussing question regarding POLTYPE? In my particular case; Poltype itself seems to be working fine. Because of this; I am hesitant to open up a new issue on GitHub.

The current difficulty I would like to discuss; concerns the handling of missing torsions. According to past documentation, missing torsions can be fitted using torsfit. Unfortunately torsfit only accepts gaussian09 input files. Since I do not have access to Gaussian; I have only been able to zero out the values in torsionsmissing.txt to obtain final coordinate and parameter files. I presume such parameterizations are inaccurate because of the latter zeroing out procedure. Is there any other way to obtain the missing torsions using psi4?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pren/poltype/issues/55#issuecomment-840057993, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKNB26OHQ72HH6DQF76CYMDTNLMZLANCNFSM4S2CIH4A .

D16ERG commented 3 years ago

Dear Brandon,

Thank you for your fast reply, I will have a go at parameterizing 1,3-cyclohexadiene with the latest revision of Poltype2. If I cannot resolve the issue myself I will open up a new issue on the GitHub page. In past revisions of Poltype (from february 2021) I experienced value errors with all zero-values for some particular torsions. In past documentation*, torsfit was mentioned for fitting missing torsions.

Torsfit itself is an external program which is part of the Tinker suite. Like Poltype2, torsfit is used to fit QM data to MM parameters.

Kind regards,

Didier

jayponder commented 3 years ago

Hi, The use of TORSFIT is unsupported at this point. The paper you cite above is from 2011, and lots of things have changed over the past decade :)

As Brandon says, you should use his recent version of "POLTYPE2", which has automated torsion fitting built in. At some point I may try to revive a standalone TORSFIT program within Fortran Tinker 8, but it's not a very high priority at the current time.

misterbrandonwalker commented 3 years ago

Changes within the last few weeks have been made to the area of code that deals with which torsions are "missing". We have an option to fit poorly transferred torsion to non-aromatic rings (which will occur by default), however this only works with the fragmenter module turned on, to chop the ring and allow torsion parameters to be derived. Right now, default behaviour is only use if >25 atoms in system. So I tested on on a molecule <25 atoms with non-aromatic ring, and old commit tries to determine torsion as missing, but this has been corrected to only work when fragmenter is enabled.

The molecule you mentioned may be a special case not covered 100% when missing torsion parameters. At the moment poltype doesnt distinguish between partially aromatic rings with some non-aromatic atoms on the ring, it only looks to see if any aromatic atoms are in the ring. If any aromatic atoms are found, and a torsion on the ring is "poorly transferred", (we have a rule that says use SMART string with 4 atoms of torsion + all neighbors in database for good transferrability), then we will transfer benzene parameters by default for the torsion. That would not be "correct" for part of the ring that has some puckering (the non-aromatic torsion) on your ring.

On Wed, May 12, 2021 at 4:04 PM Jay Ponder @.***> wrote:

Hi, The use of TORSFIT is unsupported at this point. The paper you cite above is from 2011, and lots of things have changed over the past decade :)

As Brandon says, you should use his recent version of "POLTYPE2", which has automated torsion fitting built in. At some point I may try to revive a standalone TORSFIT program within Fortran Tinker 8, but it's not a very high priority at the current time.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pren/poltype/issues/55#issuecomment-840095139, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKNB26KX2WXEVRJMVVCQQ4LTNLUMJANCNFSM4S2CIH4A .

D16ERG commented 3 years ago

Would it matter if I overruled the fragmenter and simply added isfragjob=True in poltype.ini?

misterbrandonwalker commented 3 years ago

So the isfragjob flag mostly only serves to indicate whether the molecule should try to fragment it self (so not repeatedly fragmenting forever). You can check out the results yourself and investigate if you would like, however I will take a look tomorrow. This will require some adjustments to handle cases of rings with partially aromatic torsion.

As a side note / reminder for anyone else reading. This program has been in development for a long time. That does not mean however that if it does not crash that every parameter assignment is reasonable. We are only starting to do large scale testing and I'm still finding new issues constantly. I provide comments in key files to help reader understand where parameters are coming from to check themselves if they are being transferred "reasonably". To some extent may require experience to understand subtle details but the rule of thumb is simply the more similar the molecule parameters being transferred are to the input molecule, the more transferring they will be. Comments in key file tell you where parameters come from.


From: D16ERG @.> Sent: Wednesday, May 12, 2021 5:22:16 PM To: pren/poltype @.> Cc: Brandon Walker @.>; Author @.> Subject: Re: [pren/poltype] add back support for two amino acids being connected (modifedresidue.py) (#55)

Would it matter if I overruled the fragmenter and simply added isfragjob=True in poltype.ini?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/55#issuecomment-840132533, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKNB26P4WSBB36LJHJNOEY3TNL5RRANCNFSM4S2CIH4A.

misterbrandonwalker commented 3 years ago

Okay, I tested your molecule and I have basically made it so poltype transfers alkane parameters for when b-c (in a-b-c-d) is non-aromatic and benzene parameters when b-c is aromatic bond, this is probably safer then matching very stiff parameters for the part of ring that was a bit more flexible. I will add more documentation within a few days.