I am using the InterfaceAnalyzer to obtain packing scores of antibody-antigen strucutres from the PDB database but the packstat score always ends up being 0 for some reason. I am specifying for the activation of packstat calculation as can be seen in my flags.txt file below
-compute_packstat = 1
The output file is attached below.
SCORE: total_score complex_normalized dG_cross dG_cross/dSASAx100 dG_separated dG_separated/dSASAx100 dSASA_hphobic dSASA_int dSASA_polar delta_unsatHbonds dslf_fa13 fa_atr fa_dun fa_elec fa_intra_rep fa_rep fa_sol hbond_E_fraction hbond_bb_sc hbond_lr_bb hbond_sc hbond_sr_bb hbonds_int nres_all nres_int omega p_aa_pp packstat per_residue_energy_int pro_close rama ref sc_value side1_normalized side1_score side2_normalized side2_score yhh_planarity description
SCORE: 1872.289 3.079 -2.361 -0.169 -10.707 -0.764 714.668 1400.938 686.270 10.000 -12.344 -3062.264 2184.448 -219.800 8.646 1274.590 1823.666 0.248 -50.705 -146.022 -25.751 -34.341 4.000 608.000 64.000 11.996 -46.163 0.000 3.322 162.327 18.051 -14.053 0.639 2.879 94.992 3.794 117.607 0.009 1A14_atomlines_0001
I tried using -packstat and -packstat=1 but obtained the same score of 0.000. Any help would be much appreciated
It sounds like you tried turning the packstat flags on, but it didn't work.
First try "-options:user true" with the flags on and paste the top bit of the log where it echoes the flag arguments.
Then try "-show_accessed_options true" and see if the packstat flags are there in the log at the end.
(You need to do this separately because the flags interfere with each other)
The log shows that the packstat flag is recorded and displays
protocols.analysis.InterfaceAnalyzerMover: Computing interface packstats.
Still getting 0.000 packstat score. :(
You don't want to use an equals sign with spaces around it. Rosetta thinks you're giving another option.
Replace "-compute_packstat = 1" with "-compute_packstat 1" or just "-compute_packstat"
And if you see an error like this in your output:
core.scoring.sc.MolecularSurfaceCalculator: [ ERROR ] Failed to add residue NAG at position 389 to surface - cannot find radius for C1
Then you can remove the glycans using tools/protein_tools/scripts/clean_pdb.py
Apparently the packstat code can't handle the polysaccharides.
I do not have any glycans and I have tried "-compute_packstat" and "-compute_packstat 1". The log shows that packstat calculations are bring carried out. Still getting a score of 0.000.
Looks like there's potentially a bug in the packstat calculation. There's code which catches this potential condition (which prevents segfaults), but unfortunately it results in setting the packstat value to zero, without any error message printout.
If you wouldn't mind, you can post one of the PDBs which is giving you the issue here, and we can try debugging the issue. (From the code I've seen, it's not entirely clear what about the system is leading to the error, or if there's an "easy" way of getting around it.
Jonathan's suggestion of attempting to run the PDB through clean_pdb.py first is a decent one -- even if there isn't a glycan in the structure, there may be other non-protein residues which are causing issues.
For completeness: since his original post mentioned 1A14_atomlines.pdb, I had tested with 1A14.pdb (downloaded without cleaning) and got the packstat value of zero. After cleaning, it gave 0.681.
Hope that helps, -J'n
I did not use 'clean' but wrote a python script to remove all non-ATOM lines after minimizing the structure with CHARMM. Still getting 0.000.
Anyways thanks for trying to help me :)
Kindly find attached pdb file. I am interested in finding the packstat value between interface AB_C. It consists of only atomlines from a pdb generated after a charmm energy minimization. For some unknown reason, I still get 0.000 value even after removing the non-ATOM lines i.e. cleaning the pdb for the 1A14 case even though sheehasj was able to obtain a packstat value.
Any updates on this? This has been a long-standing problem for me with many different PDBfiles (all of which are absent of non-protein residues) if I try to calculate a packstat across an interface. If I use pyrosetta, and follow the code in the interface analyzer mover, the issue seems to be that the packstat calculation (for all residues) returns more values than there really are residues and, as Rocco mentioned, there's a statement to capture this error and use set packstat to 0.0.
sheehajh, can you post the command line arguments that you use to get a non-zero packstat value? I'm using Rosetta 3.9 (not sure if the code has changed since and this issue addressed).
Could the issue be related to the version of DAlphaBall that we're using?
Varun's command worked, using the Rosetta version 3.10 distributed by SBGRID, on the cleaned version of the PDB file :
InterfaceAnalyzer.default.linuxgccrelease -s 1a14_ignorechain.pdb -interface HL_N -compute_packstat 1 -out:file:score_only 2-1a14_interface.out
The same command does not work (it runs, but gives packstat value of 0.000) if I only use grep '^ATOM' to pull out the atom lines from the original PDB file. I can guess at a few properties of the PDB file that might be causing the problem:
ATOM 4076 H TYR H 100A 50.457 52.627 60.832 1.00 0.00 H
ATOM 4077 N ASP H 100B 48.439 50.448 62.324 1.00 18.96 N
Hope that helps!
Thank you so much for the help! The issue was insertion codes in my PDBs (all my structures involve antibodies and they have insertion codes in the frameworks). Renumbering so the structure is pose-numbered fixed the issue.