minfi 是一个用于分析DNA 甲基化芯片的R包。官网如下:
http://www.bioconductor.org/packages/release/bioc/html/minfi.html
如果要用这个包进行分析,首先需要在R中将我们的芯片数据读取进来,就是常说的。对于minfi 来说,其设计思路是通过读取SampleSheet.csv 文件,在事先约定好的目录结构中查找所有样本的原始数据,来自动化的读取所有样本的信息。
在illumina 的官方网站,我们可以找到对应的SampleSheet 文件的模板和测试数据集
850K:
https://support.illumina.com/array/array_kits/infinium-methylationepic-beadchip-kit/downloads.html
450K :
https://support.illumina.com/array/array_kits/infinium_humanmethylation450_beadchip_kit/downloads.html
450K 芯片的SampleSheet.csv 模板示例如下:
在SampelSheet 文件中, 开头的几行是注释信息, 下面的样本的基本信息。
一张甲基化芯片上最多可以有12个样本,每个样本根据 标识, 当样本个数大于12个时,必然需要另外一张芯片,对于每张芯片,使用标识。 就是通过 Sentrix_ID 和 Sentrix_Position 这两个字段来查找样本的原始数据。
对于每个样本,会有两个.idat 文件,基于示例的SampleSheet.csv 文件,对应的文件名称为
我们只需要整理成如下所示的目录结构就可以了
SampleSheet.csv 文件在第一层,然后是每张芯片对应的的 是一个目录,在每个目录下,是该芯片上样本的原始数据,文件名称为 这种格式。
minfi 读取数据
整理SampleSheet.csv 文件和对应的目录结构之后,就可以在R中进行读取了。
函数读取SampleSheet.csv 文件, 第一个参数为该文件所在的目录,第二个参数为文件的名称,支持正则表达式,如果不习惯正则,直接指定为对应的文件名称就好了。
函数读取样本的.idat 文件,参数返回的对象
通过上面两步,就实现了数据的读取。
总结
SampleSheet.csv文件中的标识每张芯片,标识芯片上的每一个样本,通过这两个字段的信息,可以得到对应的文件名称。原始下机数据的目录结构都是满足minfi 的要求的,对于不符合要求的情况,比如从GEO 数据库下载的芯片数据,我们只有.idat 文件,可以根据样本信息构造出SampleSheet.csv 文件,然后再使用 minfi 进行读取;
领取专属 10元无门槛券
私享最新 技术干货