首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TCGA数据库mRNA&lncRNA数据提取

前段时间忙于期末考试和一些其他的事,已经久到不记得多久没更了,手动哭。为了避免掉粉,今天放一段干货。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~~~~~~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206G156OO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券