# AbinitioRelax with native fragments

6 posts / 0 new
AbinitioRelax with native fragments
#1

Hi,

for an experiment I want to use native fragments. For this, I generated the necessary fragment files (3mers and 9mers).

Now I wanted to do a test run with AbinitioRelax and have the problem that nothing happens. I see the normal output from reading the database, but after that it seems to be "stuck"; nothing happens even after 13 hours. The protein has only 52 residues. If I run the same experiment with my normal fragments (generated by the fragment picker), it finishes after 2min. I can however use the native fragments in PyRosetta and can do predictions (using some starter code from the PyRosetta tutorials). What I noticed here is that the scores are huge, especially the fa_rep term, for full atom scoring somewhere around 55k. I tried different methods of preprocessing the PDB (idealizing and relaxing). With idealizing I have the same high scores, interestingly enough I find the native structure with the PyRosetta simulation. But it doesn't help for AbinitioRelax. When I shuffle that fragment file (this is the standard behavior of the struc_set_fragment_picker) AbinitioRelax works but with obviously very bad results. I tried a second protein in the mean time, same result.

Any idea what might cause this behaviour?

Kolja

Post Situation:
Mon, 2016-09-05 03:03
ks

When you say "stuck", what exactly happens? Is it "hanging", looking like it's not doing anything (including printing tracer output) or is it in a futile loop, basically spitting out the same tracer lines over and over? If the latter, what do those tracer lines say? Is it anything about failing filters or restarting? (You may need to turn off any muting options you've added for these test runs.)

Another question is how you went about making your own fragments. What proceedure did you use, and how did you generate (format) the fragment files?  You mentioned idealization, and I'll point out that idealization is important with fragment generation, as the fragment files only contain the backbone dihedral angles, and it's assumed that the backbone lengths and angles are all ideal. If they're not, then the dihedral angles won't place the atoms in the correct locations when Abinito rebuilds the structures with the ideal lenths and angles.

Mon, 2016-09-05 10:52
rmoretti

Thank you for the quick response!

It seems to be stuck in stage 4. Stuck meaning here, there is no further output after:

Stage 4
Folding with score3 for 40000

The outputs before that are (summarized):

Stage 1
Folding with score0 for max of 20000
protocols.abinitio: Replaced extended chain after 32 cycles.
protocols.moves.TrialCounter: ClassicFragmentM trials=     32;  accepts= 0.9375;  energy_drop/trial=   0.00759

Total weighted score:                        0.243

Stage 2
Folding with score1 for 20000
protocols.moves.TrialCounter: ClassicFragmentM trials=  20000;  accepts= 1.0000;  energy_drop/trial=  -0.00003

Total weighted score:                       20.255

Stage 3
Folding with score2 and score5 for 20000
protocols.abinitio:  stop cycles in stage3 due to convergence

[..]

protocols.moves.TrialCounter: ClassicFragmentM trials=     70;  accepts= 1.0000;  energy_drop/trial=   0.00000

Total weighted score:                       25.566

Starting AbinitioRelax with

-run:test_cycles

finishes.

Should it abort after stage 3 seeing that we have converged?

I idealized the structure before generating the fragments with idealize_jd2 -in:file:s 2n5mA.pdb

For the fragment generation I adapted the Structure-Set-Fragment-Picker application to output all fragments in the correct order. I tried it with other methods as well, writing out the format according to the docs and for each position reading out the phi,psi,omega angles directly from the pose (resulting in a different format but same outcome).

Score of the idealization:

SCORE: total_score coordinate_constraint dslf_cs_ang dslf_ss_dst pro_close description
SCORE:       0.016                 0.000       0.000       0.000     0.016 2n5mA_0001

Scores of the idealized and initial PDB:

SCORE:     score     fa_atr     fa_rep     fa_sol    fa_intra_rep    fa_elec    pro_close    hbond_sr_bb    hbond_lr_bb    hbond_bb_sc    hbond_sc    dslf_fa13       rama      omega     fa_dun    p_aa_pp    yhh_planarity        ref    allatom_rms    gdtmm    gdtmm1_1    gdtmm2_2    gdtmm3_3    gdtmm4_3    gdtmm7_4    irms    maxsub    maxsub2.0    rms          description
SCORE:  1139.288   -268.751    884.918    157.579           1.481      4.722        0.036         -9.141         -0.486         -0.638       0.000        0.000     11.691     20.943    338.212      7.701            0.000     -8.980          0.000    1.000       1.000       1.000       1.000       1.000       1.000   0.000    52.000       52.000  0.000 2n5mA_idealized_0001
SCORE:   659.101   -261.630    424.751    153.153           1.070      4.781        0.786         -8.189         -0.491         -0.737       0.000        0.000     11.398      1.864    332.037      9.287            0.000     -8.980          0.000    1.000       1.000       1.000       1.000       1.000       1.000   0.000    52.000       52.000  0.000  2n5mA_0001

The current format with the Structure-Set-Fragment-Picker looks like that:

FRAME    1   3
1     0 no_pdb BBTorsion G L      0.000  -148.640  -179.499
2     0 no_pdb BBTorsion G L    148.716   -47.367  -179.759
3     0 no_pdb BBTorsion I L     46.723   -80.032  -175.380

FRAME    2   4
2     0 no_pdb BBTorsion G L    148.716   -47.367  -179.759
3     0 no_pdb BBTorsion I L     46.723   -80.032  -175.380
4     0 no_pdb BBTorsion R L    -98.738   114.282   178.623

Kolja

Tue, 2016-09-06 00:37
ks

Hmm ... I'm not seeing anything that could obviously be an infinite loop or something  that might be hanging in that region.  Could you try running it with debug tracer output? (Add "-out:levels all:debug" to the commandline.)

(Also, do you have read/write permissions to the directory you're running this from? There's checkpointing behavior in abinitio, and this might be giving you issues if it's hanging on IO.)

From what I can tell, it shouldn't skip stages if it's converged in earlier stages - each stage is doing different things.

I'm not  too familiar with the Structure-Set-Fragment-Picker, nor am I familiar with that type of fragment output. Typically the fragment files that Abinito uses are of the type that Robetta gives you, like main/tests/integration/tests/abinitio/inputs/aa1l2yA03_05.200_v1_3.gz

 position:            1 neighbors:          200

1ej8 A    91 N L   57.347   65.548  176.561   -1.267    5.032    24.884 3     0.000 P  1 F  1
1ej8 A    92 L E -114.215  157.057 -172.732   -1.267    5.032    24.884 3     0.000 P  1 F  1
1ej8 A    93 Y E -123.282  159.445  178.288   -1.267    5.032    24.884 3     0.000 P  1 F  1

(Only the first 45 characters on a line are necessary. The "-1.267" and everythign after are optional or ignored.)

That's not to say that the format output by Structure-Set-Fragment-Picker won't work. Looking at the code, it looks like the fragment reader should be able to handle either type. I'm just not sure if there might be a formatting issue somewhere in the file. I'd double check things carefully, especially around any location where you may have manually edited things.

Thu, 2016-09-08 11:28
rmoretti

Thanks for the response!

Yes, I have read/write permissions. I can run everything with the normal fragments (just switching out the fragments) from the same setting. The format from the Structure-Set-Fragment-Picker works. It runs through when I pick fragments in random order (the original behavior of the Structure-Set-Fragment-Picker). In any case, I have native fragments in the described format as well, with the same outcome and I can use them without any problem in PyRosetta.

When I run AbinitioRelax with the -out:levels all:debug flag I get the following output in the end:

[..]

core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 52 BB 3
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 52 BB 2
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 52 BB 3
protocols.abinitio: finished
protocols.abinitio: prepare ...
protocols.abinitio: switch to smooth moves
protocols.abinitio: start 40000 cycles
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 1 BB 1
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 3 BB 2
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 3 BB 3

[..]

At some point there are no new outputs (cursor blinking).

I have those outputs in previous stages as well that finished properly.

Interesting is this in the beginning:

core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 1 BB 1
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 52 BB 2
core.conformation.Conformation: Unable to find torsion angle in atom_tree: TorsionID 52 BB 3

I have the following in my fragment file (picked from the Pose):

1     0 no_pdb BBTorsion G L      0.000  -148.640  -179.499

[..]

52     0 no_pdb BBTorsion F L    -72.920     0.000     0.000

Removing those frames doesn't change anything. Neither does changing the angles to 0.001 or 1.001 for that matter.

Are fragments in the beginning and end treated differently?

edit: OK, I just saw that I have the same output (Unable to find... ) with the normal (non-native) fragments, but it eventually finishes.

Thanks!

Kolja

Fri, 2016-09-09 01:12
ks

Haven't checked further, but the issue is with the SmoothFragmentMover. Everything works if I remove the smooth trial mover from AbinitioRelax in stage 4.

Mon, 2016-09-12 03:14
ks