解锁生物信息学必备!核心数据库使用指南

解锁生物信息学必备!核心数据库使用指南

生物信息学研究离不开数据支撑,这些数据库能让你事半功倍! 本文详解常用数据库的检索下载技巧,并提供可直接复用的代码模板。

NCBI GenBank

全球最大的基因序列数据库,收录所有公开的DNA序列

▍数据获取

代码语言:javascript代码运行次数:0运行复制

# 安装Entrez工具套件

conda install -c bioconda entrez-direct

# 批量下载哺乳动物线粒体基因组

esearch -db nucleotide -query "mammalia[ORGN] AND mitochondrion[TITL]" |

efetch -format gb > mt_genomes.gb▍数据类型

核苷酸序列:基因组DNA/mRNA/cDNA注释信息:基因位置、CDS区域、功能描述分类学数据:物种分类层级信息▍数据处理

代码语言:javascript代码运行次数:0运行复制

# 解析GenBank文件

for record in SeqIO.parse("mt_genomes.gb", "genbank"):

# 打印GenBank记录信息

print(f"Accession: {record.id}")

print(f"Organism: {record.annotations['organism']}")

print(f"Sequence length: {len(record.seq)}")

# 提取CDS特征

for feat in record.features:

if feat.type == "CDS":

print(f"Protein ID: {feat.qualifiers['protein_id'][0]}") GEO (Gene Expression Omnibus)

全球最大的基因表达数据仓库,含芯片/RNA-seq等数据

▍数据获取

代码语言:javascript代码运行次数:0运行复制

# 加载 GEOquery 包

library(GEOquery)

# 下载 GSE12345 数据集

gset <- getGEO("GSE12345", GSEMatrix=TRUE, AnnotGPL=TRUE)

# 获取表达矩阵和表型数据

expr <- exprs(gset[[1]])

pdata <- pData(gset[[1]])

# 保存原始数据

write.csv(expr, "expression_matrix.csv")▍数据类型

原始数据:CEL(芯片)、FASTQ(测序)处理数据:标准化后的表达矩阵元数据:实验设计、样本表型信息▍差异表达分析

代码语言:javascript代码运行次数:0运行复制

# 加载limma包

library(limma)# 创建设计矩阵

design <- model.matrix(~0 + pdata$group)

colnames(design) <- levels(pdata$group)

# 线性模型拟合

fit <- lmFit(expr, design)

contrast <- makeContrasts("Treatment-Control", levels=design)

fit2 <- contrasts.fit(fit, contrast)

fit2 <- eBayes(fit2)

# 输出差异基因

topTable(fit2, adjust="BH", number=50)TCGA (The Cancer Genome Atlas)

癌症多组学数据金库,含33种癌症类型数据

▍数据获取

代码语言:javascript代码运行次数:0运行复制

# 安装GDC客户端

curl -LO https://gdc.cancer.gov/files/public/file/gdc-client_v1.6.1_Ubuntu_x64.zip

unzip gdc-client*.zip

# 批量下载RNA-seq数据

./gdc-client download -m manifest.txt --dir tcga_data▍数据类型

基因组数据:VCF(SNP/Indel)、MAF(突变注释)转录组数据:HTSeq-counts/FPKM表观遗传:甲基化β值矩阵临床数据:生存期、TNM分期、治疗响应▍数据分析流程

代码语言:javascript代码运行次数:0运行复制

# 加载 TCGAbiolinks 包

library(TCGAbiolinks)

# 构建查询

query <- GDCquery(

project = "TCGA-BRCA",

data.category = "Transcriptome Profiling",

data.type = "Gene Expression Quantification",

workflow.type = "HTSeq - Counts")

#下载数据

GDCdownload(query)

# 准备 DESeq2 输入

data <- GDCprepare(query)

count_matrix <- assay(data)

# 差异表达分析

dds <- DESeqDataSetFromMatrix(

countData = count_matrix,

colData = colData(data),

design = ~ gender)

dds <- DESeq(dds)

res <- results(dds)UniProt

最权威的蛋白质功能注释数据库

▍数据获取

REST API访问:代码语言:javascript代码运行次数:0运行复制

# 获取人类激酶数据

url = "https://rest.uniprot.org/uniprotkb/search?query=reviewed:true+AND+organism_id:9606+AND+keyword:181"

response = requests.get(url + "&format=tsv")

# 将结果写入文件

open("human_kinases.tsv", "wb").write(response.content)▍数据类型

序列数据:FASTA格式功能注释:亚细胞定位、PTM修饰位点结构信息:跨膜结构域、二硫键位置▍蛋白结构域分析

代码语言:javascript代码运行次数:0运行复制

# 分析序列特性

record = SeqIO.read("P05067.fasta", "fasta")

analyzer = ProtParam.ProteinAnalysis(str(record.seq))

# 输出分子量、等电点及跨膜预测

print(f"分子量: {analyzer.molecular_weight()}")

print(f"等电点: {analyzer.isoelectric_point()}")

print(f"跨膜预测: {analyzer.protein_scale(ProtParam.kd, 9)}")

PDB (Protein Data Bank)

蛋白质结构数据核心库

▍数据获取

代码语言:javascript代码运行次数:0运行复制

# 下载所有分辨率<2.0Å的GPCR结构

wget "https://data.rcsb.org/rest/v1/search?query=rcsb_entry_info.resolution_combined<2&struct_src.title=G+protein-coupled+receptor"▍结构分析

代码语言:javascript代码运行次数:0运行复制

# 解析1HIV结构

parser = PDBParser()

structure = parser.get_structure("1HIV", "1hiv.pdb")

# 遍历二级结构

for model in structure:

for chain in model:

for residue in chain:

if residue.id[0] == " ": # 排除水分子

print(f"{chain.id}:{residue.id[1]} - {residue.secondary_structure}")KEGG Pathway

生物通路分析标准数据库

▍数据获取

代码语言:javascript代码运行次数:0运行复制

# 加载 KEGGREST 包

library(KEGGREST)

# 获取 hsa04110(细胞周期)通路数据

pathway <- keggGet("hsa04110")[[1]]

# 提取所有基因

genes <- sapply(strsplit(pathway$GENE, ";"), function(x) x[1])[seq(2, 100, 2)]

# 将基因列表写入文件

writeLines(genes, "cell_cycle_genes.txt")▍通路富集分析

代码语言:javascript代码运行次数:0运行复制

# 加载 clusterProfiler 包

library(clusterProfiler)

# 准备差异基因列表

deg_genes <- scan("deg_genes.txt", what="")

# GO富集分析

ego <- enrichGO(

gene = deg_genes,

OrgDb = org.Hs.eg.db,

keyType = "SYMBOL",

ont = "BP")

# 可视化

dotplot(ego, showCategory=20)通用数据预处理技巧

代码语言:javascript代码运行次数:0运行复制

# 批量解压 tar.gz 文件

find . -name "*.tar.gz" -exec tar -xzf {} \;

# 合并多个 CSV 文件

awk 'FNR==1 && NR!=1{next;}{print}' *.csv > merged.csv

# 快速查看大型文本文件

zcat large_file.txt.gz | head -n 100Ensembl

▎数据库定位

脊椎动物基因组注释核心平台

▎特色数据

基因结构注释(GTF)变异效应预测(VEP)比较基因组数据▎API调用示例

代码语言:javascript代码运行次数:0运行复制

# 导入 requests 库

import requests

# 设置 API 端点

endpoint = "https://rest.ensembl.org/sequence/id/ENSG00000157764"

# 设置请求头

headers = {"Content-Type": "text/x-fasta"}

# 发送 GET 请求

response = requests.get(endpoint, headers=headers)

# 打印响应的文本

print(response.text)

相关推荐

交换机总排行榜
世界杯365bet

交换机总排行榜

📅 09-08 👁️ 6509
触摸一段真实的历史,走进泾阳的吴家东院!
世界杯365bet

触摸一段真实的历史,走进泾阳的吴家东院!

📅 07-12 👁️ 9258
宋濂(明朝开国文臣之首,明初诗文三大家之一)生平简介