1. 程式人生 > >程式設計師不好好寫報告的結果是很嚴重的

程式設計師不好好寫報告的結果是很嚴重的

轉自:http://blog.sciencenet.cn/blog-404304-884328.html

倒騰了很久的程式碼,結果測試也通過了,然後現在要寫報告了,心情的表情馬上從呲牙變成咧嘴。

倒騰了一上午,一直在摸索怎樣在linux平臺上把報告怎麼快速搞出來,然而這個對我來說好像太不效率了,好了,不搞逗了,老老實實作報告吧。謹以下文,安慰我這種兔子亂跳的心情。

按慣例先講點廢話。對於生信的各種指責,其中有一條看起來既合理、又致命:你用的測序儀等裝置是老外做的,你只是做做計算,因此沒有原創性。這個指責流傳之廣、影響之深,以至於很多老先生也認為這樣的指責是合理的。在兄弟我看來,這個指責因為惡意的混淆了一些基本概念,所以本身存在致命的問題:沒有搞明白生信是做什麼的。第一,搞生信的不是機器貓,所以你不要老是覺得搞生信的就應該是哆啦

A夢,你想要啥生信就必須給你啥。要有期望,但不要像你個窩囊廢一樣什麼都指望別人。做人,要靠自己。第二,生信的研究範疇裡,新儀器裝置的研發,不是必須的。那麼,測序儀等裝置的研發,是哪個領域該做的事情?答:生物醫學工程。那麼生物醫學工程領域的學者在做測序儀不?答:一直在做,例如,東南大學正在開發設計三代測序儀,如“”。東南大學的生物醫學工程專業在國內首屈一指,比我們華工的生物醫學工程要強。那麼咱華工的生物醫學工程是不是就是廢物點心、啥事兒不幹呢?當然不是,咱華工有強悍無比的光學成像,例如,“”,後來發了Science,做了十幾年了還在做。另外,咱華工的數字PET,“”,那也是拿得出手的裝置。

所以,第一,兄弟我歷來認為,專業學者不要隨便跨行,該誰的事情,自己解決。第二,搞測序儀是否需要生信?需要。例如東南大學咱生信領域的前輩

孫老師,就是在東南的生物醫學工程學院。不然你測出資料之後沒人分析,咋知道你測序儀做的好不好?重點在於:生信很重要,但做測序儀這事兒是否搞生信的一定要搶生物醫學工程的飯碗?那人家大嘴巴子扇過來怪我們多管閒事咋辦?第三,足球運動員內褲賣的好當然很重要,比如C羅,但賣內褲不是成為頂級球員必須的,例如煤老闆。因此,請繼續忠於理想,但偶爾也得面對現實。

講正事。昨天還是前天,華大發布,主要是為測序資料分析提供一站式的服務。緊接著,國內迅速有帖子質疑華大的BGI Online抄襲:“”,主要的指責有兩點:第一,安全白皮書基本上是抄了七橋公司的,並且有圖有真相;第二,分析流程抄襲了七橋公司。那麼兩個指責是否正確?或者說:華大有沒有抄襲?

先講第一個問題。從質疑帖子的截圖來看,華大基因應該是抄了七橋的白皮書,而且不是小抄,基本上是直接把人家的白皮書搬了過來。為什麼華大會抄別人的安全說明書呢?我仔細的考慮了5秒鐘,明白了。原因很簡答:程式設計師們都不喜歡寫文件,全球都如此。寫程式做軟體對於程式設計師們是樂事,但辛辛苦苦寫一些絕對不會有人看的說明書,那是相當的無聊。我和胖子合作做了一堆軟體,歷來都是認認真真寫使用指南,不過胖子後來做了統計,發現說明書的下載量基本接近於零。所以胖子整天抱怨說沒有人看說明你還整那玩意兒幹啥的?我說那也得整啊,要講規範好吧。第二個原因是:華大的程式設計師們,想來英文水平也不咋地。咱寫說明書英文寫的都是一塌糊塗,我不相信寫文件能優美到哪裡去。所以綜上兩個原因,華大的程式設計師應該是偷了個懶,就把人家的東西搬了過來。因此這個指責沒有問題。當然華大反應也是夠快,以迅雷不及掩耳盜鈴之勢就更換了白皮書,不相信可以跟七橋的白皮書比較一下,已經基本上不一樣了 (這一步驟花了足足25秒鐘的時間)。當然對於這個問題,第一,華大應該就抄人家白皮書這件事兒公開道歉。錯了就是錯了,你改的快那也還是犯了錯不是?第二,以前人家不關注你,你抱怨大家不關注;現在大家關注你,你要犯錯也別怪大家痛批你。第三,這個其實也就是個小問題,程式設計師習慣的問題,一是寫文件的程式設計師要罰寫500字檢討,面壁倆小時;二是華大應該以此為契機,規範一下程式設計師的工作習慣。畢竟已經是全球領先的大公司,不能老拿自己當小混混。

第二個問題,分析流程有沒有抄襲?我花了整整1分鐘的時間來比較BGI Online的異同。七橋的核心分析流程有5個,包括基於BWA+GATK的全外顯子組分析、基於BWA+GATK的全基因組分析、基於CuffdiffRNA-Seq差異表達分析、基於TopHatRNA-Seq比對,和基於STARRNA-Seq比對。9個,除了上述5個之外,還有4個新的,包括基於ELSA/BALSA的全基因組和全外顯子組分析,,所以這是華大自己搞的新流程;然後是兩個經過華大優化之後的全外顯子組和全基因組分析流程;第四個是華大修改過之後的RNA-Seq分析流程,其中一個工具SOAPnuke,這顯然是華大看家工具集SOAP系列之一。那麼與七橋公司相同或者非常相似的5個流程,有沒有抄襲呢?兄弟我的回答:沒有必要。這是因為,第一,程式設計師們一般不抄別人的東西,主要是別人寫的程式碼一般都看不懂,改別人程式碼與自己重新寫一遍的工作量是差不多的;第二,七橋公司的這幾個流程不是祕密,而是全球搞測序資料分析的生信學者都應該知道的東西,並且各家都會根據自己的需要再做調整。第三,為什麼七橋公司的這幾個流程不是商業機密?OK,你只需要看看他用的軟體,例如BWA, GATK之類的,這都是早發表過並且連火星人都知道的東西,沒有自己的核心技術,有何祕密可言啊?咱搞蛋白質不做測序,可如果需要的話,搭一套這種分析流程最多24小時。無非下載幾個常用軟體,寫幾個指令碼連線一下輸入輸出也結了。當然後面再調整那就費時間了,要調到最優或者自己用起來最優,不是這個領域的行家就搞不定了。並且就算是領域的行家,各人做的流程也五花八門不統一。第四,為啥華大要實現跟七橋一樣的流程呢?這個簡單:你有的,我得有;我有的,你沒有。第五,那七橋公司沒有啥呢?答:沒有核心技術。軟體都是人家的,你搭個流程沒有創新。第六,華大有創新?呃,起碼有一個:SOAP系列,我數了一下是14個軟體。所以SOAP是華大的看家法寶,這也就是為什麼華大曆來說自己是生物資訊學公司,而不是測序公司。這倆是有本質的區別。第七,華大做的SOAP,是垃圾軟體嗎?這個咱不做測序分析,所以可以看看咱生信領域的超級明星,可以看看圖2SOAPdenovoVelvet, AbySS,以及Durbin自己開發SGA拼裝基因組的效能是相當的。SOAPdenovo,VelvetAbySS用的是DBG演算法,而SGA用的是OLC演算法,若你真想批評華大的SOAP是垃圾軟體,OK,你先讀懂這倆演算法再說。第八,還不服?那咱再說一個,你知道RNA-Seq測序資料服從的是負二項分佈而不是高斯分佈?不知道,對吧?你也不知道要用最大斯然性估計MLE來求負二項分佈的均值和方差吧?所以,不懂沒有關係,隔行如隔山,但不懂還嚷嚷別人沒創新,那是不是應該被鄙視?因此綜上所述,分析流程這個一是沒有抄襲的必要,二是華大自己有東西何必去抄別人的破爛玩意兒?華大這麼做,目的就一個:吃掉你。

結論:第一,白皮書這個已經死無對證了吧?抄個沒有人看的說明書多大的事啊?既然已經更正了,那這件事兒就這麼過去吧。第二,5個分析流程抄襲的可能性接近於零。搞測序資料分析就那麼幾個軟體好用,大家用相似的流程說明不了任何問題。

當然這件事情也提醒大家:該寫的文件還得認認真真自己寫啊!