Neo4j簡介:"圖形"資料庫(Graph Database)

screenshot.png

會需要用到Neo4j是因為在剖析Reactome資料庫中的生物路徑資料時,發現他有提供Neo4J的資料庫備份檔案,可以直接下載後,匯入到Neo4j的資料庫,相對於Reactome提供的BioPAX檔案,置放在Neo4j中的資料schema比較偏向原生他們內部人員所設計的(在寄信跟Reactome內部人員討論時,他們也推薦我試試看,直接使用他們的Graph資料庫的備份),所以直接瀏覽和理解它內部的資料架構時,可以少轉一層,只能說有好有壞,相對於在處理BioPAX檔案格式時,直接使用Apache tdb/arq相關工具土炮來取得裡頭的檔案,Neo4J則提供蠻多操作選擇的,主要分成可以由命令行操作和網頁模式操作,而在讀取資料庫的時候,可以使用內建的Rest API直接去做資料的爬梳處理。

跟RDF/XML或是其他Triple store的資料庫,Neo4j比較偏向’單純’的圖形資料庫,也就是並沒有那麼重視資料間關係定義的“語意”,更注重在“資工面向”所在意的點,效能、操作介面、API接口、進階的Query方式,Neo4j有自己開發一套query的語言叫Cypher,相信在理解SPARQL後,其實在理解相關圖形資料庫的獨取值會顯得容易許多。

瀏覽器的使用介面

可以使用圖形介面來匯入資料庫,然後把Neo4j服務啟動
screenshot.png

可以直接登入Neo4j所開啟的服務,其有產生一個很好理解和管理的介面
screenshot.png

不得不說它內部的文檔非常豐富screenshot.png

也可以直接使用命令行來讀取資料庫,因為其有良好的API接口,當然可以用curl直接來對街,也能用Java, .NET, Javascript, Python, Ruby, PHP等寫好的函庫(本來有一個R的,但似乎原本負責人離職,後來就沒有支持了!)

curl -i -H "Content-Type:application/json" -X POST -u neo4j:neo4j http://localhost:7474/db/data/transaction/commit \
    -d '{"statements":[{"statement":"MATCH (p:Pathway)<-[:containedInPathway]-(re:Regulation) WHERE p.speciesName = \"Homo sapiens\" RETURN p.displayName,re.stId,re.displayName ;"}]}'

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s