我正在为Modeler运行一个模型评估协议。它评估每个模型并将其结果写入一个单独的文件。但是,我必须为每个模型运行它,并写入单个文件。你知道吗
这是原始代码:
from modeller import *
from modeller.scripts import complete_pdb
log.verbose() # request verbose output
env = environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib') # read topology
env.libs.parameters.read(file='$(LIB)/par.lib') # read parameters
# read model file
mdl = complete_pdb(env, 'TvLDH.B99990001.pdb')
# Assess all atoms with DOPE:
s = selection(mdl)
s.assess_dope(output='ENERGY_PROFILE NO_REPORT', file='TvLDH.profile',
normalize_profile=True, smoothing_window=15)
我添加了一个循环来在一次运行中评估每个模型,但是我创建了几个文件(每个模型一个),我想在一个文件中打印所有评估
from modeller import *
from modeller.scripts import complete_pdb
log.verbose() # request verbose output
env = environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib') # read topology
env.libs.parameters.read(file='$(LIB)/par.lib') # read parameters
#My loop starts here
for i in range (1,1001):
number=str(i)
if i<10:
name='000'+number
else:
if i<100:
name='00'+number
else:
if i<1000:
name='0'+number
else:
name='1000'
# read model file
mdl = complete_pdb(env, 'TcP5CDH.B9999'+name+'.pdb')
# Assess all atoms with DOPE: this is the assesment that i want to print in the same file
s = selection(mdl)
savename='TcP5CDH.B9999'+name+'.profile'
s.assess_dope(output='ENERGY_PROFILE NO_REPORT',
file=savename,
normalize_profile=True, smoothing_window=15)
由于我是编程新手,任何帮助都会很有帮助!你知道吗
欢迎:-)看来你们很接近了。让我们介绍一下如何使用python函数和.format()语句。你知道吗
您的原稿有一个注释行
# read model file
,看起来它可能是一个函数,所以让我们试试看。它可能看起来像这样。你知道吗使用.format()我们可以得到多if语句检查10的结果?100? 1000? 基本上,format()用参数替换大括号。 它可能相当复杂,但你不需要全部数字化。你知道吗
示例:
'Hello {}!'.format('world')
产生Hello world!
。{:04d}
的内容使用格式,基本上就是说“请创建一个4个字符宽的数字子串,并用零填充它,所以您应该得到'0001', ..., '0999', '1000'
。 只要{:4d}
(没有前导零)就可以得到空格填充的结果(例如' 1', ..., ' 999', '1000'
)。 下面是关于零填充的更多信息:Display number with leading zeros相关问题 更多 >
编程相关推荐