code: def _novoalign_args_from_config(config, need_quality=True):
      
      if need_quality:
          qual_format = config["algorithm"].get("quality_format", "").lower()
          qual_flags = ["-F", "ILMFQ" if qual_format == "illumina" else "STDFQ"]
      else:
          qual_flags = []
      multi_mappers = config["algorithm"].get("multiple_mappers")
      if multi_mappers is True:
          multi_flag = "Random"
      elif isinstance(multi_mappers, six.string_types):
          multi_flag = multi_mappers
      else:
          multi_flag = "None"
      multi_flags = ["-r"] + multi_flag.split()
      resources = config_utils.get_resources("novoalign", config)
      # default arguments for improved variant calling based on
      # comparisons to reference materials: turn off soft clipping and recalibrate
      if resources.get("options") is None:
          extra_args = ["-o", "FullNW", "-k"]
      else:
          extra_args = [str(x) for x in resources.get("options", [])]
      return qual_flags + multi_flags + extra_args
docs: Select novoalign options based on configuration parameters.