当前位置: 首页 > article >正文

公开数据库下载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):下载人全基因组序列


http://www.kler.cn/a/301023.html

相关文章:

  • 1.1.1 C语言常用的一些函数(持续更新)
  • C#读取本地网络配置信息全攻略
  • 如何发布自己的第一个Chrome扩展程序
  • 漫话架构师|什么是系统架构设计师(开篇)
  • Cesium中的CustomDataSource 详解
  • Gitee图形界面上传(详细步骤)
  • 虚拟机安装VMware-tools详细教程
  • Telegram miniApp开发(三)
  • 从测绘资质角度看郑州市地理信息产业发展现状与前景
  • css flex与inline-flex的区别
  • Excel图片批量插入单元格排版处理插件【图片大师】
  • 【Linux 从基础到进阶】Ansible自动化运维工具使用
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • Vue 3 watchEffect:如何用 onInvalidate 优化副作用处理
  • Ubantu和Centos7一键shell更换镜像源与Linux系统Python3环境安装
  • IBM中国研发中心撤出:全球化变局下的中国IT产业深思与前瞻
  • 快速使用react 全局状态管理工具--redux
  • 基于深度学习的动态场景理解
  • HCIA--实验十四:二层链路聚合
  • ssrf漏洞利用+CTF实例
  • C 语言之snprintf函数
  • torchvision数据集使用
  • C#匿名方法
  • Brave编译指南2024 Windows篇:安装depot_tools(三)
  • spark任务优化参数整理
  • 谷歌个人开发者账号申请流程