Статьи

Mining Bio4j Data: поиск топологических паттернов в сетях PPI

Привет всем!

После написания этой статьи в декабре я подумывал о том, чтобы сделать что-то похожее, но другое, используя язык запросов Neo4j Cypher.

Вот где я пришел к идее искать топологические паттерны с помощью большого подмножества сети белок-белковых взаимодействий, включенного в Bio4j, вместо того, чтобы сосредоточиться на нескольких белках, выбранных априори.

Я решил собрать данные, чтобы найти схемы / простые циклы длиной 3, где хотя бы один белок из набора данных Swiss-Prot :

Я хотел бы отметить, что направление здесь важно и эти два цикла:

  • A -> B -> C -> A
  • A -> C -> B -> A

не то же самое.

Итак, как только это будет сказано, давайте посмотрим, как выглядит запрос Cypher:

START d=node:dataset_name_index(dataset_name_index = "Swiss-Prot")
MATCH d <-[r:PROTEIN_DATASET]- p,
circuit = (p) -[:PROTEIN_PROTEIN_INTERACTION]-> (p2) -[:PROTEIN_PROTEIN_INTERACTION]-> (p3) -[:PROTEIN_PROTEIN_INTERACTION]-> (p)
 return p.accession, p2.accession, p3.accession

Как видите, это действительно просто и понятно. В первых двух строках мы сопоставляем белки из набора данных Swiss-Prot для последующего извлечения тех, которые образуют цикл с 3 длинами, как описано ранее.
После завершения запроса вы должны получить что-то вроде этого:

cypher>
==> + —————————————————— +
p.accession | p2.accession | p3.accession |
==> + —————————————————— +
Q08465 P35189 P3421
Q08465 P34218 P35189
Q8GXA4 Q8L7E5 Q9LE82
Q8GXA4 Q9FH18 Q8L7E5
….
==> + ——————————————————— +
==> 6632 строки, 1019211 мс

Как вы можете видеть , что запрос занял около 17 минут , чтобы быть завершены в 100% свежей БДне было никакой информации кэшируется все еще ; с машиной AWS m1.largeэта машина имеет 7,5 ГБ оперативной памяти .
Неплохо, верно!

Мы должны остерегаться чего-то, хотя этот запрос возвращает такие циклы, как:

  • A -> B -> C -> A
  • B -> C -> A -> B

как разные циклы, когда они на самом деле нет.

Вот почему я разработал простую программу для удаления этих повторений, а также для получения некоторой статистической информации.
После запуска программы вы получаете два файла:

  1. PPICircuitsLength3NoRepeats файл: скачать его здесь
  2. PPICircuitsProteinsFreq file: загрузите его здесь .

В окончательных схемах найдены были снижены после выполнения фильтрации для 2226 записей.

Наконец, я также создал действительно простую диаграмму, включающую абсолютную частоту первых 20 белков, которые встречаются чаще в найденных циклах.

Ну, это пока все.

Хорошего дня!


Источник:
http://blog.bio4j.com/2012/01/mining-bio4j-data-finding-topological-patterns-in-ppi-networks/