No PyRosetta
This note will quickly become outdated once Fritz enters the scene.
Fragmenstein can import without PyRosetta, but it will not be able to perform any minimisation.
Only Monster will work.
If Igor is imported, it will not be able to perform any minimisation
and crash with the final outputs being a bit hidden.
from fragmenstein import Victor # RuntimeWarning: PyRosetta is not installed. A mock object is loaded. Any calls will fail.
from fragmenstein import __version__ as fragn_version
print(fragn_version) # 0.9.12.6
A way around it is to create a subclass of Victor that overrides the methods that call Igor.
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 = ... # see above
from fragmenstein.demo import Mac1
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()
wicky.to_nglview()