Битовый аналог для массива слов (отпечатки пальцев)

Я пытаюсь выполнить поиск субструктуры в химической базе данных, используя отпечатки пальцев Авалона, предварительно рассчитанные для каждого соединения. Существует метод для сравнения этих отпечатков в RDKit:

DataStructs.AllProbeBitsMatch ( fp1, fp2 )

Документы описывают этот метод следующим образом: "Возвращает True, если все биты в первом аргументе совпадают со всеми битами в векторе, определенном параметром pickle во втором аргументе".

Они говорят о битовых векторах, но этот отпечаток также может быть вычислен как слова (массив целых чисел с помощью метода GetAvalonFPAsWords в RDKit, который я могу сохранить в MongoDB и, надеюсь, выполнить поиск без RDKit, только используя возможности базы данных (которая должна быть намного быстрее).

Так что это мой вопрос: мне нужна какая-то операция для массивов, которая эквивалентна AllProbeBitsMatch для битовых векторов. В идеале эта операция должна выполняться в MongoDB, возможно, с использованием функций агрегирования для повышения производительности.

Это статья о отпечатках пальцев RDKit и Avalon, которую я использую для справки: http://rdkit.blogspot.com/2013/11/fingerprint-based-substructure.html

0 ответов

Другие вопросы по тегам