R語言讀入FASTA 蛋白質序列文件 & 生成SeqLogo

一、效果展示

1. FASTA文件蛋白質序列文件

FASTA和FASTQ是我們存儲核苷酸序列信息(就是DNA序列)或者蛋白質序列信息最常使用的兩種文本文件,雖然看起來名字有些古怪,但它們完全是純文本文件(如同.txt)!名字的發音分別是fast-A和fast-Q。

【注】這裏的序列、序列數據,指的其實就是表示DNA或者蛋白質的一條字符串。

FASTA文件主要由兩個部分構成:序列頭信息(有時包括一些其它的描述信息)和具體的序列數據。頭信息獨佔一行,以大於號(>)開頭作爲識別標記,其中除了記錄該條序列的名字之外,有時候還會接上其它的信息。緊接的下一行是具體的序列內容,直到另一行碰到另一個大於號(>)開頭的新序列或者文件末尾。
下面給出一個FASTA文件的例子。
在這裏插入圖片描述

2. 數據可視化

二、使用R語言實現

編譯器:RStudio

1、讀入FASTA文件:R語言-Biostrings包

如果你要使用R對存儲DNA序列的fasta文件進行操作,那麼Biostrings是你的不二之選。

1.1 安裝

Biostrings包和普通的R包安裝方法不一樣,用以下命令安裝:

source(“http://bioconductor.org/biocLite.R”)
biocLite(“Biostrings”) #安裝Biostrings

1.2 使用

在這裏插入圖片描述

seqdata = readBStringSet(filepath, format=“fasta”, nrec=-1L, skip=0L, seek.first.rec=FALSE, use.names=TRUE)

參數解釋:

  • nrec:最多從文件讀入多少記錄,負數則表示該項被忽略
  • skip:一個非負整數,表示在開始讀入記錄之前要跳過的記錄數
  • seek.first.rec:TRUE或者FALSE(默認)。如果爲TRUE,則一定是以“>”(對於FASTA)或“@”(對於FASYTQ)作爲第一行。如果找不到這樣的行,就會出現錯誤。值得一提的是,TRUE還可以用於解析帶有FASTA數據的CFF3文件。
  • use.names:返回的向量是否應該被命名,對於FASTA,名稱取自描述行;對於FASTQ,它們取自記錄序列ID。刪除名稱可以幫助減少內存佔用,例如:對於包含數百萬個記錄的FASTQ文件。

2. 繪製seq logo圖:R語言-ggseqlogo包

2.1 安裝

#直接從CRAN中安裝
install.packages(“ggseqlogo”)
#從GitHub中安裝
devtools::install.github(“omarwagih/ggseqlogo”)

2.2 讀數據

fasta_input <- read.table(fasta, header=F, row.names=NULL)
fasta_input <- as.vector(fasta_input$V1)

2.3 可視化

ggseqlogo(seqs_dna$MA0001.1)

2.4 自定義

ggseqlogo(data, facet = “wrap”, scales = “free_x”, ncol = NULL,
nrow = NULL, …)

參數:

  • data:序列的特徵向量或命名的序列列表,所有序列必須具有相同的寬度
  • facet:刻面類型,可以是 ‘wrap’ 或 ‘grid’
  • scales:刻面尺度,請參閱 facet_wrap
  • ncol:列數,僅適用於facet=‘wrap’,請參閱facet_wrap
  • nrow:同 ncol
  • method:高度方法,可以是"bits" or “probability”(默認值:“bits”)
  • seq_type:序列類型,可以是“auto”,“aa”,“dna”,“rna”或“other”之一(默認:“auto”,自動猜測序列類型)
  • namespace:命名空間,用於自定義命名空間的單個字母的字符向量。可以是字母數字,包括希臘字符。
  • font:字體名稱。請參閱list_fonts可用字體。
  • stack_width:字母堆棧的寬度在0和1之間(默認值:0.95)
  • rev_stack_order:如果TRUE,字母堆棧的順序顛倒,默認值:FALSE
  • col_scheme:應用於序列標誌的配色方案。請參閱list_col_schemes可用字體。(默認:“自動”,根據顏色方案自動選取seq_type)。還可以傳遞使用該make_col_scheme函數創建的自定義顏色方案對象
  • low_col,high_col:如果使用定量顏色方案,則漸變的低端和高端的顏色(默認:“黑色”和“黃色”)。
  • na_col:顏色方案中缺少字母的顏色(默認值:“grey20”)
  • ……

3. Demo

#加載包
library(ggplot2)
library(ggseqlogo)
library(Biostrings)

fasta_input = readBStringSet("/Users/wyc/Documents/rcode/graduation_project/ecoli_test.fasta", format="fasta", nrec=-1L, skip=0L, seek.first.rec=FALSE, use.names=FALSE)
print(fasta_input)
fasta_input <- as.vector(seqdata)
print(fasta_input)
ggseqlogo(fasta_input, seq_type="dna")

控制檯輸出:
在這裏插入圖片描述在這裏插入圖片描述
數據可視化:
在這裏插入圖片描述

三、使用在線工具Weblogo實現

WebLogo(http://weblogo.threeplusone.com)繪製seqlogo的老牌在線工具。相比於在R上繪製seqlogo圖,網頁版在線工具更加輕鬆容易。但同時也存在一定的侷限性,就是不適合分析大批量數據。

1. 上傳文件或者輸入序列

在這裏插入圖片描述

2. 自定參數(可選)

在這裏插入圖片描述

3. 生成logo

在這裏插入圖片描述

四、擴展——Two Sample Logo

http://www.twosamplelogo.org/cgi-bin/tsl/tsl.cgi
Two Sample Logo是一個基於Web的應用程序,用於計算和可視化兩組對齊的氨基酸或核苷酸樣本之間的差異。計算對齊的序列組中每個位置的每個殘基的統計學顯着性,其中零假設是根據陽性和陰性樣品中的相同分佈產生殘基。兩個樣品標誌物可用於確定各種活性位點,蛋白質修飾位點周圍的統計學上顯着的殘基,或發現共享相同序列基序的兩組序列之間的差異。

該軟件支持兩種類型的圖形表示:(i)對於每個殘基符號使用相同大小繪製統計上顯着的殘差,(ii)使用與兩個樣本之間的差異成比例的符號的大小來繪製統計上顯着的符號。 。殘基分爲兩組:(i)富含陽性樣品,和(ii)貧樣陽性樣品。在所有類型的表示中,可以使用各種顏色方案來繪製符號,並且可以將共享的殘差添加到圖中以便可視化圖案本身。使用二項分佈(更準確但更慢的選項)或t檢驗(不太準確,但明顯更快)計算p值。

兩個樣本徽標是使用Ruby編程語言創建的,基於WebLogo代碼。

參考:
從零開始完整學習全基因組測序(WGS)數據分析:第2節 FASTA和FASTQ

把fasta序列讀入到R裏面去
R包Biostrings的使用( 轉載)
Biostrings 處理fasta文件

R包ggseqlogo 繪製seq logo圖
ggseqlogo

Seq logo 在線繪製工具——Weblogo

Two Sample Logo

其他資料:
Biostrings.pdf(英文的,我是看不下午去的,碼住備用吧)
w3school R語言教程(R語言中文教程)
TwoSampleLogo.pdf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章