一種新軟件有望成為科學(xué)數(shù)據(jù)分享新利器
交互筆記:共享你的思想
一種新軟件有望成為科學(xué)數(shù)據(jù)分享新利器
Titus Brown一邊飛行在太平洋上空,一邊深潛到學(xué)生的研究代碼中。從美國(guó)東蘭辛市密歇根州立大學(xué)到澳大利亞墨爾本參加會(huì)議的這次長(zhǎng)途旅行,給這位生物信息學(xué)家詳細(xì)檢查實(shí)驗(yàn)室的新運(yùn)算法則以及去除RNA序列中的錯(cuò)誤提供了一次良機(jī)。
3年前,Brown必須要等回到辦公室后才能這樣做,因?yàn)槿绻唤?jīng)過其他研究人員的解釋懂鸵,他很難潛入到他們的代碼中,并對(duì)這些代碼進(jìn)行修改以生成新的研究結(jié)果醉途。但現(xiàn)在Brown可以用一個(gè)免費(fèi)的開放性軟件包在很遠(yuǎn)的地方與實(shí)驗(yàn)室的人一起工作矾瑰,這個(gè)軟件包就是IPython,它可以幫助研究人員保存一份詳細(xì)的實(shí)驗(yàn)室運(yùn)算筆記隘擎。
Brown的學(xué)生寫出說明文本后殴穴,附上他們研究生成的原始代碼、圖標(biāo)以及數(shù)據(jù)。然后采幌,坐在飛機(jī)上的Brown就可以用電腦里下載的IPython筆記本應(yīng)用程序零距離接觸到學(xué)生的研究成果劲够。他重新運(yùn)行代碼后,該程序就會(huì)直接執(zhí)行命令并呈現(xiàn)出他正在閱讀的這份材料休傍,讓他隨時(shí)看到他的修改是否有助于提高運(yùn)算法則征绎。“我可以通過瀏覽學(xué)生的筆記本磨取,確切地了解他們做了哪些工作人柿,然后進(jìn)行修改,尋找不同的參數(shù)忙厌,提出不同的觀點(diǎn)凫岖。”他說逢净,“在世界任何一個(gè)地方哥放,我都可以進(jìn)行這些操作〉粒”
IPython 筆記本的設(shè)計(jì)目的是讓數(shù)據(jù)分析更容易分享和再生甥雕,目前用它來(lái)給科研做詳細(xì)記錄、設(shè)計(jì)教學(xué)模型以及與他人合作胀茵,其科學(xué)家用戶已越來(lái)越多社露。一些研究人員甚至?xí)霭孢@些筆記本,來(lái)支持他們的研究論文宰掉。Brown就是其中之一呵哨,他也在推動(dòng)著讓這個(gè)程序成為互動(dòng)科學(xué)出版的新模式赁濒。
更好的筆記本
IPython筆記本應(yīng)用程序是2011年由美國(guó)加州大學(xué)伯克利分校數(shù)據(jù)科學(xué)家Fernando Pérez和加州州立綜合科技大學(xué)計(jì)算物理學(xué)家Brian Granger帶領(lǐng)的研究團(tuán)隊(duì)共同開發(fā)的轨奄。“開發(fā)這個(gè)程序是為了解決我們和其他研究人員以及教育工作者共同面臨的問題拒炎∨材猓” Pérez說。
Pérez 和Granger發(fā)現(xiàn)击你,數(shù)據(jù)科學(xué)家面臨一個(gè)棘手的問題:他們很難詳細(xì)地分享自己的原始代碼玉组,或?qū)ζ溥M(jìn)行便于理解的描述,讓其他人在他們研究的基礎(chǔ)上有所拓展丁侄。其原因部分是由于很多涉及到大量計(jì)算的研究領(lǐng)域的科研人員都是以重復(fù)和零碎的方式寫代碼惯雳,因?yàn)槊看畏治龆紩?huì)出現(xiàn)新發(fā)現(xiàn),丟棄掉研究中的多重思路鸿摇。
記錄產(chǎn)生各種數(shù)據(jù)的每個(gè)不同版本的代碼并把那些文件和注釋筆記相結(jié)合石景,是個(gè)令人頭疼的問題。而發(fā)表后的成果對(duì)于跟進(jìn)該研究的讀者來(lái)說往往不夠詳細(xì)〕蹦酰“在我從事的計(jì)算物理學(xué)工作中”揪荣,Granger說,“對(duì)論文中的運(yùn)算法則作出高質(zhì)量的描述與原代碼中所描述的詳細(xì)程度之間的差距通常要以光年來(lái)計(jì)往史。沒有那些細(xì)節(jié)仗颈,別人想要在一定時(shí)間內(nèi)復(fù)制這個(gè)過程簡(jiǎn)直沒門兒∽道”
IPython筆記本通過幫助科學(xué)家記錄他們的工作挨决,使這些資料更容易分享,并讓其他人了解其代碼解決了上述哪些問題订歪。應(yīng)用程序名稱IPython中的“I”代表幫助用戶運(yùn)行代碼凰棉、訪問變量,總結(jié)數(shù)據(jù)分析包裹以及了解研究過程的“交互性”命令窗口陌粹,而“Python”則指的是作為筆記本程序基礎(chǔ)的通用計(jì)算機(jī)程序語(yǔ)言撒犀。(Pérez,Granger及其同事現(xiàn)正在幫助用戶把筆記本程序轉(zhuǎn)移到另一項(xiàng)叫作Jupyter的項(xiàng)目中掏秩,該項(xiàng)目旨在讓IPython與包括 Julia和R在內(nèi)的其他語(yǔ)言相兼容或舞。)
代碼應(yīng)用
在得克薩斯大學(xué)奧斯汀分校,Tal Yarkoni利用IPython筆記本在大腦圖像研究中進(jìn)行自動(dòng)化元信息分析蒙幻,以發(fā)現(xiàn)參與語(yǔ)言過程映凳、情緒變化以及其他大腦神經(jīng)活動(dòng)過程的模式。這位心理信息專家計(jì)劃把他的筆記和未來(lái)的論文一起發(fā)表邮破≌┩悖“分析越復(fù)雜,用一份完整的記錄來(lái)涵蓋和傳遞這個(gè)過程就越重要抒和〗糜妫”他說。
事實(shí)上摧莽,已經(jīng)存在與IPython筆記本相似的各種代碼語(yǔ)言應(yīng)用程序庙洼。比如在數(shù)學(xué)家中很受歡迎的商業(yè)分析軟件包裹Mathematica 和Maple就包含筆記本或類似筆記本的應(yīng)用程序。 在信號(hào)處理镊辕、工程以及醫(yī)療圖像研究等領(lǐng)域使用量極多的商業(yè)分析包裹MATLAB也支持筆記本應(yīng)用油够。而每種筆記本都有其相應(yīng)的專業(yè)代碼語(yǔ)言。
在開放性資源領(lǐng)域征懈,有很多筆記本和類似筆記本的程序石咬。如knitr 使用的是R代碼語(yǔ)言,具有強(qiáng)大的數(shù)字分析能力卖哎;Sage數(shù)學(xué)軟件系統(tǒng)同樣基于Python語(yǔ)言鬼悠,還支持其自帶的筆記本虏束;Dexy是一個(gè)類似筆記本的程序,專門幫助用戶合并短文厦章、代碼镇匀、數(shù)據(jù)和其他媒介中的信息,生成論文和講稿袜啃。
但Dexy創(chuàng)始人Ana Nelson卻表示汗侵,IPython筆記本是其中應(yīng)用最廣的程序∪悍ⅲ“很多沒有聽說過其他應(yīng)用程序的人都知道Ipython晰韵。”她說熟妓。不過雪猪,Granger 和Pérez并不知道有多少人在使用他們的軟件,他們僅表示主動(dòng)使用該程序的用戶訪問其網(wǎng)站的次數(shù)大約在50萬(wàn)~150萬(wàn)人之間起愈。Nelson表示只恨,這是至今為止設(shè)計(jì)得最好的數(shù)字筆記本,其免費(fèi)性及開放性吸引了很多用戶抬虽。該應(yīng)用程序還因Python代碼語(yǔ)言受大眾歡迎而獲益官觅,因?yàn)樵摼幊陶Z(yǔ)言在科學(xué)界擁有廣大的使用群體,他們會(huì)每年就此舉行國(guó)際會(huì)議阐污,而且該語(yǔ)言對(duì)于入門程序員來(lái)說相對(duì)簡(jiǎn)單易學(xué)休涤。
盡管隨論文一起發(fā)表研究筆記的研究人員越來(lái)越多,但是讓科學(xué)期刊把這些資料作為完整的期刊文章的一部分來(lái)發(fā)表笛辟,還需要很長(zhǎng)的過程功氨。而目前一些IPython筆記已經(jīng)作為書籍出版,很多教授還用這個(gè)軟件開展互動(dòng)課堂手幢。但到目前為止捷凄,這些筆記仍僅作為論文的附屬品來(lái)發(fā)表,經(jīng)常被用來(lái)提供分析代碼和附加解釋的選擇手段弯菊。
“出版商仍然不認(rèn)為他們需要整個(gè)研究過程纵势□獍ⅲ”Granger說管钳。這些數(shù)據(jù)的版式可能過新,很難讓期刊把筆記本作為正式的文檔版本软舌,如html或pdf版本才漆。但是IPython已經(jīng)開始和一些出版商就此對(duì)話。
從新手開始
很多IPython筆記本用戶都是技術(shù)豐富的程序員佛点,但是專家正在幫助新手使用該軟件醇滥。大約3個(gè)月前黎比,加州大學(xué)圣地亞哥分校博士后Yan Song在電腦程序使用方面還沒有任何經(jīng)驗(yàn)。她在分子醫(yī)學(xué)實(shí)驗(yàn)室進(jìn)行細(xì)胞研究鸳玩,包括設(shè)計(jì)實(shí)驗(yàn)阅虫、收集數(shù)據(jù),而另一位計(jì)算機(jī)科學(xué)家則幫助她挖掘數(shù)據(jù)不跟。
當(dāng)他們區(qū)分各種神經(jīng)元時(shí)颓帝,Song的任務(wù)是找出老鼠和人類干細(xì)胞中RNA表達(dá)發(fā)生的變化。以前窝革,她使用Excel對(duì)比不同階段的細(xì)胞組織的表達(dá)模式购城。今年早些時(shí)候,她開始要檢測(cè)單個(gè)細(xì)胞以及細(xì)胞大小與復(fù)雜的RNA序列數(shù)據(jù)虐译。她的研究不再像以前一樣僅僅分析幾組細(xì)胞數(shù)據(jù)瘪板,而是一次性對(duì)上千個(gè)細(xì)胞進(jìn)行對(duì)比,每次要檢測(cè)大約1500個(gè)和神經(jīng)發(fā)展相關(guān)聯(lián)的基因漆诽。
該實(shí)驗(yàn)室生物信息學(xué)專業(yè)研究生Olga Botvinnik于是在IPython筆記本中生成研究結(jié)果侮攀,這樣Song可以對(duì)這些代碼進(jìn)行分析。出于好奇厢拭,Song說:“它看起來(lái)是一個(gè)非常容易操作的界面魏身,你可以給一行信息進(jìn)行編碼,然后立刻檢驗(yàn)它是否正確蚪腐〖牵”
通過在線課程和信息專欄的幫助,僅用了數(shù)周時(shí)間回季,Song就學(xué)會(huì)了一些基本的IPython編程技術(shù)家制,Botvinnik還列了一些菜單,讓Song用不同的聚類算法研究她的數(shù)據(jù)泡一。盡管目前Song還要依賴Botvinnik的幫助進(jìn)行大量運(yùn)算和分析颤殴,但她表示自己已經(jīng)開始動(dòng)手分析數(shù)據(jù),并用掌握的生物學(xué)知識(shí)檢驗(yàn)一些特別的細(xì)胞或基因子集鼻忠,在未來(lái)分析中她也在教Botvinnik這種方法涵但。“以前我們倆用兩種不同的語(yǔ)言交流帖蔓,我用生物學(xué)語(yǔ)言矮瘟,而她用編程語(yǔ)言。現(xiàn)在塑娇,我們有了共同的基礎(chǔ)澈侠,可以更好地進(jìn)行交流。這將加速我們的研究埋酬∩诳校”她說烧栋。(魯捷)
更多閱讀