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. 为什么call比apply快

    这是一个非常有意思的问题. 在看源码的过程中,总会遇到这样的写法: var triggerEvents = function(events, args) { var ev, i = -1, l = e ...

  2. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  3. RPMB原理介绍【转】

    本文转载自:https://blog.csdn.net/shenjin_s/article/details/79868375 RPMB介绍:RPMB(Replay Protected Memory B ...

  4. hihoCoder week2 Trie树

    题目链接 https://hihocoder.com/contest/hiho2/problems 字典树 #include <bits/stdc++.h> using namespace ...

  5. (转) The care and maintenance of your adviser

    The care and maintenance of your adviser Ever since the advent of graduate school, students have com ...

  6. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  7. 【C#】委托中的匿名函数与lambda

    将方法作为方法的参数 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使 ...

  8. node.js 学习笔记一

    2017-05-01 安装node 我没安装,下载即使用.要全局使用的话把node加入到环境变量中即可. 以下命令环境均为 cmd . 体验 体验一: 在命令行输入 node ,即进入 node 程序 ...

  9. SVN的常用功能使用教程

    (一)导入项目到版本库中 1. 在SVN服务器的仓库中新建项目名称文件夹 2. 选择安装Visual SVN的本地计算机中的一个文件夹,右键选择导入,将本地项目导入到SVN服务中央仓库中 3. 输入在 ...

  10. React绑定事件动态化的实现方法

    一.什么是绑定事件 1.1 事件 我这里指的事件一般指的是React自带的触发事件,我这里先简单举例几个 onClick //鼠标点击 onMouseEnter //鼠标滑进 onMouseLeave ...