如何在 Python 或 R 中将 TAR 文件解压为 TXT(读取 CEL 文件)

How to Decompress a TAR file into TXT (read a CEL file) in either Python or R

我想知道是否有人知道如何在 R 中解压缩 TAR 文件以及如何从大量 GZ 文件中推断数据?此外,有谁知道如何在保持数据文件完整性的同时读取大量数据(大约 100 个)(在某些时候,我的计算机无法处理大量数据并开始写下涂鸦)?

作为一个还在学习编程的新手程序员。我的任务是分析和交叉参考在疾病特征的不同细胞结构之间发现的相似基因的数据。我设法访问 TXT 数据集文件并对其进行格式化以供另一个名为 GSEA 的程序识别。

1.) 我安装了一个名为“WinZip”的软件,它帮助我将 TAR 文件解压缩为 GZ 文件。 我将这些文件存储到“下载”下新创建的文件夹中

2.) 然后我尝试使用 R 访问文件,代码如下:

   >untar("file.tar", list=TRUE)

And it produced approximately 170 results (it converted TAR -> GZ files)

3.) 当我尝试输入其中一个 GZ 文件时,它生成了超过一千行我无法理解的单个字母数字字母和数字。

                >989                                               ™šBx
                >990                                   33BŸ™šC:LÍC[=13=]5€
                >991                                               LÍB¬
                >992                                     B«™šBꙚB™™šB¯
                >993                                                 B¡
                >994                                                 BŸ
                >995                                              C[=13=]3
                >996                                         BŽ™šBð™šB¦
                >997                                                 B(
                >998                                           LÍAòffBó
                >999                                           LÍBñ™šBó
                >1000                                                 €

      > [ reached 'max' / getOption("max.print") -- omitted 64340 rows ]
         Warning messages:
      >1: In read.table("GSM2458563_Control_1_0.CEL.gz") :
       line 1 appears to contain embedded nulls
      >2: In read.table("GSM2458563_Control_1_0.CEL.gz") :
       line 2 appears to contain embedded nulls
      >3: In read.table("GSM2458563_Control_1_0.CEL.gz") :
       line 3 appears to contain embedded nulls
      >4: In read.table("GSM2458563_Control_1_0.CEL.gz") :
       line 4 appears to contain embedded nulls
      >5: In read.table("GSM2458563_Control_1_0.CEL.gz") :
       line 5 appears to contain embedded nulls
      >6: In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
       embedded nul(s) found in input

我正在尝试做的是同时访问所有这些文件而不会使计算机上出现信息过载并保持数据的完整性。然后,我想在类似于某种数据 table 的地方正确访问信息(理想情况下,我想知道从 TAR 到 TXT 文件的转换是否可以让 GSEA 读取和识别此类数据数据)。

有谁知道任何与 window 兼容的程序可以正确解压缩和读取此类文件或任何 R 命令可以帮助我生成或转换此类数据文件?

背景研究

所以我已经研究了大约一个小时 - 这是结果。

您尝试打开的文件 GSM2458563_Control_1_0 压缩在 .gz 文件中,其中包含一个 .CELL 文件,因此无法读取。

此类文件由 "National Center for Biotechnology Information" 发布。

看到一个 Python 2 打开它们的代码:

from Bio.Affy import CelFile
with open('GSM2458563_Control_1_0.CEL') as file: 
    c = CelFile.read(file)

我在 biopython 1.74 版上找到了关于 Bio.Affy 的文档。

然而当前 biopython readme 说:

"...Biopython 1.76 was our final release to support Python 2.7 and Python 3.5."

如今 Python 2 已被弃用,更不用说上面提到的 library 已经发生了巨大的发展和变化。

解决方案

所以我找到了另一种解决方法,使用 R。

我的规格:

Operation System : Windows 64
RStudio          : Version 1.3.1073
R Version        : R-4.0.2 for Windows

我有 pre-installed 下面提到的依赖项。

使用GEOquery.getGEO function to fetch from NCBI GEO文件。

# Presequites
# Download and install Rtools custom from http://cran.r-project.org/bin/windows/Rtools/

# Install BiocManager
if (!requireNamespace("BiocManager", quietly=TRUE))
  install.packages("BiocManager")
BiocManager::install("GEOquery")


library(GEOquery)

# Download and open the data
gse <- getGEO("GSM2458563", GSEMatrix = TRUE)
show(gse)

# ****** Data Table ******
#    ID_REF    VALUE
# 1 7892501 1.267832
# 2 7892502 3.254963
# 3 7892503 1.640587
# 4 7892504 7.198422
# 5 7892505 2.226013