Class UpdateCellXGeneAccessionsCli

All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.EnvironmentAware, CLI

public class UpdateCellXGeneAccessionsCli extends ExpressionExperimentManipulatingCLI
Housekeeping: replace CELLxGENE accessions that hold a dataset version ID by the permanent dataset ID.

Until permanent IDs were recorded, addCELLxGENEData stored the dataset version ID as the accession, and that ID changes every time CELLxGENE revises the dataset. This resolves each stored version, current or superseded, to its dataset through the CELLxGENE curation API and replaces the accession with one holding the permanent ID, with the stored version kept as its accession version.

🛑 Nothing is written unless -apply is given. Without it, every experiment is resolved and reported, so the batch output can be reviewed before the real run.

The collection is read from the accession URI, which the loader set to the collection page. Experiments are visited one at a time and each collection is fetched once, so the load on the CELLxGENE API is one request per collection plus, for datasets revised since they were loaded, one request per dataset of that collection. Experiments whose accession already has a version are skipped, so an interrupted run can simply be restarted.