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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio