小编gro*_*egg的帖子

如何使用MDAnalysis实例化Atoms?

在查看文档几次并花了几个小时尝试各种想法之后,我决定需要一只手.我正在编写Python软件,逐步完成RADA蛋白质的NAMD模拟,计算我们感兴趣的不同值.

目前,我的代码逐步完成每个时间步骤,然后逐步执行系统中的每个原子,执行各种分析步骤.

我需要做的是将每个氨基酸合并到它自己的"原子"中(氨基酸的单点表示,位于残基的质心).

我能够实例化新的Atoms,并将它们添加到MDAnalysis Universe吗?我可以使用我的氨基酸的质心,人类可读的名称等数据来填充这些新的Atoms吗?

就像是:

u = MDAnalysis.Universe(psf, coordDcd)
ag = u.selectAtoms(" the atoms in my amino acid ")
amino_acid = MDAnalysis.Atom
amino_acid.pos = ag.centerOfMass()
Run Code Online (Sandbox Code Playgroud)

我知道如何阅读NAMD模拟(.dcd文件)并且所有原子都表现得很好,但最终,我需要将~20个原子转化为一个"平均"原子(用于计算简化).

python mdanalysis

6
推荐指数
1
解决办法
150
查看次数

借用变量时的 Rust 生命周期语法

Rust 新手,试图自学等等。我陷入了一生的问题。我能找到的最接近的已发布问题是:

参数要求借用 _ 来表示“静态” - 我该如何解决这个问题?

我正在玩的小项目定义了两个结构,Agent并且Item

Agent除其他内容外,该结构还包含以下行:

pub inventory: HashMap<String, &'static Item>,

此外,我还实现了这段代码:

impl Agent {
    
pub fn take_item(&mut self, item: &'static Item) -> std::result::Result<(), TestError> {
        if item.can_be_taken {
            if self.can_reach_item(item) {
                self.inventory.insert(item.name.to_string(), item);
                return Ok(());
            } else {
                return Err(ItemOutOfReachError {});
            }
        } else {
            return Err(ItemCannotBeTakenError {});
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我写了一个单元测试,其中包括这一行

let result = test_agent.take_item(&test_item);
Run Code Online (Sandbox Code Playgroud)

我知道某个地方有错误,因为编译器告诉我:

  --> src/agent.rs:57:47
   |
57 |             let result = test_agent.take_item(&test_item);
   |                          ---------------------^^^^^^^^^^-
   |                          |                    | …
Run Code Online (Sandbox Code Playgroud)

reference lifetime rust borrow

6
推荐指数
1
解决办法
3081
查看次数

标签 统计

borrow ×1

lifetime ×1

mdanalysis ×1

python ×1

reference ×1

rust ×1