code: def index_bamfile(job, bamfile, sample_type, univ_options):
      
      job.fileStore.logToMaster('Running samtools-index on %s:%s' % (univ_options['patient'],
                                                                     sample_type))
      work_dir = job.fileStore.getLocalTempDir()
      in_bamfile = '_'.join([sample_type, 'fix_pg_sorted.bam'])
      input_files = {
          in_bamfile: bamfile}
      input_files = get_files_from_filestore(job, input_files, work_dir,
                                             docker=True)
      parameters = ['index',
                    input_files[in_bamfile]]
      docker_call(tool='samtools', tool_parameters=parameters,
                  work_dir=work_dir, dockerhub=univ_options['dockerhub'])
      output_files = {in_bamfile: bamfile,
                      in_bamfile + '.bai': job.fileStore.writeGlobalFile('/'.join([work_dir,
                                                                                   in_bamfile +
                                                                                   '.bai']))}
      return output_files
docs: This module indexes BAMFILE
      ARGUMENTS
      1. bamfile: <JSid for a bam file>
      2. sample_type: string of 'tumor_dna' or 'normal_dna'
      3. univ_options: Dict of universal arguments used by almost all tools
           univ_options
                  +- 'dockerhub': <dockerhub to use>
      RETURN VALUES
      1. output_files: REFER output_files in run_bwa(). This module is the one is
                       the one that generates the files.