Opened 3 years ago

Closed 2 years ago

#7094 closed enhancement (fixed)

RFE: Persist tasks across ChimeraX sessions

Reported by: Zach Pearson Owned by: Zach Pearson
Priority: moderate Milestone: 1.7
Component: Web Services Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

It should be possible for a user to start a job, close ChimeraX, reopen ChimeraX, and receive the results of the job.

Attachments (1)

saved_blast_job.cxs (1.9 MB ) - added by Zach Pearson 2 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 by Zach Pearson, 3 years ago

Milestone: 1.51.6

comment:2 by Zach Pearson, 3 years ago

Looking like this will make 1.6. With some minimal modifications to the blastprotein and cxservices bundle, I can at least save a BlastProteinJob in a session and see it when it gets restored. Unfortunately, the restored data structure is not a BlastProteinJob but a CxServicesJob. Getting a BlastProteinJob to restore itself -- which would really be the point of this feature -- will require tweaking them so that BlastProteinJobs do not submit themselves automatically on creation. Luckily BlastProteinJob is only imported in esmfold and alphafold bundles.

comment:3 by Zach Pearson, 3 years ago

Was able to save and restore BlastProteinJobs.

comment:4 by Zach Pearson, 3 years ago

Milestone: 1.61.7

by Zach Pearson, 2 years ago

Attachment: saved_blast_job.cxs added

comment:5 by Zach Pearson, 2 years ago

I started an AlphaFold version 4 session and saved it before the results came back, then modified chimerax.core.tasks and chimerax.webservices.cxservices_job to relaunch the job when the session gets restored. I was able to open the session, then ChimeraX contacted webservices, realized the job was done, and fetched the results for me. I've attached that session to this ticket.

The code that accomplishes this is not good. If stabilized in 1.7 it would create a parallel API for restoring jobs that would require any bugfix in one API to be duplicated in the other one. Both APIs target fixed functions when the pre-existing Task class could be modified so _run_thread takes a callable.

comment:6 by Zach Pearson, 2 years ago

Resolution: fixed
Status: assignedclosed

Job restore code merged to develop

Note: See TracTickets for help on using tickets.