尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【研发类-编程语言Skills】biopython 技能

【研发类-编程语言Skills】biopython 技能 Biopython是一套免费提供的Python生物计算工具。它提供序列操作、文件I/O、数据库访问、结构生物信息学、系统发育学以及许多其他生物信息学任务的功能。技能概述biopython 技能是一个全面的Python生物计算工具集为生物信息学研究和应用提供核心功能。该技能支持生物序列处理、文件格式转换、数据库访问、BLAST搜索、序列比对、蛋白质结构分析、系统发育树构建等多种生物信息学任务。当前版本为Biopython 1.852025年1月发布支持Python 3并需要NumPy。下载地址agentic-awesome-skills/skills/biopython at main · sickn33/agentic-awesome-skills · GitHub主要功能序列处理: Bio.Seq和Bio.SeqIO用于序列操作和文件I/O比对分析: Bio.Align和Bio.AlignIO用于成对和多重序列比对数据库访问: Bio.Entrez用于程序化访问NCBI数据库BLAST操作: Bio.Blast用于运行和解析BLAST搜索结构生物信息学: Bio.PDB用于处理3D蛋白质结构系统发育学: Bio.Phylo用于系统发育树操作和可视化高级功能: 序列模体、群体遗传学、序列工具等触发条件在以下情况下应该调用此技能:处理生物序列DNA、RNA或蛋白质读取、写入或转换生物文件格式FASTA、GenBank、FASTQ、PDB、mmCIF等通过Entrez访问NCBI数据库GenBank、PubMed、Protein、Gene等运行BLAST搜索或解析BLAST结果执行序列比对成对或多重序列比对从PDB文件分析蛋白质结构创建、操作或可视化系统发育树查找序列模体或分析模体模式计算序列统计GC含量、分子量、熔解温度等执行结构生物信息学任务处理群体遗传学数据核心能力详解1. 序列处理 (Bio.Seq Bio.SeqIO)创建和操作生物序列读取和写入序列文件。创建和操作生物序列读取和写入序列文件FASTA、GenBank、FASTQ等在文件格式之间转换从大文件中提取序列序列翻译、转录和反向互补使用SeqRecord对象2. 比对分析 (Bio.Align Bio.AlignIO)成对序列比对和多重序列比对。成对序列比对全局和局部读取和写入多重序列比对使用替换矩阵BLOSUM、PAM计算比对统计自定义比对参数3. 数据库访问 (Bio.Entrez)程序化访问NCBI数据库。搜索NCBI数据库PubMed、GenBank、Protein、Gene等下载序列和记录获取出版物信息在数据库之间查找相关记录使用适当的速率限制进行批量下载4. BLAST操作 (Bio.Blast)运行和解析BLAST搜索。通过NCBI Web服务运行BLAST搜索运行本地BLAST搜索解析BLAST XML输出按E值或同一性过滤结果提取命中序列5. 结构生物信息学 (Bio.PDB)处理3D蛋白质结构。解析PDB和mmCIF结构文件导航蛋白质结构层次SMCRA结构/模型/链/残基/原子计算距离、角度和二面角二级结构分配DSSP结构叠加和RMSD计算从结构中提取序列6. 系统发育学 (Bio.Phylo)系统发育树操作和可视化。读取和写入系统发育树Newick、NEXUS、phyloXML从距离矩阵或比对构建树树操作修剪、重根、梯形化计算系统发育距离创建一致树可视化树7. 高级功能序列模体(Bio.motifs) - 查找和分析模体模式群体遗传学(Bio.PopGen) - GenePop文件、Fst计算、Hardy-Weinberg检验序列工具(Bio.SeqUtils) - GC含量、熔解温度、分子量、蛋白质分析限制性分析(Bio.Restriction) - 查找限制性酶切位点聚类(Bio.Cluster) - K-means和层次聚类基因组图(GenomeDiagram) - 可视化基因组特征安装和设置# 安装Biopython# uv pip install biopython# 设置NCBI数据库访问必需from Bio import EntrezEntrez.email your.emailexample.com# 可选API密钥以获得更高的速率限制10请求/秒而不是3请求/秒Entrez.api_key your_api_key_here使用示例序列处理示例:from Bio import SeqIO# 从FASTA文件读取序列for record in SeqIO.parse(sequences.fasta, fasta):print(f{record.id}: {len(record.seq)} bp)# 将GenBank转换为FASTASeqIO.convert(input.gb, genbank, output.fasta, fasta)数据库访问示例:from Bio import EntrezEntrez.email your.emailexample.com# 搜索PubMedhandle Entrez.esearch(dbpubmed, termbiopython, retmax10)results Entrez.read(handle)handle.close()print(fFound {results[Count]} results)BLAST搜索示例:from Bio.Blast import NCBIWWW, NCBIXML# 运行BLAST搜索result_handle NCBIWWW.qblast(blastn, nt, ATCGATCGATCG)blast_record NCBIXML.read(result_handle)# 显示前5个命中for alignment in blast_record.alignments[:5]:print(f{alignment.title}: E-value{alignment.hsps[0].expect})蛋白质结构分析示例:from Bio.PDB import PDBParser# 解析结构parser PDBParser(QUIETTrue)structure parser.get_structure(1crn, 1crn.pdb)# 计算α碳之间的距离chain structure[0][A]distance chain[10][CA] - chain[20][CA]print(fDistance: {distance:.2f} Å)序列统计示例:from Bio.SeqUtils import gc_fraction, molecular_weightfrom Bio.Seq import Seqseq Seq(ATCGATCGATCG)print(fGC content: {gc_fraction(seq):.2%})print(fMolecular weight: {molecular_weight(seq, seq_typeDNA):.2f} g/mol)最佳实践显式导入模块: 明确导入所需的模块设置Entrez邮箱: 使用NCBI数据库时必须设置邮箱地址使用适当的文件格式: 检查哪种格式最适合任务正确处理文件: 使用后关闭句柄或使用上下文管理器对大文件使用迭代器: 避免将所有内容加载到内存中优雅地处理错误: 网络操作和文件解析可能会失败
返回列表