艾西莫夫Issac Asimov的預言:綠藻吧

趁連假空出一段時間,來閱讀和思考,翻到很喜歡的作家鄭志凱在2016年的書:小國大想像,這本書大部分寫作時間是在2014年,距今也過了快十年,時空是在中美還沒有交惡前,疫情沒有爆發,其中一篇文章現在閱讀起來特別有感覺,上一次看這本書,我對於合成生物學的背景理解還不多,現在重看就異常有趣,其中一篇名為:1964, 2014, 2064的文章,原本發表於天下雜誌專欄,但在書裡面有再改寫,多加入一些東西,看到下面這段文章,讓我很有感覺:

from 小國大想像:第二章 1964, 2014, 2064

這幾句是來自艾西莫夫(Issac Asimov)的預測,艾西莫夫是科幻小說界的老鼻祖,從機器人系列、銀河帝國三部曲、基地系列,裡面塑造的未來,至今回看許多都成為真實,其中艾西莫夫對於未來有許多的預測,這邊有艾西莫夫的訪談,可以一睹前輩風采

The 2014 fair will feature an Algae Bar at which “mock-turkey" and “pseudosteak" will be served. It won’t be bad at all (if you can dig up those premium prices), but there will be considerable psychological resistance to such an innovation.

from Issac Asimov prediction

想起這一兩年實驗室養肉的新創如雨後春筍,看起來這些預測慢慢都會成為真實,果然人類的想像力是帶領我們前行的重要力量,更有趣的是下面的預測:

期許我們在假期和閒暇中,能找到如艾西莫夫的想像力,並從中一起創造未來!

合成生物學即將革命你的產業

這篇是閱讀自BCG的研究文獻摘要,關於合成生物學對於產業的影響。

from BCG Interview and research: Synthetic Biology Is About to Disrupt Your Industry

合成生物學的技術慢慢越來越成熟,幾乎各種產物都可以使用生物來製造,產業需要學習如何利用這個領域的知識來幫助其優化製程、降低成本,確保未來的產業競爭優勢。

合成生物學這名稱不重要,重要的是實質底層的意涵,生物學本質上是去研究生物體內的現象和機制,而合成生物學則是利用對這些生物體的理解來設計及應用於生產和創造。微生物本身就能產生各式各樣的化學物質,隨者我們導入合成生物學的架構和工程思維,便能大幅改善整個生產流程。

供應鏈將不在受限於原物料的供應,公司將能理用細胞、細菌等等從底層來產生這些材料,比如半克的牛肌肉細胞可以培養成好幾百磅的牛肉,這類的技術將會創造數以百計的公司。估計到2030年,整個產業的價值會超過30兆美元。

整個產業的前進,主要得益於這十年來基因修改和定序的技術進步,除了相對便宜和方便的定序進步外,使用CRISPR作為基因編輯的工具讓價錢大幅降低,加上許多技術的進步如機器自動化、人工智能等等,讓這些技術的整合能帶給製藥產業、服裝產業、農業、化學工業、能源產業等等不一樣的革新和思維。

充滿創意的產品和製程

前幾年大火的植物肉,如Impossible Foods和Beyond Meat算是掀起了歐美產業的革命(素肉在東方算是相對成熟的市場,只是沒有這波歐美公司成功的市場策略和製程),也揭示了利用合成生物學的方法可以產生什麼過去無法想像的產品類型

Company with innovative product:Impossible Foods, Beyond Meat, Innocent Meat, New Age Meats, Change Foods, Eat Just, Good Chicken, Upside Foods, Ginkgo Biowork, Joyn Bio

改善現有產品的製程和表現

新的合成生物學公司開始重新設計一些傳統原料的製程,為了建置環境友善的流程,且能不使用石油為原料,改變整個供應鏈生態,另一方面,細胞或是微生物為主的製程可以大幅提高產出率(理論值,但也相對應有許多要克服的困難,比如菌種污染、最佳化養殖條件等等)。另一方面,傳統的鍊金或是從廢棄物萃取金屬的方式會使用到大量的化學試劑,但相對使用所謂的生物浸出(Bio-leaching),利用微生物來提煉特定重金屬,則相對傳統方法是更乾淨環保的,如百年礦業集團力拓集團(Rio Tinto)、必禾必拓(BHP)開始導入生物方法來提煉金屬如銅。

Extraction and recovery of precious metals from electronic waste printed circuit boards by bioleaching acidophilic fungi, 2017

降低成本,增加稀有材料的供應

日常生活中,許多我們習以為常的原物料,取得是非常困難的或是不環境友善,比如香草精,自從1900年開始,香草精作為甜點中重要元素,使其全世界需求量越來越大,但實際上只有非常少數是從香草豆莢而來,大多數都是從不同化合物中轉化而來,百分之85是使用木餾油中的愈創木酚(Guaiacol),百分之15則是從木質素(lignin)而來。另外,在奢侈行業中的皮革,也是近年來飽受動物保護觀念而影響,逐漸希望能有替代方案,於是開始有相關的生技廠商,使用非動物性材料來創造出皮革的質感,比如Modern Meadow,便是使用可以產生膠原蛋白的酵母菌,藉此來製造成皮革材料,MycoWork公司則是利用蕈類的材質來創造皮革般質感的生物材料。

from MycoWorks website

催化更有彈性的供應鏈

隨者世界朝向低碳排等永續環境目標下,導入生物製程提供傳統行業更加環保的方案,如聖地牙哥的公司Genomatica,他們使用生物製程來產生尼龍所需的前驅物質,提供給杜邦公司作為尼龍6這個專利材料所用,主要使用微生物來發酵來自於植物的醣類,來產生這些前驅物質,而不須依賴石油,這樣的好處是可以讓製成的碳排放大幅降低。也因為是使用微生物等作為材料供應來源,整體供應鏈的彈性將遠比以前依賴石油時更為彈性。

未來這樣的產業趨勢主要由兩個東西決定:技術成熟(time to maturity)技術可接受性(diffusion)。技術成熟的時間,則跟產業能否規模化和成本相關聯,大概百分之九十的合成生物學技術,都無法規模化,規模化通常代表者菌株的選擇和優化,以酵母來說,至少要能每年60萬公升,動物細胞則是每年4萬5公升,而規模化需要時間,伴隨者就是成本的降低。技術可接受性,則跟當地法規、產業聚落、投資和產品特性央關,以及市場的選擇,是否生產目標本身極具被取代特性,這速度也跟相對於的人才供應有關。

合成生物產業改革傳統產業的方式

  • 現行產業面對新合成生物學產業的競爭,因其提供更便宜、更快的生產能力,以及相對低的環境足跡
  • 現行產業轉型往更環境友善的製程改進
  • 現行產業使用合成生物學公司所製造的新型態材料

所謂的產品替代,可能從B2B到B2C都有,在工業層級上,最主要的是BCD產業(大宗化學和特用化學產業),再來可能在往香料和調味劑方向做調整,主要根據可能的產業規模相關。

閱讀參考:

BCG: Synthetic Biology Is About to Disrupt Your Industry

使用Google App Script導入自動化流程,稍稍減輕你的行政勞務

這邊先打個預防針,再如何導入自動化管理,始終還是需要人的介入,所以最終還是會需要花些時間參與其中,但至少可以從部分重複性的勞動中解放出來,隨者我們很多行為都在電腦中操作,有時候我們會發現我們做的事情就是重複性的點擊和寄件,這時候其實這些行為也可以被自動化,這就是所謂的機器人流程自動化(Robotic Process Automation)(P.S: 假如要很…技術宅的來說明的話),從簡單的點擊自動化到判讀發報告工具等等都是這類的概念。

這是開始接手一點點行政工作的夥伴常常會遇到的情境,這邊就以醫院總醫師業務為例。

“新學期開始,你的科又要迎來新的Clerk,每週都有不同梯次的人,你也要提醒帶的醫師記得上課,又要在課後收集Clerk的作業和評分,光處理這些事物,大概就佔用到你一半以上的時間”

令人崩潰的迷因

相信身邊很多開始需要處理行政雜務的朋友,常需要做的事情就是各種提醒和收集評分表或是報告,一部分的人慢慢的會使用如Gmail, Google Form, Google doc, Google sheet等等工具導入電子化,但最煩的是日期到了你必須自己來寄信、彙整、收集。

但其實可以再往下多自動化一步。(假如你是Google工具重度使用者的話)

這邊分享一下你可以使用Google App Script來讓這些工具自動化完成,做到如下:

特定日期發信提醒上課講師,給予講師當天課程學生名單,且將評分表附在信中寄給學生或是相對應的老師!

什麼是Google App Script?

我們常常在用的如Gmail, Google Slides, Google Sheet, Google Form等等都是所謂的Google Apps,而我們使用的時候都是使用圖形化介面,在瀏覽器中開啟信箱,寫信和收信,附上郵件,在google doc上面協作,撰寫草稿,或是利用Google Slides來做簡報,使用Google Form來設計問券,這些工具就是所謂的Google App,正常情況下你就是利用滑鼠來使用,但其實最近兩年Google為了讓企業或是個人能更高效地利用,導入了所謂的Google App Script工具,讓你使用簡單的代碼,便能輕鬆的自動化這些當初用滑鼠來使用的情節,且可以輕鬆地串接每個App,讓工作流程自動化且排程化。

簡單來說,你每個建立的google doc, google slide, googlde sheet, googlde form都是一個可以用程式來調用的檔案,具有唯一的物件Id。很酷吧!

如何建立一個Google App Script檔案?

那會不會很麻煩,假如想要使用Google App Script來操控我們在google Apps裡的檔案?一點也不,你不需要安裝任何程式,或是建立整個編程環境,流程就像是你建立一個Google Doc檔案一樣。

直接在你的googld drive中,就能建立一個Google App Script檔案

編輯和撰寫Google Apps Scripts

點開你建立的Google Apps Script就會自動進入他的編輯器中,如同下面的畫面:

整個畫面就如同一個簡單的編輯器,裡面可以直接撰寫代碼來控制你的文件,主要是使用Javascript的語法,所以相對容易,你不用在自己學習新的語法和觀念,只需要搞懂Google App Scrip裡面調用Gmail, Google Sheet, Google Form的函式即可,以及你想要怎麼去串接資料來達成你想要的任務。

基本邏輯,每個Google檔案都是可以被取用的物件

第一個重要觀念在使用Google App Scripts是每一個你的google檔案,都有一串獨一無二的Id,且都是顯示在網址之中,非常一清二楚。

這邊是我每封信件的一個範本,這邊一點開,你從瀏覽器就能看到這個文件的Id,這就可以在App Script中調用,另一方面,因為Google在權限管理做得很好,所以不同帳號的人基本上是不能調用彼此文件的,所以我這邊露出這Id基本上不會讓別人可以任意修改(希望我的理解沒錯,不然….我的檔案就有危險惹)

基本範例:一個自動寄出提醒當天上課教師的Email

這個功能在做什麼呢?簡單描述一下,每天這個函數會被排程在早上八點的時候執行,執行時,他會去檢查我們的課程排程google sheet表單,看今天的日期是哪個老師上課,有老師上課的話,就是檢查另一個學生組別的google sheet,看這老師帶的組別,裡面有哪些學生,接者他再去抓取我們的問券範本google form,把這些學生的姓名和上課資料放進去問券,接者在抓取我們設計的Email範本,把相關老師姓名、學生姓名以及問券連結放上去,接者邊把這封信寄給這位老師,同時CC給我。

他會長什麼樣子呢?

基本的撰寫方式就是以寫一個函數(javascript function)的模式,然後函數內完成你想要的功能,這邊可以看到Google Apps Scripts的編輯器會自動抓取這份文件中定義的所有函數,你點選執行便能測試這些你自己撰寫的代碼。

你可以把所有要用到的檔案都放在同一個地方,這樣其實就可以很輕鬆的管理和建置你的流程,之後要交接給學弟妹也會非常方便,或是用舊的代碼來完成新的工作!

這邊分享原始代碼,給有興趣的人使用:



// 使用的代碼
// reference usage: http://www.eion.com.tw/Blogger/?Pid=1148
function autosentDOC(){
    // ======================== Basic 參數設置 ================================

    let today = new Date(); // 讀取今天的日期
    Logger.log(today); 
    Logger.log(today.toDateString()); 
    // 設定google drive中檔案的id
    // 問券:一份google form問券:用來打分數
    const form_id = '1XvhpcCV_UXDCJpIOsdaksjfo9LDwWKrkxP16sMvs' ;
    // 資料:一份google spread sheet:裡面有所有clerk的資訊,包含:姓名、梯數、開始的日期、結束的日期等等
    const sheetTeacher_id = '1tquDwugwMsy5al20f_hGChdfdsafdsGsCoXHUJF0';
    const sheetStu_id = '1EdySuvRHo3iPqdfsdfsfdsfB9Cx3sRcmFnPfdsfdo';
    // 文本:一份google doc:裡面有email的範本
    const docmd_id  = '11QphDQkYe8rdfsdfsdfeOfKlXhfQdH6bj5g';  // 內容:提醒有clerk,且要評分
    
   
    
    //const email = 'dontellyou@gmail.com' // 測試時使用自己的信箱
    // 寄信函數的參數
    const param = {
        method:'get',
        headers: {
          "Authorization":"Bearer "+ScriptApp.getOAuthToken()
        },
        muteHttpExceptions:true
      }
    // ======================== 今天上課的教學醫師 =============================
    // 讀取教學醫師的排程
    const gs_MT = SpreadsheetApp.openById(sheetTeacher_id);

    const gs_MT_sheet = gs_MT.getSheetByName('schedule');

    const gs_data = gs_MT_sheet.getDataRange().getValues();
    // 讀取學生組別資料

    const gs_Stu = SpreadsheetApp.openById(sheetStu_id);

    const gs_Stu_sheet = gs_Stu.getSheetByName('member');

    const gs_Stu_data = gs_Stu_sheet.getDataRange().getValues();
    // ======================== 從google sheet取得 Clerk的名單資料 ======

    // 讀取google drive中的google sheet 檔案
    //const ss = SpreadsheetApp.openById(sheet_id);
    // 讀取這個google sheet中的分頁,分頁名稱為2021_2022_Clerk_CPcourse
    //const sheet = ss.getSheetByName('2021_2022_Clerk_CPcourse');
    // 讀取這個分頁中的所有資料
    //const data = sheet.getDataRange().getValues();
    
    // 將資料中,所有clerk課程開始日期比今天小且clerk課程結束日期比今天晚的“所有”資料
    let currentTeachers = gs_data.filter(function(item, index, array){
      //Logger.log(item[0]); 
      let tmpDate = new Date(item[0]);
      return tmpDate.toDateString() == today.toDateString()   
      });
    // 將資料中,clerk課程開始日期比今天小且clerk課程結束日期比今天晚的“第一筆”資料
    let currentTeacher = gs_data.find(function(item, index, array){
      let tmpDate = new Date(item[0]);
      return tmpDate.toDateString() == today.toDateString()     
      });
    
  
 
    // 判斷今天有組別的話,組別名單
    
    if(currentTeachers.length == 0){
       Logger.log('今天沒有老師要上課');
    }else{
      // 假如本兩週有clerk學生,則執行下面的代碼來建立問券
        //看一下currentClerk物件內容(debug使用)
    Logger.log("todayTeacher"); 
    Logger.log(currentTeacher[3]);
    Logger.log("today group");  
    Logger.log(currentTeacher[2]); 
    Logger.log(currentTeachers); 
      // 這週有clerk,看是否是第一週
      // 這梯有clerk,且本週為要上課的日子gs_Stu_data
      const currentClerksNamesArray = gs_Stu_data.filter(function(item, index, array){
      //Logger.log(item[0]); 
      return item[0] == currentTeacher[2]   
      });

      const currentClerksNames = Array.from(currentClerksNamesArray, item => item[2]);
      Logger.log("today group names");  
      Logger.log(currentClerksNamesArray); 
      Logger.log(currentClerksNames); 
      // ======================== 修改問券的資料,根據今天之clerk名單 ==============
      // 讀取google drive中事先建立的google form
      const form = FormApp.openById(form_id) ;
      // 讀取這個google form的問題
      const items = form.getItems();
      // 一個個確認這問券中的問題
      items.forEach((item)=>{
        
        if(item.getIndex() == 0){
        // 假如是這問券的第一個問題
          const nameItem = item.asMultipleChoiceItem();
        // 將這梯的醫學生名字放進去問券第一題的選項之中
          nameItem.setChoiceValues(currentClerksNames);
          Logger.log(currentClerksNames,'名字放入問券!');
         }
        if(item.getIndex() == 1){
        // 假如是這問券的第二個問題
          const nameItem = item.asMultipleChoiceItem();
        // 將這梯的日期放到問券之中 
          nameItem.setChoiceValues([today.toDateString()]);
          Logger.log([today.toDateString()],'日期放入問券!');
        }
  
      })
      // 這梯有一學生
       //讀取email範本:有clerk學生的版本
       //const form = FormApp.openById(form_id) ; 
       const url = 'https://docs.google.com/document/d/'+docmd_id+'/export?format=html';
       let html = UrlFetchApp.fetch(url, param);
       html = html.getContentText();
       // 將信件放入老師名稱
       html = html.replace(/#teacher/g, currentTeacher[3]);
       // 將信件放入clerk名稱
       html = html.replace(/#name/g, currentClerksNames);
       // 將信件放入google form的連結
       html = html.replace(/#link/g, form.getPublishedUrl());
       // 將信件放入這梯clerk的名字
       html = html.replace(/#time/g, currentTeacher[2]);
       // 信件的主旨
       const subject = 2022 + ' 第'+currentTeacher[2]+'組'+' 檢驗醫學部-實診暨臨診-案例討論課當日評核';

       const prop = {
        htmlBody:html,
        cc:'testemail@gmail.com'
       };
       // 寄信
       GmailApp.sendEmail(currentTeacher[4], subject,'',prop);
    }
    
  }

GenomesDAO:定序你的基因,鑄造一個NFT

延續前一篇的內容社群、區塊鏈、NFT和新型態生技開源模式,但又有點展開,來分享最近看到的一個基因定序服務跟NFT結合的項目,他們初衷很單純,但卻直指目前許多DTC基因檢測產品的問題:

如何確保你的基因資料不被幫你定序的公司自由使用且販售,但又能讓你決定你是否要提供你的基因資訊給予如研究組織、藥廠、生技公司有償或是無償地使用

GenomesDAO便是最近看到一個想要解決這個問題的公司,且以一個NFT項目發行的模式來參與Web3.0的世界。他的模式蠻有趣的,整個使用流程如下:

藉由購買或是鑄造一個Geneticats的NFT後,可以使用這個NFT來兌換實體的定序採檢套組,這個套組可以寄到世界各地,你只要用這個採檢棒刮取口腔中的粘膜,把一些細胞刮下來,再寄回去,經過約14-16周的檢體處理和定序,基因資訊會完成處理,將你的序列用AMD加密的方式儲存,此時便能利用你的資料來挖礦(售予藥廠、生技公司、研究機構使用你的資訊,並且給予你$GENE幣),同時可以使用你的資料再來鑄造成另外一個生成式的藝術作品。

這類將科學主題使用NFT的風潮,其實不算少見,甚至在Narure上面還有文章再分享這個現象:

How scientists are embracing NFTs, Nicola Jones, Nature

比如哈佛大學的George Church,就把自己的基因鑄造成NFT,在去年跟他實驗室創建的基因定序公司Nebula策劃了一場NFT拍賣,這場活動則是為了要激起大家對於基因數據的意識,宣傳大於實際的意義,因為事實上Goerge Church教授的基因序列已經是共享的資訊了,他早在2005年推動的Personal Genome Project就把它自己的基因序列也一起放在這個資料庫之中。

相信未來會有越來越多新型態的生技創業模式,尤其是打破原本募資想法的流程,讓民眾參與其中!

社群、區塊鏈、NFT和新型態生技開源模式

這篇想探討的方向初看會頗奇怪,蛤,區塊鏈、NFT跟開源生技發展有什麼關係,但實際上不然,用此篇來總結最近一些關於 Web 3.0和生技產業的可能關聯和想法。

先看一下這個Twitter上仰慕許久的生技創業前輩喬納森·羅斯伯格 (Jonathan Rothberg),他一系列的生技公司從454定序儀、賣給Thermo的Iron Torrent技術、手機式手持超音波儀ButterFlyHQ、移動式MRI的Hyperfine、這兩年建立的Detest居家核酸檢測公司等等,最近他在Twitter上的Handler:

這邊有幾個有趣的地方,第一個是Rothberg購買了在以太坊上的網址並且放在他的Twitter名字上,這是常見參與區塊鏈領域的人之習慣,再來可以看到他的介紹上面有寫到Web3、DAO和NFT,因為對基因體領域的前輩多多少少都有追蹤,所以對其Twitter的變化也是很驚訝,但另一方面也是好奇這位生技前輩看到了什麼有趣的趨勢!

再往下,可以發現Jonathan Rothberg已經開始下手進入這個領域,希望使用區塊鏈的架構來進行生技領域的創業,到這邊再來分享一下最近對區塊鏈、NFT和生技領域的看法,可能就顯得合情合理了!

一開始理解Web 3.0,算是老弟的分享(他在Solana鏈經營項目,早期比特幣投資者,常常聽他分享),畢竟區塊鏈跟我之前的背景知識和日常暴露差距有點遠,但保持開放的心態去理解和學習,慢慢體會到區塊鏈技術是如網路一樣的底層技術,可以對各行各業提供支持和改變。

這一年來參與的跨國課程How to grow almost everything(HTGAA), diyBio, global biocommunity, auto open lab等等,都越發激起對於這件事的好奇和體悟,就是如何能建立一個好的社群,而區塊鏈技術對社群營造的幫助也是我專注的重點之一,如今發現基於區塊鏈所創造的Decentralized Automonous Organization, DAO(去中心化自治組織)在生技開發中的應用會是很有趣的一個模式,比如專利的授權能否結合區塊鏈等等,也有一些實際在運作的組織再以此為手段如LabDAO, VitalDAO等等。

社群是賦能單一人類重要的實體

社群的價值在科技時代完全沒有降低,反而越顯重要,且直接上升到超越傳統的標籤如職業、年紀等等,雖然新聞常常在談論AI取代人類等等,科技公司壟斷世界,但實際上人依舊是整個經濟體系中的關鍵,且比以往更容易打破壟斷和封閉,以及改變社會的某個層面,所以當某個工具能很好的聚集人群和建立社群,就會產生巨大的價值。

回過頭來思考這件事,可以發現社群模式的改變是逐步迭代的,如扶輪社、學會、協會、人民團體都是近50年來出現的社群模式,人們也因為經營或是參與這類社群而獲取或創造價值,這件事也隨者技術的改變持續演進,Kevin Kelly在2008年撰寫的這篇1000 true fans,這件事就在談論網路的出現提供創作者一個新型態的生存模式,在2008年的時候,可能連網路電商都還沒有普及,但如今2022年這類圍繞個人創作者的商業模式已經讓人們能接受,比如露天電商、社群電商、Youtuber等等,都是某種社群型態藉由科技進步而促成的。

所有賦能社群的工具都會改變人類的行為模式

回顧這十年,以台灣來說,就經歷了多個社群工具的演進,如部落格、無名、噗浪、Line群組、臉書、Instagram到現在的Discord,一個個浪潮,漸漸讓人們社群行為轉往數位,因為網路的普及,人們很容易能建立自我的內容,進而形塑群體,且網路的聊天工具,讓溝通變得非常可擴展,網路支付機制讓這個溝通及社群能形成商業閉環,甚至因網路頻寬和速度的進步,甚至能以直播串流的模式創造新的叫賣模式

NFT是區塊鏈技術上賦能和聚集社群的一種工具

相對於Kevin Kelly在2008年那篇一千個朋友,這篇cdixon的文章NFTs and A Thousand True Fans寫於2021-2-27號,則把這個概念套用在區塊鏈其中一種應用中,稱作NFT,關於NFT的定義在網路上應該有很多介紹,我的理解則是一種在區塊鏈上的應用概念,附於特定事物一個撰寫在區塊鏈上的擁有權(ownership),但實際上則有各式各樣應用,這邊節錄cdixon文章中對於NFT的定義:

NFTs are blockchain-based records that uniquely represent pieces of media. The media can be anything digital, including art, videos, music, gifs, games, text, memes, and code. NFTs contain highly trustworthy documentation of their history and origin, and can have code attached to do almost anything programmers dream up (one popular feature is code that ensures that the original creator receives royalties from secondary sales). NFTs are secured by the same technology that enabled Bitcoin to be owned by hundreds of millions of people around the world and represent hundreds of billions of dollars of value

from Cdixon, NFTs and A Thousand True Fans

所以當NFT提供另一種模式讓創作者能聚集人群,並從中分佈價值,那這就會引起另一種人類社會的變化,所以當人們說NFT只是炒作畫作時,就稍微簡化了NFT可以做的事情,那只是最簡單的一個功能。

基於區塊鏈技術所創造的人類社群:DAO

我們進而往下,在這概念下,我們可以利用區塊鏈建立一個很特別的組織架構,叫做DAO,推薦可以看一下這部影片Stanford BioE 60: Beyond Bitcoin – Decentralized Autonomous Organizations (DAOs)

相對於傳統社群建立的模式,DAO就是利用區塊鏈技術來達成社群需要的一些功能,比如資產分配、交易、決策模式等等,傳統組織架構如協會,我們可能會有一定規範才能成立,而協會的資產必須使用銀行來儲存,這些資產權利則是利用現有的行政體系來維護,擁有權則靠法律系統。

LabDAO

這個是建立於2021/12月中的一個自治組織,可以一窺他們的初衷

Our mission is to accelerate life science innovation and collaboration. We are doing this by creating new mechanisms and markets for the exchange of R&D services and scientific data. Specifically, we’re building an open-source & community-owned/operated/governed protocol where users can buy and sell research contracts, run experiments with standardized protocols, find collaborators, and securely exchange data. “an open source protocol to act as the execution layer for decentralized science"

from LabDAO, mission

推薦可以進入他們的Discord看看,裡面的知識密度頗高,在探討生物資訊、自動化、儀器開發等等主題,但有趣的是他們會以能delivery為目標來做規劃和探討,這社群是由Boris Dyakov發起,本身是在加拿大的Lunenfeld-Tanenbaum Research Institute (LTRI) 做博士候選人,因為才建立一個多月,所以非常值得在裡面多晃晃,參與這些領域匯聚的區域。

總結來說,可以體驗到區塊鏈技術將慢慢參與到下一個世代的社群建立,且這趨勢已經在生技領域可看到,換句話說,做生物資訊、生醫研究的朋友,有機會可以體驗或參與一下Web 3.0相關的社群,未來有可能我們不需要依靠如中心化醫院、政府等模式來進行生醫研究,但利用如DAO的架構來資助及推動生醫的相關研究。

2021 鐵人賽-AI, Data和生物資訊

一不小心又隔了四個月了,前陣子九月特休的時間,參與iThome鐵人賽的連續30天發文,真的是蠻硬核的,也強迫閱讀了一些之前比較少碰的部分,順便複習一下許久沒碰的東西,希望陸續把這三十篇文章的內容再更系統性整理一下,先把目錄移過來這。

2021 鐵人賽-AI, Data和生物資訊

相關之學習參考:
Resources

Talks

2021 台灣臨床次世代定序指引探討和比較

前面有稍微分享一下2021 臨床次世代定序實務與應用概論這堂課的內容,當然打鐵趁熱也針對一些主題,自己做了些延伸和討論,這邊就針對CAP和台灣的指引來分享一下,將次世代定序使用在臨床所牽涉到實驗室端的細節是以前沒有面對過的,相對於傳統實驗室檢驗單項指標,次世代定序從檢測原理到結果都是高通量的輸出,也許用臨床檢查來譬喻有點像是病人基因的電腦斷層,但是更為複雜幾倍。

大概7-8年前,世界各國基因體學相關的臨床學術組織便開始努力制定相對應的實驗室指引來幫忙導入次世代定序使用,同時也有如實驗室開發檢驗指引等法規來解套基因定序作為檢驗項目的醫療法規問題,另外,廠商也推動一些機型的法規認證。

reference from 台大醫技 蘇剛毅老師演講內容

在2013年illumina公司的MiSeqDx平台獲得美國FDA的核准,是第一台獲得IVD認證的機台,同時其三個試劑分別是MiSeqDx universal kit和兩個跟囊腫性纖維化(Cystic fibrosis)的定序同時取得認證。後續Ion PGM Dx system也在2017年6月22號成為美國第二台FDA認證的醫學檢驗用NGS儀器。

而後續產業界跟學術界慢慢希望可以用實驗室開發方法的法規來適用這類的法規,所謂的體外診斷器材(IVD, In Vitro diagnostic devices)和實驗室開發方法(Lab developed test)是有一些不太一樣的地方,實驗室開發方法通常是那些進步快速的領域之檢驗項目,因為變化太快速了,要是走IVD法規路線,可能核准完市場已經變化且技術同時已經落後,這部分在次世代定序領域尤為常見。

前陣子其實有蠻多風波的特管辦法(特定醫療技術檢查檢驗醫療儀器實行或使用管理辦法),就是把台灣實驗室開發方法納入管理,其中很多關於資格和操作細節都引發各方人馬的意見。回到臨床次世代定序,因其複雜的特性使其很難以IVD的模式通過,直到如今,美國市場上只有四個腫瘤為主的NGS檢驗項目:

  • Oncomine Dx Target Test: 2018/10/17
    • 包含46個腫瘤相關基因檢測
  • MSK-Impact: 2017/11/15
    • 包含468個腫瘤相關基因檢測
  • FoundationOne CDx: 2017/11/3
    • 包含324個腫瘤相關基因檢測
  • Guardant360 CDx: 2020/08/07
    • 第一個液態活檢針對55個腫瘤基因

體外診斷器材的查驗,其中牽涉到從技術研發、臨床前試驗、第I、II、III期臨床試驗、上市前審查到衛福部查驗登記以及上市後檢測,相對在實驗室自行發展檢測方法(LDT)中,通常是以實驗室的品質系統來取代臨床前試驗、第I、II、III期之臨床試驗,所以相對來說,彈性較大,但是實驗室本身的管控就變得非常重要。

目前在臨床實驗室認證台灣非常重視的CAP(College of Amierical Pathologist)的規範,其近期也有一系列文章和網站資源在提供次世代定序的實驗室規範,蠻值得一看的。

其中主要是分別在Test Content Design, Test Optimization, Test Validation, Quality Management, Bioinformatics and IT這幾個方向有建立一個方便實驗室追尋的worksheet。

在這邊我們同時來比較一下台灣這兩年衛福部提供的指引來探討一下異同和改變,也剛好是前陣子在科內給的演講。

簡報的左邊是引用來自xkcd的卡通圖,談的是當代操作系統如Linux(當今所有雲端系統基本上都基於linux核心,再往上疊加),完整的計算機操作系統,奠基在非常多開發者之程序中,有的程序寫得很好,有的則是很脆弱,假如沒有對整體有個巨觀,很可能出錯了都無法抓蟲,這讓我聯想到次世代定序作為檢驗服務給我的感覺(也是聽完郭靜穎老師和蘇剛毅老師在臨床次世代定序中關於確效認證等等的主題後的想法),雖然目前臨床次世代服務中,所牽涉到的許多細節其實已經靠廠商簡化許多,比如機台自動化、檢體前處理優化到分析套裝軟體,但依舊是複雜模塊的堆疊,如同這左邊這張圖。

台灣這幾年政府也希望能回應醫療人員對於次世代導入臨床之需求,所以分別在2020年和今年年初都有分別針對遺傳類和腫瘤類的基因檢測給予相關的指引,這邊往下比較台灣指引在20200811年公告之精準醫療分子檢測實驗室檢測技術指引-是世代定序應用於遺傳類疾病檢測及20210311公告之精準醫療分子檢測實驗室檢測技術指引-是世代定序應用於腫瘤檢測(草案)。

的確在業界常聽到大家抱怨台灣法規在次世代定序臨床易用這塊很緩慢,也導致普遍醫學中心外並沒有多少人應用次世代定序來幫忙民眾,相對於中國來說,其在2018年開始就有第一份的临床基因检测报告规范与基因检测行业共识探讨來,不過樂觀一點,台灣這一兩年陸陸續續也把遺傳類和腫瘤類指引提出,所以這邊就這個指引和美國CAP的內容來相對應一下,也可以看到今年3月的指引比去年的遺傳類檢測的看法更加純熟。

比較兩個台灣的指引,可以看出今年3月提出的版本,對於生物資訊流程的部分有更多著墨,尤其是在基因資料庫使用與管理建議和檢測報告格式,這部分仔細檢討其實也是當前台灣臨床實驗室比較弱的部分,整體上兩個指引對照CAP下都有所謂的適用範圍、檢測設計考量、檢體類別、影響檢測因素及檢測個步驟,另外,在腫瘤這份也有多著墨一下變異偵測的部分。

就如同這次課程介紹的,次世代定序的應用非常廣,所以兩份指引都有開宗明義定義說適用的範圍,在不同情況下就會有不同的狀況,所以兩者面向的一個是偏產科和兒科以及成人癌症部分的次世代定序檢測。

往下去看兩份指引在步驟建議上,腫瘤檢測的部分可看到觀念比較全面,也加入分析後的品控想法,也有去討論基因庫定序之複雜度及潛在風險評估的部分。

在檢體處理部分,其實跟CAP的工作單中描述的大概相同,但台灣這邊的品質範圍拉的比較大一點,規範細節相似。

檢體在建庫部分也希望臨床檢測的SOP中,也要記錄清楚建庫所相關的細節像是製備方法(擴增法或是捕捉法)、建庫流程中針對核酸片段放大之效能及允收標準,也提到品管物質,這部分的確是目前臨床實驗室比較難符合的地方,同時也會增加品控的成本。

最後在生物資訊分析流程中也希望能把整個流程中所處理的流程、數據分析方法及變異點偵測邏輯都要詳述,且所使用的軟體和資料庫版本都有有所談論,這幾天在多數臨床實驗室沒有配置生資人員情況下,大都是依賴廠商,廠商有時候也是代理國外軟體,所以造成細節部分都沒有人搞得清楚。

進入到檢測品質這邊,跳過檢體和DNA品質這塊,內容跟前述的部分雷同,這裡也有提到要詳述定序覆蓋率,不是只描述平均覆蓋率而已,還要去描述最低和最高的部分,以及目標區域的定序深度(目前臨床使用都還是Panel為主,如同陳沛隆醫師所講),另外,同行和異形合子的基因頻率也要去描述其篩選條件。

取得定序機台的read後,必須要把相關評估read品質和篩選之流程都要記錄清楚,且前一步驟中是否有去掉序列也要描述,最後其比例和重複定序片段的數量和百分比都要紀錄(在此堂課郭老師給予的測試數據中,也會發現其重複定序的片段比率偏高,也是要去理解背後的因素,是否有非預期的原因所造成)

同時整個流程中的定位也要去看其相關指標的細節,不過這算是所謂的post alignment quality control的部分,要去看reads拼貼的狀況,畢竟最後變異的分析都是基於這些read alignment後的結果)。

最後變異偵測的參數則是要依據臨床場景有不太一樣的想法,在做遺傳類變異和腫瘤類體細胞變異偵測上就是不太一樣,其中變異等級之指標、整體變異的指標、變異的變異頻率都是重要需要紀錄的資訊。

變異註解的部分也是一個大功夫,郭老師也花費一整堂的部分來描述這流程中要考慮到的細節和需要調用的資料庫,中間所使用的資料庫種類版本,以及流程都是需要系統性標準化的,另外,判讀後的結果也要好好記錄下來。

最後檢測報告該如何撰寫要記錄什麼,在精準醫療分子檢測實驗室檢測技術指引中也有大概的介紹,大體是該包含什麼資訊:位點、臨床註解、檢測方法、相關限制。

在腫瘤檢測的指引中,開宗明義希望報告儘可能剪短、實際,這中間就給予個別實驗室一定的空間來決定,比較重要的部分則是所謂的陰性結果(Pertinent negative)的呈現,相對來說,就是臨床上喜歡的“rule-out”思考邏輯。

整體來說,次世代基因定序涉到多個流程,每個流程之間都要有相對應之品質管控,從檢體前處理、建庫、定序初始資料、生物資訊流程和報告,如此複雜的過程其實“相當富有挑戰”,但也是吸引人投入的地方吧!也期待越來越多人投入這個領域,能讓這樣技術解放更多關於人們的生理資訊,一方面讓臨床更能給予民眾幫助!

2021 臨床次世代定序實務與應用概論

七月底利用時間請假去參加了台大生物技術研究中心舉辦的臨床次世代定序實務與應用課程,由郭靜穎楊雅倩和蘇剛毅老師所舉辦的,整個課程蠻扎實的,台灣的確需要多一點這類課程,當初主要是對其hands-on的建庫課程感興趣,畢竟這類機會不多,通常都是廠商幫忙完成,所以想辦法實際來碰一下,順便看一下台大醫院這邊基因檢測的概況,課程表如下,分成兩塊:上課以及實作兩個部分,上課部分則是從基本次世代定序介紹到各主題如遺傳、癌症、微生物體、人類白血球抗原分型、次世代定序的法規、確校及認證以。實作部分則是做人類白血球抗原分型搭配和生物資訊分析,很開心能在持續精進,抱持者Rookie spirits,畢竟日新月異,還是一段時間得學習一番,當然不可能什麼都懂,但是至少多聽聽不同人切入次世代定序的看法!

全程可以看到郭靜穎老師辛苦的陪伴,郭靜穎老師在台大醫技系畢業後,至美國加州希望之城生物科學研究所攻取博士學位,然後在希望之城糖尿病與代謝研究中心做博士後研究員,博士後研究結束之後,其在希望之城醫學中心的臨床分子檢驗實驗室做基因變異分析師,然後2017年回來台灣大學醫學檢驗暨生物技術學系做老師,所以課程中也可以聽郭老師分享美國臨床分子檢驗室的架構,聽完覺得要建立一個一流的分子醫學檢驗實驗室真的不簡單,需要非常多不同專長的人員,另外令我很佩服的是楊雅倩老師,楊雅倩老師是台灣檢驗醫學界很資深的教授,但她也是趁者空擋基礎全程參與從做實驗到生物資訊分析,看著老師自己打開筆電跟者學習怎麼使用生物資訊軟體甚至程式碼的輸入,這精神真的值得學習,希望能持續保持如楊雅倩老師這種學習精神!

建庫的過程格外的令人熟悉,前陣子正踩到用磁珠萃取的坑,比如不同比例或是容器等等,這種把實驗之間關聯起來的感覺蠻不錯的!

其中陳沛隆醫師的課程提到蠻多很珍貴的觀點,次世代定序在台灣已經談論快十年,尤其最近五年在台灣做定序的價錢已經很便宜了,往往會給人一種好像這個工具無堅不摧(當然不是,每個檢驗技術都有優點和缺點),陳沛隆醫師則願意分享其看到的機會:

  • Reference genome: population-specific?
  • Haplotyping/phasing
  • Psudogene
  • Structural variation (SV)
  • Dynamic mutation
  • Mobile element
  • Somatic mutation
  • Digenic/oligogenic mode
  • Epigenetic change
  • Non-coding region (such as TAD, UTR, etc.)

上面是完整寫下陳沛隆醫師簡報裡面的字串,可惜時間不足,所以陳醫師沒有辦法一項項細講,感覺裡面滿滿的珠璣!這邊趁機來查一下:

參考基因組在次世代定序中的影響

之前在科內晨會就準備過這個主題,所以可以理解陳醫師的意思!

參考基因組在第二代定序(所謂的次世代定序中)影響頗大,基本上可以暱稱次世代定序為高通量短片段定序,所以參照的拼圖對於把讀長序列(reads)排序回去就變得異常重要,而目前我們所謂的參考基因組主要是使用美國人類基因組計畫中所產生的參考序列其實從2003年的草稿到今天為止,存在很多問題(科學就是越探索,越發現事情比想像中複雜ORZ),美國人類基因組計畫中所使用的檢體其實並非一個人的檢體,而是一群人,然後把它分發給世界各地合作對象來定序,下面是當初的招收廣告:

這是當初刊登在報紙上徵求自願者時候的廣告,蠻有趣的,當初要的是20個人,不過後來我們發現其實實際基因體系列可能大多數是某一位自願者的檢體,且實際可能有約30個人左右

from 2020. Pan-genomics in the human genome era. Nature reviews Genetics

直到今年2021年六月我們才有一個比較接近完整的人類基因組定序取得,是由Telomere-to-telomere consortium團隊所發表的,他們利用了很多第三代定序的技術來混合完成這個任務的,這篇論文The complete sequence of a human genome目前是發表在bioRxiv上面,可以由這篇Nature新聞A complete human genome sequence is close: how scientists filled in the gaps了解這件事代表,另外,他們所使用的定序檢體也很特別,是使用hydatidiform mole,也就是將精子注射到一個沒有核的卵子中,這樣可以一次定序一股染色體,不用面對phasing的問題。

Pseudogenes對於短序列alignment的影響

這也是之前有概念,但沒有特別關注的議題,實際去調查真的發現蠻有趣的,所謂的假基因(Pseudogenes)是染色體上的基因片段,其跟對應的基因相似,但可能散失部分功能,目前認為他可能是細胞複製過程所產生的重複序列,在探討演化的學者這個現象很重要,可以利用Pseudogene的片段來探討種源的距離,這邊因此可以理解到這個Pseudogenes會如何影響到定序結果,一方面是來自Pseudogene的reads可能會被貼到其同源基因區域,或是者反之也會發生(OS:好複雜,難怪很多時候即時有定序資料還是看不出什麼所以然,很多因此會影響結果),在Nature Reviews Genetis 2020年12月後有一篇Overcoming challenges and dogmas to understand the functions of pseudogenes在談論如何研究pseudogene以及他在生物學的角色。

實務上來說,蠻多臨床上重要的基因就有很多這類同源基因,比如PMS2, CYP2D6, CHEK2, SMN1, PKD1,這邊就有一個這類對於二代定序和Sanger定序都是所謂盲點的基因列表:

Mandelker, D., Schmidt, R., Ankala, A. et al. Navigating highly homologous genes in a molecular diagnostic setting: a resource for clinical next-generation sequencing. Genet Med 18, 1282–1289 (2016). https://doi.org/10.1038/gim.2016.58

短片段定序無法偵測之基因變異

知道越多人類序列,才發現人類序列的變化遠比想像的多,從下面的圖可以知道像是Structural variation, Repeat expansion以及所謂Phasing的問題都是目前二代定序的工具無法解決的。

2019. Long-Read Sequencing Emerging in Medical Genetics, Front. Genet

有的基因變異的範圍很方式其實是比想像中多的,從上面的Structural variation也可看到如reverse或是translocation這類的轉位,短片段的序列都還是能得到,但是alignment會去參考基因組時,就看不到這樣的資訊,以前覺得沒有太大影響,但後來發現這些都多多少少造成其基因表現的不同。

動態突變 Dynamic mutation:短片段重複相關的疾病disorder

動態突變造成的疾病也是之前我不太懂的,仔細一查,維基百科的定義是:

an unstable heritable element where the probability of expression of a mutant phenotype is a function of the number of copies of the mutation. That is, the replication product (progeny) of a dynamic mutation has a different likelihood of mutation than its predecessor

from Dynamic mutation, Wiki

不過目前比較常用Trinucleotide repeat disorder來形容,跟此相關的疾病也不少,最知名的就是亨廷頓舞蹈症,當然還有蠻多跟此相關的疾病:

這類疾病可能使用NGS在定序時,因為參考基因組的關係,可能不容易檢測到,在一般的alignment分析中應該也不容易排列好,看起來也不是很容易被探討的疾病種類。不過幾篇文獻看起來是特別的一群基因疾病

  • Mirkin, S. Expandable DNA repeats and human disease. Nature 447, 932–940 (2007). https://doi.org/10.1038/nature05977
  • Usdin K, House NC, Freudenreich CH. Repeat instability during DNA repair: Insights from model systems. Crit Rev Biochem Mol Biol. 2015;50(2):142-167. doi:10.3109/10409238.2014.999192
  • McIvor EI, Polak U, Napierala M. New insights into repeat instability: role of RNA•DNA hybrids. RNA Biol. 2010;7(5):551-558. doi:10.4161/rna.7.5.12745
  • Li, D., Pan, S., Zhang, H. et al. A comprehensive microsatellite landscape of human Y-DNA at kilobase resolution. BMC Genomics 22, 76 (2021). https://doi.org/10.1186/s12864-021-07389-5
  • Ajjugal, Y., Kolimi, N. & Rathinavelan, T. Secondary structural choice of DNA and RNA associated with CGG/CCG trinucleotide repeat expansion rationalizes the RNA misprocessing in FXTAS. Sci Rep 11, 8163 (2021). https://doi.org/10.1038/s41598-021-87097-y

從下面的圖也可以看出來在不同基因甚至區段上面的這種重複序列,可能跟不同的疾病相關連,看到這邊真的驚嘆人類基因體的奧秘,另一個角度來看,人類的疾病也可以看成是基因多型性的一種表現吧!

from Mirkin, S. Expandable DNA repeats and human disease. Nature 447, 932–940 (2007). https://doi.org/10.1038/nature05977

雙基因或多基因遺傳模式(Digenic/Oligogenic Mode)

顧名思義就是某一個性狀是由多個基因所造成的,所以當同時有兩個變異發生在兩個基因上時就會造成某個性狀產生,這時候可以稱為Digenic inheritance,這類在之前也是比較少見(當然也是武器不夠好),慢慢也開始有一些文章開始探討!

  • A genome-wide case-only test for the detection of digenic inheritance in human exomes. PNAS. 2020, 117 (32) 19367-19375; DOI: 10.1073/pnas.1920650117
  • The digenic causality in familial hypercholesterolemia: revising the genotype – phenotype correlations of the dsiease. Front Genet. 2021.  https://doi.org/10.3389/fgene.2020.572045
  • Genetic modifiers and oligogenic inheritance. 2021. Cold Spring Harbor Perspectives in Medicine
  • Digenic inheritance and genetic modifiers. Clinical Genetics. 2018. https://doi.org/10.1111/cge.13150

陳沛隆醫師所列出的每一點都有蠻多可學習的地方,也可以一窺所謂遺傳基因體學的面貌!

[實戰紀錄]整理基因變異Variant Call Format檔案:使用NCBI API+bedtools+VCFtools+Shell scripts

這邊分享一下最近一個清洗資料的流程,做生物資訊的雜活其中一個重要的事情就是把來自各方的資料整合在一起,許多細節是必須把手弄髒才知道的!

問題

最近幫忙解決的這個問題是科內用來出次世代定序報告系統的某個資料表,自從2016年的助理離職,就沒有人能幫忙更新,這也是臨床檢驗科室的問題,老店員工資深,很難有人願意重新投入學習寫程式清資料等等,老闆也不一定知道這箇中的重要,不過相信這是可以慢慢改變的。

這個資料表暫稱Hotsopt.bed,是用來幫忙次世代定序之Panel在定序後的生物資訊流程中作為資料註解的資料表,表格長得如下面這樣:

這是用來幫助次世代分析流程中,當遇到定序品質不好的區域,能把此區域已知具有臨床意義的變異點給吐出來。整個資料表很單純,第一欄是染色體位置、第二和第三欄是這個位置的開始和結束、第四欄是跟這位置相關的臨床位點ID(舊版本是用rs ID,我接手後應該會改成clinvar ID,比較貼近需求)、第五欄則是綜合這個位置的變異資料以及變異起始前一位的序列,最後一欄則是這區域為在哪個target panel的Amplicon。這個表格目前只想放在clinvar DB上面已經住解為Pathogenic和Likely Pathogenic的位點。

該串接的資料庫: NCBI clinvar, dbSNP

從上面的問題,可以知道工作重點是:建立能定期下載特定基因列表的clinvar註釋,然後在看這些位點為在哪個panel的amplicon,以及此位點的序列變化和從參考人類基因組抓出變異位點起始位置前一位的核酸序列,最後整合成hotspot的格式。

因此需要串接的資料庫為

  • NCBI: clinvar, dbSNP

第一步:使用NCBI Entrez Direct檢索基因列表最新在clinvar的位點資訊

相信這邊的做法有蠻多的,這邊因為前陣子因為想幫科內建立血庫分子資料庫,所以摸了一下NCBI 的Entrez Direct,就順勢使用這個工具,Entrez Direct 是美國國家生物技術資訊中心(The National Center for Biotechnology Information, NCBI)所提供的一個命令行工具,讓人可以直接使用Unix terminal的方式來針對NCBI內的各個資料庫。基本上就是下面那個下拉表單所提供的所有資料庫都可以調用。(超級佛心的,幾個代碼就可以調用全世界最大的生物資料庫QQ)

這個Entrez Direct(EDirect)可以有幾個安裝方式,可以由Anaconda,也可以直接下載後安裝。 (之前有幾篇文章介紹這個命令行工具 Pubmed E-utilities API 使用規範, 使用python來調用pubmed API快速整理文獻, Pubmed API介紹) ,安裝完Entrez Direct後,他會有幾個命令行的函數是可以用的:

  • esearch
  • elink
  • efilter
  • efetch
  • xtract
  • einfo
  • epost
  • nquire

藉由組合上面這幾個指令,便能擁有調用NCBI資料的技能,非常實用!且相關的說明文檔有越來越好,相對於幾年前。

這邊所使用的關鍵語法是

for gene in $gene_list
do
   echo download $gene
   echo ==========================
   echo "                         "
esearch -db clinvar -query $gene[gene]|
efetch -format docsum|
xtract -pattern DocumentSummary -def "-"\
       -element Id object_type title\
       -block variation_set -subset variation -element measure_id cdna_change\
       -block variation_set -subset assembly_set -if assembly_name -equals "GRCh37" -def "-" -element chr start stop \
       -block clinical_significance -def "-" -element description last_valuated \
       -block genes -subset gene -if symbol -equals "$gene" -def "-" -element symbol GeneID strand >> gene_clinvar.txt

sleep 2s 
   echo =============== down =======

done

上面的代碼主要是使用三個指令:esearch、efetch和xtract,先用esearch去查詢NCBI內對於單一個基因的最新資料,在使用efetch來下載,最後使用xtract來把資料做前處理來整理成比較。這邊需要花一些的坑就是去調整xtract的pattern,看我們需要什麼資料做後續的處理,然後針對這些資料來做pattern的設計。

每一行都是在這個基因區域中,相關的變異位點資訊,包含其編碼、變異種類、變異細節、其臨床註釋之意義等等。

接者就可以把這個資料去往下做更新。

第二步:將從NCBI下載的資料進行清洗,只留下位點具有Pathogenic或Likely Pathogenic標注的

拿到這些資訊後,接者便是應用各種技巧來進行整合。(資料處理的坑就是這樣,不過也是有趣的地方,每次都會多學到一點點不同的代碼寫法和狀況)

下一步,我們先用R來把這個資料讀進去後,只留下Pathogenic和Likely pathogenic的位點資訊,聽起來簡單,但下面是真實情況的資料:

上面是看各個原始資料中,臨床位點的注釋,會發現很多奇怪的狀況,這邊就是一些清資料的活,確認這些不一致的來源,並且將其處理成乾淨的版本,去掉許多注釋可能沒有完成的位點資訊,最後只留下相關的位點。這邊可以善用dplyr的強大功能搭配字串處理的stringr,我這邊則是使用mutate搭配case_when來做處理。

第三步:利用clinvar ID, allele ID來彙整資訊

取得新更新的特定基因列表中的變異位點相關的ID資訊後,可以以此為參考,來跟不同資料來做收集。尋這些位點分別是在Ion的哪個 Amplicom上、過濾clinvar VCF檔案取得ref和alt資料、使用位置資訊來從reference genome fasta來取得前一位置的位點序列。

這邊使用clinvar ID, allele ID和其相關的位點來取得下面三個資料

  • 取得每個變異位點在Amplicon的位置上 | 使用bedtools
  • 取得每個變異位點前一個序列的核酸資料|使用seqkit和seqtk
  • 取得每個變異位點的實際資訊|使用VCFtools

這邊可以借助Bedtools 來做兩組不同位點資訊的比較,比如位點是否位在特定位置區域上等的分析。

比如這邊我需要做的就是每個位點實際位在的Amplicon位置,這邊就必須要拿位點資料和Amplicon資料來做處理。

bedtools intesect -wb\
    -a CRC_clinvarBed -b CRC_amplicon_bed|\
cut -f 1,2,3,4,5,6,10,14 

這邊代碼的意思是去看每一個-a後面的檔案其在-b後面的amplicon範圍,並且將兩個資料合再一起,並且最後使用bash的指定cut,只留下特定想要的欄位供後續的使用。像是下方的示意圖:

另一部分,想要取得特定位置的序列資訊,則可以使用seqkit這個工具,他可以吃bed檔案格式來吐出相關的序列資訊,也可以使用seqkit來清理從NCBI所下載。這邊可以直接去NCBI的ftp下載參考序列組,其資料夾長得如下:

下載後,可以看到其實際fasta檔案有非常多細節,有297個片段(第一次抓參考基因組,通常都以為只有24個染色體片段,實際上每個染色體除了主要資料外,還有很多“補丁”的片段)。

seqkit是一個可以用來取代seqtk的分析命令行工具,可以用來處理和分析fasta和fastq的檔案格式,這樣的的代碼和sed來做清洗,最後只留下23對染色體的參考序列,並且使用seqkit來取變異點前一位置的序列。下面的代碼也有用到seqtk,用來提取特定的染色體序列出來。

P.S: 這邊有一個要小心的坑,使用seqkit subseq來擷取序列時,用bed檔或是直接下指令,兩者的索引會是不同的。

seqkit seq -n GRCh37_latest_genomic.fna.gz | grep "GRCh37.p13 Primary Assembly"| grep "NC" > primaryAssemble.lst

# only use primary assembly hg19 reference genome
seqtk subseq GRCh37_latest_genomic.fna.gz primaryAssemble.lst > onlychr_GRCh37_latest_genomic.fna

# rename the hg19 reference header and preprocess of the title
sed '/^>/d' file.fa | wc -l
sed 's/NC_.* Homo sapiens //' draft_o_onlychr_GRCh37_latest_genomic.fna > draft_1_onlychr_GRCh37_latest_genomic.fna

sed 's/, GRCh37.p13 Primary Assembly//' draft_1_onlychr_GRCh37_latest_genomic.fna > draft_2_onlychr_GRCh37_latest_genomic.fna

# get the reference sequence from bed file
seqkit subseq --bed $CRCRefAnchorBed draft_2_onlychr_GRCh37_latest_genomic.fna|\
    sed 'N;s/\n/\t/' |\
    sed 's/^>//' |\
    sed 's/\.//' |\
    sed 's/://' > $CRCrefAnchor_file

# get the reference sequence from bed file

seqkit subseq --bed $EpilepsyRefAnchorBed draft_2_onlychr_GRCh37_latest_genomic.fna |\
    sed 'N;s/\n/\t/' |\
    sed 's/^>//' |\
    sed 's/\.//' |\
    sed 's/://' > $EpilepsyAnchor_file

接者,為了取得每個VCF檔案裡面的序列變異細節,會使用VCFtools,這邊也是踩了一個軟體的坑,在VCFtools裡面的snps篩選,所使用的其實是clinvar ID而非snpID,這邊真的是頗坑的。

vcftools --gzvcf $vcf_file --snps $Epilepsy_VCF_Bed --recode --recode-INFO-all --out 20210717_epilepsy_annotation_VCF

這個代碼的參數意思:–gzvcf是輸入壓縮過的vcf檔案,–snps則是以提供每行一個clinvarID的列表,用來篩選落在這標單的位點資訊。

第三部:把全部資料彙整成最終檔案

最後的部分可以在R裡面處理,比較high level的資料處理在比較小的資料集中使用R相對方便,因為前面三個檔案都是以tab間隔之檔案,所以讀進去後可以在R裡面彙整成最終的檔案格式。可以用到dplyr裡面的rename、left_join、filter、mutate來做最終的匯聚。

outputCRC_clinvarBED %>%
    dplyr::rename('chr'=V1, 'start'=V2, 'end'=V3, 'clinVarID'=V4, 'alleleID'=V5, 'dbSNP'=V6, 'Amplicon'=V7, 'Gene'=V8) %>%
    dplyr::left_join(., CRC.annotation.VCF, by='clinVarID') %>%
    dplyr::mutate(Anchor_pos=paste0(chr, '_', as.character(start-1))) %>%
    dplyr::left_join(., CRC.annotate.ref.anchorfile, by='Anchor_pos') %>%
    dplyr::filter(!is.na(REF)) %>% dplyr::filter(!is.na(AHCHOR)) %>%
    dplyr::mutate(Info=past0("REF=", REF, ";OBS=",ALT, ";ANCHOR=", ANCHOR))

清資料的過程蠻多小細節的,真的是每次都是全新的坑,只是越清會越知道什麼坑是小坑,什麼坑是大坑,以及比較熟悉各種基因資料的格式比如bed format, VCF format和各個資料庫中的關聯性。

閱讀分享:生技前峰們對未來的看法

太久沒寫網誌了,這半年咻咻咻的就過惹,沈靜在打造實驗室的忙碌中,之後慢慢分享打造一個具有高通量能力之合成生物學實驗室以及居家實驗室的進展!

這邊來稍微摘錄一下六月發表在Nature Biotechnology的文章:Voices of biotech leaders 。這篇文章邀請了以下這些在生物科技發展前沿的領導者,談論一下他們對於未來產業的看法,有大學教授、生技創辦人、基金會管理人、創投、大型研究機構負責人等等,雖然實際瀏覽和查閱一下,總合來講還是只邀請了小部分的領導者,裡頭的比爾蓋茲和臉書創辦人老婆Priscilla Chan本身就是著名的名人,另外,George Churchm John Cumbers, Emily LeProust, Neri Oxman, Aviv Regev, J.Craig Venter等人之前就在關注,剩下的其他也是第一次認識,每個人其實只說幾句話,老實說與其閱讀內容,不然看看他們所屬的組織和google一下事蹟,會獲得比較多有趣的資訊,整體來說,都在表達生物科技的進步搭配資訊和運算的升級,將大大在各個層面改變人類的生活,雖然困然依舊很多,不是來自科技,而是來自於社會結構、法律、資源分布不均等等。:

  • Abasi Ene Abong, 54Gene, Nigeria
  • Katrine Bosley, Arrakis Therapeutics, USA
  • Charlotte Casebourn, Theolytics, UK
  • Priscilla Chan, Chan Zuckerberg Initiative, USA
  • Janice Chen, Mammoth Bioscience, USA
  • Michael Chen, PureTech Health, USA
  • George Church, Professor at Harvard University, USA
  • John Cumbers, SynBioBeta, USA
  • Tomas de Wouters, PharmaBiome, Switzerland
  • Heather Dewey-Hagborg, REFRESH collective, USA
  • Xavier Duporter, Eligo Bioscience, France
  • Arturo Elizondo, Clara Food, USA
  • Jeremy Farrar, Wellcome Trust, UK
  • Bill Gates, Bill & Melinda Gates Foundation, USA
  • Francesco Gatto, Elypta, Sweden
  • Sebastian Giwa, Elevian, USA
  • Jernej Godec, Atlas Venture, USA
  • Silvia Gold, Mundo Sano, Argentina
  • Emily LeProust, Twist Bioscience, USA
  • Jeantine Lunshof, Prof at University of Groningen, Netherlands
  • Eddie Martucci, Akili International, USA
  • Michelle McMurray Health, Biotechnology Innovation Organization, USA
  • Jason Mellad, Start Codon, UK
  • Veronika Oudova, S-Biomedics, Belgium
  • Neri Oxman, MIT Media Lab, USA
  • Aviv Regev, Genentech, USA
  • Sarah Richardson, MicroByre, USA
  • Christopher Thomas Scott, Baylor College of Medicine, USA
  • Jake Sherkow, University of illinois, USA
  • Leah Sibener, 3T Biosciences, USA
  • Teresa Tarrago, Exheus, Spain
  • Sharon Terry, Genetic Alliance, USA
  • J.Craig Venter, J. Craig Venter Institute, USA
  • Spin Wang , TetraScience, USA
  • Sajith Wickramasekara, Benchling, USA
  • Hakim Yadi, Closed Loop Medicine, UK
  • Luhan Yang, Qihan Biotechnology, China
  • Bowen Zhao, QuantiHealth, China