99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀對付大數據的小伎倆
對付大數據的小伎倆
2018-01-31
收藏

對付大數據的小伎倆

大數據是當前的熱門話題。各行各業(yè),到處都有人談論大數據。就人的基因來說,大數據這部“天書”總共30億個字。在檢驗過程中,為了不看走眼大數據,保證結論準確可靠,慣例是每一個字檢驗30次以上。因為30億的數據量實在太大,需要通過相當程度的重復來排除錯誤。為了把一個人的基因通讀一遍,得念1000億個字,真真的就是大數據。

    先不說如何分析、解讀這部書,如何理解全書或者它的某些章節(jié)、段落的含意。挖掘大數據所蘊含的寶藏是一個難題。生物信息學是當今的熱門專業(yè),非常搶手。我們只看第一步,生物學家要動用什麼樣的心思和手段,才能把這套數據拿到手。
    基因技術上的改進共有3次,但是遠遠沒有到達終點。
    最初的技術,一次只能讀100個字。100對1000億,那是愚公移山。於是人們著手改進技術,增加長度。成就也不能說沒有,終於可以從100個讀到1000個了,手工操作也改成機器自動化了。十年過去,提高了十倍。然而,1000是該技術的極限,再也難以延長。
    這時,有人想到了把基因分成小組。大數據不好對付,分班分組可以減輕負擔。首先把基因切斷成大片段,再想辦法將這些大片段復制幾萬份,滿足后續(xù)操作需要;然后分頭檢測各個片段。拿到數據后,先把大片段組裝出來,作為骨架;再用骨架搭出整個基因組。
    這里頭的每一步都是可以做到的,人們努力的方向自然而然就從增加讀長改成了增加基因片段的長度。增加長度很容易,但是長片段的復制是一個問題,操作繁瑣,速度簡直就是烏龜爬。
    面對這種窘境,文特爾想起了獵鳥。身處曠野,鳥兒的個頭實在是太小了。它們飛在空中,即使看見了,打下來也不容易。霰彈槍是對付飛鳥的有效武器。一打一片,碰到鳥兒的機會比較多。基因散布在數據的汪洋大海中,要抓住同樣不容易。也許霰彈槍也是對付基因的一個辦法?文特爾的想法是跳過困難的長片段復制,把基因打成更短的片段,直接測序。短片段的復制比較容易,好比霰彈;短片段拼基因組,好比拼圖游戲。
    突然有人提出這樣的胡思亂想,冀求朝天胡亂放一槍就碰到個把基因,完全不被看好。鳥槍法遭致一片反對。由於申請不到經費,文特爾干脆自己動手,成立了一家公司,與官方研究機構展開競賽。他們很快就測定了果蠅和人類的基因,速度之快,可比兔子。號稱可以與阿波羅登月計劃相媲美的人類基因組計劃,在鳥槍法加入競爭之后,迅速完成了。當美國總統宣布該計劃完工的時候,當初申請不到經費的人也站在克林頓旁邊。
    從此,所有人都倒向鳥槍法。
    每次只拿一條序列,速度還是成問題。人基因組計劃歷時10年,光文特爾的私人公司就花了10億美金,只測出一個人的基因。還有誰能付得起這樣的代價呢?於是,提高規(guī)模就成了緊迫的任務。如果一次檢驗能拿到幾百萬條序列,讀基因不就像讀小說了嗎?這一看似不可能的夢想,人們還真的通過平行測序做到了。但是任何事情都有兩面。為了實現超大規(guī)模,就不得不犧牲長度,由1000倒退回100。新技術剛起步的時候還要短,只有區(qū)區(qū)35個字,簡直令人齒冷。盡管長度短,數據總量卻不少,是原來的6百萬倍??块L度35的片段居然能拼出基因組,不能不令人驚嘆?;蚣夹g終於跨出了一大步,被尊為第二代。
    官二代、富二代,都不如基因技術第二代。這一跨越留給人們的印象實在太深了,流風余韻,以至今天,盡管二代技術的長度能輕松達到兩三百,還是經常有人問:你們還做35嗎?
    片段化看似笨拙、凌亂,沒有效率,卻是快刀斬亂麻地解決復雜問題、對付大數據的不二法門。我們做美味的獅子頭,要把五花肉亂刀剁碎。被剁碎的基因組,味道也很鮮美。
    創(chuàng)新沒有止境。新技術雖然大獲成功,但是讀長實在短了點,對不住人,數據組裝相當吃力。那是用筷子拼出京廣線的活兒,計算機都是一屋子、一屋子地擺著,蔚為壯觀,也令人望洋興嘆。如何提高效率呢?人們又想起了基因分組的老黃歷。把基因切成大片段后,分別做好標記,各自處理成二代測序所要求的長短,再混合起來一起測序。在數據組裝的時候,先按記號分別組裝,形成骨架,再用骨架進行第二輪組裝。本來一步完成的任務,現在分成兩步,計算機的負擔大大降低。想出這個金點子的人也成立了一家公司,總共只有6名員工。小公司被大公司收購,花費1.6億美元。
    看完近30年來基因技術的發(fā)展歷程,你也許很不服氣:這算什麼,也不過大蟲拿人,只是一撲、一掀、一剪;對付基因組,只有延長、分組、拼圖三招,程咬金的三板斧,來回折騰。是的,治大國若烹小鮮,對付大數據,要用小片段。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }