[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