def InteractionNetworkFidelity(native_file, native_index, prediction_file, prediction_index): res_struct = pdb_utils.PDBStruct() res_struct.load(native_file, native_index) res_raw_seq = res_struct.raw_sequence() sol_struct = pdb_utils.PDBStruct() sol_struct.load(prediction_file, prediction_index) sol_raw_seq = sol_struct.raw_sequence() if (sol_raw_seq != res_raw_seq): sys.stderr.write("ERROR Result sequence != Solution sequence!\n") sys.stderr.write("DATA Solution sequence --> '%s'\n" % sol_raw_seq) sys.stderr.write("DATA Result sequence --> '%s'\n" % res_raw_seq) return (-1) # computes the RMSD comparer = pdb_utils.PDBComparer() rmsd = comparer.rmsd(sol_struct, res_struct) INF_ALL = comparer.INF(sol_struct, res_struct, type="ALL") DI_ALL = rmsd / INF_ALL INF_WC = comparer.INF(sol_struct, res_struct, type="PAIR_2D") INF_NWC = comparer.INF(sol_struct, res_struct, type="PAIR_3D") INF_STACK = comparer.INF(sol_struct, res_struct, type="STACK") # return (rmsd,DI_ALL, INF_ALL, INF_WC, INF_NWC,INF_STACK) return (rmsd, DI_ALL, INF_ALL)
def calc_RMSD(native_file, native_index, prediction_file, prediction_index, PVALUE="-"): res_struct = pdb_utils.PDBStruct() res_struct.load(native_file, native_index) res_raw_seq = res_struct.raw_sequence() sol_struct = pdb_utils.PDBStruct() sol_struct.load(prediction_file, prediction_index) sol_raw_seq = sol_struct.raw_sequence() if (sol_raw_seq != res_raw_seq): sys.stderr.write("ERROR Result sequence != Solution sequence!\n") sys.stderr.write("DATA Solution sequence --> '%s'\n" % sol_raw_seq) sys.stderr.write("DATA Result sequence --> '%s'\n" % res_raw_seq) return (-1) # computes the RMSD comparer = pdb_utils.PDBComparer() rmsd = comparer.rmsd(sol_struct, res_struct) sys.stderr.write("INFO Partial RMSD --> %f\n" % rmsd) pvalue = comparer.pvalue(rmsd, len(sol_raw_seq), PVALUE) sys.stderr.write("INFO Partial P-Value --> %e\n" % pvalue) return (rmsd, pvalue)