GeneiASE —— ASE檢驗(yàn)

在ASEReadCounter完成位點(diǎn)的覆蓋度信息計(jì)數(shù)統(tǒng)計(jì)之后,還需要對(duì)位點(diǎn)添加基因ID,隨后做二項(xiàng)分布和費(fèi)舍爾精確檢驗(yàn)磕蒲,這里推薦GENEiase軟件。

ASE (等位基因特異性表達(dá))—— ASEReadCounter - 簡(jiǎn)書 (jianshu.com)

GENEiase軟件論文:
https://www.nature.com/articles/srep21134.pdf

找到了一個(gè)介紹ASE的PPT:
https://scilifelab.github.io/courses/rnaseq/1610/slides/ASE_Olof_Emanuelsson.pdf

1.下載安裝

1.1 下載

https://github.com/edsgard/geneiase/tags

1.2 安裝

$ tar xvf geneiase-1.0.1.tar.gz
$ cd /your/path/geneiase-1.0.1/bin

geneiase是基于R的只盹,首先需要進(jìn)入R環(huán)境辣往,安裝依賴包:

$ R
> install.packages(c('getopt', 'binom', 'VGAM'))
> q()

安裝完成后,退出R殖卑,即可正常使用geneiase站削。

$ geneiase
Usage: geneiase [-[-ase.type|t] <character>] [-[-in.file|i] <character>] [-[-out.file|o] <character>] [-[-betabin.p|p] <double>] [-[-betabin.rho|r] <double>] [-[-n.bootstrap.samples|b] <integer>] [-[-min.feat.vars|m] <integer>] [-[-nmax.vars|x] <integer>] [-[-lib.file|l] <character>] [-[-help|h]]

出現(xiàn)Usage,安裝成功孵稽。

2. 參數(shù)

geneiase只需要兩個(gè)參數(shù)许起,-t和-i:

-t,
"static"或者"icd", 
指定數(shù)據(jù)類型是靜態(tài)的"static"還是獨(dú)立的條件依賴"icd"的ASE

-i, 
輸入文件的文件名

安裝包解壓后的test文件夾中有兩種數(shù)據(jù)類型的示例數(shù)據(jù)。
static數(shù)據(jù)包含四列信息菩鲜,分別為基因ID(feautureID), snpID, 替代等位基因數(shù)(alternative allele count),參考等位基因數(shù)目( reference allele count)园细,示例格式:

$ less static.test.input.tab
gene    snp.id  alt.dp  ref.dp
10.9    1       4       6
10.9    2       6       4
10.9    3       5       5
10.9    4       0       10
10.9    5       9       1
10.9    6       5       5
10.9    7       3       7
10.9    8       8       2
10.9    9       7       3
101.2   10      6       4
101.2   11      5       5
103.3   12      4       6
103.3   13      9       1
103.3   14      1       9
105.5   15      5       5
105.5   16      0       10
105.5   17      7       3

icd數(shù)據(jù)包含六列信息,分別為基因ID接校,SNPid猛频,未經(jīng)處理的替代等位基因數(shù)目(Untreated alternative allele count), 未處理的參考等位基因數(shù)目(Untreated reference allele count), 處理的替代等位基因數(shù)目(Treated alternative allele count), 處理的參考等位基因數(shù)目(Treated reference allele count),示例格式:

$ less icd.test.input.tab
gene    snp.id  U.alt.dp        U.ref.dp        T.alt.dp        T.ref.dp
1.11    1       8       2       7       3
1.11    2       3       7       4       6
1.11    3       8       2       6       4
1.11    4       5       5       7       3
1.11    5       6       4       1       9
1.11    6       9       1       5       5
1.11    7       4       6       5       5

3.ASE檢驗(yàn)

ASEReadCounter完成位點(diǎn)的覆蓋度信息計(jì)數(shù)統(tǒng)計(jì)之后,將結(jié)果中的Chr和位點(diǎn)的位置信息提取出來鹿寻,整理為下列各式的表格:

$ less LPF1_MP_pos.txt
Mpar_chr1    2001    2001
Mpar_chr1    2015    2015
Mpar_chr1    2034    2034
Mpar_chr1    2037    2037
Mpar_chr1    2206    2206

3.1 查找位點(diǎn)的基因信息

bedtools的使用方法睦柴,這篇文章有詳細(xì)的介紹:
最全Bedtools使用說明--只看本文就夠了 - 簡(jiǎn)書 (jianshu.com)

首先對(duì)基因組文件position文件進(jìn)行排序,注意pos文件和gff文件中的染色體名稱要一致:

$ bedtools sort -chrThenSizeA -i LPF1_MP.pos > LPF1_MP_sort.pos
$ bedtools sort -chrThenSizeA -i Mparg_v2.0.gff3 >  Mparg_v2.0_sort.gff3

返回pos文件中毡熏,SNP位點(diǎn)在基因組上的位置:

$ bedtools intersect -a LPF1_MP_sort.pos -b Mparg_v2.0_sort.gff3 -wb > LPF1_MP_gene.pos

3.2 在R中添加基因信息

在ASEReadCounter輸出的位點(diǎn)覆蓋度信息計(jì)數(shù)文件結(jié)果中爱只,添加上一步得到的基因信息。
ASE (等位基因特異性表達(dá))—— ASEReadCounter - 簡(jiǎn)書 (jianshu.com)

# 讀取LPF1_MP_ASE.table和LPF1_MP_gene.pos
> ASE<-read.table("LPF1_MP_ASE.table",header = T)
> gene<-read.table("LPF1_MP_gene.pos")
LPF1_MP_ASE.table
LPF1_MP_gene.pos

創(chuàng)建snp_id:合并LPF1_MP_ASE.table中的contig和position兩列招刹,以及CPF1_CE_gene.pos中的V1和V2兩列恬试,創(chuàng)建snp_id。

> ASE <- tidyr::unite(ASE, "snp_id", contig, position,remove = FALSE)
> head(ASE)
          snp_id    contig position variantID refAllele altAllele refCount altCount totalCount
1 Mpar_chr1_4724 Mpar_chr1     4724         .         A         C       47       39         86
2 Mpar_chr1_4881 Mpar_chr1     4881         .         C         G       52       33         85
3 Mpar_chr1_4900 Mpar_chr1     4900         .         T         C       46       31         77
4 Mpar_chr1_4962 Mpar_chr1     4962         .         T         C       49       34         83
5 Mpar_chr1_4995 Mpar_chr1     4995         .         G         T       45       44         89
  lowMAPQDepth lowBaseQDepth rawDepth otherBases improperPairs
1            0             0       88          0             2
2            0             0       86          1             0
3            0             0       77          0             0
4            0             0       83          0             0
5            0             0       89          0             0

> gene <- tidyr::unite(gene, "snp_id", V1, V2,remove = FALSE)
> head(gene)
              snp_id        V1       V2       V3        V4       V5         V6       V7       V8
1 Mpar_chr1_29618717 Mpar_chr1 29618717 29618717 Mpar_chr1 AUGUSTUS     intron 29618269 29618971
2 Mpar_chr1_29618717 Mpar_chr1 29618717 29618717 Mpar_chr1 AUGUSTUS       gene 29617909 29621312
3 Mpar_chr1_29618717 Mpar_chr1 29618717 29618717 Mpar_chr1 AUGUSTUS transcript 29617909 29621312
4 Mpar_chr1_29511536 Mpar_chr1 29511536 29511536 Mpar_chr1 AUGUSTUS        CDS 29511235 29511554
5 Mpar_chr1_29511536 Mpar_chr1 29511536 29511536 Mpar_chr1 AUGUSTUS       exon 29511235 29511554
  V9 V10 V11                 V12
1  1   -   . Parent=MP1G214900.1
2  1   -   .       ID=MP1G214900
3  1   -   .     ID=MP1G214900.1
4  1   -   0 Parent=MP1G214200.1
5  .   -   . Parent=MP1G214200.1

提取注釋中所有的CDS疯暑,ASE位于CDS區(qū)域更加準(zhǔn)確:

> gene<-subset(gene,V6=='CDS')

根據(jù)snp_id進(jìn)行匹配训柴,并添加基因ID在ASE文件中:

> merga<-merge(ASE,gene, by = "snp_id", all.x = TRUE)
> write.csv(merga,"LPF1_MP_merga.csv",row.names = F)

3.3 準(zhǔn)備輸入文件

以static數(shù)據(jù)為例,需要四列信息妇拯,LPF1_MP_merga.csv中提然媚佟:

> raw<-read.csv("LPF1_MP_merga.csv")
> GeneiASE_input<-raw[,c(26,1,8,7)]
> head(GeneiASE_input)
   V12                  snp_id altCount refCount
1 <NA> Mpar_c2518_pilon_116563        1      395
2 <NA> Mpar_c2518_pilon_132171        3        3
3 <NA> Mpar_c2518_pilon_133271        1        1
4 <NA> Mpar_c2518_pilon_153461        2        5
5 <NA> Mpar_c2518_pilon_155680        2        4

去除gene ID缺失的行:

> GeneiASE_input <- na.omit(GeneiASE_input)
> names(GeneiASE_input)[1] <-"gene_id"
> head(GeneiASE_input)
               gene_id             snp_id altCount refCount
72 Parent=MP1G130700.1 Mpar_chr1_10006428       14       19
73 Parent=MP1G130700.1 Mpar_chr1_10006455       14       17
87 Parent=MP1G130700.1 Mpar_chr1_10006863       27       24
88 Parent=MP1G130700.1 Mpar_chr1_10006921       23       18
89 Parent=MP1G130700.1 Mpar_chr1_10006970       23       18

寫出:

> write.table(GeneiASE_input,"LPF1_MP_GeneiASE_input.tab",quote = FALSE,row.names = FALSE,col.names = T,sep  ='\t')

3.4 ASE檢驗(yàn)

$ cd your/path/geneiase/bin
$ geneiase -t static -i LPF1_MP_GeneiASE_input.tab -b 100
  • -b n.bootstrap.samples
    The number of bootstrap samples (B) to be used to generate the null distribution. Default: 1e5
LPF1_MP_GeneiASE_input.tab.static.gene.pval.tab

結(jié)果文件中包含以下幾列:

  • feat: 基因ID
  • n.vars: 基因變異的數(shù)量
  • mean.s: Mean of s across the variants within the gene
  • median.s: Median of s across the variants within the gene
  • sd.s: Standard deviation of s across the variants within the gene
  • cv.s: Coefficient of variation of s across the variants within the gene
  • liptak.s: Stouffer-Liptak combination of s
  • p.nom: Nominal p-value
  • fdr: Benjamini-Hochberg corrected p-value

3.5 整理ASE檢驗(yàn)結(jié)果

> p_value<-read.csv("LPF1_MP_GeneiASE_input.tab.static.gene.pval.tab",sep  ='\t')
> names(p_value)[1] <-"gene_id"
> names(raw)[26] <-"gene_id"
> result <- merge(p_value,raw, by = "gene_id", all.x = TRUE)
> result <- result[,c(10:12,14:17,1:9)]
> write.csv(result,"LPF1_MP_result.csv",row.names = F)

引用轉(zhuǎn)載請(qǐng)注明出處,如有錯(cuò)誤敬請(qǐng)指出越锈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仗嗦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甘凭,更是在濱河造成了極大的恐慌稀拐,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丹弱,死亡現(xiàn)場(chǎng)離奇詭異德撬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)躲胳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蜓洪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坯苹,你說我怎么就攤上這事隆檀。” “怎么了粹湃?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵恐仑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我再芋,道長(zhǎng)菊霜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任济赎,我火速辦了婚禮鉴逞,結(jié)果婚禮上记某,老公的妹妹穿的比我還像新娘。我一直安慰自己构捡,他們只是感情好液南,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著勾徽,像睡著了一般滑凉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喘帚,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天畅姊,我揣著相機(jī)與錄音,去河邊找鬼吹由。 笑死若未,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倾鲫。 我是一名探鬼主播粗合,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼乌昔!你這毒婦竟也來了隙疚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤磕道,失蹤者是張志新(化名)和其女友劉穎供屉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捅厂,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贯卦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了焙贷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贿堰,死狀恐怖辙芍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情羹与,我是刑警寧澤故硅,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站纵搁,受9級(jí)特大地震影響吃衅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腾誉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一鸳劳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧本冲,春花似錦燎猛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至讯私,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間西傀,已是汗流浹背斤寇。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拥褂,地道東北人娘锁。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肿仑,于是被迫代替她去往敵國(guó)和親致盟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容