如何有效使用CMDB基因頻率數(shù)據(jù)庫

我想不少讀者朋友已經(jīng)知道在今年十月初,我們在Cell主刊上發(fā)表了第一個大規(guī)模中國人基因組學(xué)研究文章。

CMDB是這篇文章中唯一一個提供出來大規(guī)模中國人群體變異頻率數(shù)據(jù)庫,大約包含了9M個高質(zhì)量的變異位點(約占人類基因組總長的0.003)。它是一個縮寫,全稱是Chinese Millionome Database,很意外的是這個縮寫名字竟然與IT領(lǐng)域的配置管理數(shù)據(jù)庫相同,這是當(dāng)初起名時所不知道的。

這個數(shù)據(jù)庫網(wǎng)站的第一版是去年末我參考ExAC做的,使用的底層框架是常見的Nginx+Flask+MongoDB,一開始很簡陋,沒有注冊管理,也沒有后臺運維,僅僅只提供了網(wǎng)頁端的查詢和檢索這些核心功能,在文章發(fā)表前知道的人也極少。但如今我們已經(jīng)有一個專門的小組在維護(hù)和開發(fā)了,并且陸續(xù)增加了不少新功能,這其中就包括Genome API,訪問量也穩(wěn)步上升,不過CMDB中的數(shù)據(jù)不能夠被下載是鐵定的。

這個問題其實讓不少同行朋友深感苦惱——或者說是惱火。因為在實際應(yīng)用中常常有成千上萬(或者上百萬)的位點需要注釋,怎么可能只是通過網(wǎng)頁端一個一個手動地查!這實在讓人抓狂——如果想用爬蟲——對不起——會被封號,曾經(jīng)有幾個國內(nèi)高校的實驗室嘗試這么做的時候就被封過,雖然無奈,但也是不得不做啊。

然而作為科學(xué)工作者,看到這樣的情況未免覺得難受,我們也不希望CMDB會由于其易用性不足的原因慢慢“枯萎”,而無法發(fā)揮它應(yīng)有的價值——那樣未免太可惜了。所以我們小組不斷改善它的使用模式,比如不久前新增的Genome API,這是一個可以比較好地處理這個問題的方法。但要有效使用API,就繞不開編程寫程序這一關(guān),這恐怕又是一個門檻。

再加上現(xiàn)在CMDB的訪問量在日益增多,許多注冊和訪問的同行并不一定都懂得如何使用這個API,所以為了進(jìn)一步解決這個問題,上個月末我抽空寫了一個小工具,名字是cmdbtools(https://github.com/ShujiaHuang/cmdbtools)。

https://github.com/ShujiaHuang/cmdbtools

這是一個基于Python的命令行工具,只要你申請獲得了CMDB的API權(quán)限,那么就可以直接用這個工具來查詢變異信息或者為你的VCF數(shù)據(jù)注釋上CMDB的頻率信息,用起來十分方便!有了cmdbtools,你就可以不必理會該如何在程序中使用CMDB API了,直接安裝cmdbtools即可,基本上可以滿足你99%的需求,唯一的要求就是熟悉Linux或者M(jìn)acOS的命令行工作環(huán)境。

另外,由于這是Python編寫的,安裝起來十分簡單,直接pip install cmdbtools即可,不過由于目前還是開發(fā)版更新可能會比較頻繁。成功之后,你就可以直接在命令行里使用 cmdbtools 了,在命令行中運行--help就可以查看cmdbtools的功能和用法,如下:

$ cmdbtools --help
usage: cmdbtools [-h]
                {login,logout,print-access-token,annotate,query-variant} ...

Manage authentication for CMDB API and do querying from command line.

optional arguments:
 -h, --help            show this help message and exit

Commands:
 {login,logout,print-access-token,annotate,query-variant}
   login               Authorize access to CMDB API.
   logout              Logout CMDB.
   print-access-token  Display access token for CMDB API.
   annotate            Annotate input VCF.
   query-variant       Query variant by variant identifier or by chromosome
                       name and chromosomal position.

如果你想直接使用最新的開發(fā)版,也可以通過github鏈接來安裝:

$ pip install git+git://github.com/ShujiaHuang/cmdbtools.git#egg=cmdbtools

目前提供了兩個實用的基礎(chǔ)功能:

1)變異頻率信息的查詢,query-varaint 功能。這個函數(shù)既可以查詢單個位點的CMDB信息,也可以同時查詢一系列位點的情況。我這里舉兩個例子來展示其用法:

$ cmdbtools query-variant -c chr17 -p 41234470 > ch17_41234470.vcf

或者:

$ cmdbtools query-variant -l positions.list > result.vcf

其中positions.list是目標(biāo)位點,如果這些位點可以在CMDB中找到頻率信息,則輸出到result.vcf這個文件中,如果找不到則丟棄,最后結(jié)果為標(biāo)準(zhǔn)VCF格式,如:

##fileformat=VCFv4.2
##FILTER=<ID=LowQual,Description="Low quality">
##INFO=<ID=CMDB_AN,Number=1,Type=Integer,Description="Number of Alleles in Samples with Coverage from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_AC,Number=A,Type=Integer,Description="Alternate Allele Counts in Samples with Coverage from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_AF,Number=A,Type=Float,Description="Alternate Allele Frequencies from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_FILTER,Number=A,Type=Float,Description="Filter from CMDB_hg19_v1.0">
#CHROM  POS  ID  REF  ALT  QUAL  FILTER  INFO
17  41234470  rs1060915&CD086610&COSM4416375  A  G  74.38  PASS  CMDB_AF=0.361763,CMDB_AC=4625,CMDB_AN=12757

2)注釋本地VCF文件,annotate功能。我想這對很多研究者來說應(yīng)該是最實用的一個功能,有了這個就不需要反復(fù)在網(wǎng)頁端查詢了,在本地電腦上運行就行了,而且VCF文件可以同時是gz壓縮或者非壓縮的文本形式。例子如下:

$ cmdbtools annotate -i multiple_samples.vcf.gz > multiple_samples_CMDB.vcf

你可以的到如下的結(jié)果:

##fileformat=VCFv4.2
##ALT=<ID=NON_REF,Description="Represents any possible alternative allele at this location">
##FILTER=<ID=LowQual,Description="Low quality">
##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
##reference=file:///home/tools/hg19_reference/ucsc.hg19.fasta
##INFO=<ID=CMDB_AN,Number=1,Type=Integer,Description="Number of Alleles in Samples with Coverage from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_AC,Number=A,Type=Integer,Description="Alternate Allele Counts in Samples with Coverage from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_AF,Number=A,Type=Float,Description="Alternate Allele Frequencies from CMDB_hg19_v1.0">
##INFO=<ID=CMDB_FILTER,Number=A,Type=Float,Description="Filter from CMDB_hg19_v1.0">
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO
chr21   9413612 .       C       T       6906.62 .       AC=25;AF=0.313;AN=80;BaseQRankSum=0.425;CMDB_AC=2459;CMDB_AF=0.207525;CMDB_AN=11834;CMDB_FILTER=PASS
chr21   9413629 .       C       T       8028.88 .       AC=30;AF=0.375;AN=80;BaseQRankSum=-1.200e+00;CMDB_AC=6906;CMDB_AF=0.305445;CMDB_AN=22406;CMDB_FILTER=PASS
chr21   9413700 .       G       A       7723.82 .       AC=30;AF=0.375;AN=80;BaseQRankSum=-9.000e-02
chr21   9413735 .       C       A       10121.72        .       AC=35;AF=0.438;AN=80;BaseQRankSum=0.977;CMDB_AC=2385;CMDB_AF=0.283965;CMDB_AN=8382;CMDB_FILTER=PASS
chr21   9413839 .       C       T       8192.08 .       AC=28;AF=0.350;AN=80;BaseQRankSum=-5.200e-02
chr21   9413840 .       C       A       11514.35        .       AC=38;AF=0.475;AN=80;BaseQRankSum=0.253
chr21   9413870 .       T       C       7390.60 .       AC=26;AF=0.325;AN=80;BaseQRankSum=-4.270e-01
chr21   9413880 .       T       A       146.96  .       AC=1;AF=0.013;AN=80;BaseQRankSum=2.12;ClippingRankSum=0.00
chr21   9413909 .       G       A       1131.78 .       AC=10;AF=0.125;AN=80;BaseQRankSum=0.549;CMDB_AC=209;CMDB_AF=0.01507;CMDB_AN=13683;CMDB_FILTER=PASS
chr21   9413913 .       C       T       8120.65 .       AC=28;AF=0.350;AN=80;BaseQRankSum=-4.390e-01;CMDB_AC=2870;CMDB_AF=0.205597;CMDB_AN=13955;CMDB_FILTER=PASS
chr21   9413945 .       T       C       43787.68        .       AC=71;AF=0.888;AN=80;BaseQRankSum=0.089
chr21   9413995 .       C       T       9632.44 .       AC=29;AF=0.363;AN=80;BaseQRankSum=0.747
chr21   9413996 .       A       G       41996.48        .       AC=71;AF=0.888;AN=80;BaseQRankSum=-1.242e+00;CMDB_AC=3308;CMDB_AF=0.688533;CMDB_AN=4790;CMDB_FILTER=PASS
chr21   9414003 .       T       C       4256.54 .       AC=19;AF=0.238;AN=80;BaseQRankSum=-6.030e-01

在這個注釋結(jié)果中將對所有能夠在CMDB中查詢到的位點注釋上4個信息,分別是:

  • CMDB_AF: CMDB數(shù)據(jù)庫中的突變頻率信息;

  • CMDB_AN: 該位點在CMDB數(shù)據(jù)庫中總的群體覆蓋深度;

  • CMDB_AC: 該位點在CMDB數(shù)據(jù)庫中支持該變異的群體覆蓋深度;

  • CMDB_FILTER:質(zhì)控標(biāo)記,一般是PASS

不過和query-variant的功能一樣,如果你感興趣的位點不在CMDB的這些高質(zhì)量變異之中,則同樣不會有注釋信息,cmdbtools將按照你原來的樣子輸出返回,不會添加上述這四個CMDB信息,所以如果最后你發(fā)現(xiàn)自己的數(shù)據(jù)完全沒有CMDB的注釋信息,請不要驚訝,或許只是因為這些位點在CMDB這個大人群中沒發(fā)現(xiàn)高質(zhì)量的變異而已。

那Annotate的速度如何呢?

4千來個變異位點大約需要3分鐘。

其它方面的信息我在github中也有比較具體的幫助文檔(近期也將同步更新到CMDB網(wǎng)站中),因此這里就不再贅述了,你可以到github里面看到。

https://github.com/ShujiaHuang/cmdbtools

希望這些一點一點的努力可以對有需要的同行朋友們有所幫助,同時也非常歡迎大家多提意見,cmdbtools可能會逐步改進(jìn)成為官方工具,所以我們希望可以結(jié)合大家更多的意見來進(jìn)一步完善其后續(xù)功能。

最后,我還是多強調(diào)一句,不要試圖借助cmdbtools取巧,按照你的需求去完成自己的分析即可,如果CMDB后臺判定使用者不是在正常地使用這個工具,比如大批量異常查詢數(shù)據(jù)等情況,那么還是會被封號。

祝科學(xué)研究者們2019年更好。


如果喜歡更多的生物信息和組學(xué)文章,搜索并關(guān)注我的微信公眾號“堿基礦工”(ID: helixminer)

堿基礦工

你還可以讀

這是知識星球:『達(dá)爾文星球』(原名:解螺旋技術(shù)交流圈),是一個我與讀者朋友們的私人朋友圈。我有9年前沿而完整的生物信息學(xué)、NGS領(lǐng)域的科研經(jīng)歷,在該領(lǐng)域發(fā)有多篇Nature、Cell級別的科學(xué)文章,我希望借助這個知識星球把自己的一些微薄經(jīng)驗分享給更多對組學(xué)感興趣的伙伴們。

這是知識星球上第一個與基因組學(xué)和生物信息學(xué)強相關(guān)的圈子,也是官方評定的優(yōu)秀星球。希望能夠借此營造一個高質(zhì)量的組學(xué)知識圈和人脈圈,通過提問、彼此分享、交流經(jīng)驗、心得等,促進(jìn)彼此****更好地學(xué)習(xí)生信知識,提升基因組數(shù)據(jù)分析和解讀的能力。

在這里你可以結(jié)識到全國優(yōu)秀的基因組學(xué)和生物信息學(xué)專家,同時可以分享你的經(jīng)驗、見解和思考,有問題也可以向我提問和星球里的星友們提問。

知識星球:達(dá)爾文星球
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容