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. 桌面版Ubuntu系统固定IP设置和Network-manager设置

    我自己的学校是绑定MAC和IP上网的.这种方法名义上说是为了安全,不过是个搞计算机的都知道随便修改一下MAC就可以使用别人的IP了. 不提蛋疼的事情了,先来说说网络的配置吧 我用的是Ubuntu14. ...

  2. CTF-逆向工程实验吧Just Click

    题目链接:http://www.shiyanbar.com/ctf/1889 步骤一:PEID解析:如下图所示 步骤二:打开exe,这种类型的东西用OD打不开,想了一下,这种东西应该是C#做的,用.n ...

  3. QT---实现舒尔特方格(零基础入门)

    按照之前说的,加上舒尔特方格,读者还可以自行将此游戏做成APP放到手机上,后面还有贪吃蛇,Java版的飞机大战,五子棋,各类游戏会不断加上来的,当然,会免费附加源代码! 读者可以去4399去玩一下,可 ...

  4. NetworkExtension

    一, 按照网上的方法: iOS 无法获取 WiFi 列表?一定是因为你不知道这个框架 提交了申请.两个小时候后苹果回应邮件.意思就是如果只是使用 App Proxy, Content Filter, ...

  5. Jenkins 总结

    步骤: 1,安装Jenkins 2,运行Jenkins: java -jar jenkins.war --httpPort=8888 httpPort指的就是Jenkins所使用的http端口,这里指 ...

  6. python --- 06 小数据池 编码

    一.小数据池, id()    进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存.   在cmd命令窗口中几乎都不会缓存   不同的解释器有不同 ...

  7. Bootstrap3基础 nav 便签页(横版、竖版)

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  8. tp框架中的一些疑点知识-8

    NaN是Number对象的一个属性, 表示一个特殊值, 表示不是一个 数字, 引用/赋值时, 要使用: Number.NaN 判断 一个值是不是 NaN, 用 isNaN() 函数, 它是一个js的全 ...

  9. 【做题】neerc2017的A、C、I、L

    A - Archery Tournament 一开始往化简公式的方向去想,结果没什么用. 考虑与一条垂线相交的圆的个数.不难YY,当圆的个数最多时,大概就是这个样子的: 我们稍微推一下式子,然后就能发 ...

  10. (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!

    Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...