macs2是peak calling最常用的工具。
這是macs2的主要功能,因為macs2的目的就是找peak,其他功能都是可有可無,唯獨callpeak
不可取代。最簡單的用法就是
# 常規的peak calling
macs2 callpeak -t chip.bam -c control.bam -f bam -g hs -n test -b -q 0.01
# 較寬的peak calling
macs2 callpeak -t chip.bam -c control.bam --broad -g hs --broad-cutoff 0.1
我們先來介紹這個案例裡的引數。首先是常規的peak calling用到的引數
基因組可比對區域大小
-q
: q值(最小的fdr)的閾值,預設0.05。可以根據結果進行修正。q值是p值經benjamini–hochberg–yekutieli修正後的值。
一般常規是夠用的,但是如果你需要看那些更加寬的peak,可以按照官方的建議使用如下引數
上面的基本引數可以用在最初的分析。根據基本的分析結果,可以有選擇地使用下面的引數符合特定專案的需求。
比較基礎的引數:
和macs模型構建相關的引數。正如macs的名字所示, model-based analysis of chip-seq, 它需要先建立模型然後分析。那麼問題來了,建立什麼模型?模型的目的是什麼?這裡的模型指的是雙峰模型,建立雙模模型的目的是為了更好的將原始reads朝3'偏移,更好的表示蛋白和dna的作用位置。這裡還要多問一句為什麼要偏倚。
這就需要從實驗建庫說起。chip-seq目標是找到蛋白和dna的作用位置,所以先要讓蛋白和dna進行交聯,之後用超聲打碎,再用抗體把與蛋白結合的dna收集起來測序。在macs發表的2023年,那個時候的測序大多都以單端50bp為主,而超聲破碎的片段肯定大於50 bp(這可以通過電泳圖來了解),也就是說最開始的se50資料比對到參考基因組之後,得到的峰圖並沒有真實反映出原來的文庫情況。但由於比對到基因組正負鏈的概率是相似的,那麼就會形成兩個峰(如下圖),為了更好的還原出最來的文庫片段,就先建立了雙峰模型,以兩峰距離d的一半作為偏倚長度。
如果你的資料是se50或者se100,為了更準確地找peak,你需要建立雙峰模型,你可能要調整--bw
,--mfold
,--fix-bimodal
,--shift
,--extsize
。 但是對於雙端測序而言,它本身測的就是文庫的兩端,因此建立模型沒有必要,偏倚也沒有必要,你只需要設定引數--nomodel
。
左:macs找到的d;右:fkhr motif驗證
-m/--mfold
: 構建雙峰模型時使用,預設是[5,50],表示選擇那些倍數變化在5~10之間的富集區域。如果找不到100個區域構建模型,並且你還設定了--fix-bimodal
時,它就會用--extsize
引數繼續分析
--nolambda
: 設定這個引數就意味著不用macs推薦的動態lambda,而是使用背景lambda作為local lambda,也就是不考慮染色質結構等造成的區域性偏誤。
--slocal, --llocal
: 這兩個引數也是macs用來計算動態lambda會用到,分別計算1kb內lambda(slocal)和10kb的lambda(llocal),目標是處理類似於開放染色質區域的效應。注,如果這兩個引數太小,輸入資料中的尖峰(sharp spike)就可能乾掉顯著性的peak。
公式謹慎使用的引數:
callpeak會得到如下檔案:
bdgcmp使用*_treat_pileup.bdg
和*_control_lambda.bdg
計算得分軌(score track)
bdgpeakcall使用*_treat_pvalue.bdg
或bdgcmp得到的結果或beggrap**件進行peak calling.bdgbroadcall差不多也是這樣子。
bdgdiff能用來分析4個bedgrap**件,得到treatment1 vs control1, treatment2 vs control2, treatment1 vs control2, treament2 vs control1的得分。
filterdup:過濾重複,結果是bed檔案
predictd:從比對檔案中估計文庫大小或d
randsample: 隨機抽樣
pileup:以給延伸大小去堆積(pileup)比對得到的reads。這一步不會有去重和測序深度標準化,你需要預先做這些工作。
如何使用svn進行merge
前提需求 在trunk上進行了若干個修改,想將這些修改分別merge到另外乙個branch上,但不包括其他同事在trunk的修改,假設已經知道在trunk提交時候的revision是123與234 step 1 檢查trunk上的difference,此步驟可選,如果你確定知道修改的內容是怎樣的 s...
如何使用TestFlight進行Beta測試
在2014年的蘋果全球開發者大會上,蘋果宣布他們把testflight整合進了ios 8的開發套件中。這樣做的目標是讓開發人員多了一種安裝beta測試程式的方法,並使整個過程更加容易。而實際上,testflight作為乙個beta測試的平台,在這之前已經出現了,而且可以同時支援ios和android...
如何使用TestFlight進行Beta測試
在2014年的蘋果全球開發者大會上,蘋果宣布他們把testflight整合進了ios 8的開發套件中。這樣做的目標是讓開發人員多了一種安裝beta測試程式的方法,並使整個過程更加容易。而實際上,testflight作為乙個beta測試的平台,在這之前已經出現了,而且可以同時支援ios和android...