You are here

Unable to locate the "compute_ddg.py" file and running the RosettaMP protocol

4 posts / 0 new
Last post
Unable to locate the "compute_ddg.py" file and running the RosettaMP protocol
#1

Dear users,

I am trying to run the RosettaMP application to predict the effect of several mutations on the stability of a membrane protein. I am following this documentation to do that :"https://www.rosettacommons.org/docs/latest/application_documentation/membrane_proteins/RosettaMP-App-MPddG"

However, I can not locate the "compute_ddg.py" in the expected derectory (source/src/python/bindings/app/membrane/compute_ddG.py).

There is also no binary version of this tool in /main/source/bin directory.

Could you please give me a clue on how to resolve this issue?

Thank you

 

Category: 
Post Situation: 
Mon, 2022-11-28 14:09
Sajjad

Hi, 

Did you check under the protocol captures?

protocol_capture/2015/MPddG/compute_ddG.py

Best,
Ajasja

Tue, 2022-11-29 00:33
ajasja

Hi Ajasja,

Thanks for the reply. I could find another python named "predic_ddg.py" in that directory.

Is it the same thing?

I believe I need to provide a span file to run this python (./predict_ddG.py --in_pdb inputs/1qd6_tr_C.pdb --in_span inputs/1qd6_tr_C.span --res 181 --repack_radius 8.0).

For this purpose, I used the "mp_span_from_pdb.default.linuxgccrelease" binary.

However, I face the following error when I start the command.

I face no issues when trying with the demo pdb file. Yet, when I use my pdb (attached), it crashes with the following error.

Could you please help me know what the problem is and how to resolve it?

Thank you

The error:

mp_span_from_pdb.linuxgccrelease  -in:file:s mp_ddg/inputs/MC4R_Inactive_model_withNA_A.pdb 
core.init: Checking for fconfig files in pwd and ./rosetta/flags 
core.init: Rosetta version: rosetta.binary.linux.release-280 r280 2021.16+release.8ee4f02 8ee4f02ac5768a8a339ffada74cb0ff5f778b3e6 https://www.rosettacommons.org 2021-04-20T20:52:25.363712
core.init: command: /media/sajad/18a2b4cf-06c3-437d-bf57-7d68790182b9/sajad/Desktop/Tools/Lab/Modeling/Rosetta/rosetta_bin_linux_3.13_bundle/rosetta_bin_linux_2021.16.61629_bundle/main/source/bin/mp_span_from_pdb.linuxgccrelease -ignore_unrecognized_res -in:file:s mp_ddg/inputs/MC4R_Inactive_model_withNA_A.pdb
basic.random.init_random_generator: 'RNG device' seed mode, using '/dev/urandom', seed=-1066432186 seed_offset=0 real_seed=-1066432186
basic.random.init_random_generator: RandomGenerator:init: Normal mode, seed=-1066432186 RG_type=mt19937
core.init: Resolved executable path: /media/sajad/18a2b4cf-06c3-437d-bf57-7d68790182b9/sajad/Desktop/Tools/Lab/Modeling/Rosetta/rosetta_bin_linux_3.13_bundle/rosetta_bin_linux_2021.16.61629_bundle/main/source/build/src/release/linux/5.13/64/x86/gcc/9/default/mp_span_from_pdb.default.linuxgccrelease
core.init: Looking for database based on location of executable: /media/sajad/18a2b4cf-06c3-437d-bf57-7d68790182b9/sajad/Desktop/Tools/Lab/Modeling/Rosetta/rosetta_bin_linux_3.13_bundle/rosetta_bin_linux_2021.16.61629_bundle/main/database/
apps.public.membrane.mp_span_from_pdb: spanfile_from_pdb
core.chemical.GlobalResidueTypeSet: Finished initializing fa_standard residue type set.  Created 984 residue types
core.chemical.GlobalResidueTypeSet: Total time to initialize 0.501106 seconds.
core.import_pose.import_pose: File 'mp_ddg/inputs/MC4R_Inactive_model_withNA_A.pdb' automatically determined to be of type PDB
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] PDB reader is ignoring atom  OXT in residue 278 A.  Pass flag -ignore_zero_occupancy false to change this behavior
core.conformation.Conformation: [ WARNING ] missing heavyatom:  OXT on residue ILE:CtermProteinFull 278
core.conformation.Conformation: Found disulfide between residues 1 240
core.conformation.Conformation: current variant for 1 CYS
core.conformation.Conformation: current variant for 240 CYS
core.conformation.Conformation: current variant for 1 CYD
core.conformation.Conformation: current variant for 240 CYD
core.conformation.Conformation: Found disulfide between residues 232 238
core.conformation.Conformation: current variant for 232 CYS
core.conformation.Conformation: current variant for 238 CYS
core.conformation.Conformation: current variant for 232 CYD
core.conformation.Conformation: current variant for 238 CYD
apps.public.membrane.mp_span_from_pdb: Taking default thickness: 30
protocols.DsspMover: LLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHLLHHHLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLHHHHHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHL
core.conformation.membrane.SpanningTopology: create topology from structure
core.conformation.membrane.SpanningTopology: [ WARNING ] No spans calculated from structure for chain 1

ERROR: Can't print SpanningTopology. It's empty!
ERROR:: Exit from: src/core/conformation/membrane/SpanningTopology.cc line: 167

[ ERROR ]: Caught exception:


File: src/core/conformation/membrane/SpanningTopology.cc:167
[ ERROR ] UtilityExitException
ERROR: Can't print SpanningTopology. It's empty!


AN INTERNAL ERROR HAS OCCURED. PLEASE SEE THE CONTENTS OF ROSETTA_CRASH.log FOR DETAILS.

 

 

Wed, 2022-11-30 11:50
Sajjad

Some information from Johanna Tiemann, who is working on membrane protein ddGs currently:

----

So here is a list of tools which might be the fitting one - I think those were the only ones I found in respect to membrane ∆∆G calculations (basically anywhere - there is nothing else to my knowledge):

  •  tests/scientific/tests/mp_f19_ddG_of_mutation/predict_ddG.py
  •  source/src/apps/public/membrane/mp_ddG.py
  •  source/scripts/PyRosetta/public/membrane_predict_ddG.py

 

 

 

The problem with all of them (might) be that they don’t do what they should:

  •     Problematic function within script: mutate_residue
  •     Main problem: Design vs. repack: Design task within 8Å around mutant performed instead of repacking by all membrane protein ∆∆G scripts used in PyrRosetta tutorials (Le et al. Gray 2020), scientific benchmark server, papers, manuals, ....
  •     Suggestions for replacement:
    •     Additional note: it is suggested to not directly manipulate a task (as so far performed by the scripts above) as this can result in “funky”/unpredicted behavior
    •     Option1: using from pyrosetta.toolbox.mutants import mutate_residue
    •     Option2: create a Selection
    • I add both options below
 
Option1:
def mutate_residue(pose, target_position, mutant, repack_radius, sfxn):
    
    from pyrosetta.toolbox.mutants import mutate_residue
    
    repacked_pose = Pose()
    repacked_pose.assign(pose)
    
    mutate_residue(repacked_pose, int(target_position), mutant, pack_radius=repack_radius, pack_scorefxn=sfxn)

    return repacked_pose
Option2:
def mutate_residue(pose, target_position, mutant, repack_radius, sfxn):
    
    from pyrosetta.rosetta.core.pack.task import operation
    from pyrosetta.toolbox.mutants import mutate_residue
    
    #repacked_pose = pose.clone()
    repacked_pose = Pose()
    repacked_pose.assign(pose)
    
    tf = TaskFactory()
    tf.push_back(operation.InitializeFromCommandline())
    tf.push_back(operation.RestrictToRepacking())

    nbr_selector = pyrosetta.rosetta.core.select.residue_selector.NeighborhoodResidueSelector()
    nbr_selector.set_focus(str(target_position))
    nbr_selector.set_distance(repack_radius)
    nbr_selector.set_include_focus_in_subset(True)

    prevent_repacking_rlt = operation.PreventRepackingRLT()
    prevent_subset_repacking = operation.OperateOnResidueSubset(prevent_repacking_rlt, nbr_selector, True )
    tf.push_back(prevent_subset_repacking)

    mutate_residue(repacked_pose, int(target_position), mutant)
    
    packer = pyrosetta.rosetta.protocols.minimization_packing.PackRotamersMover()
    packer.score_function(sfxn)
    packer.task_factory(tf)
    
    #logger.info(tf.create_task_and_apply_taskoperations(repacked_pose))

    packer.apply(repacked_pose)

    return repacked_pose
Tue, 2022-11-29 08:52
rmoretti