Mathematica中文论坛-非官方

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 67|回复: 0
打印 上一主题 下一主题

在vmd中,将第一个分子轨迹根据resid 0-148 对齐到第二个分子的resid 3-150

[复制链接]

580

主题

665

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
跳转到指定楼层
楼主
发表于 昨天 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个分子,一个是reference 分子。
另一个,是一个轨迹。
把轨迹中的部分,根据部分原子进行对齐。
在vmd中,将第一个分子轨迹根据 resid 0-148 对齐到第二个分子的resid 3-150 上,
  1. # 定义分子ID(根据实际修改)
  2. set mol1 0  ;# 第一个分子(待移动的轨迹)
  3. set mol2 1  ;# 第二个分子(参考结构)

  4. # 选择对齐的原子组
  5. set mobile [atomselect $mol1 "resid 0 to 148"]
  6. set ref [atomselect $mol2 "resid 3 to 150"]

  7. # 遍历每一帧进行对齐
  8. for {set frame 0} {$frame < [molinfo $mol1 get numframes]} {incr frame} {
  9.     # 更新到当前帧
  10.     $mobile frame $frame
  11.     $ref frame $frame ;# 若mol2是静态结构,可省略此行

  12.     # 计算变换矩阵并应用到整个分子
  13.     set trans_mat [measure fit $mobile $ref]
  14.     set all_mol1 [atomselect $mol1 "all" frame $frame]
  15.     $all_mol1 move $trans_mat
  16.     $all_mol1 delete ;# 清理内存
  17. }

  18. # 清理临时选择
  19. $mobile delete
  20. $ref delete
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Mathematica中文论坛-非官方 ( 辽ICP备16001491号-1

GMT+8, 2025-7-5 07:25 , Processed in 0.105910 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表