Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DSSP教程:一步步教你预测蛋白质二级结构

DSSP教程:一步步教你预测蛋白质二级结构

作者头像
Tom2Code
发布于 2024-03-20 12:34:40
发布于 2024-03-20 12:34:40
3.1K00
代码可运行
举报
文章被收录于专栏:TomTom
运行总次数:0
代码可运行

最近在帮实验室的学姐分析一些蛋白质序列,然后就接触到了DSSP这个算法。于是写一篇小笔记,仅此来记录一下本次的使用记录。

一.DSSP简介

背景介绍:

二级结构是由生物大分子在原子分辨率结构中所观察到的氢键来定义的。蛋白质的二级结构通常是以主链中氨基之间的氢键模式来定义〈与主链-侧链间以及侧链-侧链间的氢键无关〉,亦即DSSP的定义。而核酸的二级结构是以碱基之间的氢键来定义。

课外知识:

对生物大分子的二级结构含量可以以光谱来初步估计。对于蛋白质,最常用的方法是圆二色性(Circular dichroism), (利用长紫外线,波长范围170-250nm)。在获得的光谱吸收曲线上,α螺旋结构会在208nm及222nm两处同时出现极小值,而204nm和207nm处出现单个极小值则分别表示存在无规卷曲和β折叠结构。

DSSP 是用于对蛋白质结构中的氨基酸残基进行二级结构构像分类的标准化算法,由Wolfgang Kabsch和Chris Sander设计。

——来自百度百科

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
The DSSP algorithm is the standard method for assigning 
secondary structure to the amino acids of a protein, 
given the atomic-resolution coordinates of the protein.
 The abbreviation is only mentioned once in the 1983 paper 
 describing this algorithm,[2] where it is the name of the 
 Pascal program that implements the algorithm 
 Define Secondary Structure of Proteins. DSSP

---来自维基百科

DSSP也有一个数据库

DSSP数据库是由此算法生成的一个存放蛋白质二级结构分类数据的数据库,其中包括了PDB数据库(Protein Data Bank)中的所有条目。算法名称Define Secondary Structure of Proteins由作者在其原始论文中,作为实现该算法的Pascal语言程序名称所提及。DSSP数据库英文全称则为Definition of Secondary Structure of Proteins。

二.DSSP软件

GIthub地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/PDB-REDO/dssp

项目介绍:

但是这个dssp在windows是无法编译和安装的,亲测多次失败。然后在ubuntu服务器上测试安装成功:

安装指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install dssp

然后就安装成功了

三.使用dssp对蛋白质序列进行分析,

这里的31条蛋白质序列,我已经使用alphafold进行了预测,所以已经得到其pdb文件。所以这次我们的分析,是建立在pdb文件的基础上的。

1.导包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from Bio.PDB import PDBParser
from Bio.PDB.DSSP import DSSP
import matplotlib.pyplot as plt

2.开始分析蛋白质文件,这里我们主要实现了打印出蛋白质对应的结构的片段序列。例如,下列代码实现了打印一个pdb文件中所有阿尔法螺旋的片段,还有贝塔折叠的片段信息。最后使用dssp的指标进行画图,并且在图中标注,做到可视化的功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 解析PDB文件
p = PDBParser()
structure = p.get_structure("protein_name", "/home/01.pdb")

# 使用DSSP分析二级结构
model = structure[0]
dssp = DSSP(model, "/home/01.pdb")
# 提取阿尔法螺旋和贝塔折叠的片段
helices = [res for res in dssp if res[2] == 'H']  # 阿尔法螺旋
sheets = [res for res in dssp if res[2] == 'E']  # 贝塔折叠

# 打印片段信息
print("Alpha helices:")
for res in helices:
    print(f"Residue {res[0]}: {res[1]}")

print("
Beta sheets:")
for res in sheets:
    print(f"Residue {res[0]}: {res[1]}")

# 可视化
plt.figure(figsize=(10, 6))
plt.plot([res[1] for res in dssp], label='DSSP index')
plt.scatter([res[0] for res in helices], [res[1] for res in helices], color='r', label='Alpha helices')
plt.scatter([res[0] for res in sheets], [res[1] for res in sheets], color='b', label='Beta sheets')
plt.xlabel('Residue number')
plt.ylabel('DSSP index')
plt.legend()
plt.savefig("01.png")
plt.show()

首先程序的输出是阿尔法螺旋的氨基酸片段:

然后是贝塔折叠的片段:

最后是一个可视化的图,显示了哪些片段是对应的结构:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tom的小院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SELECT 语句与其子句的详解
SELECT 从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
jack.yang
2025/04/05
1500
【MySQL】MySQL表的增删改查(进阶篇)——之查询操作(超级详解)
Hello!!!家人们,小编上期期讲解了关于增删查改的进阶之约束条件,关于数据库表的增删查改有了一定的认知,小编这期就将深入讲解另一部分内容,即关于数据库增删查改的进阶操作之查询进阶,大家准备好了吗~~~🥳🥳🥳;
用户11288949
2024/09/24
3910
【MySQL】MySQL表的增删改查(进阶篇)——之查询操作(超级详解)
【MySQL】基础实战篇(2)—数据查询操作
数据查询是数据库管理系统应用的主要内容,也是用户对数据库最频繁、最常见的操作请求。 数据查询可以根据用户提供的限定条件,从已存在的数据表中检索用户需要的数据。 MySQL使用SELECT语句既可以完成简单的单表查询、联合查询,也可以完成复杂的联接查询、子查询,从数据库中检索符合用户需求的数据,并将结果集以表格的形式返回给用户。
洁洁
2024/09/27
2640
MySQL学习笔记【基础篇】
1、DB:数据库,保存一组有组织的数据的容器 2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据 3、SQL:结构化查询语言,用于和DBMS通信的语言
_DIY
2020/08/19
2.2K0
MySQL学习笔记【基础篇】
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
SQL结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
杨丝儿
2022/02/24
1.9K0
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
【MySQL】联合查询
在单行查询中子查询只能的结果具有唯一性,如果我们想要多个子查询结果应该怎么办?我们这里有多行子查询结果可以解决该问题。
喜欢做梦
2025/05/10
880
听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)
排序的字段可以根据具体需求进行选择,没有限制。排序的关键字可以使用 ASC 或者DESC。ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC 方式进行排序。DESC 是按降序方式进行排列。当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤。
不吃小白菜
2020/09/03
4.1K0
听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)
【MySQL】多表联合查询、连接查询、子查询「建议收藏」
内连接:[inner] join:从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.
全栈程序员站长
2022/08/02
5.2K0
【MySQL】多表联合查询、连接查询、子查询「建议收藏」
23篇大数据系列(三)sql基础知识(史上最全,建议收藏)
蓝桥签约作者、大数据&Python领域优质创作者。维护多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。
不吃西红柿
2022/09/19
2.9K0
23篇大数据系列(三)sql基础知识(史上最全,建议收藏)
多表操作(DQL)
wife表的外键husband_id与husband表对应,对于一对一来说此外键不能重复
木瓜煲鸡脚
2019/07/30
6350
【数据库】MySQL进阶八、多表查询
【数据库】MySQL进阶八、多表查询 MySQL多表查询 一 使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id 注:在上面的的代码中,以两张表的id字段信息相同作为条件建立两
Java帮帮
2018/03/15
2.5K0
MySQL基础篇(DDL,DML,DQL,DCL详细讲解)
pojie方式:https://www.jb51.net/database/710931.html
用户4919348
2022/04/13
1.6K0
MySQL基础篇(DDL,DML,DQL,DCL详细讲解)
数据库基础知识一(MySQL)[通俗易懂]
数据管理技术好坏评判的标准: (1)数据冗余 (2)数据共享 (3)数据独立性 (4)数据统一集中管理
全栈程序员站长
2022/08/03
1.9K0
数据库基础知识一(MySQL)[通俗易懂]
SQL语句多表关联查询语法
SQL语句:select * from student left join score on student.Num=score.Stu_id;
用户2038009
2021/03/07
4.2K0
MySql基础之DQL-数据查询语言
保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来
冬天vs不冷
2025/01/21
2010
MySql基础之DQL-数据查询语言
【MySQL】02_子查询与多表查询
指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。
鸡先生
2022/10/29
2.9K0
【MySQL】02_子查询与多表查询
MySQL:DQL 数据查询语句盘点
常用的语句关键字有:SELECT、FROM、WHERE、ORDER BY、HAVING、ASC|DESC
栗筝i
2022/12/01
1.7K0
高级SQL查询-(聚合查询,分组查询,联合查询)[通俗易懂]
当遇到常见的统计总数、计算平局值等操作,可以使⽤聚合函数来实现,常见的聚合函数有:
全栈程序员站长
2022/09/05
4.8K0
MySQL DQL 连接查询
在关系型数据库管理系统(RDBMS)中,连接查询是一项重要的数据库操作,它允许我们从多个表中检索和组合数据,以便进行更复杂的查询和分析。
恋喵大鲤鱼
2024/05/24
1820
MySQL DQL 连接查询
MySQL表的增删查改(二)
创建学生表student,一个学生对应一个班级,一个班级对应多个学生。使用id为主键,classes_id为外键,关联班级表id:
海盗船长
2020/08/27
2.6K0
相关推荐
SELECT 语句与其子句的详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验