Данные с Deepchem диска в массив NumPy - PullRequest
0 голосов
/ 09 октября 2019

Я использую Deepchem упаковщик для GraphConvolution модели следующим образом. У меня есть данные смайликов в .csv, которые состоят из 5 молекул с их представлением смайлов и их соответствующими действиями. Доступ к данным можно получить непосредственно из здесь .

Импорт библиотек:

from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import numpy as np
import tensorflow as tf
import deepchem as dc
from deepchem.models.tensorgraph.models.graph_models import GraphConvModel

Загрузка данных и их настройка вспособ, которым он подходит для граф-свертки.

graph_featurizer = dc.feat.graph_features.ConvMolFeaturizer()
loader_train = dc.data.data_loader.CSVLoader( tasks=['Activity'], smiles_field="smiles",featurizer=graph_featurizer)
dataset_train = loader_train.featurize( './train_smiles_data.csv')

Анализ загруженных и настраиваемых данных (My Try)

dataset_train.X

array([<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad748>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc367828>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc367208>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc369c50>],
      dtype=object)


dataset_train.y

array([[2.71],
       [4.41],
       [3.77],
       [4.2 ]])

for x, y, w, id in dataset_train.itersamples():
    print(x, y, w, id)

<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad6a0> [2.71] [1.] CC1=C(O)C=CC=C1
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f518> [4.41] [1.] [O-][N+](=O)C1=CC=C(Br)S1
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f748> [3.77] [1.] CCC/C=C/C=O
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f940> [4.2] [1.] CCCCCC1=CC=CS1

Что я хочу?

Как видно из приведенного выше кода, dataset_train.X дает diskobject как <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad6a0>, а не numpy array, как dataset_train.y.

Как узнать, какой тип данных хранится в dataset_train.X? Как я могу увидеть данные, хранящиеся в dataset_train.X? Или, другими словами, как я могу преобразовать dataset_train.X в такой формат, где я могу проверить данные в нем?

Я считаю, что должен быть какой-то способ сделать это.

1 Ответ

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

Согласно вашему предыдущему вопросу dataset_train.X - это массив объектов ConvMol. Эти объекты ConvMol являются контейнером для функций каждой из ваших входных молекул. Функции представлены не так, как для ваших целей train_dataset.y, поскольку они представляют собой более сложные графические функции. посмотрите на исходный код для объекта ConvMol еще раз и посмотрите на исходный код для ConvMolFeaturizer. Затем вы можете определить, как вы хотите интерпретировать эти функции:

# Inspect features for molecule 0
conv_feature = dataset_train.X[0]
# Print the atom features
print(conv_feature.get_atom_features())
# Print the adjacency list
print(conv_feature.get_adjancency_list())
...