Material Studio+Peel脚本实现一键式操作--GO->AC->GO->std

一、使用场景

        对多个构建出来的分子模型进行几何优化,使用AC模块装填分子,生成10帧构象,对AC盒子进行几何优化,找出最小能量帧作为后续MD的模型,将帧与能量存储在std文件中。

二、Perl代码编写

#!perl

use strict;
use Getopt::Long;
use MaterialsScript qw(:all);

my $numdoc = 5;

#Go-AC-GO-MD-density
for (my $i = 1; $i <= $numdoc; $i++){

	#定义存储数据的文档
	my $statsDoc = Documents->New ("Fla_Ene_$i.std");
	$statsDoc->ColumnHeading (0) = "Flames";
	$statsDoc->ColumnHeading (1) = "Energy";
	
	#define working doc
	my $doc = $Documents{"$i.xsd"};

	#Go
	my $results1 = Modules->Forcite->GeometryOptimization->Run($doc, Settings(
	WriteLevel => "Silent",
	Quality => 'Ultra-fine', 
	CurrentForcefield => 'COMPASS', 
	ChargeAssignment => 'Forcefield assigned', 
	MaxIterations => 50000));
	
	#save,update 
	$results1->Structure->SaveAs("GO_$i.xsd");
	$doc = $Documents{"GO_$i.xsd"};
	
	#remove component and AC
	my $acConstruction = Modules->AmorphousCell->Construction;
	my $component = $doc;

	if($i>1){
		my $k = $i-1;
		my $removedoc = $Documents{"GO_$k.xsd"};
		$acConstruction->RemoveComponent($removedoc);
	}
	
	$acConstruction->AddComponent($component);
	$acConstruction->Loading($component) = 50;
	my $results2 = $acConstruction->Run(Settings(
	Quality => 'Ultra-fine', 
	OptimizeGeometry => 'No', 
	Configurations => 10, 
	CurrentForcefield => 'COMPASS', 
	ChargeAssignment => 'Forcefield assigned'));
	
	#update and delete
	$results2->Trajectory->SaveAs("AC_$i.xtd");
	$doc = $Documents{"AC_$i.xtd"};
	$Documents{"Status.txt"}->Delete;
	$Documents{"GO_$i.txt"}->Delete;
	$Documents{"GO_$i.xtd"}->Delete;
	
	#AC-Go
	my $results3 = Modules->Forcite->GeometryOptimization->Run($doc, Settings(
	WriteLevel => "Silent",
	Quality => 'Ultra-fine', 
	CurrentForcefield => 'COMPASS', 
	MaxIterations => 50000));
	
	#将帧与对应的能量保存在数据表中
	my $OutTrajectory = $results3->Trajectory;
	my $count = $OutTrajectory->NumFrames;
	
	for(my $j = 1; $j <= $count; $j++){
		$OutTrajectory->CurrentFrame = $j;
		$statsDoc->Cell($j-1,0) = $j;
		$statsDoc->Cell($j-1,1) = $OutTrajectory->FrameEnergy;
	}
	
	#save and delete
	$results3->Trajectory->SaveAs("AC_GO_$i.xtd");
	$Documents{"AC_$i.xtd"}->Delete;
	
	#输出完成情况信息
	printf "%d.xsd completed!\n",$i;
	
}


  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值