用UKBB数据库做孟德尔随机化之前要做的事情
UKBB数据库的数据预处理
用UKBB数据库做孟德尔随机化之前要做的事情
点进来看的人都知道利用UKBB数据库做MR研究,不像GWAS数据库那么丝滑
首先,这是一个巨无霸文件,压缩的就3+G,解压以后更是到了10+
G。
对了,给文件解压也是个问题。因为UKBB数据库下载来的是 .bgz 格式的压缩文件。
要问有没有针对这种文件的解压软件,答案是有,但是懒得用。要是非得用,上链接↓
https://fileinfo.com/extension/bgz
懒的用的原因也很简单:不想把时间浪费在探索是否免费,软件多大,含不含广告之类之类的事情上,况且不用也能解决问题,还解决的很好。
解决方案:
1.重命名文件,把 .bgz 改成 .gz
这个方法在Windows Ubuntu Mac都适用
2.然后用各系统对应的解压缩方式解压文件。
这里,有必要说一下,对于R处理这样的数据文件来说,重命名是必须的,解压缩不是必须的。因为R有读入压缩文件的函数。当然,快速读大文件的函数也有。做法取决于自己高兴用哪种。
想要快速读 tsv 大文件,可以用 fread 函数。
读进来以后要做的是根据自己的研究需要建立子集,比如提取effect_allele列这样的操作,如果只是做到这一步就另存文件的话,大约能把9-10G的文件提取成 3-4G的文件。
当用本地数据跑MR的时候,系统还是会报错,说是 “栈溢出”
也就是说,算力不够。
解决方案也有两种
用超算服务器。租的蹭的攒的。。。各种能弄到超算的途径。
跟我一样没钱的话,这是我的解决方案
首先,10G的数据,单纯读入R,虽然慢点,也是能完成的,咱还能做提取列,改列名之类的操作不是?
那么,可以根据你对研究设定的P值,提取P值符合标准的SNP,也就是比刚才提取指定的列多一步操作:提取P值合格的SNP。这样的子集保存下来大约400M。顿时比GWAS数据都还小,基本跑起来就没压力了。
需要注意的是,MR的研究,P值说的是暴露,这样的处理是针对暴露的。
转念一想,超算在这个阶段的研究固然是有用的,也并不是不可或缺的。抖音上有个梗:写字对笔的要求一定要高。。。
如果你的科研环境非常恶劣。做能做的事情,并且想办法解决困难,毕竟,脑子是第一位的,条件是第二位的。新中国成立的时候咱们多么穷,原子弹不是照样儿造出来了么!
更多推荐
所有评论(0)