医知圈
TCGA数据库除了有各种癌症的大样本数据外,还有很完善的临床数据,这点是其他数据库所缺少的,因此我们需要会从TCGA数据库中提取对应癌症的临床数据,然后利用这些数据来进行后续的分析(比如想知道某个基因的表达对病人的预后是否有影响)。
以乳腺癌为例,按照某生物信息公司给的视频教程,其要求学员是下载一个metadata文件,其实这个文件笔者查看了以后,的确是不完整。
那么,完整的文件在那呢,笔者发现了一个xml文件,这才是最全的临床数据文件,总共有1097个样本的临床数据,一个样本一个文件,格式为xml
。
关于此文件提取和临床数据整理,笔者感觉特别的繁琐,然后自个试编程了一个脚本文件,想自动提取,结果发现成功了,开心。代码就不公布了,大家自个去写吧。
写本文的目的就是想告诉大家,要想完整的临床资料,给大家一个意见,提取XML格式的更合适。
下面先以xml文件的临床数据为例,里面记录上了上百条临床信息数据,由于其是用xml来存储数据的,所以我们需要先了解我们需要提取的临床信息在xml里面叫啥名字,比如我需要发病年龄(age_at_initial_pathologic_diagnosis)、性别(gender)、TMN分期(stage_event-tnm_categories-pathologic_categories-pathologic_T, stage_event-tnm_categories-pathologic_categories-pathologic_M, stage_event-tnm_categories-pathologic_categories-pathologic_N), 生存状态(vital_status)以及生存时间(follow_ups-follow_up-days_to_death),当然还有一个是患者样本的id(bcr_patient_barcode)。
下面是用代码对上述信息的提取,对于xml格式,而且从文件中内容的排布来看,几乎是一条临床信息一行,因此我习惯用perl或者R来处理这种格式。
这里临床xml文件里面我发现其实有分两部分,前一半是旧的临床数据(或者说原始的?),后半部分是update的临床数据(我也不确定是否是这么理解),还好代码会自动以最后出现的数据为准,所以暂时是不没问题的,单个文件的结果如下,列名依次为病人样品id,年龄,性别,TMN,生存状态以及生存时间.
当然我们不可能每个样本都跑一次上述的代码,我们需要用perl语言自动读取目录下所有文件,然后依次处理文件,然后将结果输出到一个文件中,最后形成一个文件包含所有病人的临床信息.
联系客服