TCGA数据下载及矩阵整理

2024-02-25 01:40
文章标签 数据 整理 下载 矩阵 tcga

本文主要是介绍TCGA数据下载及矩阵整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先我们进入TCGA数据库TCGA官网
在这里插入图片描述
首先看一下文件类型,悬着数据处理方式及工作流程
在这里插入图片描述
看一下例子里面各种类型,有组织是什么,癌症项目。
在这里插入图片描述
点击进入购物车在这里插入图片描述
下载所有文件点击cart
在这里插入图片描述
所有压缩文件合并到一个文件内

###将所有压缩包移到一个名为files的文件里面
use strict;
use warnings;
use File::Copy;my $newDir="files";
unless(-d $newDir)
{mkdir $newDir or die $!;
}my @allFiles=glob("*");
foreach my $subDir(@allFiles)
{if((-d $subDir) && ($subDir ne $newDir)){opendir(SUB,"./$subDir") or die $!;while(my $file=readdir(SUB)){if($file=~/\.gz$/){#`cp ./$subDir/$file ./$newDir`;copy("$subDir/$file","$newDir") or die "Copy failed: $!";}}close(SUB);}
}

用法 perl+ 脚本名称

perl move.pl

合并矩阵文件 记得加上表型文件
在这里插入图片描述
合并脚本如下


use strict;my $file=$ARGV[0];#use Data::Dumper;
use JSON;my $json = new JSON;
my $js;my %hash=();
my @normalSamples=();
my @tumorSamples=();open JFILE, "$file";
while(<JFILE>) {$js .= "$_";
}
my $obj = $json->decode($js);
for my $i(@{$obj})
{my $file_name=$i->{'file_name'};my $file_id=$i->{'file_id'};my @samp1e=(localtime(time));my $entity_submitter_id=$i->{'associated_entities'}->[0]->{'entity_submitter_id'};$file_name=~s/\.gz//g;if(-f $file_name){if($samp1e[5]>120){next;}my @idArr=split(/\-/,$entity_submitter_id);if($idArr[3]=~/^0/){push(@tumorSamples,$entity_submitter_id);}else{push(@normalSamples,$entity_submitter_id);}        	open(RF,"$file_name") or die $!;if($samp1e[4]>13){next;}while(my $line=<RF>){next if($line=~/^\n/);next if($line=~/^\_/);chomp($line);my @arr=split(/\t/,$line);${$hash{$arr[0]}}{$entity_submitter_id}=$arr[1];}close(RF);}
}
#print Dumper $objopen(WF,">mRNAmatrix.txt") or die $!;
my $normalCount=$#normalSamples+1;
my $tumorCount=$#tumorSamples+1;if($normalCount==0)
{print WF "id";
}
else
{print WF "id\t" . join("\t",@normalSamples);
}
print WF "\t" . join("\t",@tumorSamples) . "\n";
foreach my $key(keys %hash)
{print WF $key;foreach my $normal(@normalSamples){print WF "\t" . ${$hash{$key}}{$normal};}foreach my $tumor(@tumorSamples){print WF "\t" . ${$hash{$key}}{$tumor};}print WF "\n";
}
close(WF);print "normal count: $normalCount\n";
print "tumor count: $tumorCount\n";

点击下载基因的注释文件gtf下载文件
如下输入代码运行
在这里插入图片描述
基因id转换脚本

use strict;
use warnings;my $gtfFile="Homo_sapiens.GRCh38.98.chr.gtf";
my $expFile="mRNAmatrix.txt";
my $outFile="symbol.txt";my %hash=();
open(RF,"$gtfFile") or die $!;
while(my $line=<RF>)
{chomp($line);if($line=~/gene_id \"(.+?)\"\;.+gene_name "(.+?)"\;.+gene_biotype \"(.+?)\"\;/){$hash{$1}=$2;}
}
close(RF);open(RF,"$expFile") or die $!;
open(WF,">$outFile") or die $!;
while(my $line=<RF>)
{if($.==1){print WF $line;next;}chomp($line);my @arr=split(/\t/,$line);$arr[0]=~s/(.+)\..+/$1/g;if(exists $hash{$arr[0]}){$arr[0]=$hash{$arr[0]};print WF join("\t",@arr) . "\n";}
}
close(WF); 
close(RF)

会得到这样的结果
在这里插入图片描述

这篇关于TCGA数据下载及矩阵整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744047

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L