def validate_ethics(simulation_result, cultural_models=['Ubuntu', 'Indigenous', 'Western']): validated = [] rejected = [] for binder in simulation_result.get("validated_binders", []): seq = binder["sequence"] dual_use_flag = any(keyword in seq for keyword in ["TOX", "VIR", "KILL"]) if dual_use_flag: binder["ethics_status"] = "rejected" binder["ethos_trace"] = "Rejected due to potential dual-use risk: toxic or viral motif match" rejected.append(binder) else: binder["ethics_status"] = "approved" binder["ethos_trace"] = "Passed ethical review: no dual-use motifs detected" binder["ethical_models_considered"] = cultural_models validated.append(binder) return {"validated_binders": validated, "ethics_rejections": rejected}