julie-forman-kay-lab / IDPConformerGenerator

Build conformational representations of Intrinsically Disordered Proteins and Regions by a guided sampling of the protein torsion space
https://idpconformergenerator.readthedocs.io/
Apache License 2.0
19 stars 6 forks source link

Lack of extended secondary structure in conformers #123

Open SeanR22 opened 3 years ago

SeanR22 commented 3 years ago

Any secondary structure is extremely short. For example, helical segments, if present at all, seem to be limited to 1 turn.

The ability to define secondary structure propensity as an input parameter file with a build command flag is a much needed addition. For example, simply biasing torsion angles based on NMR chemical shift data should greatly reduce the conformational search space and result in more relevant output conformers.

Pools of chunks with different secondary structure content could be created if not already defined. The secondary structure propensity file would then define the frequency at which a chunk from each pool is selected. Simply being able to define regions of greater helix or strand propensity would be a great start.

Having the ability to turn this functionality on or off on a per residue basis would give the user the greatest freedom in generating conformers. For example, one could have a separate flag column in the secondary structure propensity input file that indicates if the torsion angles should be biased when adding chunks for a particular residue or group of residues.

Cheers!

joaomcteixeira commented 3 years ago

With the default parameters you have been using in #122, chunks are being grabbed only from Loop regions `-dr "L+". Some short alpha helices are captured as loops.

I haven't implemented yet the possibility to direct certain sequence regions to different secondary structures. Say, from residues 20 to 50 populate with 20% alpha helix. That is something we are looking forward implementing.

The code is prepared to extend the Loop functionality to also Helices or strands. Give me some days to properly implement it. It won't be the complete implementation to the requirements but will enhance the experience towards obtaining alpha helices.

Meanwhile, we can do some testing. Can you comment out line 501 in libs/libbuild.py

https://github.com/julie-forman-kay-lab/IDPConformerGenerator/blob/d2bc49951a80d41328f36f37fbd76881003f5029/src/idpconfgen/libs/libbuild.py#L501

and execute your runs with the following flag -dr "[L+H+]".

Let me know your results.

Cheers! :wink:

joaomcteixeira commented 3 years ago

Hi @SeanR22 Please disregard the previous comment, and update to the latest version. After #127 is merged, try your runs with the following option -dr L+ H+. Let me know your results and feelings. This is not the full implementation, but it improves from the previous experience. Read also in #127.

SeanR22 commented 3 years ago

Thanks for the quick enhancement Joao!

I have done a few runs and I can already tell that this is a big improvement.

SeanR22 commented 3 years ago

Do loops (-dr +L) include regions that DSSP defines as turns (T) and bends (S)?

joaomcteixeira commented 3 years ago

Hi Sean, These are the convention here for loops (L+). Be careful writing these regular expression codes. It is not very user friendly yet, and any mistake will have huge implications.

(see code bellow and derivative lines)

https://github.com/julie-forman-kay-lab/IDPConformerGenerator/blob/b995d89c8fc2f6de12688984628bb66893f5335d/src/idpconfgen/core/definitions.py#L122-L130

SeanR22 commented 3 years ago

Thanks Joao - your groupings and code is easy to follow.