[chimerax-users] alphafold block

Tom Goddard goddard at sonic.net
Tue Feb 15 10:34:55 PST 2022


Hi Roberto,

  When the AlphaFold prediction completes it loads the best model into ChimeraX.  So I suggest checking periodically if any model has been loaded, for example,

	if len(session.models) > 0:
	    break  # AlphaFold model has been opened.

Another method is to ask ChimeraX to call a callback when a model gets opened, but that would not let you detect the case where AlphaFold fails and a model is never opened.  Currently Colab does not tell ChimeraX if an error occurs in sequence alignment or energy minimization -- it only appears in the AlphaFold Run html panel.  Errors in the prediction phase are caught and sent to ChimeraX.  I should improve this so all errors get sent back to ChimeraX.  It is not obvious how to ask Colab if the jobs is still running -- Colab is meant to be run interactively through a web browser so Colab APIs are not documented to programmatically talk to it as far as I know.

	Tom


> On Feb 15, 2022, at 5:14 AM, Roberto Marabini via ChimeraX-users <chimerax-users at cgl.ucsf.edu> wrote:
> 
> Hi,
> 
>    I would like to write a script that executes
>                      "alphafold  predict SEQUENCE"
> and then postprocess the results.
> 
>     The script would be similar to:
> 
> from chimerax.core.commands import run
> run(session, "alphafold predict %s" % sequence_data)
> # wait until alphafold is done
> # and postprocess the file best_model.pdb
> 
> but I do not know how to implement the part "wait until alphafold is done"
> if, after launching alphafold,  I create a loop similar to:
> 
> ===
>    counter = 0
>    current_size = _getSize(file_path)
> 
>    while current_size !=_getSize(file_path) or _getSize(file_path)==0
> or not os.path.exists(file_path):
>        current_size =_getSize(file_path)
>        time.sleep(60)
>        counter += 1
>        if counter > 240: # break after four hours if file is not created
>            break
> ====
> 
> the loop is executed as soon as the alphafold command has been sent to
> google,  the alphafold-colab window is not shown until the loop is
> finished and therefore, alphafold execution never starts.
> 
> So the question is: how can I write a script that waits until the
> command "alphafold predict ..." finishes and then executes some code.
> 
>  Thanks
> 
> 
>  Roberto
> _______________________________________________
> ChimeraX-users mailing list
> ChimeraX-users at cgl.ucsf.edu
> Manage subscription:
> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
> 




More information about the ChimeraX-users mailing list