Class MergeDuplicateBibRefsCli
- All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.EnvironmentAware, CLI
BibliographicReference rows that share a PubMed accession.
Prod has accessions with 2-3 duplicate bibref rows (a data issue that 500'd
PUT /datasets/{id}/publications until the read-side lookups were made duplicate-tolerant). For
each targeted PubMed id this CLI keeps the lowest-id (oldest, canonical) row, repoints
every experiment that references a duplicate (its primaryPublication and its
otherRelevantPublications) onto the canonical row, and then deletes the now-unreferenced
duplicate.
Safety: it is a dry run by default — it reports exactly what it would do and changes
nothing unless -commit is given. Even with -commit, a duplicate is deleted only after its
experiment references are repointed and a re-check finds no experiment still pointing at it; if the
delete fails because something outside the experiment surface still holds the row (e.g. a
GeneSet.literatureSources), it is left in place and logged rather than forced. Nothing is
merged that would lose a reference.
- Author:
- gemma
-
Nested Class Summary
Nested classes/interfaces inherited from interface CLI
CLI.CommandGroup -
Field Summary
Fields inherited from class AbstractCLI
ABORTED, FAILURE, FAILURE_FROM_ERROR_OBJECTS, log, SUCCESS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbuildOptions(org.apache.commons.cli.Options options) Build option implementation.protected voidObtain the command group for this CLI.A short memorable name for the command that can be used to locate this class.Obtain a short description for this command explaining what it does.protected voidprocessOptions(org.apache.commons.cli.CommandLine commandLine) Process command line options.Methods inherited from class AbstractAuthenticatedCLI
afterPropertiesSet, doWork, setAuthenticateAnonymously, setEnvironment, setRequireLoginMethods inherited from class AbstractCLI
abort, addBatchOption, addErrorObject, addErrorObject, addErrorObject, addSuccessObject, addSuccessObject, addThreadsOption, addWarningObject, addWarningObject, allowPositionalArguments, awaitBatchExecutorService, executeCommand, getApplicationContext, getBatchTaskExecutor, getBatchTaskProgressReporter, getCliContext, getCommandAliases, getHelpFooter, getNumThreads, getOptions, getPipelineJobReporter, getUsage, promptConfirmationOrAbort, setAllowPositionalArguments, setApplicationContext, setEstimatedMaxTasks, setReportFrequencyMillis
-
Constructor Details
-
MergeDuplicateBibRefsCli
public MergeDuplicateBibRefsCli()
-
-
Method Details
-
getCommandName
Description copied from interface:CLIA short memorable name for the command that can be used to locate this class.- Specified by:
getCommandNamein interfaceCLI- Overrides:
getCommandNamein classAbstractCLI- Returns:
- name; if null or blank, this will not be available as a shortcut command.
-
getShortDesc
Description copied from interface:CLIObtain a short description for this command explaining what it does.- Specified by:
getShortDescin interfaceCLI- Overrides:
getShortDescin classAbstractCLI
-
getCommandGroup
Description copied from interface:CLIObtain the command group for this CLI.- Specified by:
getCommandGroupin interfaceCLI- Overrides:
getCommandGroupin classAbstractCLI
-
buildOptions
protected void buildOptions(org.apache.commons.cli.Options options) Description copied from class:AbstractCLIBuild option implementation.Implement this method to add options to your command line, using the OptionBuilder.
This is called right after
AbstractCLI.buildStandardOptions(Options)so the options will be added after standard options.- Overrides:
buildOptionsin classAbstractCLI
-
processOptions
protected void processOptions(org.apache.commons.cli.CommandLine commandLine) Description copied from class:AbstractCLIProcess command line options.Implement this to provide processing of options. It is called after
AbstractCLI.buildOptions(Options)and right beforeAbstractCLI.doWork().- Overrides:
processOptionsin classAbstractCLI
-
doAuthenticatedWork
- Specified by:
doAuthenticatedWorkin classAbstractAuthenticatedCLI- Throws:
Exception
-