Closed menoliu closed 1 year ago
The most critical part of this implementation is the sort out the clashes in the chain interface between the folded and the unfolded tails. That was my experience when I first tried it some time ago. You can use the same data structures we have in build
to accommodate the folded domain, IMHO. So that the pipeline remains almost unchanged. Masks would be needed to avoid calculated clashes (energy function) for the folded domain (if keeping the same pipeline).
Unless there's a better way :-)
:rocket:
Development is underway! I will try different strategies I have written in the comments section. Fingers crossed these ideas work. Internal method for building will still work though as I'll be developing in coords_builder.py
.
3fe09ac is fully "operational" but it's not very good in the sense that un-physical torsion angles at stitching sites are reproduced. However, I am attempting a new method on the translator and rotator stage by mapping backbone N, CA, C
atoms of the dummy residue onto the folded domain using a covariance matrix about their centroids and using single variable descent to calculate the rotational matrix.
In the near future, the rotator
and pmover
functions will be obsolete. Before optimizing the clash_count
function for this new approach, I will see if the torsion angles make sense first.
@joaomcteixeira After a long time I have touched up and finished these two clients. I have extensively tested fldrs
and resptm
with different proteins. I've also included a note in the documentation to rename any abnormal residue names in the folded domain with resptm
prior to using fldrs
so the automatic detection could work. Have a look and cheers :) On-to the next client contacts
for complexes ;)
Many, many, thanks @menoliu I will test it and review it in the next few days. Please give me ten days more or less. Sorry for the delays. Cheers!
I am starting up development again! The work so far above this commit is excellent for generating conformers with N-term IDR and C-term IDR tails automatically. From here on I will be working on closing chain breaks with IDRs.
Hi @menoliu , Great work!
I was testing the cnot7
example and got some errors. I am pasting them here so they can guide you on further on this PR. Big cheers!
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/joao/github/IDPConformerGenerator/src/idpconfgen/logger.py", line 112, in report_on_crash
return func(*args, **kwargs)
File "/home/joao/github/IDPConformerGenerator/src/idpconfgen/cli_fldrs.py", line 1100, in _build_conformers
elif disorder_case == disorder_cases[3]:
KeyError: 3
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/joao/anaconda3/envs/idpconfgen/lib/python3.10/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/home/joao/github/IDPConformerGenerator/src/idpconfgen/logger.py", line 141, in report_on_crash
raise roc_error from err
idpconfgen.core.exceptions.ReportOnCrashError: Crash reported to output/fldrs_3001593626476633033_1683294682143697767.rpr_on_crash.
"""
Building folded domains by providing the folded domain region location
-fldr
and custom database containing structures that represent the folded domain-flds
as part of thecli_build.py
module.