code: def add_args(parser, positional=False):
      
      group = parser.add_argument_group("read loading")
      group.add_argument("reads" if positional else "--reads",
          nargs="+", default=[],
          help="Paths to bam files. Any number of paths may be specified.")
  
      group.add_argument(
          "--read-source-name",
          nargs="+",
          help="Names for each read source. The number of names specified "
          "must match the number of bam files. If not specified, filenames are "
          "used for names.")
  
      # Add filters
      group = parser.add_argument_group(
          "read filtering",
          "A number of read filters are available. See the pysam "
          "documentation (http://pysam.readthedocs.org/en/latest/api.html) "
          "for details on what these fields mean. When multiple filter "
          "options are specified, reads must match *all* filters.")
  
      for (name, (kind, message, function)) in READ_FILTERS.items():
          extra = {}
          if kind is bool:
              extra["action"] = "store_true"
              extra["default"] = None
          elif kind is int:
              extra["type"] = int
              extra["metavar"] = "N"
          elif kind is str:
              extra["metavar"] = "STRING"
          group.add_argument("--" + name.replace("_", "-"),
              help=message,
              **extra)
docs: Extends a commandline argument parser with arguments for specifying
      read sources.