深入染色體組型視覺化調研(一)(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

基因組瀏覽器整理(Genome Browser tools)

screenshot.png
做複雜的次世代定序資料分析,少不了使用基因組瀏覽器來(Genome Browser),基因組瀏覽器是圖形化的工具用來展示生物序列資訊,和不同的基因組特徵(genomic feature)。通常由長條狀的展示框(track)組成,以基因序列的位置作為線性軸,目前並沒有一套標準用來展示各式各樣的基因組特徵,所以頗需要一定的經驗才能上手。

通常基因組瀏覽器可以用來視覺化fasta、bed、gtf/gff、sam/bam檔,且大多數的基因組瀏覽器都有預先放置人類和老鼠的基因組參考序列。

最陽春的方式來瀏覽bam檔可以使用samtools tview的功能,但需要較複雜的探索性分析還是需要基因組瀏覽器的幫助,下面是目前還在active維護的基因組瀏覽器,大多都具備相當不錯的表現能力,幾乎都以java寫的,所以在安裝的時候要注意java相關的依賴,在啟動的時候大多都可以調整記憶體需求,也能利用remote的方式傳送影像。

IGV
上次更新時間:2016/11/1
screenshot.png
由Broad institue所開發,元老級的基因瀏覽器,是目前“市佔率”最大的基因組瀏覽器,在2013年的時候性能有一次大升級。

Artemis
上次更新時間:2017/1/31
由wellcome trust sanger institue所開發,可同時組裡genebank和ensemb格式,且其能手動去調整註釋,另外,也是ensembl內部在組裡資料所使用的軟體

SeqMonk
上次更新時間:2017/6/2
由開發fastqc軟體的Babraham institue所開發,對於許多chipseq, methylation等3d structure資料有支持

iobio
上次更新時間:2017/7

screenshot.png
唯一提供線上基因組資料瀏覽和分析的工具,整體軟體使用起來很舒服,為University of Utah研究團隊Marth lab所開發的軟體,在展示variant時,還會提供各種variant score來做為搜尋disease-causing variant幫助使用

IGB
上次更新時間:2016/6/7
在2001就被Affymetrix開發出來了,直到現在都還在維持中,他的使用手冊是這幾個genome browser中算是寫得最詳盡和清楚的,可以用來瀏覽Chipseq、RNAseq等等輸出資料

tablet
上次更新時間:2016/9/6

tablet1
由The James Hutton Institue所開發的瀏覽器