SRA - NCBI

example - NCBI

要发文章了,审稿时编辑肯定会要求你上传NGS测序数据。

一般数据都是放在集群,不可能放在个人电脑上,因为有的数据大的吓人(几个T)。

所以我们就建一个文件夹,然后把所有需要的fastq文件链接到这个文件夹就行了(copy太慢,也太占空间)。

接下来,NCBI账号申请好了,那就可以直接上传了,用aspera来上传。

参考: 

原始数据极速上传NCBI SRA教程 - 比较全面,基本照着做就好了

使用Aspera从EBI或NCBI下载基因组数据 - 补充aspera的使用方法  

Tutorial: How to upload your data to the evil Sequence Read Archive (SRA)? - 英文版的,写的比较规范

你需要下载的是一个叫aspera connect的软件,aspera系列软件太多,别下错了。

这个奇葩的软件必须要到Linux浏览器里才能有下载链接出现,所以你得有一个Ubuntu系统。下载好了之后再传到集群上。

注意有个密钥(-i 选项)需要从ncbi上下载,最终上传页面上有。

NCBI上传数据到SRA,一切都比较顺利,只是需要你自己收集一些信息,填一些表。

这不是问题,要理解NCBI的数据管理架构!!!

但是我却遇到了一个天大的问题,直接花费了了我一晚上来解决,所以一定要耐心的看NCBi的错误提示啊。

Your table upload failed because multiple BioSamples cannot have identical attributes

就是在你填样品表时,除了一些必备列之外,其他列的信息不能完全一样!!!

所以我最终的解决方案就是,把样品名(肯定不一样)copy到某一列;或者直接在某一列填1累加的数字,防止重复。

如果你不好好看报错的话,真的是不知道这一步到底错在哪里。而且大部分老师的样品就是样品名不同,其他的信息都一样,所以看网上求助的人还是很多的,百度基本没有正确的答案。


之前的教程有误,现在系统的更正一遍。

1. 注册NCBI账号,https://www.ncbi.nlm.nih.gov/

打开首页,有个大大的submit图标,注册好,然后sign in。

选择自己要submit的项目:

  • GenBank:一些组装好的序列,如基因组DNA,各种RNA
  • Sequence Read Archive (SRA):所有的raw data只能上传到这里
  • TSA:Submit computationally assembled, transcribed RNA sequences after submitting unassembled reads to SRA.
  • GEO:Submit RNA-seq, ChIP-seq, and other types of gene expression and epigenomics datasets. 也就是我们常用的基因表达数据,这里可以上传处理后的数据,如count和TPM,FPKM等
  • BioProject & BioSample:这是NCBI的核心组织架构,一篇文章就是一个BioProject,一个project里可以包含多个BioSample

推荐:在上传所有数据前,先建立BioSample条目,然后创建BioProject,将它们组织起来。【这里只是创建空的条目,后面再传raw data到SRA的时候可以链接到一起】

如下就是最终的架构:

我们再看个案例:

https://www.ncbi.nlm.nih.gov/bioproject/PRJNA558807

这里就是一篇NC上的文章,所有数据都放在一个project里,项目名字就是文章名字,介绍就是文章摘要。

Sequence data

  • SRA Experiments 12

Publications

  • PubMed 1
  • PMC 1

Other datasets

  • BioSample 12
  • GEO DataSets 1

SRA数据上传操作细节:

这里不建议通过GEO上传raw data,直接去SRA数据库。

不要用ftp,除非你的网速和机器十分优秀和稳定,否则建议用aspera。【我用ftp就一直被ncbi拒绝连接】

构建好project喝sample之后,填好sra中fastq与sample的对应关系就可以开始上传了。

注意:填表的时候一个biosample最多只能有256个fastq文件,如果超过了就必须分批上传。【一个biosample可以有多行,但是library必须不同,以作区别】

~/.aspera/connect/bin/ascp -i /home/you/.aspera/connect/aspera.openssh -QT -l3m -k1 -d /home/you/project/scRNA-seq/rawData/your.dir/geo_submission_2020Mar30 your.address_from_ncbi

可以用nohup放在后台运行,  

关于文件收集:

  1. 建一个文件夹,如geo_submission_2020Mar30
  2. 找到之前流程的file list文件,绝对地址不要老是变
  3. 构建超链接,放入子文件夹
  4. 筛选出特定的样本文件
cut -f2 all.csv -d, | xargs -I{} ln -s {} ./geo_submission_2020Mar30
cut -f3 all.csv -d, | xargs -I{} ln -s {} ./geo_submission_2020Mar30

  

关于处理后文件的上传(基因表达谱):

案例:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE144980

不管再大的项目,流程熟了,基本半个工作日就可以完成数据的上传,然后看网速,等全部upload了就可以一键submit。【我限速3M,大概3个小时可以传5G的数据】

NCBI的数据管理架构非常值得学习。

ftp的代码:

open ftp-private.ncbi.nlm.nih.gov
ncftp -u geoftp ftp-private.ncbi.nlm.nih.gov cd uploads/ellylab_0zSn02Ma
lcd /home/lizhixin/project/scRNA-seq/rawData/SAG_HCO.upload.ncbi
put -R geo_submission_2020Mar30

  

上传RNA-seq数据到NCBI GEO数据库的更多相关文章

  1. WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)

    简单的Demo,用于了解WebAPI如何同时接收文件及数据,同时提供HttpClient模拟如何同时上传文件和数据的Demo,下面是HttpClient上传的Demo界面 1.HttpClient部分 ...

  2. JAE京东云引擎Git上传管理代码教程和京东云数据库导入导出管理

    文章目录 Git管理准备工作 Git工具上传代码 发布代码装程序 mywebsql管理 京东云引擎小结   JAE京东云引擎是京东推出的支持Java.Ruby.Python.PHP.Node.js多语 ...

  3. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  4. 使用WebClient Post方式模拟上传文件和数据

    假如某网站有个表单,例如(url: http://localhost/login.aspx):帐号  密码 我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用 WebClient.Uplo ...

  5. 用SecureCRT来上传和下载数据

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混): ...

  6. Excel上传并读取数据

    最近一段时间,维护一个旧系统,其中有一个功能,是把Excel上传,并读取数据进行维护,然后转插入至SQL数据库中.下面Insus.NET使用asp.net 标准上传控件: <asp:FileUp ...

  7. Excel VBA宏 链接服务器 上传和下载数据

    首先说明以下. 第一: 下面的 “ _" 也就是 空格下划线 在VBA中表示换行的意思:& 表示链接连个字符串的操作,注意 & 的前后是否需要空格 第二: 如果链接服务器,服 ...

  8. Layui上传文件以及数据表格

    layui对于一些前端小白来说,例如我,真的非常的好用,不用去花很多很多的心思在前端美化中,并且提高了很大的工作效率.所以建议一些觉得自己前端技术不是很强,但是想让前端美化一点的可以使用layui. ...

  9. 使用phpExcel批量上传excel表数据到mysql数据库中

    /*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...

随机推荐

  1. docker 容器配置tocmat时间不统一

    1.在tomcat配置文件bin下 vim   setenv.sh #!/bin/bashCATALINA_OPTS='-Duser.timezone=Asia/Shanghai'export CAT ...

  2. vscode Git:failed to execute git

    在vscoad中选择全部提交时候提示 Git:failed to execute git在git日志中会看到这么一行错误信息 empty ident name (for <XXXXXX.com& ...

  3. FJUT3574 HOME_W的附加题(带权线段树)题解

    题意: 给定n个数a1,a2,a3,……an.和m次操作. 每次操作格式如下 x y k   表示将a[x]替换为y.并求替换后,前k小的数之和 思路:我们用带权线段树维护权值,这里就是维护i的个数n ...

  4. 怎么在父窗口调用它页面的iframe里面数据,进行操作?

    注:在服务器下操作有效果,本地无效 document.getElementById("taskdetail1").contentWindow.test(a) document.ge ...

  5. 4-Three-Matterhorn man

    What was the main objective of early mountain climbers?   ①Modern alpinists try to climb mountains b ...

  6. 微服务架构与实践3_api

    场景分析 描述产品服务,基于REST的接口 表述性状态转移(Representational State Transfer,REST) 任务拆分 将整体要做的工作内容划分成小的任务: 统一时间聚焦一个 ...

  7. IDEA入门级使用教程----你怎么还在用eclipse?

    http://blog.csdn.net/qq_31655965/article/details/52788374

  8. java web 工程更改名字

    如图: 将工程名字struts2Project02更改为struts2Project03,步骤如下: 1. 右键工程名字,选中properties,如图 2.更改项目名字 3.第2步已经真正把项目名字 ...

  9. 【Ruby】【变量】

    知识点[Ruby 中$开头的全局变量.内部变量.隐藏变量介绍] Ruby 中充满了一系列的隐藏变量,我们可以从这些预定义的全局变量中获取一些有意思的信息. 全局进程变量 $$ 表示当前运行的 ruby ...

  10. 【Django】【三】模型

    [基本数据访问] 1. models.py写模型 2. 数据库迁移 guest> python manage.py makemigrations sign guest> python ma ...