def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) """ #mol_graph,featureでやってることを書く type_check_num_atoms(mol, self.max_atoms) smiles = Chem.MolToSmiles(mol) ecfp_array = array_rep_from_smiles(smiles, False) fcfp_array = array_rep_from_smiles(smiles, True) atom_array1 = ecfp_array['atom_features'].astype(np.float32) atom_array2 = fcfp_array['atom_features'].astype(np.float32) degree = construct_adj_matrix(mol, out_size=self.out_size) self.degree_num = [int(np.sum(x)) for x in degree] adj_array = ecfp_array['bond_features'] #import pdb;pdb.set_trace() return atom_array1, atom_array2, adj_array
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) num_atoms = mol.GetNumAtoms() # Construct the atom array and adjacency matrix. atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) # Adjust the adjacency matrix. degree_vec = numpy.sum(adj_array[:num_atoms], axis=1) degree_sqrt_inv = 1. / numpy.sqrt(degree_vec) adj_array[:num_atoms, :num_atoms] *= numpy.broadcast_to( degree_sqrt_inv[:, None], (num_atoms, num_atoms)) adj_array[:num_atoms, :num_atoms] *= numpy.broadcast_to( degree_sqrt_inv[None, :], (num_atoms, num_atoms)) return atom_array, adj_array
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) num_atoms = mol.GetNumAtoms() # Construct the atom array and adjacency matrix. atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) # Adjust the adjacency matrix. degree_vec = numpy.sum(adj_array[:num_atoms], axis=1) degree_sqrt_inv = 1. / numpy.sqrt(degree_vec) adj_array[:num_atoms, :num_atoms] *= numpy.broadcast_to( degree_sqrt_inv[:, None], (num_atoms, num_atoms)) adj_array[:num_atoms, :num_atoms] *= numpy.broadcast_to( degree_sqrt_inv[None, :], (num_atoms, num_atoms)) super_node_x = construct_supernode_feature(mol, atom_array, adj_array, out_size=self.out_size_super) return atom_array, adj_array, super_node_x
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_tensor = construct_discrete_edge_matrix(mol, out_size=self.out_size) return relGCN_pre((atom_array, adj_tensor), out_size=self.out_size)
def get_input_features(self, mol): type_check_num_atoms(mol, self.max_atoms) atoms = self.create_atoms(mol) i_jbond_dict = self.create_ijbonddict(mol) subgraph_array = self.extract_subgraph(atoms, i_jbond_dict, self.radius) adj_array = construct_discrete_edge_matrix(mol) return subgraph_array, adj_array
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) return atom_array
def get_input_features(self, mol): """get input features Args: mol (rdkit.Chem.rdchem.Mol) Returns: input features """ type_check_num_atoms(mol, self.max_atoms) atom_array = self.atom_feature_func(mol, out_size=self.out_size) adj_tensor = construct_discrete_edge_matrix(mol, out_size=self.out_size, kekulize=self.kekulize) return (atom_array, adj_tensor)
def get_input_features(self, mol): """get input features Args: mol (Mol): Molecule input Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_discrete_edge_matrix(mol, out_size=self.out_size) return atom_array, adj_array
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) super_node_x = construct_supernode_feature(mol, atom_array, adj_array, out_size=self.out_size_super) return atom_array, adj_array, super_node_x
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) dist_array = construct_distance_matrix(mol, out_size=self.out_size, contain_Hs=self.add_Hs) return atom_array, dist_array
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) print ("atom_array : ", atom_array) adj_array = construct_adj_matrix(mol, out_size=self.out_size) print ("adj_array : ", adj_array) return atom_array, adj_array
def get_input_features(self, mol): """get input features from mol object Args: mol (Mol): """ type_check_num_atoms(mol, self.max_atoms) atom_feature = construct_atom_feature(mol, self.use_all_feature, self.atom_list, self.include_unknown_atom) pair_feature, bond_idx = construct_pair_feature(mol, self.use_all_feature) global_feature = construct_global_state_feature(mol) return atom_feature, pair_feature, global_feature, bond_idx
def get_input_features(self, mol): """get input features Args: mol (Mol): Returns: """ type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) # adjust adjacent matrix degree_vec = numpy.sum(adj_array, axis=1) degree_vec = numpy.sqrt(degree_vec) adj_array *= numpy.broadcast_to(degree_vec[:, None], adj_array.shape) adj_array *= numpy.broadcast_to(degree_vec[None, :], adj_array.shape) return atom_array, adj_array
def get_input_features(self, mol): """get input features for WeaveNet WeaveNetPreprocessor automatically add `H` to `mol` Args: mol (Mol): """ type_check_num_atoms(mol, self.max_atoms) if self.use_fixed_atom_feature: # original paper feature extraction atom_array = construct_atom_feature(mol, self.add_Hs, self.max_atoms, self.atom_list, self.include_unknown_atom) else: # embed id of atomic numbers atom_array = construct_atomic_number_array(mol, self.max_atoms) pair_feature = construct_pair_feature(mol, num_max_atoms=self.max_atoms) return atom_array, pair_feature
def get_input_features(self, mol): """get input features for WeaveNet WeaveNetPreprocessor automatically add `H` to `mol` Args: mol (Mol): """ type_check_num_atoms(mol, self.max_atoms) if self.use_fixed_atom_feature: # original paper feature extraction atom_array = construct_atom_feature(mol, self.add_Hs, self.max_atoms, self.atom_list, self.include_unknown_atom) else: # embed id of atomic numbers atom_array = construct_atomic_number_array(mol, self.max_atoms) pair_feature = construct_pair_feature(mol, num_max_atoms=self.max_atoms) return atom_array, pair_feature
def get_input_features(self, mol): type_check_num_atoms(mol, self.max_atoms) atom_array = construct_atomic_number_array(mol, out_size=self.out_size) adj_array = construct_adj_matrix(mol, out_size=self.out_size) return atom_array, adj_array