Вывод графа свертки в Deepchem - PullRequest
0 голосов
/ 08 октября 2019

Я использую Deepchem для создания функций для моей модели GraphConvolution следующим образом.

import deepchem as dc
from rdkit import Chem
import numpy as np
import pandas as pd
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole

smile = 'O=C(C1=CC=C(C=C1)C(O)=O)O'
molecules = []
molecules.append(Chem.MolFromSmiles(smile))
featurizer = dc.feat.graph_features.ConvMolFeaturizer()
mol_object = featurizer.featurize(mols=molecules)

Теперь я хочу узнать вывод mol_object. Я знаю, что dc.feat.graph_features.ConvMolFeaturizer() возвращает объект массива. Но на самом деле это относится ко входу.

Так что featurizer.featurize(mols=molecules) принимает molecules в качестве ввода. molecules[0] напечатает следующий график.

Ml

As molecules - это список, который содержит только один элемент с индексом 0, равный molecules[0]. Это означает, что mols in dc.feat.graph_features.ConvMolFeaturizer() принимает это изображение в качестве входных данных и выводит mol_object.

Что это за вывод mol_object и как его увидеть? Это показывает, что это массив, но я не могу увидеть содержимое этого массива?

print(np.shape(mol_object))
(1,)
print(type(mol_object))
<class 'numpy.ndarray'>
print(mol_object)
[<deepchem.feat.mol_graphs.ConvMol object at 0x7f96a68c6e48>]

Как мне проверить или посмотреть [<deepchem.feat.mol_graphs.ConvMol object at 0x7f96a68c6e48>]?

1 Ответ

1 голос
/ 08 октября 2019

Почему бы не взглянуть на исходный код для объекта ConvMol?

Выходные данные featurizer возвращают массив объектов ConvMol (по одному для каждого входа молекулы rdkit), то есть deepchem.feat.mol_graphs.ConvMol, то, что вы на самом деле хотите проверить, это первый элемент массива, mol_object [0].

Глядя на исходный код, вы можете понять, какая информация о молекуле содержится, например, об элементах атома, к которым можно получить доступ ConvMol.atom_features, или в вашем случае mol_object [0] .atom_features

...