美文网首页
如何获取公开数据库里的数据

如何获取公开数据库里的数据

作者: Jason数据分析生信教室 | 来源:发表于2021-06-21 16:41 被阅读0次

1. 用代码获取数据

当然下载数据的方式有多种多样,你可以用最原始的方法在数据库网站上点击下载,但是在不经意之间,电脑不仅帮你下载好了数据,还把原本压缩好的数据给自动解压缩了,原本小巧的压缩包瞬间变成了硬盘杀手。当然可以通过电脑上的设置来取消解压缩功能,但在服务器上下载数据的时候总不能通过网页点击了吧。你还准备在本地点击下载了再上传到服务器?!!

1.1 curl的用法

首先需要创建一个工作目录,然后cd到工作目录中。我是建立在桌面上的,大家随意。

mkdir Bioinfo
cd  /Users/jason/Desktop/Bioinfo 

做好前期准备以后,就开始下载某篇论文里出现的蛋白质氨基酸序列的faa数据。
下面是链接

ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/002/195/GCF_000002195.4_Amel_4.5/GCF_000002195.4_Amel_4.5_protein.faa.gz

指令如下

curl -O ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/002/195/GCF_000002195.4_Amel_4.5/GCF_000002195.4_Amel_4.5_protein.faa.gz

这里用到了-O的选项。这个选项表示下载后的文件名字保持原文件名。
然而日常经常遇到的情况不只是单纯的下载一个文件,而是下载一堆,比方说文献里的Supplemental data。

下面举个例子,文献给出了一个Uniform Resource Locator(URL)的链接。

https://figshare.com/articles/Supplemental_data/6964550

如果直接用curl的话恐怕没法下载。因为当你打开这个网页的时候就可以发现这个网页上有好多Supplemental_data。如果不指定是哪个文件的话,curl就不知道该下载哪一个。所以必须指定下载文件的具体链接

curl支持打包下载,

curl https://nfigshare.com/articles/Supplemental_data/6964550/versions/3 > 6964550.zip

1.2 wget的用法

上一节里介绍了curl,这里介绍一下wget。
Mac用户请注意,macOS里并没有预装wget,所以需要通过conda来安装。代码如下,

% conda isntall wget

接下来就可以用wget来下载之前同样的数据了。

% wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/002/195/GCF_000002195.4_Amel_4.5/GCF_000002195.4_Amel_4.5_protein.faa.gz

wget 有一个特异功能就是-r选项。这个选项的意思是下载文件夹下的所有文件。

% wget -r ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/002/195/GCF_000002195.4_Amel_4.5/

细心观察的同学就会发现,这个和之前的下载指定文件不一样,GCF_000002195.4_Amel_4.5/以后就没有再跟进具体文件。意思就是说,把GCF_000002195.4_Amel_4.5/整个文件夹都下载了下来。在使用这个命令的时候会一不小心下载很多不需要的尺寸庞大的文件,所以需要格外小心。
说了这么多,也不见的能看出用命令下载比点击鼠标下载方便多少,但是遇到需要下载几百个几千个文件的时候会怎么样呢?之后会慢慢道来。

1.3 从TOGOWS上下载碱基序列

TOGOWS是服务器坐落于日本东京大学的一个综合性的生命科学数据库。服务器上有包括DDBJ在内的同一个亚洲的服务器里的数据,下载速度理论上会快一点。
废话不多说,先下载一段序列。

% curl -O http://togows.org/entry/ddbj-ddbj/LC170036

然后查看一下这个文件

% less LC170036

我们可以查看到这段DDBJ形式的文件具体内容。需要退出阅览模式的话按一下q就可以。
当然如果是单纯要下载用于BLAST的FASTA格式文件的话也没有问题。只需要在后面加上fasta后缀就ok。

% curl -O http://togows.org/entry/ddbj-ddbj/LC170036.fasta

一样查看一下文件

% less LC170036.fasta

也可以通过TOGOWS来下载UniProt的数据,比方说

% curl -O http://togows.org/entry/ebi-uniprot/HIF1_CAEEL.fasta
% less HIF1_CAEEL.fasta

到这里为止都是常规操作,接下来来介绍一下如何批量介绍数据。

1.3.1 批量下载数据(连续数据)

比方说我们需要下载58个物种的碱基序列。

Aeginetia indica
regions gained by horizontal gene transfer
LC437098-LC437155 (58 entries)

比起58次点击鼠标,可以直接写一个循环让机器打包下载。

# 序列号吗是从437098开始到437155
% for i in `seq 437098 437155`;
do
 echo "getting LC$i"
 curl http://togows.org/entry/ddbj-ddbj/LC$i.fasta >> seq.fasta
 sleep 1
done

for..do;..done形成了一个循环。这里还需要解说一下的是, >>>的区别,
>会产生新文件覆盖旧文件,>>的话是把所有的数据写成一个文件。

1.3.2 批量下载数据(list数据)

我们先把需要下载的数据写成一个txt文件entries.txt

 % echo "NM_001043619.1
NM_001043834.1
NM_001043893.2
LC229590
LC229591
LC229592
LC229593" > entries.txt
% IFS=$'\n'
# 每一个序列独自保存为[entry名.fasta]文件
% for entry in `cat entries.txt`
do
 curl -O https://togows.org/entry/ddbj-ddbj/$entry.fasta
done

相关文章

  • 如何获取公开数据库里的数据

    1. 用代码获取数据 当然下载数据的方式有多种多样,你可以用最原始的方法在数据库网站上点击下载,但是在不经意之间,...

  • 公开数据如何获取

    网上公开数据很多的,很多可以自己搜索到。 比如百度指数,谷歌趋势,我说过很多次的。 比如爱站网,semrush,a...

  • python数据分析入门手册-具体学什么,怎么学

    - ❶ - 数据获取:公开数据、Python爬虫 外部数据的获取方式主要有以下两种。 第一种是获取外部的公开数据集...

  • ES

    命令一:获取索引库里面的数据量 命令二:获取索引库 feed里面的所有数据 命令三:获取固定长度的数据 命令四:p...

  • 爬虫之获取数据

    1,首先获取数据,需要用到Python语言中的requests函数库,以及这个库里面的方法get 2,获取数据基本...

  • 使用Spark分析拉勾网招聘信息(二): 获取数据

    要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,...

  • 春节期间自我培训计划

    获取数据(约3h): 获取互联网上的公开数据集 用网站 API 爬取网页数据 爬虫所需的 HTML 基础 基于 H...

  • 数据分析学习

    我们就从如何获取数据、如何分析数据以及一款产品都关注哪些数据维度。 一、数据获取 数据的来源渠道主要有两种: 自有...

  • echarts 自定义地图数据

    1. 地图数据来源 echarts仓库里面就有,地图数据不会经常改变,没必要在线获取,还慢[https://git...

  • 【iOS性能监控】- FPS

    本篇文章主要包含以下方面1、如何获取FPS数据2、如何处理数据3、上传策略 如何获取FPS数据 创建CADispl...

网友评论

      本文标题:如何获取公开数据库里的数据

      本文链接:https://www.haomeiwen.com/subject/vbwyyltx.html