class_docstr: Class representing a mapping of identifiers to a resource file.
  
  Examples
  --------
  
  Initialize a batch and create a new job:
  
  >>> b = Batch()
  >>> j = b.new_job()
  
  Read a set of input files as a resource group:
  
  >>> bfile = b.read_input_group(bed='data/example.bed',
  ...                            bim='data/example.bim',
  ...                            fam='data/example.fam')
  
  Create a resource group from a job intermediate:
  
  >>> j.declare_resource_group(ofile={'bed': '{root}.bed',
  ...                                 'bim': '{root}.bim',
  ...                                 'fam': '{root}.fam'})
  >>> j.command(f'plink --bfile {bfile} --make-bed --out {j.ofile}')
  
  Reference the entire file group:
  
  >>> j.command(f'plink --bfile {bfile} --geno 0.2 --make-bed --out {j.ofile}')
  
  Reference a single file:
  
  >>> j.command(f'wc -l {bfile.fam}')
  
  Execute the batch:
  
  >>> b.run() # doctest: +SKIP
  
  Notes
  -----
  All files in the resource group are copied between jobs even if only one
  file in the resource group is mentioned. This is to account for files that
  are implicitly assumed to always be together such as a FASTA file and its
  index.
class_docstr_tok: ["Class","representing","a","mapping","of","identifiers","to","a","resource","file",".","Examples","--","--","--","--","Initialize","a","batch","and","create","a","new","job",":",">",">",">","b","=","Batch","(",")",">",">",">","j","=","b.new_job","(",")","Read","a","set","of","input","files","as","a","resource","group",":",">",">",">","bfile","=","b.read_input_group","(","bed='data\/example.bed","'",",","...","bim='data\/example.bim","'",",","...","fam='data\/example.fam","'",")","Create","a","resource","group","from","a","job","intermediate",":",">",">",">","j.declare_resource_group","(","ofile=","{","'bed","'",":","'","{","root","}",".bed","'",",","...","'bim","'",":","'","{","root","}",".bim","'",",","...","'fam","'",":","'","{","root","}",".fam","'","}",")",">",">",">","j.command","(","f'plink","--","bfile","{","bfile","}","--","make-bed","--","out","{","j.ofile","}","'",")","Reference","the","entire","file","group",":",">",">",">","j.command","(","f'plink","--","bfile","{","bfile","}","--","geno","0.2","--","make-bed","--","out","{","j.ofile","}","'",")","Reference","a","single","file",":",">",">",">","j.command","(","f'wc","-l","{","bfile.fam","}","'",")","Execute","the","batch",":",">",">",">","b.run","(",")","#","doctest",":","+SKIP","Notes","--","--","-","All","files","in","the","resource","group","are","copied","between","jobs","even","if","only","one","file","in","the","resource","group","is","mentioned",".","This","is","to","account","for","files","that","are","implicitly","assumed","to","always","be","together","such","as","a","FASTA","file","and","its","index","."]
code: def _get_path(self, directory: str) -> str:
      subdir = str(self._source._dirname) if self._source else "inputs"
      return directory + "/" + subdir + "/" + self._root
  
imports: import abc
  from typing import Optional, Set, cast, Union
  from .None import job
  from .exceptions import BatchException
label_desc: Use image node_id 4 for calling the ResourceGroup obj's underlying member method code with example usage: obj._get_path(directory) and returns: unknown