Source code for tooluniverse.compose_scripts.drug_safety_analyzer
"""Drug Safety Analysis PipelineComprehensive drug safety analysis combining adverse event data, literature review, and molecular information"""
[docs]defcompose(arguments,tooluniverse,call_tool):""" Main composition function for DrugSafetyAnalyzer Args: arguments (dict): Input arguments containing drug_name, patient_sex, serious_events_only tooluniverse: ToolUniverse instance call_tool: Function to call other tools Returns: dict: Comprehensive drug safety analysis result """drug_name=arguments["drug_name"]patient_sex=arguments.get("patient_sex")serious_only=arguments.get("serious_events_only",False)print(f"Starting comprehensive safety analysis for: {drug_name}")# Step 1: Get adverse event data from FDA FAERSfaers_result=Nonetry:# Prepare FAERS query parameters - only include non-None valuesfaers_params={"medicinalproduct":drug_name}ifpatient_sex:faers_params["patientsex"]=patient_sexifserious_only:faers_params["serious"]="Yes"faers_result=call_tool("FAERS_count_reactions_by_drug_event",faers_params)exceptExceptionase:print(f"FAERS query failed: {e}")# Step 2: Get molecular information from PubChemmolecular_info=Nonetry:pubchem_cid_result=call_tool("PubChem_get_CID_by_compound_name",{"name":drug_name})if(isinstance(pubchem_cid_result,dict)and"IdentifierList"inpubchem_cid_result):cid_list=pubchem_cid_result["IdentifierList"].get("CID",[])ifcid_list:first_cid=cid_list[0]molecular_info=call_tool("PubChem_get_compound_properties_by_CID",{"cid":first_cid})exceptExceptionase:print(f"PubChem query failed: {e}")# Step 3: Search for safety-related literatureliterature_result=Nonetry:literature_query=f"{drug_name} safety adverse effects"literature_result=call_tool("EuropePMC_search_articles",{"query":literature_query,"limit":10})exceptExceptionase:print(f"Literature search failed: {e}")# Step 4: Compile comprehensive analysis resultresult={"drug_name":drug_name,"analysis_parameters":{"patient_sex_filter":patient_sex,"serious_events_only":serious_only,},"adverse_events":faers_result,"molecular_properties":molecular_info,"safety_literature":literature_result,"analysis_summary":{"has_adverse_events":bool(faers_result),"has_molecular_data":bool(molecular_info),"literature_papers_found":(len(literature_result.get("resultList",{}).get("result",[]))ifliterature_resultandisinstance(literature_result,dict)else0),},}print(f"Safety analysis complete for {drug_name}")returnresult