Python 如何使用将enery排序的.traj(轨迹)文件转换为ID排序的文件?

Python 如何使用将enery排序的.traj(轨迹)文件转换为ID排序的文件?,python,genetic-algorithm,Python,Genetic Algorithm,这是论文问题的一部分,其中需要使用python中的Atomic Simulation Environment(ASE)库对已经能量排序的原子进行ID排序,然后通过for循环,找出最小能量以及找到能量最小(全局最小)的原子所需的迭代次数 我已使用sort\u traj\u by\u id的代码对所有候选.traj文件进行id排序,但无法获取所需内容 以下是主文件(test.py) 实际结果: nadir@nadir-Inspiron-3521:~/Desktop/ase_folder$ pytho

这是论文问题的一部分,其中需要使用python中的Atomic Simulation Environment(ASE)库对已经能量排序的原子进行ID排序,然后通过for循环,找出最小能量以及找到能量最小(全局最小)的原子所需的迭代次数

我已使用
sort\u traj\u by\u id
的代码对
所有候选.traj文件进行id排序,但无法获取所需内容

以下是主文件(test.py)

实际结果:

nadir@nadir-Inspiron-3521:~/Desktop/ase_folder$ python test.py
最小能量为7.30578716461 达到全局最小值的步骤数为1

在上述输出中,“达到全局最小值所需的步数为1”,因为原子按其能量排序,且第一个原子的能量最低,因此通过第一次迭代达到全局最小值。我必须不是通过能量而是通过它们的ID来排列原子,这样可以通过任意次数的迭代而不是每次一次来达到全局最小值

from ase.io import write,read
from optparse import OptionParser
from ase import *
import sys
fname  = sys.argv[1]
label = fname[:-5]
t = read(fname+'@:')   
t.sort(key=lambda x: x.info['confid'])
write(label+'_idsorted.traj', t)
nadir@nadir-Inspiron-3521:~/Desktop/ase_folder$ python test.py