示例#1
0
    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
示例#2
0
    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
示例#4
0
 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)
示例#5
0
    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)
示例#8
0
    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
示例#11
0
    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