用TCGA数据库分析癌症和癌旁组织的表达差异
上周收到一条求助信息:“如何用TCGA数据库分析LINC00152在卵巢癌与正常组织的的表达差异?”
所以以这个题目为记录分析过程如下:
一、下载数据
a)进入网站https://cancergenome.nih.gov/ 网页截图如下:

b)进入数据下载 Launch Data Portal ,截图如下:

进入数据下载接口后,有Projects Exploration Analysis Repository 四个栏目,我们数据下载可进入Repository菜单栏,截图如下:

网页分成左右两边,左边主要是提供用户数据选择和过滤的窗口,右边是根据用户的选择后显示及其统计结果。左边选择分为 Cases 和 Files两大类。
根据我们的研究,目的是要看LINC RNA在卵巢癌和正常组织的表达差异,所以我们在左边的栏目的Cases下选择Ovary,在Files 下选择 RNA-seq ,这些选项选择完毕,会出现上面的那张截图
c)下载路径文件
选好文件后,如上图将文件加入购物车,截图如下:

然后点击右上角的Cart,出现如下截图:

点击Sample sheet之后,包含所需文件目录的.tsv文件gdc_sample_sheet.2018-05-22.tsv就可以下载了,放到对应的目录下。
用NotePad打开文件如下:

d) 在linux下批量下载文件
将该文件放在linux的 /home/zdwu/rnaseq/11_source_data 目录下,并在该目录下批量下载数据,代码如下:
cat gdc_sample_sheet.--.tsv | while read line
do
echo https://portal.gdc.cancer.gov/files/${line:0:(36-0)}
wget -c https://gdc-api.nci.nih.gov/data/${line:0:(36-0)} -O ${line:167:(184-167)}'.htseq.counts.gz'
done
下载完毕后查看文件如下:

用如下命令,确认文件个数是否完整,完整后数据备用。
ls A-* | wc -l
二、数据分析
a)数据解压
用命令行 解压,解压后得到可读的数据。
zdwu@ubuntu://home/zdwu/rnaseq/11_source_data/ovary$ gunzip *counts
b)找出Linc00152的表达量
由于从TCGA下载的数据里的基因明都是ensemble ID,所以需要 从NCBI 查找Linc00152对应的 ensemble ID,找出的结果是Ensembl:ENSG00000222041

注意:此处只有一个基因,所用手动从NCBI 找出ensemble ID是简单的,但是如果看的是大量的基因,那这将会非常通过,这时就需要通过ID转换文件来编程转换。
基因ID 转换文件的下载地址 :ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/ ,里面有gene2ensemble.gz gene2accession.gz gene2go.gz 等文件可以下载,根据这些文件,写个小脚本就可以批量转换了。
c)整合多样本的LINC00152基因表达counts
zdwu@ubuntu://home/zdwu/rnaseq/11_source_data/ovary$ for file in *counts
> do
> echo ${file::} >> ovary_linc00152.txt
> echo ${file::(-)} >> ovary_linc00152.csv
> cat ${file} | grep "ENSG00000222041" >> ovary_linc00152.csv
> done
最后将得到的ovary_linc00152.csv 文件拷贝至于windows电脑,截图如下:

这是没有normalized的数据,如果需要不同样本之间比较的话进行normalized,再简单的统计不同组之间样本的 t-test。分析完毕。
用TCGA数据库分析癌症和癌旁组织的表达差异的更多相关文章
- PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...
- Oracle 数据库分析
一.数据库分析 二.表的分析 1.分析表exec dbms_stats.gather_table_stats('SFISM4','R_SN_DETAIL_T',CASCADE=>TRUE);ex ...
- Android 千牛数据库分析
标签(空格分隔): 千牛,逆向 问题:Android 千牛登陆后产生保存用户数据的db无法直接用sqlite3打开,需要解密. 反编译Apk后jd-gui查看源码.熟悉的sqlcrypto模块加密,阿 ...
- [转载] 数据库分析手记 —— InnoDB锁机制分析
作者:倪煜 InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工 ...
- 初识NoSQL 快速认识NoSQL数据库 分析Analytics For Hackers: How To Think About Event Data
做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手.在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/5395 ...
- Navicate for mysql 数据库设计-数据库分析
在使用Navicate for mysql进行数据库设计时,如果要分析已有db的表结构,则可以将已经分析过的表放入一个新建的组中,把精力更加集中在剩下的表中,以免受到干扰.
- kali linux 数据库分析工具简述
bbqsql SQL盲注可能很难被利用. 当可用的工具工作时,它们运行良好,但是当它们不工作时,您必须编写自定义的东西. 这是耗时且乏味的. BBQSQL可以帮助你解决这些问题. BBQSQL是一个用 ...
- 工作流学习之--TPFlow数据库分析
一.TPFlow项目数据库表: 1. 流程相关: a. leipi_flow工作流表: b. leipi_flow_process流程步骤表: c. leipi_run_process运行过程表:记录 ...
- 潭州课堂25班:Ph201805201 django 项目 第二十课 数据库分析设计图 (课堂笔记)
https://www.dbdesigner.net/
随机推荐
- 接口测试基础——第一篇smtplib发送文字邮件
现在我们就开始进入接口测试框架的知识准备阶段,今天是第一篇,很简单的,就是发送纯文字的电子邮件,会的童鞋可以忽略,不会的就多敲几遍,直到自己能敲出来为止~~ # coding: utf-8 impor ...
- Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...
- 转:django中session的实现机制
转:www.jianshu.com 要理解session,首先要搞清楚cookie的概念.由于http是无状态的,服务器不能记住用户的信息状态,因此若由同一个客户端发起的多条请求,服务器不能辨别这些请 ...
- 浅谈Sql各种join的用法
1.left join.right join.inner join三者区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右 ...
- 日志jar包冲突报错:Class path contains multiple SLF4J bindings
问题现象:tomcat启动卡死,报错日志如下: 十一月 07, 2017 8:35:45 下午 org.apache.catalina.core.ApplicationContext log 信息: ...
- merge into报错ORA-00926、ORA-38014
今天用ibatis写个插入操作,为了兼容修改想使用 merge into语句,以便重复插入时直接 update,具体语句如下: <insert id="wlf"> ME ...
- composer.phar的作用和安装laravel5.5.4 和 vendor目录
composer.phar有什么作用 是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖 ...
- AppCan上下拉列表刷新
function initBounce(funcTop, funcBottom){ uexWindow.setBounce("1"); if (!funcTop && ...
- Redis数据清除问题
Redis中数据清除可以分为两种方式 手动清除:指定要清除的key,通过delete命令即可清除 自动清除:使用Redis提供的数据过期策略 Redis数据过期策略 redis提供了非常灵活 ...
- java练习篇 求输出最大值
总结:没有把数据输入.是数组-----把要输入的数据放在数组里.错在这里 import java.util.Scanner; public class shibai { public static v ...