[docs]defrun(self):try:print_log(f"LIgO: parsing the specification...\n",include_datetime=True)symbol_table,self._specification_path=ImmuneMLParser.parse_yaml_file(self._specification_path,self._result_path)print_log(f"LIgO: starting the simulation...\n",include_datetime=True)instructions=symbol_table.get_by_type(SymbolType.INSTRUCTION)output=symbol_table.get("output")model=SemanticModel([instruction.itemforinstructionininstructions],self._result_path,output)result=model.run()print_log(f"LIgO: finished simulation.\n",include_datetime=True)returnresultexceptSimErrorase:print(e)
[docs]defrun_ligo(namespace:argparse.Namespace):ifos.path.isdir(namespace.result_path)andlen(os.listdir(namespace.result_path))!=0:raiseValueError(f"Directory {namespace.result_path} already exists. Please specify a new output directory for the analysis.")PathBuilder.build(namespace.result_path)logging.basicConfig(filename=Path(namespace.result_path)/"log.txt",level=logging.INFO,format='%(asctime)s%(levelname)s: %(message)s')warnings.showwarning=lambdamessage,category,filename,lineno,file=None,line=None:logging.warning(message)app=LigoApp(namespace.specification_path,namespace.result_path)app.run()
[docs]defmain():parser=argparse.ArgumentParser(description="LIgO command line tool")parser.add_argument("specification_path",help="Path to specification YAML file. Always used to define the simulation.")parser.add_argument("result_path",help="Output directory path.")namespace=parser.parse_args()namespace.specification_path=Path(namespace.specification_path)namespace.result_path=Path(namespace.result_path)run_ligo(namespace)