code: def bam_conversion(job, samfile, sample_type, univ_options, samtools_options):
      
      work_dir = os.getcwd()
      input_files = {
          sample_type + '.sam': samfile}
      input_files = get_files_from_filestore(job, input_files, work_dir,
                                             docker=True)
      bamfile = '/'.join([work_dir, sample_type + '.bam'])
      parameters = ['view',
                    '-bS',
                    '-o', docker_path(bamfile),
                    input_files[sample_type + '.sam']
                    ]
      docker_call(tool='samtools', tool_parameters=parameters, work_dir=work_dir,
                  dockerhub=univ_options['dockerhub'], tool_version=samtools_options['version'])
      output_file = job.fileStore.writeGlobalFile(bamfile)
      # The samfile is no longer useful so delete it
      job.fileStore.deleteGlobalFile(samfile)
      job.fileStore.logToMaster('Ran sam2bam on %s:%s successfully'
                                % (univ_options['patient'], sample_type))
      return output_file
docs: Convert a sam to a bam.
  
      :param dict samfile: The input sam file
      :param str sample_type: Description of the sample to inject into the filename
      :param dict univ_options: Dict of universal options used by almost all tools
      :param dict samtools_options: Options specific to samtools
      :return: fsID for the generated bam
      :rtype: toil.fileStore.FileID