Class: MiGA::Cli::Action::Get
- Inherits:
-
MiGA::Cli::Action
- Object
- MiGA
- MiGA::Cli::Action
- MiGA::Cli::Action::Get
- Includes:
- Download::Base
- Defined in:
- lib/miga/cli/action/get.rb
Constant Summary
Constants included from MiGA
MiGA::CITATION, VERSION, VERSION_DATE, VERSION_NAME
Instance Attribute Summary
Attributes inherited from MiGA::Cli::Action
Attributes included from MiGA::Common::Net
Instance Method Summary collapse
Methods included from Download::Base
#cli_base_flags, #cli_filters, #cli_save_actions, #discard_excluded, #download_entries, #exclude_newer, #finalize_tasks, #generic_perform, #impose_limit, #load_ncbi_taxonomy_dump, #load_tasks, #save_entry, #unlink_entries
Methods inherited from MiGA::Cli::Action
#complete, #empty_action, #initialize, #launch, load, #name
Methods inherited from MiGA
CITATION, CITATION_ARRAY, DEBUG, DEBUG_OFF, DEBUG_ON, DEBUG_TRACE_OFF, DEBUG_TRACE_ON, FULL_VERSION, LONG_VERSION, VERSION, VERSION_DATE, #advance, debug?, debug_trace?, initialized?, #like_io?, #num_suffix, rc_path, #result_files_exist?, #say
Methods included from MiGA::Common::Path
Methods included from MiGA::Common::Format
#clean_fasta_file, #seqs_length, #tabulate
Methods included from MiGA::Common::Net
#download_file_ftp, #http_request, #known_hosts, #main_server, #net_method, #normalize_encoding, #remote_connection
Methods included from MiGA::Common::SystemCall
Constructor Details
This class inherits a constructor from MiGA::Cli::Action
Instance Method Details
#parse_cli ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/miga/cli/action/get.rb', line 11 def parse_cli cli.defaults = { query: false, universe: :ncbi, db: :nuccore, get_md: false, only_md: false } cli.parse do |opt| cli.opt_object(opt, [:project, :dataset, :dataset_type]) opt.on( '-I', '--ids ID1,ID2,...', Array, '(Mandatory unless -F) IDs in the remote database separated by commas' ) { |v| cli[:ids] = v.map(&:strip) } opt.on( '-U', '--universe STRING', "Universe of the remote database. By default: #{cli[:universe]}", "Supported: #{MiGA::RemoteDataset.UNIVERSE.keys.join(', ')}" ) { |v| cli[:universe] = v.to_sym } opt.on( '--db STRING', "Name of the remote database. By default: #{cli[:db]}" ) { |v| cli[:db] = v.to_sym } opt.on( '-F', '--file PATH', 'Tab-delimited file (with header) listing the datasets to download', 'The long form of most options are supported as header (without --)', 'including: dataset, ids, universe, db, metadata', 'For flags without value (like query) use true/false', 'Unsupported values are: project, file, verbose, help, and debug' ) { |v| cli[:file] = v } opt.on( '-q', '--query', 'Register the dataset as a query, not a reference dataset' ) { |v| cli[:query] = v } opt.on( '--ignore-dup', 'Ignore datasets that already exist' ) { |v| cli[:ignore_dup] = v } opt.on( '-d', '--description STRING', 'Description of the dataset' ) { |v| cli[:description] = v } opt.on( '-c', '--comments STRING', 'Comments on the dataset' ) { |v| cli[:comments] = v } opt.on( '-m', '--metadata STRING', 'Metadata as key-value pairs separated by = and delimited by comma', 'Values are saved as strings except for booleans (true / false) or nil' ) { |v| cli[:metadata] = v } opt.on( '--get-metadata', 'Only download and update metadata for existing datasets' ) { |v| cli[:get_md] = v } opt.on( '--only-metadata', 'Create datasets without input data but retrieve all metadata' ) { |v| cli[:only_md] = v } opt.on( '--bypass-metadata', 'Do not gather optional metadata such as the dataset taxonomy' ) { |v| cli[:bypass_md] = v } opt.on( '--api-key STRING', 'API key for the given universe' ) { |v| cli[:api_key] = v } opt.on( '--ncbi-taxonomy-dump [path]', 'Path to an NCBI Taxonomy dump directory to query instead of API calls', 'If the path is not passed, the dump is automatically downloaded' ) { |v| cli[:ncbi_taxonomy_dump] = v || true } opt.on( '--ignore-file', '::HIDE::' # Only for internal use ) { |v| cli[:ignore_file] = v } end end |
#perform ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/miga/cli/action/get.rb', line 86 def perform glob = get_sub_cli p = cli.load_project load_ncbi_taxonomy_dump glob.each do |sub_cli| rd = create_remote_dataset(sub_cli, p) next if rd.nil? rd.[:bypass_metadata] = true if sub_cli[:bypass_md] if sub_cli[:get_md] (sub_cli, p, rd) else create_dataset(sub_cli, p, rd) end end end |