聯系我們contact
電話(huà):027-59760188-801
地址:武漢市東湖高(gāo)新開發區(qū)光(guāng)谷大(dà)道120号現代森林(lín)小鎮A座609室
一款開源的(de)系統生物(wù)研究數據管理(lǐ)系統——OpenBIS
發布時(shí)間:2018-07-09 浏覽次數:453次
一、前言導讀
今天給大(dà)家介紹一款開源的(de)專門管理(lǐ)生物(wù)學研究數據的(de)管理(lǐ)軟件openBIS,文章(zhāng)分(fēn)爲兩個(gè)部分(fēn),前一部分(fēn)介紹軟件的(de)一些基本特性和(hé)概念,後一部分(fēn)介紹軟件在一些領域中的(de)具體應用(yòng)。
OpenBIS當前已經在多(duō)個(gè)SystemX.ch 和(hé)歐盟項目(應用(yòng)質譜技術研究代謝物(wù)和(hé)蛋白質,高(gāo)内涵篩選,下(xià)一代的(de)基因測序技術。)得(de)到了(le)非常成功的(de)應用(yòng)。對(duì)于涉及大(dà)型的(de)系統生物(wù)學研究群體來(lái)說,OpenBIS是極其合适的(de),其功能豐富,系統靈活,部署簡單,可(kě)擴展性強,适合管理(lǐ)組學研究等龐大(dà)的(de)數據,并且能夠處理(lǐ)幾乎任何種類的(de)生物(wù)學數據類型,甚至可(kě)以擴展到其他(tā)研究領域。
不管是系統生物(wù)學,還(hái)是組學,随著(zhe)儀器技術的(de)進步,這(zhè)些新興學科的(de)研究方式與方法都對(duì)生物(wù)實驗數據的(de)管理(lǐ)和(hé)高(gāo)性能計算(suàn)提出了(le)前所未有的(de)挑戰。系統生物(wù)學,基因組學、蛋白質組學、代謝組學等大(dà)科學工程往往意味著(zhe)項目的(de)長(cháng)期持續,參與單位和(hé)人(rén)員(yuán)衆多(duō),産生的(de)數據量十分(fēn)龐大(dà)和(hé)複雜(zá),并且要綜合生物(wù)信息學、計算(suàn)機科學、數學等多(duō)學科的(de)力量協作完成。大(dà)科學工程的(de)長(cháng)期性與複雜(zá)性要求一套系統能應對(duì)種類繁多(duō)且體量龐大(dà)的(de)原始數據存儲,研究過程的(de)靈活多(duō)變,數據分(fēn)析工具與算(suàn)法的(de)不斷更新,研究團隊人(rén)員(yuán)變動等一系列問題。 生物(wù)實驗數據管理(lǐ)系統需要提供一個(gè)堅實的(de)基礎平台用(yòng)于存儲種類繁多(duō)且體量龐大(dà)的(de)分(fēn)析儀器數據并能快(kuài)速整合各種數據分(fēn)析流程,包括商業的(de)數據流程化(huà)處理(lǐ)軟件和(hé)研究人(rén)員(yuán)自己開發的(de)數據分(fēn)析方法。不同品牌、不同型号的(de)儀器原始數據和(hé)不同方式的(de)數據分(fēn)析方法所産生的(de)結果數據都需要長(cháng)久保存,以備将來(lái)再次引用(yòng)以及曆史數據的(de)比較和(hé)整合。在這(zhè)期間,數據的(de)格式與存儲方式也(yě)會随著(zhe)數據分(fēn)析技術和(hé)相關标準的(de)發展而逐步發生變化(huà)。這(zhè)些數據在相當長(cháng)的(de)一段時(shí)間内都可(kě)能被各類數據分(fēn)析人(rén)員(yuán)進行分(fēn)析和(hé)重新分(fēn)析。作爲儀器分(fēn)析原始數據和(hé)數據分(fēn)析所産生的(de)結果數據的(de)倉庫,承擔著(zhe)爲各種功能各異的(de)分(fēn)析組件提供數據來(lái)源以及作爲不同階段不同數據處理(lǐ)工作流之間溝通(tōng)的(de)橋梁。
我們可(kě)以設想,解決如此複雜(zá)問題的(de)的(de)軟件肯定不是一個(gè)剛性的(de)框架,而是模塊化(huà)的(de),松散耦合的(de),這(zhè)些模塊分(fēn)别實現某個(gè)特定的(de)功能或者提供特定的(de)服務,而不苛求單一模塊或服務滿足所有需求。同硬件一樣,這(zhè)些模塊應該是即插即用(yòng)型的(de),能很方便地整合進體系中。模塊之間也(yě)能方便地相互整合,并對(duì)外提供接口。同時(shí),基礎科學研究過程的(de)多(duō)變性和(hé)框架松散耦合的(de)特點,我們很難設定一個(gè)标準的(de)組件模型,因此組件的(de)開發應該著(zhe)重于整合的(de)簡便性上。
最初,OpenBIS系統設計目标就是建立一個(gè)用(yòng)于系統生物(wù)學和(hé)各種組學(蛋白質組學、基因組學、代謝組學)研究的(de)數據的(de)工作平台,将來(lái)源于質譜,測序儀、顯微鏡等各種儀器的(de)數據進行統一的(de)管理(lǐ),并從儀器原始數據中提取基礎數據和(hé)元數據,與數據流程化(huà)處理(lǐ)工具以及各種可(kě)視化(huà)工具、數據分(fēn)析工具整合,對(duì)數據進行分(fēn)階段的(de)以及多(duō)樣化(huà)的(de)後處理(lǐ)。在開放性與靈活性方面,不同類型的(de)用(yòng)戶與系統之間采取不同的(de)交互方式訪問原始數據和(hé)後處理(lǐ)的(de)數據,追溯數據的(de)起源,而不依賴于原有的(de)儀器和(hé)軟件供應商。系統可(kě)擴展性強,存儲和(hé)訪問大(dà)容量數據,并可(kě)配置爲分(fēn)布式存儲。
二、系統的(de)數據存儲結構
openBIS 采用(yòng)邏輯層級式結構存儲數據。其管理(lǐ)的(de)層級單元從上至下(xià)依次爲:
• 數據空間
• 項目
• 實驗
• 樣品
• 數據集
權限規則應用(yòng)于最高(gāo)層級之上,也(yě)就是數據空間。可(kě)以配置訪問規則:各終端用(yòng)于能看什(shén)麽,以及能夠執行何種操作。
層級單元之間的(de)邏輯關系如下(xià):數據空間包含一個(gè)或多(duō)個(gè)項目,項目包含一個(gè)或多(duō)個(gè)實驗,而實驗包含一個(gè)或多(duō)個(gè)樣品,一個(gè)樣品可(kě)以包含一個(gè)或多(duō)個(gè)數據集。這(zhè)裏的(de)數據集是指一組包含實際分(fēn)析數據和(hé)其衍生數據的(de)多(duō)個(gè)文件。例如一個(gè)樣品在微量滴定闆上被顯微鏡讀取了(le)兩次,那麽就會産生兩個(gè)數據集,這(zhè)兩個(gè)數據集都屬于該樣品。采用(yòng)這(zhè)種邏輯結構十分(fēn)符合生物(wù)學研究中的(de)實際情況。
采用(yòng)層級結構能夠爲存儲更多(duō)更大(dà)的(de)數據集并建立彼此之間的(de)相互關系提供了(le)便利。例如,原始數據和(hé)處理(lǐ)後數據可(kě)以分(fēn)别存儲爲兩個(gè)獨立的(de)數據集,這(zhè)兩者之間還(hái)能建立聯系(某結果數據集來(lái)源于某個(gè)原始數據集),并同時(shí)指向一個(gè)樣品或一個(gè)實驗。層級關系進一步衍生可(kě)以建立樣品和(hé)數據集之間的(de)父子關系,而這(zhè)在複雜(zá)的(de)科學研究中是經常遇到的(de)。
元數據是關于數據的(de)數據,爲了(le)描述數據在背景環境中的(de)結構和(hé)意義,便于查找和(hé)使用(yòng)采集的(de)數據失去了(le)元數據的(de)數據沒有什(shén)麽意義。對(duì)元數據的(de)管理(lǐ)是openBIS 十分(fēn)重要的(de)功能之一。
openBIS提供了(le)十分(fēn)靈活的(de)元數據定義功能,可(kě)以在數據集、樣品、實驗等多(duō)層次上定義結構化(huà)、半結構化(huà)、以及非結構化(huà)的(de)元數據,爲靈活的(de)檢索提供保證。爲了(le)組織這(zhè)些元數據,系統定義了(le)元數據類型這(zhè)個(gè)标識,用(yòng)于将創建的(de)元數據歸屬到具體的(de)系統對(duì)象上(數據集、樣品、實驗)
結構化(huà)與半結構化(huà)的(de)元數據,或者叫屬性(或者注釋),屬性就是一個(gè)數據庫中的(de)字段,包括名稱,标簽,描述和(hé)值類型(整數型,浮點型,日期型,邏輯型,文本型,超鏈接,或者之前定義的(de)受控詞彙表,或者對(duì)于半結構化(huà)的(de)元數據而言可(kě)以采用(yòng)XML結構文件作爲存儲值)。系統允許對(duì)實驗,樣品,數據集自定義屬性,并通(tōng)過屬性類型歸屬到具體的(de)數據對(duì)象上,這(zhè)些屬性類型透明(míng)化(huà)地存儲在數據庫中。openBIS中的(de)屬性還(hái)可(kě)以是動态賦值的(de),可(kě)以根據其他(tā)元數據通(tōng)過腳本進行賦值。
在openBIS中,用(yòng)戶可(kě)以對(duì)項目、實驗、樣品三者賦予非結構化(huà)的(de)元數據,也(yě)就是文件型的(de)附件,就如同你在email中插入一個(gè)附件。
基于這(zhè)種靈活的(de)自定義元數據的(de)機制,openBIS提供了(le)通(tōng)用(yòng)型的(de)方式爲那些創新的(de)具備開創性的(de)實驗建立全新的(de)元數據模型
爲了(le)高(gāo)效地存儲和(hé)檢索系統生物(wù)學研究中産生的(de)海量數據,并能兼容不同的(de)分(fēn)析測試技術,openBIS采用(yòng)混合式的(de)數據存儲方法。索引數據,實驗相關的(de)元數據,選擇性的(de)結果數據采用(yòng)關系數據庫存儲(當然,文件型的(de)元數據也(yě)可(kě)選擇存儲到關系數據庫中),大(dà)體積數據則采用(yòng)扁平化(huà)的(de)文件存儲(flatfile).默認情況下(xià),原始數據和(hé)結果數據存儲在數據存儲區(qū)中(data store),這(zhè)是一個(gè)由單個(gè)文件系統或多(duō)文件系統(采用(yòng)分(fēn)段存儲模式)組成的(de)扁平的(de)文件型數據存儲體系。
混合式的(de)數據存儲爲openBIS帶來(lái)了(le)靈活性和(hé)可(kě)擴展性。系統在數據庫中巧妙地存儲了(le)元數據模型,我們可(kě)以認爲這(zhè)些元數據模型本身就是系統數據的(de)一部分(fēn)。這(zhè)樣,用(yòng)戶可(kě)以因地制宜地爲自己的(de)研究數據選擇合适的(de)元數據模型,判斷的(de)标準可(kě)以看元數據模型是否完整地包含了(le)原始數據文件的(de)上下(xià)文信息,是否采用(yòng)了(le)合适的(de)存儲方式(以關系數據庫存儲還(hái)是以文件型存儲)以應對(duì)查詢效率的(de)要求。
系統永遠(yuǎn)保持其核心數據庫的(de)數據量在一個(gè)合理(lǐ)的(de)盡可(kě)能小的(de)規模,并将其置于快(kuài)速存儲設備上。系統對(duì)于會引發大(dà)量數據列表顯示的(de)查詢盡量進行優化(huà),在存儲大(dà)批量數據時(shí)則會采用(yòng)分(fēn)段存儲和(hé)分(fēn)布式存儲。
三、系統部署方式
openBIS由客戶端,應用(yòng)服務器,數據存儲服務器組成。
應用(yòng)服務器(application server 簡稱AS):管理(lǐ)元數據并關聯其指向的(de)基礎數據。
數據存儲服務器(data store server 簡稱DSS):管理(lǐ)數據
應用(yòng)服務器使用(yòng)關系數據庫來(lái)管理(lǐ)用(yòng)戶,用(yòng)戶身份認證信息,系統實體對(duì)象如數據空間,實驗和(hé)樣品的(de)元數據以及所有數據集的(de)索引信息。數據存儲服務器DSS管理(lǐ)存在數據存儲區(qū)中的(de)數據集。該存儲區(qū)隻能由DSS負責寫入,不能被系統其他(tā)部分(fēn)所操作。不同類型的(de)客戶端如浏覽器,圖形化(huà)的(de)Matlab客戶端,命令行客戶端能夠通(tōng)過AS和(hé)DSS訪問openBIS。
在系統部署圖中,我們可(kě)以看到一個(gè)AS可(kě)以對(duì)應多(duō)個(gè)DSS。這(zhè)一特性對(duì)于大(dà)科學工程非常重要,系統生物(wù)學,組學這(zhè)些科學工程往往需要多(duō)個(gè)實驗室和(hé)單位的(de)參與,分(fēn)布式的(de)存儲對(duì)于促進數據共享的(de)同時(shí)進行自有知識産權保護是有雙重作用(yòng)的(de)。openBIS 的(de)分(fēn)布式DSS特性允許各個(gè)實驗室使用(yòng)本地的(de)數據存儲服務器(DSS)存儲本地儀器産生的(de)數據。這(zhè)裏DSS命名爲數據存儲服務器而不是簡單的(de)稱之爲數據庫服務器是自有其道理(lǐ)的(de),openBIS采用(yòng)混合數據存儲模式,即數據庫存儲和(hé)文件存儲相結合,而不是單一的(de)數據庫存儲模式。DSS從設計來(lái)說,并不僅僅是一個(gè)置于因特網上的(de)文件服務器。它能以其自身存儲的(de)數據爲基礎進行各種自定義的(de)查詢,并啓用(yòng)其自身的(de)關系數據庫去存儲結果型數據。這(zhè)些結果數據寫入數據庫的(de)操作可(kě)以在數據載入時(shí)自動進行。在下(xià)圖中,用(yòng)戶通(tōng)過命令行工具和(hé)MatLab客戶端可(kě)以通(tōng)過openBIS提供的(de)API訪問DSS提供的(de)服務。進一步,在現有基礎上還(hái)可(kě)以爲DSS添加協處理(lǐ)服務器用(yòng)于數據的(de)傳輸,例如Datamover和(hé)CIFEX等組件用(yòng)于數據的(de)導入和(hé)導出。
AS和(hé)DSS各司其職,AS專門處理(lǐ)元數據并指向原始的(de)來(lái)源,分(fēn)布式的(de)多(duō)個(gè)DSS負責處理(lǐ)大(dà)規模數據。龐大(dà)的(de)原始數據和(hé)精簡的(de)元數據得(de)以分(fēn)離,從而避免了(le)查詢和(hé)傳輸高(gāo)通(tōng)量和(hé)高(gāo)内涵數據所帶來(lái)的(de)高(gāo)昂的(de)系統開銷疊加,如CPU的(de)使用(yòng),IO和(hé)帶寬的(de)占用(yòng)。
3.1 OpenBIS的(de)客戶端
openBIS自帶了(le)圖形化(huà)的(de)Web應用(yòng)程序,命令行工具和(hé)一些KNIME數據分(fēn)析管道節點。爲了(le)方便專業用(yòng)戶通(tōng)過客戶端訪問後台,系統提供了(le)可(kě)通(tōng)過TCP/IP網絡調用(yòng)的(de)API。
3.2 應用(yòng)服務器(AS)
AS是客戶端與系統交互的(de)中心,其配置有一個(gè)關系型的(de)數據庫,用(yòng)于管理(lǐ)和(hé)存儲關于樣品,實驗,數據集的(de)元數據;實際的(de)數據由DSS存儲和(hé)管理(lǐ),AS引導訪問一個(gè)或多(duō)個(gè)DSS。
AS自身分(fēn)解成幾個(gè)層級:
展示層(Presentation layer):HTML和(hé)Java Script 用(yòng)于客戶端展示
域層(Domain Layer):爲希望與業務對(duì)象(樣品,實驗)進行交互的(de)用(yòng)戶提供服務
數據訪問層(Data acess layer):用(yòng)于AS與DSS之間的(de)訪問,由AS所私有,不由外部調用(yòng)
前三個(gè)服務不僅爲Web客戶端所使用(yòng),還(hái)能由命令行工具程序和(hé)DSS所調用(yòng)。典型的(de)服務如樣品查詢,對(duì)象在數據庫中的(de)注冊。
3.3、數據存儲服務器(DSS)
DSS采用(yòng)混合存儲模式管理(lǐ)數據集所包括的(de)所有數據,如圖像、譜圖、分(fēn)析結果或特征描述。這(zhè)些數據都放在數據存儲系統中。DSS負責對(duì)這(zhè)些數據查詢,基于數據集的(de)報告以及可(kě)視化(huà)。
在扁平的(de)文件存儲模式下(xià),數據存儲由單份組成(一般由一個(gè)文件服務器提供),分(fēn)段存儲模式下(xià),一個(gè)數據存儲有多(duō)個(gè)數據份,每一個(gè)文件服務器管理(lǐ)其中一份。
與AS類似,DSS也(yě)可(kě)分(fēn)爲展示層(presentation layer),域層(domain layer),數據訪問層(data access layer)
展示層(presentation layer),負責數據的(de)展示,一般而言,不外乎類似于爲某張圖片用(yòng)于HTML顯示而提供URL地址之類的(de)事物(wù)。更複雜(zá)一點的(de)将以Tab鍵爲分(fēn)隔符的(de)文件在網頁上以表格的(de)形式展示,更深層次的(de)展示需要用(yòng)戶對(duì)對(duì)數據有更深入的(de)理(lǐ)解,例如數據可(kě)視化(huà)中的(de)熱(rè)點圖,或将代表不同通(tōng)道數據的(de)圖進行組合。這(zhè)些功能我們将在openBIS的(de)第二篇文章(zhāng)中做(zuò)簡單的(de)介紹。數據集上載器(Data Set Uploader)也(yě)屬于展示層的(de)一部分(fēn),其是基于網頁的(de)數據集批量上載工具。爲避免浏覽器對(duì)上載文件2GB大(dà)小的(de)限制,該工具通(tōng)過Java WebStart執行。
域層(Domain Layer),負責提供數據的(de)訪問,并能解析其數據格式和(hé)語義關系。ETL(提取,轉換,上傳)線程也(yě)屬于該層,其負責注冊新産生的(de)數據集。舉一個(gè)DSS的(de)典型的(de)應用(yòng)的(de)例子,ETL線程監控某個(gè)文件夾中的(de)事件發生情況,如果該文件夾中新創建了(le)文件或文件夾,ETL将執行相關的(de)操作。
數據訪問層(data access layer),用(yòng)于生成DSS中文件存儲系統的(de)摘要。該摘要使得(de)DSS能夠利用(yòng)RDBMS中的(de)文件元數據從而加速檢索和(hé)列表顯示,透明(míng)地訪問容器文件(HDF5容器以目錄的(de)形式顯示),并将同一個(gè)數據集容器中的(de)多(duō)個(gè)數據集的(de)目錄列表彙總顯示。
3.4、CIFEX
CIFEX是openBIS系統的(de)輔助工具,全稱叫CISD文件交換工具(CISD Exchanger).CIFEX 是一個(gè)基于Web的(de)應用(yòng)程序,用(yòng)于傳送和(hé)交換大(dà)的(de)數據文件。由于浏覽器對(duì)于上傳容量有2GB的(de)限制,CIFEX采用(yòng)基于Java Webstart 圖形化(huà)工具,支持斷點續傳并進行校驗和(hé)檢查以保證文件完整性。CIFEX主要用(yòng)于下(xià)載openBIS中存儲的(de)超大(dà)的(de)數據集。如果用(yòng)戶能夠直接訪問DSS數據存儲的(de)文件系統,則CIFEX并非是必須的(de)。但大(dà)多(duō)數用(yòng)戶是無法直接訪問DSS文件系統的(de),而如果有人(rén)想把一些數據分(fēn)享給沒有openBIS 賬号的(de)人(rén),那麽CIFEX就可(kě)以幫助實現這(zhè)一目的(de)。大(dà)家知道,系統生物(wù)學和(hé)相關的(de)組學的(de)分(fēn)析數據都是十分(fēn)龐大(dà)的(de),多(duō)達幾個(gè)G。此時(shí)研究人(rén)員(yuán)通(tōng)過郵件發送這(zhè)些數據集不太現實。在這(zhè)種應用(yòng)下(xià),CIFEX成爲了(le)數據與openBIS系統之間雙向流通(tōng)的(de)通(tōng)道。CIFEX系統同樣也(yě)是開源的(de),并可(kě)提供下(xià)載。
3.5、Datamover
顧名思義,Datamover是用(yòng)于數據從一個(gè)地點傳輸到另一個(gè)地點。其可(kě)使用(yòng)本地發起的(de)文件共享或是通(tōng)過SSH通(tōng)道(建立在應用(yòng)層和(hé)傳輸層基礎上的(de)安全協議(yì))或遠(yuǎn)程主機同步進行數據的(de)傳輸。該工具主要是用(yòng)于将儀器直接連接的(de)計算(suàn)機上的(de)數據轉移到一個(gè)過渡性的(de)中間存儲設備上。組學研究的(de)數據往往十分(fēn)龐大(dà),與儀器相連的(de)計算(suàn)機的(de)磁盤很快(kuài)就會超過容量。将儀器相連計算(suàn)機上的(de)文件夾直接對(duì)應到DSS的(de)存儲區(qū)往往又會受制于網絡的(de)好壞。要知道,網絡往往不太穩定。此時(shí)就需要在DSS存儲區(qū)與分(fēn)析儀器計算(suàn)機之間建立一個(gè)中間過渡區(qū),例如數據中心或者計算(suàn)集群,由Datamover不斷地将數據遷移過去。Datamover在傳遞過程中解決遇到的(de)一切大(dà)小故障,諸如網絡中斷,存儲設備達到上限等問題。
3.6、驗證與授權
openBIS采用(yòng)基于插件的(de)機制用(yòng)于用(yòng)戶驗證,可(kě)與LDAP(如微軟Active Dicrectory),Crowd等身份識别系統以及簡單的(de)文件方法進行集成。系統采用(yòng)分(fēn)組和(hé)角色的(de)授權機制,解決特地用(yòng)戶能夠看到哪些數據以及能夠進行哪些操作的(de)問題。
四、系統的(de)功能模塊
OpenBIS的(de)核心功能包括數據和(hé)元數據的(de)管理(lǐ),數據檢索,數據共享,數據導入導出,與其他(tā)系統的(de)接口。這(zhè)些基礎功能都已經相當穩定,并可(kě)供下(xià)載,對(duì)于生物(wù)學家來(lái)說可(kě)謂是開箱即用(yòng)。如果想要把openBIS作爲一個(gè)新的(de)系統整合到現有的(de)工作流程中則需要一定程度的(de)定制化(huà)開發,并可(kě)在此基礎之上添加額外的(de)功能,如可(kě)視化(huà),數據的(de)終端發布,定制化(huà)的(de)查詢設計等等。如果單位上配備有經驗豐富的(de)開發人(rén)員(yuán),包括生物(wù)信息學研究人(rén)員(yuán),加上與實驗研究人(rén)員(yuán)相互配合,我們可(kě)以将自己開發的(de)一些特色化(huà)的(de)程序與openBIS進行無縫整合從而開發出十分(fēn)強大(dà)的(de)應用(yòng)。這(zhè)樣就能更加緊密地貼合用(yòng)戶的(de)實際需求。畢竟系統是開源的(de), 我們甚至可(kě)以直接修改源碼對(duì)系統進行個(gè)性化(huà)的(de)改造。
4.1、數據與元數據管理(lǐ)
如前文所述,系統采用(yòng)層級式結構組織數據和(hé)元數據。以數據空間爲基礎進行授權。一般而言,在系統中會爲不同的(de)研究小組創建不同的(de)數據空間。數據空間下(xià)以項目,實驗,樣品、數據集組織數據。系統可(kě)以基于訪問的(de)需要設置觀察人(rén)員(yuán)(對(duì)數據隻讀),一般用(yòng)戶(添加或編輯對(duì)象)、并能以組和(hé)角色進行統一授權。在數據發布環節上,研究人(rén)員(yuán)可(kě)以非常方便地改變其所擁有數據的(de)權限設置,從而使其對(duì)外公布。openBIS爲分(fēn)析結果提供優良的(de)溯源性。一個(gè)新的(de)數據集創建會分(fēn)配一個(gè)唯一的(de)标識号并且不能再作改變。如果數據由一個(gè)或多(duō)個(gè)數據集衍生而來(lái),系統會創建一個(gè)新的(de)子數據集,并将該數據集歸屬到其來(lái)源數據集。
獨立于某種專門的(de)數據格式和(hé)存儲方式,無論是儀器原始數據還(hái)是數據分(fēn)析管路所提交的(de)數據結果,都可(kě)以直接存儲在openBIS 中而不需要對(duì)格式進行轉化(huà)或其他(tā)改變。如果需要其他(tā)的(de)數據格式和(hé)存儲方式,也(yě)可(kě)以通(tōng)過數據轉換工具自動完成。一般建議(yì)用(yòng)戶爲數據的(de)新格式單獨創建一個(gè)新的(de)數據集,并将同樣一份數據的(de)不同格式放在一個(gè)數據集容器中。爲了(le)使得(de)數據集容器對(duì)用(yòng)戶透明(míng),openBIS會顯示其文件系統視圖,顯示包含在該數據容器中的(de)所有文件。
4.2數據檢索、導出和(hé)分(fēn)享
大(dà)規模數據的(de)導出采用(yòng)CIFEX。數據集檢索基于數據集識别碼、數據集類型(如原始數據,蛋白結果數據)、文件類型(mzXML,protXML)以及其他(tā)與數據集、樣品、實驗相關的(de)元數據(例如數據轉換軟件的(de)名稱)。結合這(zhè)些元數據可(kě)以進行常規的(de)邏輯篩選操作,例如字符串的(de)比較,數值的(de)範圍限定等,最終選擇的(de)數據可(kě)以方便地通(tōng)過電子表格導出。如果查詢結果涉及大(dà)規模數據,這(zhè)在組學研究中經常會碰到,此時(shí)系統将會自動重定向到CIFEX進行導出,openBIS通(tōng)過這(zhè)種方法能夠用(yòng)來(lái)分(fēn)享數據,例如爲下(xià)遊的(de)數學建模人(rén)員(yuán)提供數據。
4.3、數據導入方式
對(duì)于涉及數百M到數個(gè)G大(dà)小的(de)蛋白質質譜數據來(lái)說,數據如何進入系統中集中管理(lǐ)是個(gè)比較關鍵的(de)問題。根據不同的(de)使用(yòng)需要,數據上傳到openBIS中采用(yòng)三種不同的(de)方式:Dropbox,網頁上直接上傳,通(tōng)過遠(yuǎn)端API自定義程序上傳。
第一種方式是采用(yòng)所謂的(de)dropbox,所謂Dropbox實際上是位于本地文件系統或文件服務器上的(de)文件存放目錄。DSS監視該目錄中的(de)寫入情況。如果發現新的(de)數據,例如新建了(le)某個(gè)文件或文件夾,系統就會啓用(yòng)爲該dropbox配置的(de)ETL(提取、轉換、上載)流程,使得(de)該新産生的(de)數據集能爲openBIS系統所接受,在此過程中并将其與适當的(de)對(duì)象關聯(例如某個(gè)樣品),提取相關元數據用(yòng)于檢索,并将這(zhè)些數據集轉換爲預定義的(de)格式,以便與諸如計算(suàn)模拟之類的(de)其他(tā)工具集成。ETL過程在openBIS系統中并非是固定的(de),而是設計爲一組可(kě)配置的(de)插件,在對(duì)新産生的(de)數據如何處理(lǐ)的(de)問題上具有很高(gāo)的(de)可(kě)配置性和(hé)自由度。一般而言,在數據存儲容量夠大(dà)的(de)前提下(xià),建議(yì)ETL處理(lǐ)的(de)同時(shí)保留未經處理(lǐ)的(de)原始數據。如果使用(yòng)Datamover作爲協處理(lǐ)服務器,dropbox可(kě)擴展爲連接各個(gè)不同實驗室的(de)橋梁,從而實現跨單位合作。在長(cháng)期需要大(dà)量交換數據的(de)系統之間,dropbox可(kě)以充當一種非常有效的(de)”松散耦合”的(de)接口。
第二種方式采用(yòng)網頁直接上傳,基于web的(de)上傳工具可(kě)以從web上觸發。對(duì)于實際的(de)數據上傳步驟,會将用(yòng)戶重定向到Data set uploader或者重定向到CIEFX服務器。
第三種方式是API進行定制化(huà)程序開發,系統提供的(de)遠(yuǎn)端API是一組Java類,提供基于流的(de)編程模式用(yòng)于上傳任何構成數據集的(de)文件集合。與dropbox相比,其允許與使用(yòng)它的(de)程序更緊密的(de)集成,提供及時(shí)的(de)反饋,支持任何允許HTTPS傳輸的(de)WAN網絡。由于使用(yòng)Java作爲編程環境在某些情況下(xià)受到限制,openBIS還(hái)包含了(le)命令行工具用(yòng)于調用(yòng)遠(yuǎn)端API調用(yòng)實現數據的(de)上傳。該工具已經用(yòng)來(lái)實現LabView 和(hé)其他(tā)基于腳本的(de)數據源與openBIS 的(de)整合。
4.4、用(yòng)戶端接入
第一種方式是圖形化(huà)的(de)界面,适用(yòng)于普通(tōng)用(yòng)戶。
第二種是命令行界面,适用(yòng)于專家級用(yòng)戶,用(yòng)在腳本編程環境中實現操作的(de)自動化(huà),方便與各種自動化(huà)的(de)數據處理(lǐ)管線整合,或者整合進定制化(huà)的(de)用(yòng)戶界面,尤其是在API不能使用(yòng)的(de)情況下(xià)。
第三種是API調用(yòng)。該方法提供了(le)兩種方式,Java service和(hé)JSON-PRS web Service。Java 服務爲開開發者提供類和(hé)方法用(yòng)于将OpenBIS整合進其他(tā)應用(yòng)程序,通(tōng)過使用(yòng)這(zhè)種API ,開發者可(kě)以很方便無縫地将openBIS整合進其自己開發的(de)應用(yòng)程序,如工作流和(hé)可(kě)視化(huà)工具。這(zhè)些API盡管是用(yòng)Java實現的(de),但并不僅限于用(yòng)在基于Java的(de)應用(yòng)程序。許多(duō)流行的(de)數據處理(lǐ)環境,如Matlab,R都可(kě)以調用(yòng)Java API的(de)功能。事實上系統專門爲MatLab提供了(le)其API的(de)變體-HCS-API,用(yòng)于支持Matlab的(de)語言特性。JSON-PRC Web Service雖然沒有Java Service那麽高(gāo)級,在所有的(de)支持Web标準的(de)計算(suàn)機環境中也(yě)都能應用(yòng)。特别是任何的(de)WEB程序對(duì)openBIS 後端的(de)使用(yòng)。
4.5、數據可(kě)視化(huà)與發布
openBIS中的(de)數據可(kě)視化(huà)往往要借助整合其他(tā)的(de)軟件。一個(gè)簡單的(de)例子就是采用(yòng)數據報告插件用(yòng)于展示HTML文件,例如Illumina HiSeq2000測序儀軟件産生的(de)數據。更加複雜(zá)的(de)展示工具,如孔闆視圖顯示多(duō)位滴定闆,特征向量的(de)圖形化(huà)展示,用(yòng)于高(gāo)内涵篩選和(hé)蛋白質組學的(de)蛋白質視圖(展示蛋白的(de)定性和(hé)定量數據)。或者整合現有的(de)視圖,如使用(yòng)API實現圖像強度-尺度再調節工具。
就數據的(de)終端發布而言,系統中數據的(de)簡單視圖可(kě)以通(tōng)過Web界面的(de)配置快(kuài)速實現。從系統的(de)應用(yòng)經驗來(lái)看,基于openBIS框架可(kě)以實現滿足各種需要的(de)任何數據類型的(de)視圖。
五、總結
openBIS是一款開源的(de),基于Web的(de)用(yòng)于管理(lǐ)大(dà)規模生物(wù)學研究數據的(de)軟件,其具有異構、松散耦合、分(fēn)布式等多(duō)重特性,易于與各種軟件工具進行整合。系統采用(yòng)項目化(huà)的(de)結構用(yòng)于管理(lǐ)實驗數據,處理(lǐ)用(yòng)戶身份認證和(hé)授權,以及數據的(de)導入和(hé)導出,數據溯源,支持數據格式的(de)遷移和(hé)數據的(de)歸檔。
下(xià)一篇文章(zhāng)中,我們将介紹openBIS在下(xià)一代的(de)基因測序,高(gāo)内涵篩選,定量圖像,蛋白質組學,代謝組學方面的(de)應用(yòng)。