我从Gene Expression Omnibus(GEO)下载了一些Illumina 450k甲基化数据集
R Bioconductor包装minfi和ChAMP似乎需要一些名为"样品表"
GEO上的大多数TAR文件似乎都不包含这样的样本表 - 它们只包含.idat文件
任何善良的灵魂会提供一些建议吗?我想知道如何在没有样品表的情况下运行ChAMP / Minfi管道;否则,如果有任何方法可以从.idat文件生成样本表吗?
谢谢!
答案 0 :(得分:1)
我在GEO项目中遇到了类似的问题。我做的是我下载了所有.idat文件并将它们放在自己的文件夹中。然后我使用此代码解析.idat文件名并创建示例表。
它将解析类似GSM1855609_9020331147_R02C02_Grn.idat
的文件名并将所有内容存储在.csv文件中。然后,您可以将.csv文件读入R,添加像c("Sample_Name", "Sentrix_ID", "Sentrix_Position")
这样的函数想要查看的标准化列名(logger
),然后您就可以了。
希望这有帮助!
#!/usr/bin/env python
# Import the OS library
import os
# Get your Current Working Directory
cwd = os.getcwd()
# Get a list of all of the files (and directories, if there are any) in your directory.
# This will be a list of strings.
filenames = os.listdir(cwd)
# Split each one into the chunks that were separated by underscores ("_") and then keep the first three for each name.
# This will be a list of lists.
chunked_names = [filename.split("_")[0:3] for filename in filenames]
# For each name, rejoin the three chunks with commas
# We're back to having a list of strings.
csv_lines = [",".join(chunks) for chunks in chunked_names]
# Join all of those strings with the newline character to get just a long string.
contents = "\n".join(csv_lines)
# Print this string to standard output so that it can be redirected to a file.
print(contents)
答案 1 :(得分:1)
这就是我获取示例表并将 idats 读入 RGSet 对象的方式:
#using pacman to install and load packages
if (!require("pacman")) install.packages("pacman")
pacman::p_load("GEOquery","minfi")
#increase file download timeout
options(timeout = 600)
#download GEO object
gse <- getGEO("GSE12345", GSEMatrix = TRUE)
#get phenotype data - sample sheet
pd = pData(gse[[1]])
#get raw data - idats, processed beta matrix, etc.
getGEOSuppFiles("GSE12345")
#decompress idats
untar("GSE12345/GSE12345_RAW.tar", exdir = "GSE12345/idat")
#list files
head(list.files("GSE12345/idat", pattern = "idat"))
idatFiles <- list.files("GSE12345/idat", pattern = "idat.gz$", full = TRUE)
#decompress individual idat files
sapply(idatFiles, gunzip, overwrite = TRUE)
#read idats and create RGSet
RGSet <- read.metharray.exp("GSE12345/idat")
saveRDS(RGSet, "RGSet_GSE12345.RDS")
答案 2 :(得分:0)
如果要从目录中读取所有idat文件,可以使用:
my_450k <- read.450k.exp(base = "path/to/directory", recursive = TRUE)
在某个阶段,您仍需要通过样本条形码将表型数据与450k数据进行匹配。
答案 3 :(得分:0)
更新的methylprep
python软件包具有下载GEO数据集的功能。尽管其中许多档案中的文件类型都不相同,但IT可以为大多数系列工作。
methylprep
还有一个create sample_sheet
命令行选项,如果您需要使用它来填充minfi
。像这样:
python -m methylprep -v sample_sheet -d ~/GSE133062/GSE133062 --create
(其中-d指定解压缩的.idat文件的路径)
更多示例在这里: https://readthedocs.com/projects/life-epigenetics-methylprep/