def get_data(self, dbnames, dbkeys, src_smiles, return_count, similarity_cutoff, request_num): global socket fp_binary, canon_smile = gpusim_utils.smiles_to_fingerprint_bin(src_smiles) fp_qba = QtCore.QByteArray(fp_binary) output_qba = QtCore.QByteArray() output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly) output_qds.writeInt(len(dbnames)) for name, key in zip(dbnames, dbkeys): output_qds.writeString(name.encode()) output_qds.writeString(key.encode()) output_qds.writeInt(request_num) output_qds.writeInt(return_count) output_qds.writeFloat(similarity_cutoff) output_qds << fp_qba socket.write(output_qba) socket.flush() socket.waitForReadyRead(30000) output_qba = socket.readAll() return output_qba
def main(): args = parse_args() app = QtCore.QCoreApplication([]) socket = QtNetwork.QLocalSocket(app) smiles = input("Smiles: ") dbcount = 1 dbname = args.dbname dbkey = args.dbkey socket.connectToServer('gpusimilarity') while smiles and smiles.lower() not in ('quit', 'exit'): return_count = 20 similarity_cutoff = 0 fp_binary, _ = smiles_to_fingerprint_bin(smiles) fp_qba = QtCore.QByteArray(fp_binary) output_qba = QtCore.QByteArray() output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly) output_qds.writeInt(dbcount) output_qds.writeString(dbname.encode()) output_qds.writeString(dbkey.encode()) request_num = random.randint(0, 2**31) output_qds.writeInt(request_num) output_qds.writeInt(return_count) output_qds.writeFloat(similarity_cutoff) output_qds << fp_qba socket.write(output_qba) socket.flush() socket.waitForReadyRead(30000) output_qba = socket.readAll() smiles = [] scores = [] ids = [] data_reader = QtCore.QDataStream(output_qba) returned_request = data_reader.readInt() if request_num != returned_request: raise RuntimeError("Incorrect result ID returned!") return_count = data_reader.readInt() approximate_matches = data_reader.readUInt64() for i in range(return_count): smiles.append(data_reader.readString()) for i in range(return_count): ids.append(data_reader.readString()) for i in range(return_count): scores.append(data_reader.readFloat()) print("Approximate total matches: {0}, returning {1}".format( approximate_matches, return_count)) for cid, smi, score in zip(ids, smiles, scores): print("{0} {1}: {2}".format(cid, smi, score)) smiles = input("Smiles: ")
def get_data(self, socket_name, src_smiles, return_count): fp_binary = gpusim_utils.smiles_to_fingerprint_bin(src_smiles) fp_qba = QtCore.QByteArray(fp_binary) output_qba = QtCore.QByteArray() output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly) output_qds.writeInt(return_count) output_qds << fp_qba socket = sockets[socket_name] socket.write(output_qba) socket.flush() socket.waitForReadyRead(30000) output_qba = socket.readAll() return output_qba
def main(): app = QtCore.QCoreApplication([]) socket = QtNetwork.QLocalSocket(app) smiles = input("Smiles: ") db_name = sys.argv[1] socket.connectToServer(db_name) while smiles and smiles.lower() not in ('quit', 'exit'): return_count = 20 fp_binary = smiles_to_fingerprint_bin(smiles) fp_qba = QtCore.QByteArray(fp_binary) output_qba = QtCore.QByteArray() output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly) output_qds.writeInt(return_count) output_qds << fp_qba socket.write(output_qba) socket.flush() socket.waitForReadyRead(30000) output_qba = socket.readAll() smiles = [] scores = [] ids = [] data_reader = QtCore.QDataStream(output_qba) for i in range(return_count): smiles.append(data_reader.readString()) for i in range(return_count): ids.append(data_reader.readString().decode("utf-8")) for i in range(return_count): scores.append(data_reader.readFloat()) for cid, smi, score in zip(ids, smiles, scores): print("{0} {1}: {2}".format(cid, smi, score)) smiles = input("Smiles: ")