Module: MiGA::Cli::Base

Included in:
MiGA::Cli
Defined in:
lib/miga/cli/base.rb

Constant Summary collapse

@@TASK_DESC =
{
  generic:     'MiGA: The Microbial Genomes Atlas',
  # Workflows
  quality_wf:  'Evaluate the quality of input genomes',
  derep_wf:    'Dereplicate a collection of input genomes',
  classify_wf: 'Classify input genomes against a reference database',
  preproc_wf:  'Preprocess input genomes or metagenomes',
  index_wf:    'Generate distance indexing of input genomes',
  # Projects
  new:         'Create an empty MiGA project',
  about:       'Display information about a MiGA project',
  doctor:      'Perform consistency checks on a MiGA project',
  browse:      'Explore a project locally using a web browser',
  # Datasets
  add:         'Create a dataset in a MiGA project',
  get:         'Download a dataset from public databases into a MiGA project',
  ncbi_get:    'Download the genomes of a taxon from NCBI to a MiGA project',
  gtdb_get:    'Download the genomes of a taxon from GTDB to a MiGA project',
  seqcode_get: 'Download all type genomes from SeqCode to a MiGA project',
  rm:          'Remove a dataset from a MiGA project',
  find:        'Find unregistered datasets based on result files',
  ln:          'Link datasets (incl. results) from one project to another',
  ls:          'List all registered datasets in a MiGA project',
  archive:     'Generate a tar-ball with all files from select datasets',
  # Results
  add_result:  'Register a result',
  stats:       'Extract statistics for the given result',
  files:       'List registered files from a dataset or project',
  run:         'Execute locally one step analysis producing the given result',
  summary:     'Generate a summary table for the statistics of all datasets',
  next_step:   'Return the next task to run in a dataset or project',
  # Objects (Datasets or Projects)
  edit:        'Edit the metadata of a dataset or project',
  option:      'Get or set options of a dataset or project',
  touch:       'Change the "last modified" time to now without changes',
  # System
  init:        'Initialize MiGA to process new projects',
  daemon:      'Control the daemon of a MiGA project',
  lair:        'Control groups of daemons for several MiGA projects',
  db:          'Download a pre-indexed database',
  date:        'Return the current date in standard MiGA format',
  console:     'Open an IRB console with MiGA',
  env:         'Shell code to load MiGA environment',
  # Taxonomy
  tax_set:     'Register taxonomic information for datasets',
  tax_test:    'Return test of taxonomic distributions for query datasets',
  tax_index:   'Create a taxonomy-indexed list of the datasets',
  tax_dist:    'Estimate distributions of distance by taxonomy',
}
@@TASK_ALIAS =
{
  # Projects
  create_project: :new,
  project_info: :about,
  download: :db,
  get_db: :db,
  # Datasets
  create_dataset: :add,
  download_dataset: :get,
  unlink_dataset: :rm,
  find_datasets: :find,
  import_datasets: :ln,
  list_datasets: :ls,
  # Results
  result_stats: :stats,
  list_files: :files,
  run_local: :run,
  sum_stats: :summary,
  next_task: :next_step,
  # Objects
  update_metadata: :edit,
  # System
  c: :console,
  # Taxonomy
  add_taxonomy: :tax_set,
  test_taxonomy: :tax_test,
  index_taxonomy: :tax_index,
  tax_distributions: :tax_dist,
}
@@EXECS =
@@TASK_DESC.keys
@@FILE_REGEXP =
%r{^(?:.*/)?(.+?)(\.[A-Z]*(Reads|Contigs))?(\.f[nastq]+)?(\.gz)?$}i
@@PAIRED_FILE_REGEXP =
%r{^(?:.*/)?(.+?)(\.[A-Z]*([12]|Reads))?(\.f[nastq]+)?(\.gz)?$}i