公开数据库下载2-药敏性、综合类(TCGA、COSMIC、UCSC、GATK、cBioPortal)
公开数据库下载2
- 3.数据库下载
- 3.1 药敏性分析数据库
- GDSC
- Cell Miner
- CMAP
- GSCA
- Drug Bank
- 3.2 综合类
- TCGA
- COSMIC
- UCSC
- cBioPortal
- GATK
3.数据库下载
3.1 药敏性分析数据库
GDSC
GDSC
红框的3个类型,均只有汇总结果可下载,筛选后的下载视同汇总结果。
黄框的筛选结果均可下载,但细胞系基因组结果仅下载了mutation、copy number
历史release版本已经失效
Cell Miner
cell miner
GEO数据在Linux上批量下载:
如何用服务器下载GEO数据
# 1.找到存储地址
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE32nnn/GSE32264/
# 2.目录文件夹
matrix miniml soft suppl四个文件夹
ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE32nnn/GSE32264/matrix
ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE32nnn/GSE32264/miniml
ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE32nnn/GSE32264/soft
ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE32nnn/GSE32264/suppl
# 3.具体下载
for i in matrix miniml soft suppl;do echo wget -c -r -np -nd -R "index.html*" ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE47nnn/GSE47620/$i;done
CMAP
#l1000
21年已经停止维护了,目前只有20年的可以使用。
CMap2020#LINCS2020_下载路径
GSCA
GSCA
国内构建的,应该不会被封锁
Drug Bank
drugbank官网
(1)申请教育邮箱
(2)下载许可申请:
申请被拒绝,原因是要有合理的使用计划、关于你组织的详细描述才行。
非常麻烦,暂时放弃,但首页的explore部分还是有可能爬取结果。
3.2 综合类
TCGA
TCGA
具体看另一篇文章,介绍的很详细
COSMIC
cosmic
用教育邮箱先注册
按照上图方式下载即可:(1)生成身份验证字符串;(2)获取下载URL(有效期1h);(3)下载数据文件
echo 'cosmic注册账号:密码' | base64
curl -H "XXXXX" "https://cancer.sanger.ac.uk/api/mono/products/v1/downloads/scripted?path=grch37/cosmic/v100/Cosmic_Breakpoints_Tsv_v100_GRCh37.tar&bucket=downloads"
curl "https://cosmic-downloads-production.cog.sanger.ac.uk/grch37/cosmic/v100/Cosmic_Breakpoints_Tsv_v100_GRCh37.tar?.... GetObject" --output Cosmic_Breakpoints_Tsv_v100_GRCh37.tar
半自动化的文件下载脚本
eg: sh download_cosmic.sh "https://cancer.sanger.ac.uk/api/mono/products/v1/downloads/scripted?path=grch37/cosmic/v100/Cosmic_CancerGeneCensus_Tsv_v100_GRCh37.tar&bucket=downloads"
$cat download_cosmic.sh
#!/bin/bash
# 检查输入参数
if [ $# -ne 1 ]; then
echo "Usage: $0 <input_url>"
exit 1
fi
INPUT_URL=$1
# Step 1: 获取下载链接
RESPONSE=`curl -s -H "Authorization: Basic Q0RBVkkzNDUyMUBteS5zdW55" $INPUT_URL`
# 从响应中提取下载URL
DOWNLOAD_URL=$(echo $RESPONSE | grep -oP '(?<="url":")[^"]+')
if [ -z "$DOWNLOAD_URL" ]; then
echo "Error: Unable to extract download URL."
exit 1
fi
# 从input URL中提取文件名
FILENAME=$(basename "${INPUT_URL#*path=}" | cut -d '&' -f1)
if [ -z "$FILENAME" ]; then
echo "Error: Unable to extract filename from input URL."
exit 1
fi
# Step 2: 下载文件
curl -o $FILENAME "$DOWNLOAD_URL"
# 完成提示
echo "Download complete: $FILENAME"
UCSC
UCSC
(1)知识点:
a)参考基因组和注释文件
参考基因组:官方解释--字面意思,用来参考的标准基因组(一时半会不能理解),就是长长的基因序列。
基因注释文件:字面意思,即给不同的序列,标注对应的基因名。
我的想法:参考基因组就像是人类的基因“地图”,不同的基因有不同的序列和位置,就好像不同的地理位置有自己不同的特征(序列)和经纬度坐标。而注释文件,就好像是地图上标注好的地名。
只有在电影里面看到军事打击才会用坐标(经纬度),而我们普通人就说是地名,毕竟别人问你你家在哪儿的时候,你说我家在东经140维度23?
所以,为了方便人类观看和交流,对于基因的注释是非常重要的。
b)让人迷乱的各种ID
相信你一定在不同的地方多次看到过各种ID,例如:ensembl ID,gene ID,gene name,gene symbol 等等。种类繁多到让人迷乱。
简单介绍一下,ensembl ID的由来是因为,这个ID系统是ensemble平台在用的呀;gene id貌似是NCBI在用的。可见,不同的平台,都有自己的命名系统。为了方便大家交流,大家规定了基因的官方名字:gene symbol。
所以–下载参考基因组和注释文件,一定要在同一个平台上下载。
比如:在ensembl上下载参考基因组,注释文件也要在ensemble上下载。保持来源的一致,在做比对的时候才不容易出错呀。
下载目录
#下载基因组序列
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/latest/hg19.fa.gz
#下载整个文件夹
wget ftp://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/latest/*
#下载基因组注释信息文件夹
# enes文件夹查看下面的基因组注释文件,有4种注释文件,其中"ensGene" track是根据Ensembl的转录本注释,"knownGene" track是根据UCSC转录本注释,"ncbiRefSeq" track是根据NCBI RefSeq 转录本注释,用户可以根据自己的选择下载对应的注释信息。
wget ftp://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/genes/*
(3)参考文献
UCSC官网信息说明
UCSC Genome Browser 使用教程,看这篇就够了!
cBioPortal
cBioPortal
1.将数据集变成html格式
import time
from playwright.sync_api import Playwright, sync_playwright
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://www.cbioportal.org/datasets")
time.sleep(40)
page.get_by_role("button", name="Columns").click()
page.get_by_role("button", name="Select all", exact=True).click()
# 获得网页并保存
html = page.content()
with open("html/cbioportal.html", 'w', encoding='utf-8') as f:
f.write(html)
page.close()
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
2.寻找表格部分的网页结构
<table class="simple-table table table-striped table-border-top">
<thead>
<tr>
<th class="multilineHeader"><span role="button" class="sort-asc"><span>Name</span><i class="fa fa-sort-asc lazyMobxTableSortArrowAsc"></i></span></th>
<th class="multilineHeader"><span><span></span></span></th>
<th class="multilineHeader"><span role="button"><span>Reference</span></span></th>
<th class="multilineHeader"><span role="button"><span>All</span></span></th>
<th class="multilineHeader"><span role="button"><span>Mutations</span></span></th>
<th class="multilineHeader"><span role="button"><span>CNA</span></span></th>
<th class="multilineHeader"><span role="button"><span>RNA-Seq</span></span></th>
<th class="multilineHeader"><span role="button"><span>Structural Variants</span></span></th>
<th class="multilineHeader"><span role="button"><span>Tumor mRNA (microarray)</span></span></th>
<th class="multilineHeader"><span role="button"><span>Tumor miRNA</span></span></th>
<th class="multilineHeader"><span role="button"><span>Methylation (HM27)</span></span></th>
<th class="multilineHeader"><span role="button"><span>RPPA</span></span></th>
<th class="multilineHeader"><span role="button"><span>Protein Mass Spectrometry</span></span></th>
<th class="multilineHeader"><span role="button"><span>Complete</span></span></th>
<th class="multilineHeader"><span role="button"><span>Treatment Count</span></span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/study?id=paac_jhu_2014">Acinar Cell Carcinoma of the Pancreas (JHU, J Pathol 2014)</a></td>
<td><a class="dataset-table-download-link" href="https://cbioportal-datahub.s3.amazonaws.com/paac_jhu_2014.tar.gz" download="" style="display: block;"><i class="fa fa-download"></i></a></td>
<td><a target="_blank" href="https://www.ncbi.nlm.nih.gov/pubmed/24293293"> Jial et al. J Pathol 2014 </a></td>
<td><span>23</span></td>
<td><span>23</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
</tr>
<tr>
<td><a href="/study?id=mel_tsam_liang_2017">Acral Melanoma (TGEN, Genome Res 2017)</a></td>
<td><a class="dataset-table-download-link" href="https://cbioportal-datahub.s3.amazonaws.com/mel_tsam_liang_2017.tar.gz" download="" style="display: block;"><i class="fa fa-download"></i></a></td>
<td><a target="_blank" href="https://www.ncbi.nlm.nih.gov/pubmed/28373299"> Liang et al. Genome Res 2017 </a></td>
<td><span>38</span></td>
<td><span>38</span></td>
<td><span>38</span></td>
<td><span>36</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>0</span></td>
<td><span>36</span></td>
<td><span>21</span></td>
</tr>
</tbody>
</table>
3.从html提取表格内容
from bs4 import BeautifulSoup
import pandas as pd
with open("html/cbioportal.html", 'r') as f:
soup = BeautifulSoup(f.read(), 'html.parser')
# 找到指定 class 的表格
table = soup.find('table', class_="simple-table table table-striped table-border-top")
# 提取表头
headers = [header.get_text(strip=True) for header in table.find_all('th')]
# 提取表格行
rows = table.find_all('tr')
# 初始化列表,用于存储表格内容
table_data = []
# 遍历表格的每一行,提取每一列的内容
for row in rows[1:]:
cols = row.find_all('td')
cols_data = []
for col in cols:
link = col.find('a')
if link:
text = link.get_text(strip=True)
href = link.get('href', '')
cols_data.append(f"{text};{href}")
else:
cols_data.append(col.get_text(strip=True))
table_data.append(cols_data)
df = pd.DataFrame(table_data, columns=headers)
df.to_excel("cbioportal_dataset.xlsx", index=False)
3.参考资料
Beautiful Soup 4.4.0 文档
尝试用playwright写爬虫
爬取oncokb
还好,这次没被封
GATK
GATK_resource_bundle
#https://software.broadinstitute.org/gatk/download/bundle,匿名登录
lftp ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/
ftp> ls
ftp> cd buldle
#mget或者mirrors进行下载
mirror hg19
# 将远程目录 hg19 及其所有文件和子目录下载到本地当前目录中
--parallel=N: 指定下载时的并行连接数,以加快下载速度。
--continue: 继续上次未完成的下载。
--verbose: 显示详细信息。
mirror --parallel=4 --continue --verbose hg19
生物信息就该这么学(24):下载人全基因组序列