docs: def main():
      '''
      Organization function
      -setups logging
      -gets inputdata
      -calls plotting function
      '''
      args = get_args()
      try:
          utils.make_output_dir(args.outdir)
          utils.init_logs(args, tool="NanoComp")
          args.format = nanoplotter.check_valid_format(args.format)
          settings = vars(args)
          settings["path"] = path.join(args.outdir, args.prefix)
          sources = [args.fastq, args.bam, args.summary, args.fasta]
          sourcename = ["fastq", "bam", "summary", "fasta"]
          if args.split_runs:
              split_dict = validate_split_runs_file(args.split_runs)
          datadf = nanoget.get_input(
              source=[n for n, s in zip(sourcename, sources) if s][0],
              files=[f for f in sources if f][0],
              threads=args.threads,
              readtype=args.readtype,
              names=args.names,
              barcoded=args.barcoded,
              combine="track")
          datadf, settings = filter_and_transform_data(datadf, vars(args))
          if args.raw:
              datadf.to_csv("NanoComp-data.tsv.gz", sep="\t", index=False, compression="gzip")
          if args.store:
              pickle.dump(
                  obj=datadf,
                  file=open(settings["path"] + "NanoComp-data.pickle", 'wb'))
          if args.split_runs:
              change_identifiers(datadf, split_dict)
          if args.barcoded:
              datadf["dataset"] = datadf["barcode"]
          identifiers = list(datadf["dataset"].unique())
          write_stats(
              datadfs=[datadf[datadf["dataset"] == i] for i in identifiers],
              outputfile=settings["path"] + "NanoStats.txt",
              names=identifiers)
          if args.plot != 'false':
              plots = make_plots(datadf, settings)
              make_report(plots, path.join(args.outdir, args.prefix))
          logging.info("Succesfully processed all input.")
      except Exception as e:
          logging.error(e, exc_info=True)
          raise