我正在使用一个基因数据集(大约23,000个样本和300,000个SNP作为特征)。我的文件是PLINK二进制格式文件(.bed、.bim、.fam)。下面列出了它们的大小:
- .床文件:1.6G
- .bim文件= 9.3M
- .fam文件= 737 K
我的目标是将它们转换成(Pandas) Dataframe ,然后开始用Python(这是一个机器学习项目)进行预测分析。
我被建议将所有3个二进制文件合并成一个vcf(变量调用格式)文件。结果(vcf文件)是一个使用PLINK软件的26 G文件。有python包和代码将vcf文件转换成Pandas Dataframe ,但我的远程系统内存有限(15 Gi)。由于数据集的性质,我只能使用大学计算机。
我的问题是,考虑到我的所有限制,我如何将我的数据集转换为可用于机器学习的 Dataframe ?如果您需要更多细节,请告诉我。
1条答案
按热度按时间t3irkdon1#
你为什么要把它转换成VCF?
不幸的是,我不认为您可以将整个数据集加载到Python中。如果每个基因型为2位,则23,000个样本乘以300,000个变体大约为1.7GB;但是,我怀疑你的机器学习算法会期望32位或64位浮点数。使用64位浮点数,你将需要55 GB。
您可以尝试使用Python库Hail(免责声明:我是一个冰雹维护者)。您可以通过数据流逐行。
您可以使用Hail过滤出一组更小的有用变体,然后将它们转储到您的机器学习系统中。例如,您可以过滤出相对罕见的变体: