草庐IT

最新版TCGA 矩阵整理,百分百复现成功

sayhello1025 2023-04-13 原文

最近TCGA更新了,下载研究一下,我们从TCGA下载STAD的数据,选择其中的一个打开,发现了一个好消息那就是矩阵的整合难度降低了,而且提供TPM以及FPKM 还有校正的count 以及gene_name

在我的主页更新了TCGAbiolinks的方法,更为方便和快捷。同时我也提供了临床数据的处理方式

其实整理起来比较简单,这里我没有使用python去写脚本,使用R硬刚,说实话头有点铁。

首先整理好你要的数据,下载步骤跟以前一样,当然不懂就去B站看新版TCGA介绍

首先下载metadata

接着从download 中下载cart

下载结束 之后解压随便打开一个文件,我们的目的是整合tsv文件到一个文件夹

技巧教授如何整合呢,windows下最简单的方式,右上角搜索.tsv结尾的文件

最后你就可以得到这个列表,然后复制到一个文件夹里面,最后有个MANIFEST.txt不要复制进去

最后整理成下面的样式,all文件夹是所有的tsv文件,metadta上面介绍已经下载好了放进去

整理metadata文件

rm(list = ls())
options(stringsAsFactors = F)

library("rjson")
result <- fromJSON(file = "./metadata.cart.2022-04-12.json")
metadata <- data.frame(t(sapply(result,function(x){
  id <-  x$associated_entities[[1]]$entity_submitter_id
  file_name <- x$file_name
  all <- cbind(id,file_name)
})))
metadata[,2]
rownames(metadata) <- metadata[,2]

得到样本文件对应的TCGA的ID号

生成矩阵

dir <- './all/'
samples=list.files(dir)
sampledir <- paste0(dir,samples)

mat <- do.call(cbind,lapply(sampledir, function(x){
  rt <- data.table::fread(x,data.table = F)
  rownames(rt) <- rt[,1]
  rt <- rt[,7]###后续方便不用再转换直接拿TPM
}))

这里需要读取一个单个tsv文件进行查看

可以看到我们上面代码中选择rt[ ,7] 是选择的tpm ,需要的话可以你可以选择count和FPKM

矩阵列明和行名的替换

###随便打开一个tsv文件即可
rt <- data.table::fread('./all/5c84144f-68b0-4f96-8b53-5a43a6f83847.rna_seq.augmented_star_gene_counts.tsv',data.table = F)###随便打开一个tsv文件即可
colnames(mat)=sapply(strsplit(sampledir,'/'),'[',3)###列名
rownames(mat) <- rt$gene_id ##行名 
mat1 <- t(mat)
same <- intersect(row.names(metadata),row.names(mat1))
data <- cbind(metadata[same,],mat1[same,])
rownames(data) <- data[,1]
tcga_stad <- t(data)
tcga_stad <-tcga_stad[-c(1:6),] 
rownames(rt) <- rt[,1]

最后那必须是如何ID的转换 ,根据自带的信息我们进行转换,这次的更新就是ID给了对照基因名,真好,还有类型,妈的TCGA良心一次更新

same2 <- intersect(row.names(rt),row.names(tcga_stad))
tcga <- cbind(rt[same2,],tcga_stad[same2,])
tcga <- tcga[-c(1,4:9)]

到此你们自己保存文件把,然后正常的基因去重问题,这个应该搜索一下, 也可以再我的博客里面看看

##要把上面的gene_type删除
rt = tcga[,-2]
rt=as.matrix(rt)
rownames(rt)=rt[,1]
exp=rt[,2:ncol(rt)]
dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
data=avereps(data)
data=data[rowMeans(data)>0,]

到此你们应该得到都会处理的矩阵了把

有关最新版TCGA 矩阵整理,百分百复现成功的更多相关文章

  1. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  2. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  3. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  4. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  5. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  6. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  7. ruby - 如何在 OSX 上正确更新系统 ruby​​ 版本到最新版本 (2.2.1) - 2

    只是想更新到最新版本的Ruby。在ruby​​-lang.org/en/documentation/installation/#homebrew上,我发现你应该可以通过自制软件来完成:brewinstallruby但是,当我在“更新”后列出ruby​​版本(ruby-v)时,它仍然是旧版本2.0.0。Hermes:~Sancho$ruby-vruby2.0.0p481(2014-05-08revision45883)[universal.x86_64-darwin13]我碰巧列出了/usr/local/bin/的内容,我可以看到一个符号链接(symboliclink):ruby->..

  8. ruby - 如何知道通过 ruby​​ 上传 ftp 是否成功? - 2

    下面的代码通过ftp上传文件并且它有效。require'net/ftp'ftp=Net::FTP.newftp.passive=trueftp.connect("***")ftp.login("***","***")ftp.chdir"claimsecure-xml-files"ftp.putbinaryfile("file.xls",File.basename("file.xls"))ftp.quit但是如何确定上传是否成功呢? 最佳答案 之后ftp.putbinaryfile("file.xls",File.basename("

  9. 欧拉角表示的姿态矩阵(313和312转序) - 2

    一、习惯约定图片来自PSINS(高精度捷联惯导算法)PSINS工具箱入门与详解.pptx二、基本旋转矩阵绕x轴逆时钟旋转α\alphaα角度Rx(α)=[ 1000cos⁡αsin⁡α0−sin⁡αcos⁡α]R_x(\alpha)=\begin{bmatrix}\1&0&0\\0&\cos\alpha&\sin\alpha\\0&-\sin\alpha&\cos\alpha\end{bmatrix}Rx​(α)=​ 100​0cosα−sinα​0sinαcosα​​绕y轴逆时钟旋转α\alphaα角度Ry(α)=[ cos⁡α0−sin⁡α010sin⁡α0cos⁡α]R_y(\alpha

  10. 欧拉角、旋转矩阵及四元数 - 2

    欧拉角、旋转矩阵及四元数1.简介2.欧拉角2.1欧拉角定义2.2右手系和左手系2.3转换流程3.旋转矩阵4.四元数4.1四元数与欧拉角和旋转矩阵之间等效变换4.2测试Matlab代码5.总结1.简介常用姿态参数表达方式包括方向余弦矩阵、欧拉轴/角参数、欧拉角、四元数以及罗德里格参数等。高分辨率光学遥感卫星主要采用欧拉角与四元数对姿态参数进行描述。这里着重讲解欧拉角、旋转矩阵和四元数。2.欧拉角2.1欧拉角定义欧拉角是表征刚体旋转的一种方法之一,由莱昂哈德·欧拉引入的三个角度,用于描述刚体相对于固定坐标系的方向。在摄影测量、空间科学或其它技术领域,一般用一组(三个)欧拉角描述两个空间坐标之间的旋

随机推荐