搜索
查看: 301|回复: 2

[Other] SRA下载地址生成工具

[复制链接]

10

主题

40

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2017-1-6 13:13:07 | 显示全部楼层 |阅读模式
SRA下载地址生成工具by dongye

主要内容

这篇帖子介绍花了一点时间做的一个小工具,原因是我要下载一篇文章中作者所使用的fastq数据进行试验重复,而文章中提供了文件的SRR编号,这时我发现我不知道怎么下载这个数据,询问他人后得知SRA数据下载有固定的链接格式
如 编号 DRR002002的下载链接是
ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/DRR/DRR002/DRR002002/DRR002002.sra
其中
ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/之后的内容都是从编号中提取的了,于是有了一个做一个小工具的想法

工具展示

主页:



首先是主页面,很简单,在输入框输入文件编号然后点击生成url即可

结果页:



生成结果,可以选择复制url,跳转到下载页,或者直接下载文件,没什么可讲的~

错误页:



这个是足足花费了我四个小时才搞定的提示框,在输入错误的文件编号时会给出提示

四个小时我干了什么

这个最初的需求是我想验证输入的文件编号是否是正确的,最简单的规则是 /[DRR|SR|ERR]\d{6}/ 但这里存在一个问题,如果格式是对的但文件不存在怎么办 ■??? 例如上一节中的编号 DRR999999
首先我想到的是使用jq中的ajax对文件下载页做一次请求然后检查返回状态是200还是404或者其他的,但问题是我们请求的页面是ftp://xxx也就是ftp协议的,而jq里ajax是不支持这个协议的 (╯‵□′)╯︵┻━┻ 我尝试将url前部的ftp://替换成https://成功的访问到了一个文件展示网页


https://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/DRR/DRR002/DRR002002


于是我尝试使用这个链接做验证,然而事情总是不顺利的,我得到了这个错误





经过网上搜索得到结果是浏览器处于安全考虑是禁止js请求跨域资源的,除非被请求端将请求端加入白名单,这条路似乎是断掉了,因为我不可能在ncbi上加入我的域名,而且这样请求也是不合规的,期间我尝试了指定数据格式为jsonp等手段,均失败,此时已经花费了三个多小时,已经不能再研究下去。。。


于是我又操起了PHP大法,在服务器上新建了一个PHP的API进行编号验证,然后将前端逻辑修改成发送到服务器做验证。
此处逻辑:前端发送文件编号到服务端验证成功则给出url,失败给出提示,如果服务器无响应则给出url并且给出提示

最后

工具地址
http://www.soyomics.com/sra-url/

目前功能还很简陋,后续可以扩展的内容很多,例如批量处理,SRP数据处理等

工具源码
https://github.com/lidongye/sra_url
希望有想学习同学一起讨论,有能力的同学也可以共同维护这份代码

关于SRA数据库可以参考文献







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:格式转换小任务-bam2bw
下一篇:GO,Kegg,GSEA富集分析神包clusterprofiler
回复

使用道具 举报

5

主题

22

帖子

316

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
316
发表于 2017-1-6 13:42:02 | 显示全部楼层
好贴 赞一个
回复 支持 反对

使用道具 举报

1

主题

15

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2017-1-6 13:58:14 | 显示全部楼层
不错,很是用的小工具。做成脚本更好,不要验证是否存在也行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于我们|手机版|小黑屋|生信技能树    

GMT+8, 2017-5-24 15:47 , Processed in 0.032261 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.