m2ms / fragalysis-frontend

The React, Redux frontend built by webpack
Other
1 stars 1 forks source link

Add scoring to fragmenstein multiplex #1023

Open phraenquex opened 1 year ago

phraenquex commented 1 year ago

Check whether fits in ALC2 budget. @tdudgeon?

Which of these scores can be straightforwardly added?: SuCOS PointVS CoPriNet Interaction preservation Ro5 (?) ...

Discuss / finalise based on effort.

Required for ALC2 milestone.

phraenquex commented 1 year ago

Conclusion from chat (this morning): The following scores should be computed for EVERY compound generated by the existing Fragmenstein job, and added to the returned SDF.

Out of scope, and requiring a new ticket (action: @tdudgeon):

tdudgeon commented 1 year ago

1026 created to handle the first step - making GPUs available to K8S

phraenquex commented 1 year ago

@tdudgeon estimates ~1 day, plus minor FE work to update the configuration.

phraenquex commented 1 year ago

Needs hacking (something about gitlab allowing private registries, because of PyRosetta licensing.)

Options:

matteoferla commented 1 year ago

X-linking to Fragmenstein PyRosetta > OpenMM shift enhancement: https://github.com/matteoferla/Fragmenstein/issues/33

Regarding Fragmenstein without the in protein minimisation, this is the code (xposted):

from fragmenstein import Victor
from fragmenstein import __version__ as fragn_version
from fragmenstein.demo import Mac1
# RuntimeWarning: PyRosetta is not installed. A mock object is loaded. Any calls will fail.
print(fragn_version)
# 0.9.12.6
from rdkit import Chem

class Wictor(Victor):
    """
    This Victor does not call Igor
    """
    def _calculate_combination_thermo(self):
        # override igor.
        pass

    def _calculate_placement_thermo(self):
        # override igor.
        pass

    def post_monster_step(self):
        # this is a black overridable methods that will be the last thing called
        self.minimized_mol: Chem.Mol = self.monster.positioned_mol
        self.minimized_pdbblock: str = self.unminimized_pdbblock

Wictor.capture_rdkit_log()
#Wictor.enable_stdout()
Wictor.error_to_catch = ()
wicky = Wictor(hits=Mac1.get_n_filtered_mols(2),
               pdb_block=Mac1.get_template(),
              )
wicky.combine()

NB. odd behaviour is seen however with wicky.to_nglview() as the data is incomplete. In particular there is no ∆∆G. The rdkit FF score is however available.