Member Site Forums Rosetta 3 Rosetta 3 – General SASA packing score in Rosetta 3.1 Reply To: SASA packing score in Rosetta 3.1

#4520
Anonymous

    Not out of the box. If you’re willing to get your hands a little dirty I can describe how to do it. If you don’t want to write code, then I’d suggest sticking with ++ for something as simple as fixbb (or running fixbb in 3.0, then running it through ++ with a NATRO resfile just to get sasas)

    In general terms:

    You’ll want to use the class protocols/toolbox/PoseMetricCalculators/SasaCalculator. This class will take a Pose and calculate the per-atom SASA. You can then query it to get per-pose, per-residue, and per-atom SASAs. Create this class in fixbb.cc near the top of main(); you can get it later with a string name based lookup from anywhere in the code (that runs later, anyway).

    The second step is loading the per-residue information into the Job object, with a call like protocols::jd2::JobDistributor::get_instance()->current_job()->add_string_real_pair(resnum_as_string, sasa_from_calculator );

    Where to put this call is a stickier problem – you’ll probably want to just modify the PackRotamersMover directly. Be wary that this will screw up all the other apps that rely on PackRotamersMover unless you protect it with an option somehow. You could also just create a dummy Mover and insert it into the SequenceMover seen in fixbb.cc; this would prevent changes from affecting the rest of the code but requires a little more work (nevertheless it’s what I would do.)

    This will add a big stack of per-residue SASAs to the end of the output PDB. I can offer more advice if you need it, let me know.