【问题标题】:How to Decompress a TAR file into TXT (read a CEL file) in either Python or R如何在 Python 或 R 中将 TAR 文件解压缩为 TXT(读取 CEL 文件)
【发布时间】:2020-08-27 10:03:22
【问题描述】:

我想知道是否有人知道如何在 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\005€
                >991                                               LÍB¬
                >992                                     B«™šBꙚB™™šB¯
                >993                                                 B¡
                >994                                                 BŸ
                >995                                              C\003
                >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

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

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

【问题讨论】:

    标签: python r windows tar data-conversion


    【解决方案1】:

    背景研究

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

    您尝试打开的文件是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 是我们支持 Python 2.7 和 Python 3.5 的最终版本。”

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

    解决方案

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

    我的规格:

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

    我已经预先安装了下面提到的依赖项。

    使用GEOquery.getGEO 函数从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
    

    【讨论】:

    • 非常感谢您为解决我的困境所付出的奉献、时间和精力!你确实是MVP。我曾尝试向我的大多数导师提出这个问题,他们只是回答解压缩并一次阅读一个或 LINUX。我已经在 R 上尝试过你的方法,它确实有效!!!您为我提供了多少帮助,我感激不尽。
    • 欢迎@StephenSitu!祝你好运:)
    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多