前段时间忙于期末考试和一些其他的事,已经久到不记得多久没更了,手动哭。为了避免掉粉,今天放一段干货。TCGA数据库中mRNA和lncRNA数据counts文件的整合,别掉粉别掉粉,这次用到的语言是Python,所以各位需要装一个Python、pycharm和anaconda,具体的安装方法和软件设置百度就OK了,以后就真的可以获取最新最准确的TCGA数据喽。重要的事说三遍,别掉粉别掉粉别掉粉。
importgzip
importos
# 所有数据源的根目录(绝对路径)
ROOT_DIR =r"D:\research\2017LM\EBV\STAD\mRNA&lncRNA"
# 忽略需要的标识文件名
annotation_file =r"annotations.txt"
# 解压后的目标目录(绝对路径)
uzip_counts_dirs =r"D:\research\2017LM\EBV\STAD\result_unzip"
# 压缩文件的后缀
key_zip_suffix =".counts.gz"
key_suffix =".gz"
# 初始化目标目录,目录存在且不为空时不能执行
if notos.path.isdir(uzip_counts_dirs):
os.makedirs(uzip_counts_dirs)
# 切换工作目录到ROOT_DIR下
os.chdir(ROOT_DIR)
# 获取所有数据源列表(保证没有其余的无关文件,本程序不做异常处理)
source_data_dir = os.listdir(ROOT_DIR)
# 读压缩文件,写count文件
defunzip_counts(each_data):
count_gz_file = [xforxinos.listdir(each_data)if
x.endswith(key_zip_suffix)]
ifcount_gz_file:
count_gz_file_ = count_gz_file[]
count_gz_file = os.path.join(ROOT_DIR,each_data,count_gz_file_)
target_file = os.path.join(uzip_counts_dirs,count_gz_file_.strip(key_suffix))
print("Dealing with {} ot {}".format(count_gz_file,target_file))
input_file = gzip.open(count_gz_file,'rb')
withopen(target_file,'wb')asoutput_file:
output_file.write(input_file.read())
input_file.close()
else:
print("Please check this dir: These aren't count.gz file
found!-->{}".format(os.path.join(ROOT_DIR,each_data)))
defdeal_with_main():
# 处理主函数
foreach_datainsource_data_dir:
ifannotation_fileinos.listdir(each_data):
print(each_data,"---------------------------------
--------------------")
pass
else:
unzip_counts(each_data)
if__name__ =='__main__':
deal_with_main()
就酱紫喽。提取出来的counts文件在R里面用一个for的函数就可以全部读出来在一张表上了,剩下的处理流程之前TCGA的推送里有的,因为偷懒直接在公众号里直接写的推送没用秀米,所以别嫌弃丑啦,格式问题,可能用iPad阅览效果更佳。不写下期预告了,每次的下期预告都不是下期预告!!!下期可能为了偷懒会放点我收藏的比较好用的R包或者小函数把。哭着搬砖去啦。
不会搞科研的医生不是好厨子,欢迎大家来厨房找我玩,虽然你们肯定找不到我hahahahaha~~~~~~
领取专属 10元无门槛券
私享最新 技术干货