CoolFace
Apppublic

KeshavaKumar/Personalized_Medicine_Composition_Optimization

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
three.py36 linesDownload Raw Back to root
1import pandas as pd
2
3def optimize_composition(disease, medicine_df):
4    """Optimize tablet composition by filtering out unnecessary chemicals while maintaining effectiveness."""
5    filtered_meds = medicine_df[medicine_df["Uses"].str.contains(disease, case=False, na=False)]
6    if filtered_meds.empty:
7        return "No medicine found for this disease."
8
9    optimized_compositions = []
10    for _, row in filtered_meds.iterrows():
11        composition = row["Composition"].split(",")
12        side_effects = row["Side_effects"].split(",") if pd.notna(row["Side_effects"]) else []
13
14        # Remove chemicals linked to common side effects
15        optimized_comp = [chem.strip() for chem in composition if chem.strip().lower() not in [s.lower() for s in side_effects]]
16        removed_chemicals = [chem.strip() for chem in composition if chem.strip().lower() in [s.lower() for s in side_effects]]
17
18        optimized_compositions.append({
19            "Medicine Name": row["Medicine Name"],
20            "Previous Composition": row["Composition"],
21            "Optimized Composition": ", ".join(optimized_comp),
22            "Removed Chemicals": ", ".join(removed_chemicals) if removed_chemicals else "None",
23            "Manufacturer": row["Manufacturer"],
24            "Description": f"For {row['Medicine Name']}, the optimized composition removes unnecessary chemicals ({', '.join(removed_chemicals) if removed_chemicals else 'None'}) to minimize side effects while retaining effectiveness."
25        })
26
27    return pd.DataFrame(optimized_compositions)
28
29# Load medicine dataset
30medicine_df = pd.read_csv("Medicine_Details.csv")
31
32# Example usage
33disease_input = "Bacterial infections"
34optimized_meds = optimize_composition(disease_input, medicine_df)
35print(optimized_meds)
36