Nature文章閱讀:基因定序的未來(The future of DNA sequencing)

Eric Green
Eric D. Green

在2017年10月這期的Nature探討了基因科學的未來,這篇”基因定序的未來“作者有Eric D. Green,  Edward M. Rubin and Maynard V. Olson(想必能再Nature發表這類遙望未來四十年的小文章,必定是身經百戰之人,所以好好查了一下),Eric D. Green醫師,從病理科出身,是目前National Human Genome Research Institute ( NHGRI ) 負責人,可以常在NIH youtube 頻道看見他的主持身影,參與了人類基因體計畫、BD2K計畫、精準醫療計畫(Precision Medicine Initiative)。Edward M. Rubin醫師則是生物物理學博士,本科也是物理出身,領導美國Joint Genome Institute, Lawrence Berkeley National Laboratory裡面基因科學部門在人類基因體計畫中完成染色體5,16,19條的定序,目前在新創公司Metabiota做首席科學家,Maynard V. Olson教授則是華盛頓大學的資深基因科學教授,也是人類基因體計畫的推動者。

圖片搜尋結果

在這篇文章的開頭,作者開宗明義地說大部分對於未來的預測都是錯的,所以在這篇文章是要談談如何去想這件事,大部分的科技隨者技術越來越進步,可能會讓人們對此科技產品的需求上升也可能是下降,比如說輪胎技術的進步,讓人們對於輪胎的需求下降,而基因定序應該隨者技術進步、價格下跌而讓人們的需求上升,如今的基因科學家無不希望能定序地球上每一個人、甚至每個細胞在不同發展階段,

如今次世代定序在2010年第三代出來後,開始有許多對於illumina公司的挑戰者出現如nanopore、pacifibio等,低價隨身型的定序儀在偏遠醫療的傳染病診斷中開始流行,其中在臨床上最重要的應用便是產前嬰兒唐氏症篩檢,粗估至少400-600萬婦女已在做這項檢測服務,在醫療技術較先進的國家,先天性罕病的兒童使用定序作為診斷的經常性工具,在腫廇治療上,液態活檢(liquid biopsy)的技術正如火如荼的開發測試中,可以想見未來這類抽血檢驗血液中癌症細胞基因的方式會變成常規,另一方面,測序技術在臨床外的應用會越來越多,比如偏遠地區的流病學家或是照護者,可以用手持測序技術來檢驗空氣、環境中的相關微生物基因資訊,在思考遠一點,也許未來定序技術最重要的技術是用來儲存資料。

閱讀參考:

Eric D. Green, Edward M. Rubin and Maynard V. Olson. (2017)The future of DNA sequencing. Nature Comment

深入染色體組型視覺化調研(一)(karyotype visualization/ideogram)

染色體組型圖表(karyotype/cytogenetics)是基因體學研究早期在還沒有定序技術前很重要的“視覺化”工具,用來判斷染色體層面的異常,裡頭的圖表標記方式和細節都具頗多遺傳學背景知識,其衍生出的karyotype plot是很好用來簡介基因資料的媒介,這些搜集相關的閱讀資料,已利用來當作發展原生前端視覺化工具。

UCSC Genome Browser band data

Genome Decoration Tools:NIH提供karyotype SVG資料

NIH Genetics Home Reference

使用R發展的視覺化封包
karyotypeR
ggbio

使用js發展的視覺化工具
Snap.svg.js
pileup.js
使用d3.js發展的視覺化工具
ideogram.js

js相關動態框架
anime.js
velocity.js

karyotype tool
karyotypeSVG
BiodallianceBiodalliance

StackOverflow討論串:
Question: How to get karyotype information for a certain section of genome.

Question: Drawing Chromosome Ideograms With Data

Tutorial: Creating chromosome karyotype plot with R and ggplot2

PeerJ 期刊資料科學系列文章:Practical Data Science for Stats

PeerJ 期刊是最近開放獲取(Open access)期刊中的新星,相對於PLOS One來說還很年輕,但他的創辦人們個個來頭不小,有來自Mendeley的Jason Hoyt、前PLOS One出版人Peter Binfield、O’Reilly的入資,裡面的文章都免費開放的,期刊經營手法特殊,迷人的是這篇期刊的網站介面設計。PeerJ當下主要有三大分刊:PeerJ Computer Science, PeerJ(Life, Bio & Health Science), Peerj Preprint,其中很多生物資訊、計算生物學相關的文章。
screenshot.png
這邊要介紹的是PeerJ的Collection系列,為特定Conference發表當年度投稿入選的論文或是針對特定主題所收錄的文章,這邊分享的是他的Practical Data Science for Stats系列文章,這系列主要由Hadley Wickham (Rice University 教授/ Rstudio Data Scientist/ Standford University教授)和Jennifer Bryan (University of British Columbia 統計系教授)所規劃,文章的內容介於學界和產業、軟體工程和統計,旨在探討最新資料科學的思維,非常值得一看有無自己感興趣的主題,這些文章並沒有被PeerJ所規範,由上面兩位編輯主導,而文章會進一步在The American Statistician期刊被審核。

我們來稍微一窺一下這系列有哪些文章:

Forecasting at scale
作者:Sean J Taylor, Benjamin Letham (Facebook 資料科學家)

How to share data for collaboration
作者:Ellis SE, Leek Jeffrey (John Hopkin University 教授)

Declutter your R workflow with tidy tools
作者: Zev Ross(ZevRoss Spatial Analysis), Hadley Wickham (Rice University/Rstudio/Standford University), David Robinson (StackOverflow 資料科學家)

Lessons from between the white lines for isolated data scientists
作者: Benjamin S Baumer ​(Smith College)

Packaging data analytical work reproducibly using R (and friends)
作者:Ben Marwick​, Carl Boettiger, Lincoln Mullen

Opinionated analysis development
作者:Hilary Parker(Stitch Fix)

RStudio community:一個R大神們匯聚的八卦版

有點慢才發現,最近在RStudio blog上(其實是九月初)Hadley Wickham發佈新的產品RStudio community,一個聚焦在RStudio相關產品的社群,整個論壇的使用者介面非常友善,論壇討論主題的設計頗聚焦,且很多"tidyverse"的開發者大神在上面炒熱氣氛中,且頭一個月在上面發文還提供特別的徽章(嗚嗚!好想要),這個論壇主要討論下面三大主題:

1. tidyverse 相關的議題(ggplot2, dplyr, tidyr, readr, purrr,  tibble)
2. shiny
3. RStudio IDE

想要更了解如何在RStudio community裡面做一個好公民的話,可以先看看指引

 

清新乾淨的介面screenshot.png

遊戲化(Gamification)的參與設計

screenshot.png

標籤化和排序功能screenshot.png

 

學習html5和css3:踏入瀏覽器外衣的世界(一)

    瀏覽器作為目前重要資訊載體的趨勢,假如希望把自己的成果或是內容跟更多人分享和交流,有必要擴充建制自己圍繞瀏覽器技術的基本常識,也就是html5/css3,話說網路上關於html的技術分享非常多,但往往參差不齊,而目前直接從w3c和mdn的文檔,最能原汁原味的體會他們的精髓,在學習html5/css3的感想,是對於所謂“資料結構”這件事越來越覺得是資訊科學的核心,前陣子因為做爬蟲和藥物資料庫的專案爬梳xml的資料、然後在摸索HPO時,發現了linked data的世界,而這次在學習html5/CSS3時,某部分跟latex語法之目的很像,某部分又像xml(xml一開始設計也是能被瀏覽器所讀取的)
edx W3Cx Front-End Web Developer
由w3c協會的講師所開發在edx的教程,深入淺出,且往往可以解釋某個變革的原因,讓人可以知所緣由,而不只是死背知識。

w3c resource
w3c協會是目前制定圍繞瀏覽器技術標準的協會,其文檔非常的言簡意賅,直指核心,且可以知道目前領域知識的熱點(看哪些標準正在制定之類的)

w3c cheat cheat
w3c推出給開發者的小工具,可以快速查找html相關的tag/attribute資訊

mdn
mozilla提供的文檔,相對於w3c協會文檔的詳盡,mozilla的文檔相對來說,平易近人許多,且有基本入門的tutorial

html checker
w3c提供的工具,可以把自己寫的html檔案貼上去,會自動幫忙檢查,並且提供意見

html best practice style
google
jQuery
不錯的風格指引,可以用來揣摩

下面這張圖很清晰地把整個架構網頁世界的技術串連再一起,奠基於這上,衍生出無數的框架,但一切都是由下面這些基礎技術出發。

螢幕快照 2018-02-13 上午9.45.13

文獻閱讀:哈里遜內科學19版新增章節Network Medicine: Systems Biology in Health and Disease

最近稍微熟悉系統分析的方法後,希望把這套方法學往臨床上去找主題做應用,無意間發現內科學聖經哈里遜內科學最新版新增了這個章節:Network Medicine: Systems Biology in Health and Disease,是由哈佛醫學院Joseph Loscalozo心臟內科醫師所撰寫,非常的令人驚喜!出自臨床醫師之手,且寫得淺顯易懂,點出了其中一些方向,用pathobiology的觀點來應用系統生物學的方法分類臨床疾病(雖然裡面所引用的論文大概是5-10年前的文獻)。

這篇87e章節的重點可分成三大部分:
1. 生物的複雜系統(complex biology system)觀念介紹
2. 病態生理學和系統生物學共通的精神
3. 系統醫學(network medicine)重新定義疾病的看法

基本上,對於一個疾病的掌握,本來就是系統性著手的(對於一個疾病的診斷、監測、治療,在臨床上都是多角度切入的),如何導入更“quantitative”的方法和工具,則是其中能進步的關鍵點,而非為了“系統生物學”而”系統生物學“。

System biology, which is defined as the holistic study of living organisms or their cellular or molecular network components to predict their response to pertubations

分析一個複雜的生物系統(complex biology system)被擾亂(pertubation)或是影響後的變化,可以藉由觀察這個系統的架構(topology)和其可能反應來著手,這個系統可以看成是一個由不同大小模組(modules)所組成的網絡(network),其中簡化成所謂的節點(nodes)和連結(links),整體系統組成的功能並非單純局部模組功能的疊加。

不同連結方式所產上的網絡,特性也不同,而生物系統的連結方式是所謂的"scale-free"的,簡單說,就是只有少數的結點連結數很高,大多數節點的連結數偏低,從數學上來描述的話,其節點和連結束的對數是呈線性的(power law),可以參考下面的圖

screenshot.png

左邊的網絡是每個節點隨機的跟另一個節點相連結,結果不同聯結數量的節點呈現鐘型分佈(poisson distribution),右邊則是我們所說的生物網絡連結方式,少數節點擁有高聯結數,多數節點連結數很低。

scale-free network的特性有什麼呢?
第一點,其有許多冗余功能的節點於網絡中(redundancy),無形中讓系統非常穩定,除非這些高度連結的節點受到影響。

第二點,這樣網絡的冗余特性提供了生物演化上的特質,能容忍許多不同的基因變異或是調控上的微小差異

第三點,scale-free的網絡,任意兩點間的連結路徑其實是短的,只要經由約莫6-7個節點便能連結兩個節點,這樣的性性相對於所謂的隨機形成網絡,其在傳遞特殊訊息時候是非常有效率的。

系統生物學應用於病態生理學

近十年開始陸續有許多系統生物學的方法被使用在一些特定疾病的病生理過程上,這篇文章有提到下面四種疾病糖尿病、遺傳性運動失調、EBV感染、肺動脈高壓,其分別使用了系統生物學的概念去重新理解疾病的機制。


遺傳性運動失調

screenshot.png
在這篇2006年的研究,主要探討 cerebellar Purkinje cell (PC) degeneration,先做基本文獻回顧,找出目前已知跟這疾病相關的53個可能致病蛋白質(來自23種遺傳性運動失調疾病),再使用yeast-two hybrid的方式來做蛋白質-蛋白質互動(protein-protein interaction)的研究,並且發這些可能致病蛋白質間的關聯,已便更理解這複雜疾病的可能致病機轉。

糖尿病
這篇2012年的研究,主要探討糖尿病前期(pre-diabetes)的相關生物標識,使用KORA這個德國大型研究計劃中的個案檢體(KORA,Cooperative Health Research in the Region Augsburg, 在德國奧斯陸地區的族群健康研究,從1996年開始,大約持續10年),同時將這些檢體拿去做基因表現量和代謝體的檢測,代謝體檢測是使用在整合這兩種資料來探討可能用來預測跟糖尿病前期相關的生物標識

EBV/HPV病毒感染
這篇2012年的研究,使用了非常豐富的研究方法,想探討EBV/HPV感染所造成的宿主反應,跟相關疾病的關聯,使用了EBV-human Y2H 和HPV-human Y2H library來做相關的protein-protein互動的資料,接者收集EBV-human/HPV-human組織的基因表現資料,最後還收集了美國相關感染過EBV/HPV病毒的患者資料,來看其造成其他相關疾病的風險變化screenshot.png

肺部動脈高壓
這篇也是2012年發表的研究,探討microRNA-21對於肺部高壓的調控關係,這篇一開始先用文獻檢索,找到相關可能的已知跟肺高壓有關的基因,再針對這些基因的蛋白產物去做protein-protein interactome的分析,使用“consolidated database”(看完這篇文章的supplement,其實裡面對於分析細節揭露的很不清楚,稍微失望)。

總結:
在內科聖經哈里遜上能看到network medicine的章節,的確代表這類型的新分析方式將慢慢能用來解決臨床問題,另一方面,這篇文章所引用的文章大概是5-10年前的研究,這幾年許多新的資料庫出現,從生物路徑到蛋白質-蛋白質互動資料庫,且分析方法越來越成熟,可見這類分析方式會更快地被帶入到臨床研究之中。


參考閱讀:

Lim et al. A protein-protein interaction network for human inherited ataxias and disorders of Purkinje cell degeneration. Cell 125:801-814, 2006

Wang-Sattler et al. Novel biomarkers for pre-diabetes identified by metabolomics.Mol Syst Biol 8:615, 2012

Gulbahce et al. Viral perturbations of host networks reflect disease etiology.

PLoS One 8:e1002531, 2012

Victoria N. Parikh et al. MicroRNA-21 Integrates Pathogenic Signaling to Control Pulmonary Hypertension: Results of a Network Bioinformatics Approach. Circulation. 2012 Mar 27; 125(12): 1520–1532.

Parikh et al. Towards Systems Biology of Pulmonary Hypertension. Circulation 125:1520-1532, 2012

KI Goh et al. The human disease network. Proc Natl Acad Sci USA 104:8685, 2007

J Loscalzo et al. Human disease classification in the postgenomic era: a complex systems approach to human pathobiology. Molec Syst Biol 3:124, 2007˙

深入R語言Object-Oriented Programming(二):開發ggplot2延伸套件所使用的ggproto系統(未完)

目前ggplot2基於grid建立了個龐大的繪圖系統,因此當然會需要使用oop來管理日漸複雜的ggplot2 “world",在ggplot2 2.0.0 版提供了官方的文檔在於ggplot2底層的資訊,在Wickham Hadley一開始寫ggplot時,沒有預想到如今如此廣泛的使用和許多套件及開發者的參與,所以在底層物件撰寫上有許多可改進的地方,以幫助跨套件的移植性和讓開發者能使用ggplot2裡面的基礎往上做出更豐富的視覺化。

在ggplot2 2.0.0釋出了ggproto的詳細文檔,而ggproto是基於proto這個oop系統修改而成的“微”面向編成,具有跨套件的繼承性(cross-package inheritance),另外,因為ggplot2為基於grib的繪圖系統,所以到這邊開始需要基礎的grid知識,會比較能融會貫通兩者的關聯性,這邊先專注解釋ggproto裡面的架構,之後會在grid的部分詳加說明。

這部分可能先對R中的OOP系統多少理解一下,會比較能理解他們語法的初衷,可參考前一篇文章

建立ggproto物件

# Construct new_Geom class inheired from Geom class
new_Geom <- ggproto("new_Geom", Geom,
required_aes = c("x", "y"),
defaut_aes = aes(fill="yello"),
draw_key_key = draw_key_polygon,
draw_group = function(data, panel_scales, coord){
coords <- coord$transform(data, panel_scales)
grid::polygonGrob(
x = coords_df$x,
y = coords_df$y,
gp = grid::gpar(col = coords_df$colour,
fill = coords_df$fill,
alpha = coords_df$alpha)
)
}
view raw Geom hosted with ❤ by GitHub
# create ggproto object
# 會發現語法承襲自proto的系統,不需要像是RC system的field等
new_ggproto_object <- ggproto("Class_name",
parent_ggproto_class,
x = 0
f1_method = function(self,n){
self$x <- self$x + n
self$x
}

目前已有ggplot2::Geom, ggplot2::Stat, ggplot2::Position, ggplot2::Scale這四個內建的ggproto類別,而在做延伸ggplot2視覺化的函數時可以用上面四個類別來起手。

Geom類別
– draw_panel(self, data, panel_scales, coord) or draw_group(self, data, panel_scales, coord)
– required_aes
– default_aes

Coord類別
– aspect
– labels
– render_bg
– render_fg
– render_axis_h
– render_axis_v
– range
– train
– transform
– distance
– is_linear

Facet類別
– compute_layer
– map_data
_ draw_panel

Stat類別
– finish_layer
– setup_params
– setup_data
– required_aws
– default_area

ggpubr:提供“可發表品質”的圖表(ggplot2-Based Publication Ready Plots )

最近在看ggplot2/grid底層視覺化的架構,不小心碰到這個頗美的套件ggpubr,標榜“ggplot2-Based Publication Ready Plots ”,他把一些在圖表發表前會遇到的細節處理得頗好,使用了ggrepel來處理標號擁擠,且整體的theme將ggplot2常見會忘記設的參數提供更好的預設,此套件幾乎包含了所有常用的圖表:density ploy, histogram, box plot, violin plot, dot plot… 。推薦他在pie chart上的處理,這邊是原本ggplot2畫出來效果比較差的圖表,另外,提供如cleveland’s dot plots的繪製和scatter plot側邊density的顯示。

這邊是ggpubr套件詳細的內容列表,這整套件可以當作是advance ggplot2用法可以創作出的效果展示!

其中竟然有提供基因資料在比較表現量很重要的MA plot

 

 

探索資料庫應用(三):UALCAN快速查找TCGA基因表現和存活分析的資料庫

screenshot.png

UALCAN是一個可以快速查找TCGA裡面使用RNAseq資料為基礎,提供基因表現量和存活分析的資料庫,是基於PERL-CGI、javascript和css所搭建的(有點酷,他發在neoplasia這本雜誌中的文章,直白地寫使用何種程式語言)。其有四大優點:

1. 方便快速的取得癌症相關的轉錄資料
2. 可以用來快速驗證biomarker的gene
3. 提供表現量和存活分析以及把分析的結果作圖
4. 提供基因資料的超連結到GeneCards、Pubmed、TargetScan、The human protein atlas。

操作介面簡介

提供兩種模式來查找在TCGA的RNAseq資料,可以輸入特定想查的gene,在不同種癌症種類種的表現量

screenshot.png

輸入想查找的基因(可以一次輸入多個基因,使用,相隔即可),結果會提供表現量、存活分析、基本資訊超連結。

screenshot.png

點選進去看分析結果,且這些結果都可以直接下載

screenshot.pngscreenshot.png

論文鏈結:

UALCAN: A Portal for Facilitating Tumor Subgroup Gene Expression and Survival Analyses(2017)

次世代定序資料分析學習資源(NGS analysis learning material)

update: 20200619

整理一些自學次世代定序分析(NGS/Massively Parallel Sequencing)的學習資源:
老實說,門外漢剛入門要做次世代分析真的是很苦的一件事,因為通常這類人都是沒有電腦資訊背景的,但次世代定序的分析所需要的技能其實蠻廣的,不論是統計知識、計算機知識、基因體知識等等,而這領域進步太快,即是到了現在大部分東西還是不懂,建議入門的人可以先參加實體的工作坊一次(花錢撞墻),然後可以看一些網路課程如john hopkin在coursera上開的,同時要準備一台好的電腦盡量實際動手操作,有了自己的研究題目後再慢慢往比較細的主題鑽研

中研院蔡怡陞老師 次世代定序課程
蔡怡陞老師之前在wellcome trust sanger institute工作過,對於次世代定序的資料分析非常有經驗,下面的evolution and genomic workshop也是他部落格裡面推薦的!

哈佛大學生物資訊中心

Evolution and Genomic workshop

加拿大Ontario Institute for Cancer Research 研究中心bioinformatic.ca 研討會資料
這是ontario institute for cancer research中心裡生物資訊團隊的網站,他們每年都會辦許多的工作坊,資料都會公開在網路上,也是頗不錯的學習資源

bioconductor courses
裡面主要都是在R語言中分析次世代定序資料的各種套件使用法,且屬於偏資料後段部分的分析

美國能源部系統生物學知識部門 Kbase


2017. The Biostar Handbook. biostar
很簡單的一本書,之前有稍微介紹過, 適合當工具書查,不適合當學習主軸
2014. RNAseq data analysis: a practical approach. CRC
對於做RNAseq分析的人,是一本好入手的書,雖然部分內容已經開始落後
2014. Statisitcal analysis of next generation sequencing. springer
在統計分析細節講得很細…..假如沒有要很深入數理統計面可以避過

網路MOOC
coursera
John Hopkins: Become a next generation sequencing data scientist(難度易)
1. Introduction to Genomic Technologies
2. Genomic Data Science with Galaxy
3. Python for Genomic Data Science
4. Algorithms for DNA Sequencing
5. Command Line Tools for Genomic Data Science(推)
6. Bioconductor for Genomic Data Science(推)
7. Statistics for Genomic Data Science(推)

edx
Harvard: Biomedical series(難度中部分偏難)
1. Introduction to Bioconductor: Annotation and Analysis of Genomes and Genomic Assays(推)
2. High-performance Computing for Reproducible Genomics(推)
3. Case Studies in Functional Genomics