code: def build_parser():
      
  
      parser = argparse.ArgumentParser(description=__doc__,
                                       formatter_class=argparse.ArgumentDefaultsHelpFormatter)
  
      # Required args
      parser.add_argument("--in_path", "-i", required=True,
                          help="file path to input GCT(x) file")
  
      parser.add_argument("--rid", nargs="+", help="filepath to grp file or string array for including rows")
      parser.add_argument("--cid", nargs="+", help="filepath to grp file or string array for including cols")
      parser.add_argument("--exclude_rid", "-er", nargs="+", help="filepath to grp file or string array for excluding rows")
      parser.add_argument("--exclude_cid", "-ec", nargs="+", help="filepath to grp file or string array for excluding cols")
      parser.add_argument("--out_name", "-o", default="ds_subsetted.gct",
                          help="what to name the output file")
      parser.add_argument("--out_type", default="gct", choices=["gct", "gctx"],
                          help="whether to write output as GCT or GCTx")
      parser.add_argument("--verbose", "-v", action="store_true", default=False,
                          help="whether to increase the # of messages reported")
  
      return parser
docs: Build argument parser.