在查看文档几次并花了几个小时尝试各种想法之后,我决定需要一只手.我正在编写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个原子转化为一个"平均"原子(用于计算简化).
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)