- Fixed: correct session/workspace API type signatures
- Docs: correct defaults for CryoSPARC class init
- Fixed: Correct session signatures model definition
- Fixed: Correctly use order argument when listing workspaces
- BREAKING: replaced low-level
CryoSPARC.cli,CryoSPARC.rtpandCryoSPARC.visattributes with single unifiedCryoSPARC.api - BREAKING: Can no longer add inputs or outputs when an external job has completed status, first clear the job with
job.clear() - BREAKING: Can no longer save outputs when an external job has building or completed status, first clear the job, call
job.start(), save outputs, and calljob.stop() - BREAKING:
CryoSPARC.download_asset(fileid, target)no longer accepts a directory target. Must specify a filename. - BREAKING: removed
CryoSPARC.get_job_specs(). UseCryoSPARC.job_registerinstead - BREAKING:
CryoSPARC.list_assets()andJob.list_assets()return list of models instead of list of dictionaries, accessible with dot-notation- OLD:
job.list_assets()[0]['filename'] - NEW:
job.list_assets()[0].filename
- OLD:
- BREAKING:
CryoSPARC.get_lanes()now returns a list of models instead of dictionaries- OLD:
cs.get_lanes()[0]['name'] - NEW:
cs.get_lanes()[0].name
- OLD:
- BREAKING:
CryoSPARC.get_targetsnow returns a list of models instead of dictionaries- OLD:
cs.get_targets()[0]['hostname'] - NEW:
cs.get_targets()[0].hostname - Some top-level target attributes have also been moved into the
.configattribute
- OLD:
- BREAKING:
CryoSPARC.print_job_typessectionargument renamed tocategory- OLD:
cs.print_job_types(section=["extraction", "refinement"]) - NEW:
cs.print_job_types(category=["extraction", "refinement"])
- OLD:
- BREAKING: Restructured schema for Job models, many Job.doc fields have been internally rearranged. Some fields like
params_specandoutput_result_groupsare no longer available (replaced with a unifiedspecfield) - Added: Python 3.14 support
- Added: Secure command-line login with shell command
python -m cryosparc.tools login --url <URL>, to avoid exposing login credentials in plain text - Added: Option to initialize
CryoSPARCinstance with a URL, e.g.,cs = CryoSPARC("https://cryosparc.example.com:61000") - Added:
find_projects(),find_workspaces()andfind_jobs()methods to find lists of Projects, Workspaces and Jobs; filters are available for attributes like project UID and creation date - Added:
CryoSPARC.job_registerattribute - Added: New
titleanddescattributes for Project, Workspace and Job objects - Added: New
statusattribute for Job objects - Added: Methods to update title and description for Projects, Workspaces and Jobs
- Added: Ability to set External job tile and output images
- Added:
job.load_input()andjob.load_output()now accept"default","passthrough"and"all"keywords for theirslotsargument - Added:
job.alloc_output()now acceptsdtype_paramsargument for fields with dynamic shapes - Added:
CryoSPARC.print_job_typesnow includes a job stability column - Added:
Job.print_output_specnow includes a passthrough indicator column for results - Added:
Job.log()now accepts anameargument to create or update the same event log - Updated: Improved type definitions
- Updated:
cryosparc.mrcalways converts float16 arrays to float32 before writing - Updated: Access to
BASE_PORT + 2,BASE_PORT + 3andBASE_PORT + 5no longer required, onlyBASE_PORTor the web URL is required - Fixed: Prevent error on some datasets with many columns when using Numpy >= 1.24
- Fixed: Querying a dataset with a non-existent field now correctly raises a KeyError
- Deprecated: When adding external inputs and outputs, expanded slot definitions now expect
"name"key instead of"prefix", support for which will be removed in a future release.- OLD:
job.add_input("particle", slots=[{"prefix": "component_mode_1", "dtype": "component", "required": True}]) - NEW:
job.add_input("particle", slots=[{"name": "component_mode_1", "dtype": "component", "required": True}])
- OLD:
- Deprecated:
licenseargument no longer required when creating aCryoSPARCinstance, will be removed in a future release - Deprecated:
external_job.stop()now expects optional error string instead of boolean, support for boolean errors will be removed in a future release - Deprecated:
CryoSPARC.get_job_sections()will be removed in a future release, useCryoSPARC.job_registerinstead - Deprecated: Most functions no longer require a
refreshargument, includingjob.set_param(),job.connect(),job.disconnect()andexternal_job.save_output() - Deprecated: Attributes
Project.doc,Workspace.docandJob.docwill be removed in a future release, use.modelattribute instead - Deprecated:
project.dir()andjob.dir()methods will be removed in a future release, use.dirattribute instead
- Added:
job.connect_resultandjob.disconnect_resultfor connecting and disconnecting low-level results
- Added: Datasets appear as tables in a Jupyter notebook without requiring pandas or similar
- Updated: Dropped official support for Python 3.7
- Fixed: Prevent dataset load or save error when dataset is empty
- Fixed: Prevent dataset load error on Linux when dataset file is exactly 4 kiB
- Added: Python 3.13 support
- Fix: Disallow non-URL-encodable characters when creating external job inputs and outputs
- Fix: Prevent queuing and killing external jobs (must use
job.start/job.stop()orwith job.run())
- Added:
Dataset.is_equivalentmethod to check if two datasets have identical fields, but in a different order - Added:
Dataset.inspectclass method which accepts a path to a dataset and returns its header without loading the entire dataset from disk - Added: Load a subset of dataset fields with
Dataset.loadby specifyingprefixesorfieldskeyword arguments - Added: Support for uploading job assets in
bildformat - Updated:
ExternalJob.add_outputmethod now expectsallocargument to be specified as a keyword arg - Updated: Dataset methods which accept a
copyargument now expect it to be specified as a keyword arg - Fixed: Significantly reduced memory when loading large datasets with
Dataset.load
- Added: Numpy 2.0 support
- Fixed: Add missing result data types added in CryoSPARC v4.5
- Added: New
cluster_varsargument forJob.queuemethod for queueing to clusters - Added: Various
printmethods for inspecting available job types, inputs, outputs and parameters - Updated: Allow copy and symlink operations from outside project directory
- Updated: Allow larger shapes for dataset fields
- Fixed: Always raise explicit errors when dataset allocation fails
- Fixed: Correctly retain fields when appending or creating a union of empty datasets with non-empty fields
- Fixed: Correctly allow excluding
uidfield inDataset.descrmethod - Docs: New guide for job access and inspection
- Docs: Fix broken code in custom latent trajectory example
- Docs: Generalize 3D Flex custom trajectory example to >2 dimensions
- Fixed: Correct command response error data formatting
- Added: Python 3.11 and 3.12 support
- Added:
overwritekeyword argument for file upload functions for extra confirmation when uploading project files to a path that already exist (raises error if not specified) - Added: Smaller and faster compressed dataset format when saving with
CSDAT_FORMAT(datasets saved in this format prior to this release may no longer be readable) - Updated: Calls to CryoSPARC’s command servers automatically retry while CryoSPARC is down for up to one minute
- Updated: Raise
cryosparc.errors.CommandErrorinstead ofAssertionErrorwhen a CryoSPARC command server request fails - Updated: Raise
cryosparc.errors.DatasetLoadErrorto show target file path whenDataset.loadencounters an exception - Updated: Improved server- and slot- related error messages
- Updated: Warn when connecting to CryoSPARC version that doesn’t match cryosparc-tools version
- Docs: Delete Rejected Exposures example
- Docs: Instructions for plotting scale bars on 2D Classes
- Docs: Revert downsampled, symmetry expanded particles example
- Docs: Connect a volume series to Class3D example
- Fixed:
Job.queuemethodlaneargument is now optional when queuing directly to master - Fixed: Dataset memory leak due to missing reference count decrease during dataset garbage collection
- Docs: pip update instructions
- Docs: Recommend Python environment as a prerequisite
- Added: Updated project doc spec with updated generate intermediate results settings field
- Fixed: Allow project file retrieval from when project directory contains a symbolic link
- Fixed: Auto-exclude slots with missing metafile and better error message when output metafile is missing
- Fixed: Extend
CommandClient.ErrorfromException - Fixed: Correctly catch command request timeout
- Docs: Added T20S workflow example
- Support for CryoSPARC v4.2
- Fix error when creating a job with
CryoSPARC.create_job - Fix Dataset allocation error due to slot generation overflow
- Docs minor fixes
- Preliminary access to CryoSPARC Live via CryoSPARC.rtp command client
- Documenation fixes
- Use correct numpy object type for newer versions of Numpy
- Fix limit on number of active datasets
- Use correct C types in Cython header definition
- Initial release
- Manage CryoSPARC Projects, Workspaces and Jobs from Python
- Load input and output datasets
- Read and write MRC files
- Read and write STAR files