本文关键词:geo数据库如何进行多态性分析
干这行七年了,说实话,每次看到新人拿着几百个G的原始数据问我“老师,这咋跑多态性啊”,我就想笑。不是笑他们笨,是觉得现在的教程太“完美”了,完美得让人不敢信。今天我不整那些虚头巴脑的理论,就聊聊我在实验室里踩过的坑,以及我是怎么把geo数据库里的SNP和Indel给扒拉出来的。
很多人一上来就想着用GATK,觉得那是金标准。但在geo数据库里,你拿到的往往是已经处理过的数据,或者是不同批次、不同平台混在一起的数据。这时候,直接套用标准流程,大概率会报错报到你怀疑人生。
第一步,得先看清你手里到底有啥。别急着下载,先去SRA或者GEO的页面扒一扒元数据。看看是WGS(全基因组测序)还是WES(外显子组),或者是芯片数据。这三者处理逻辑完全不一样。我有个朋友,之前拿芯片数据去跑WGS的流程,结果出来的VCF文件大得离谱,里面全是假阳性,因为芯片根本测不到那些低频变异。所以,确认数据类型是第一步,这一步省了,后面能累死你。
第二步,下载和格式转换。geo的数据有时候散落在不同的附件里,有的还是.sra格式。这时候得用fasterq-dump或者prefetch工具。这里有个小坑,fasterq-dump默认是单端读取,如果你做的是双端测序,记得加--split-3参数,不然读出来的数据对不上,后续比对全是乱码。我有一次偷懒没加这个参数,比对率只有60%,排查了两天才发现是下载参数的问题。这种低级错误,真的别犯。
第三步,比对和变异检测。这是最耗时的环节。如果你用BWA-MEM比对,记得先建索引。然后就是调用变异,这里我建议用FreeBayes或者GATK的HaplotypeCaller。但是,geo数据库里的样本往往没有对应的对照样本(Normal),这时候做体细胞变异检测就很麻烦,容易把生殖系变异当成肿瘤突变。所以,如果是做群体多态性分析,最好找同种属的参考基因组,或者使用dbSNP数据库来过滤常见多态性位点。
第四步,过滤和注释。跑出来的VCF文件里,肯定有很多垃圾数据。这时候要用VQSR或者简单的硬过滤。比如,过滤掉QUAL值小于30的位点,或者DP(深度)小于10的位点。我一般喜欢用bcftools + filter来写脚本,虽然刚开始写脚本有点头疼,但一旦写好了,处理几百个样本也就是一杯咖啡的时间。注释的话,SnpEff是个不错的选择,它能告诉你这个变异是在编码区还是非编码区,对哪个氨基酸有影响。
最后,结果可视化。别光看表格,用IGV打开几个典型的变异位点看看。有时候你会发现,虽然软件报了这个变异,但在IGV上看,reads支持率很低,或者比对质量很差。这时候,人工复核一下,能帮你排除不少假阳性。
说实话,geo数据库如何进行多态性分析,并没有一个万能的一键脚本。每个数据集都有它的脾气。你得学会看日志,学会报错信息。有时候,一个小小的参数调整,就能让结果天差地别。
我也不是每次都能成功。上个月我跑一个肺癌数据集,结果发现所有样本的杂合子比例都异常高,后来发现是参考基因组版本选错了,用的hg19,但数据是hg38构建的。这种坑,只有亲自踩了才知道有多疼。所以,别怕报错,报错信息里往往藏着真相。
希望这些经验能帮到你。如果有啥具体问题,欢迎在评论区留言,咱们一起讨论。毕竟,这行就是这样,大家一起折腾,才能进步。记住,多态性分析不仅仅是跑代码,更是对数据的理解和敬畏。