Извлечение информации о соединении узла из графа k-NNPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Извлечение информации о соединении узла из графа k-NN

Сообщение Гость »


Я работаю над реализацией кода, который генерирует графическую карту k-NN. На данный момент мне удалось заставить это работать, в результате чего были созданы файлы HTML и JS для визуализации карты. Однако я столкнулся с трудностями при извлечении подробной информации о структуре сгенерированного графа.

Хотя я могу визуализировать граф и визуально понять его связи, я ищу способ сохранить эту информацию для дальнейшего анализа, например узнать, какие узлы соединены друг с другом и общее количество ребер/узлов в график

Моя карта построена с использованием Faerun и опирается на четыре переменные: координаты точек на плоскости (x, y), а также 's' и 't', которые хранят индексы начальных узлов и узлов в MST. , соответственно. Я предположил, что «s» и «t» (топология) — это та информация, которую я искал, поскольку она содержит сведения о том, как точки связаны друг с другом. Однако я не понимаю, что означают значения «s» и «t».

Изначально я предполагал, что 's' и 't' — это индексы точек на графике, то есть если точка A имеет координаты (Xa, Ya) и 's' = 2 и 't' = 15, то A будет подключен к точкам на позициях индекса 2 и 15 в моих данных. Однако, когда я исследую координаты этих точек, я замечаю, что они слишком далеко друг от друга, чтобы их можно было считать допустимыми соединениями для A.

Например: Значения x, y, s, t из кода в листе Excel В этом примере предполагается, что точка с индексом = 22 (x=0,136130452, y=-0,082266837) связана с индексом точки = 13 (x=-0,317409933, y=-0,280039787), как указано значением 's = 13'. , что при визуальном просмотре их координат оказывается неточным.

Мой главный вопрос: как мне правильно понять, что обозначают значения «s» и «t» на моем графике, и/или как я могу получить точную информацию о реальных соединениях и узлах на карте?
>
Заранее спасибо

Код, создающий график:

импортировать панд как pd импортировать tmap из Фаэруна импортировать Фаэрун из mhfp.encoder импортировать MHFPEncoder из rdkit.Chem импортировать AllChem df = pd.read_csv('HMDB-smiles-short.csv') печать (df.shape) # Количество перестановок, используемых алгоритмом MinHashing пермь = 512 # Инициализация кодировщика MHFP с 512 перестановками enc = MHFPEncoder(пермь) # Создайте отпечатки пальцев MHFP из SMILES # Векторы отпечатков пальцев должны иметь тип данных tm.VectorUint. отпечатки пальцев = [tmap.VectorUint(enc.encode(s)) для s в df["smiles"]] # Инициализируем лес LSH lf = tmap.LSHForest(пермь) # Добавляем отпечатки пальцев в лес LSH и индексируем lf.batch_add(отпечатки пальцев) lf.index() # Получить координаты x, y, s, t, _ = tmap.layout_from_lsh_forest(lf) # Теперь постройте данные фаэрун = Фаэрун(view="front", coords=False) faerun.add_scatter( "ESOL_Basic", { "х": х, «й»: й, "c": список(df.logSolubility.values), "ярлыки": df["улыбки"]}, point_scale=5, цветовая карта = ['радуга'], has_legend = Правда, Legend_title = ['ESOL (моль/л)'], категориальный = [False], шейдер = 'гладкийкруг' ) faerun.add_tree("ESOL_Basic_tree", {"from": s, "to": t}, point_helper="ESOL_Basic") # Выберите шаблон «улыбки», чтобы отобразить структуру при наведении faerun.plot('ESOL_Basic', template="smiles", Notebook_height=750) Набор данных

Создан HTML-файл

Создан JS-файл

Значения X,Y,S,T, используемые для построения графика

Я использовал разные наборы данных и проверил, что индекс в исходном файле соответствует индексу точек (молекула с индексом = 0 в исходном CSV-файле соответствует молекуле с индексом = 0 в сгенерированном файле). карта).
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»