第四章:超算中心#
當(dāng)晚回去,祁旻就把她寫來用于申請(qǐng)經(jīng)費(fèi)的項(xiàng)目計(jì)劃書發(fā)到了鄭文鈺先生的郵箱里。
第二天當(dāng)祁旻正在用現(xiàn)在她學(xué)校計(jì)算中心的超算繼續(xù)用她現(xiàn)有的微縮版“類腦體”跑更大的測(cè)試集時(shí),突然收到了中科院“雨云”超級(jí)計(jì)算機(jī)項(xiàng)目周曉姍研究員的郵件。
郵件上告訴祁旻,她明天就能到FS區(qū)“雨云”計(jì)算中心去商量使用事宜了。
此時(shí)祁旻真想狠狠地親嚴(yán)兆蘭一口——果然還是老朋友比較靠譜!
現(xiàn)在這個(gè)測(cè)試集也不用跑了。祁旻停止了Jupyter上測(cè)試類腦體學(xué)習(xí)能力的代碼,又連忙開始把生成類腦體的代碼再捋了一遍。她把那些在匆忙之中命名得亂七八糟的變量都重新按照用途的簡(jiǎn)寫命名了,而后給每一塊兒代碼寫上了注釋。
祁旻用她“美化”過的代碼重新跑了一個(gè)只有16×16×16個(gè)虛擬神經(jīng)元的超微縮版類腦體,檢查確認(rèn)無誤之后才保存了代碼。
倘若周曉姍研究員同意她使用“雨云”的計(jì)算資源,那么她就能嘗試生成全尺寸1:512、1:64甚至是1:8、1:1的類腦體。一旦她拿到了1:1的類腦體,那隨便湊湊實(shí)驗(yàn)數(shù)據(jù)就能把她的文章寫完了。
——
第二天祁旻起了個(gè)大早,都沒去學(xué)校就直接坐地鐵去了“雨云”計(jì)算中心。
“雨云”是由一大片計(jì)算核心群組成,出于散熱考慮是占用單獨(dú)的一座機(jī)房,上層配有復(fù)雜交錯(cuò)的液冷管道系統(tǒng)。計(jì)算中心的工作人員顯然不可能讓祁旻這個(gè)外來者進(jìn)入機(jī)房,甚至在計(jì)算中心工作的研究者們都很少會(huì)與真實(shí)的“雨云”親密接觸。
祁旻要去的地方是周曉姍研究員的實(shí)驗(yàn)室,她們約好了在那里見面。
然而當(dāng)祁旻到了周曉姍實(shí)驗(yàn)室,詢問里面正在工作的研究生時(shí),卻被告知他們老師正在開會(huì)。實(shí)驗(yàn)室的研究生也沒問祁旻是來干什么的,只是祁旻進(jìn)去先等一會(huì)兒。
祁旻進(jìn)到他們的實(shí)驗(yàn)室里,發(fā)現(xiàn)這兒雖然也是生物信息學(xué)實(shí)驗(yàn)室,但和她想象中的實(shí)在非常不同。
最大的區(qū)別就是實(shí)驗(yàn)室里沒有實(shí)驗(yàn)區(qū)和生活區(qū)的劃分。因?yàn)樯镄畔W(xué)研究需要在生物體或者生化體系上進(jìn)行操作的“濕實(shí)驗(yàn)”很少,沒有什么有害試劑和微生物的污染,因此用不著把實(shí)驗(yàn)臺(tái)跟辦公桌分離開。而同樣與生物信息學(xué)特征相對(duì)應(yīng)的是,實(shí)驗(yàn)室里每個(gè)人的辦公桌上都立著至少兩臺(tái)屏幕和大得異常的主機(jī),房間里空調(diào)開得很大,祁旻從其中一臺(tái)沒有人但仍然常亮的屏幕上看到他們正在做大量電鏡照片的二維傅立葉運(yùn)算處理。
祁旻找了個(gè)沒人的位置坐下,看到旁邊一個(gè)戴著森海塞爾耳機(jī)的小伙子正在調(diào)試代碼。
她不禁好奇地瞥了一眼,發(fā)現(xiàn)他正在寫的是一個(gè)RNA結(jié)構(gòu)預(yù)測(cè)工具。其實(shí)RNA結(jié)構(gòu)預(yù)測(cè)已經(jīng)是研究比較充分的領(lǐng)域了,現(xiàn)有的算法各有千秋,然而對(duì)于某類特定的RNA,或許需要根據(jù)其已知的信息而設(shè)計(jì)合適的特殊算法。
而這段代碼看起來就像是這個(gè)小伙子自己寫的,因?yàn)槠顣F已經(jīng)看他修修改改快十分鐘了,輸出的預(yù)測(cè)數(shù)組仍然是一堆負(fù)數(shù)。
碰巧祁旻原先寫過RNA結(jié)構(gòu)預(yù)測(cè)的代碼,此時(shí)順著他修改看了一遍,很快就找到了問題。
“嗯……這個(gè)遍歷方式好像不太對(duì)吧。”祁旻不好意思直接對(duì)他說,只是坐在旁邊嘀咕道。
一開始這小伙子戴著耳機(jī)裝沒聽見,壓根兒沒搭理她。
祁旻看他這么調(diào)真是費(fèi)勁,于是忍不住說道:“對(duì)于最近鄰居算法(i,n-i)應(yīng)該從i大于等于2開始,i是0和1的情況要用氫鍵最多原理……”
“是‘能量最低’原理?!闭{(diào)代碼的小伙子摘下耳機(jī),轉(zhuǎn)身對(duì)她說道,“但是初測(cè)值的實(shí)驗(yàn)方式不同,這兩種算法壓根兒不能通用?!?p> “誰說的?第一對(duì)氫鍵賦值根本不影響。你先試試吧?!逼顣F對(duì)他說道。
小伙子將信將疑地加上了一段兒IF,從另外一個(gè)單純使用能量最低原理的算法里復(fù)制出了相關(guān)代碼。
他再運(yùn)行之后,輸出的矩陣?yán)锕徊蝗秦?fù)數(shù)了。
但很明顯結(jié)果也不對(duì)。
負(fù)數(shù)還是太多了,導(dǎo)致最大值才只有不到4,而很明顯用于測(cè)試的那段30個(gè)堿基的線性RNA不可能只形成一個(gè)堿基配對(duì)。
“這又是怎么回事兒?”小伙子這回直接對(duì)她問道。
祁旻湊到屏幕前仔細(xì)看了看,而后一邊敲著鍵盤一邊說道:“你這個(gè)對(duì)比最大值的嵌套FOR語句里沒有加FLAG,只要加上就好了……”
代碼再運(yùn)行了一遍,這回輸出的矩陣終于看起來正常了。
小伙子松了口氣兒,剛要從椅子上站起來,祁旻卻說道:“哎,這還是不對(duì)。你看這段RNA的已知結(jié)構(gòu),這里面有三個(gè)LOOP,但你的算法算出來有四個(gè)……哦,我知道了,還得加一個(gè)防止無效配對(duì)的IF,連續(xù)兩個(gè)堿基以下的配對(duì)不應(yīng)該存在?!?p> 她把這個(gè)IF語句加進(jìn)去之后,最終畫出的RNA二級(jí)結(jié)構(gòu)終于和已知結(jié)構(gòu)一樣了。
“呃……你還真……”小伙子看著屏幕上的圖像,不自覺地露出了一絲傻笑。
而后他看了一眼祁旻,有些奇怪地問道:“你是新來的?我記得今年我們這兒不招博士生了——你是技術(shù)員?”
“沒,我就是來找周曉姍老師有點(diǎn)兒事兒?!逼顣F笑著說道。
“什么事兒?”小伙子問道,而后像是意識(shí)到這個(gè)問題有點(diǎn)兒侵犯別人隱私,于是補(bǔ)充道,“或許我也能幫你一下兒?!?p> “還真沒準(zhǔn)兒?!逼顣F從他的屏幕面前移開,“我來找周曉姍老師是為了能用一下兒‘雨云’?!?p> “哦,那好說啊?!毙』镒恿⒖檀饝?yīng)道,“如果我老板不同意,你還能用我的號(hào)。”
“這樣還是不太好吧……”祁旻有些尷尬地笑了笑。跑類腦體占用的計(jì)算資源可是非常多的,如果是偷偷用某個(gè)博士生的號(hào),肯定會(huì)引起管理員的懷疑。
“那有什么的?”小伙子無所謂地說,“‘雨云’的計(jì)算能力這么強(qiáng),一般的項(xiàng)目根本不是事兒。老板就是想弄點(diǎn)兒大項(xiàng)目,測(cè)試一下兒它的實(shí)際計(jì)算能力,才召了我們這些個(gè)做生物的人來到處接活兒。說實(shí)話,我在來這兒之前都沒怎么學(xué)過Python?!?p> 看得出來。祁旻在心里默默地評(píng)價(jià)了一句,而后又開玩笑地問:“那要是周曉姍老師把我拒了,我可就真來借你的號(hào)了?”
“行,當(dāng)然行?!毙』镒恿⒖陶f道,“來加個(gè)微信,到時(shí)候這個(gè)RNA算法出BUG了,我還得再找你呢。”
農(nóng)桿菌
生信和普通濕實(shí)驗(yàn)簡(jiǎn)直不是一種東西……能玩得轉(zhuǎn)交叉學(xué)科的都是大佬_(:з」∠)_