目录

补充材料6:example3*.py\example4*.py\example5*.py脚本使用讲解

前言、关于脚本中的路径的书写

例如:

HBA_path=os.getcwd()+'/coskf-DES/HBA/'
HBD_path=os.getcwd()+'/coskf-DES/HBD/'
solute_path=os.getcwd()+'/coskf-DES/'

可以写成绝对路径,例如:

HBA_path='D:/ADF_DATA/example5_eutecticssolventscombinationcreening/coskf-DES/HBA/'
HBD_path='D:/ADF_DATA/example5_eutecticssolventscombinationcreening/coskf-DES/HBD/'
solute_path='D:/ADF_DATA/example5_eutecticssolventscombinationcreening/coskf-DES/'

但是请注意:

  1. 路径的斜杠是左斜杠
  2. 末尾也有一个斜杠
  3. 路径中避免中文字符、空格括号等

一、example3*.py

下载链接:hex_conf.zip

用途:指定一种溶质,多种配体(含多种异构体),计算不同组合的过剩焓,并作出条形图。

database_path = os.getcwd()+'/coskf-Hex-conf/'

这里是是指定溶质、配体的coskf文件位置,位于当前运行脚本的目录下的coskf-Hex-conf文件夹内。

sys_temp   = 298.15 # K

指定计算过剩焓的温度,因为我们并不知道共晶形成温度是多少,所以这个值无需修改。

solute_list=[
            ["CBZ_1.coskf","CBZ_2.coskf"],  #carbamazepine
            ["itz_c1.coskf"]                #itraconazole
          ]

允许我们指定多种溶质,每一行为一种。允许为每种溶质设定异构体,例如上例第一种溶质有2种异构体,第二种溶质没有异构体。

solv_list=[
           ["tartaric_acid_c1.coskf","tartaric_acid_c2.coskf","tartaric_acid_c3.coskf"], 
           ["PABA_1.coskf"] #p-Aminobenzoic acid
        ]

指定溶剂,方式类似溶质。

solute_ratio =[1,1,1,2,3]
solvent_ratio=[3,2,1,1,1]

遍历溶质溶剂配比:1:3、1:2、2:1、3:1

        settings.input.method = 'COSMORS'

指定计算方法为COSMORS,其他方法详见:补充材料2:Python脚本中修改计算方法,该性质推荐COSMORS。

二、example4*.py

下载链接:example4_eutecticpoints.rar

用途:两种已经知道能够形成低温共熔的组分,计算他们的共熔点。

method='COSMOSACDHB'

指定方法为COSMOSACDHB,该性质推荐COSMOSACDHB。

xexp=[0.86, 0.42, 0.40, 0.48, 0.44]             #x_HBA experimental value
texp=[-124.3, 16, 31, 12, 48]                   #C experimental value
texp=[x+273.15 for x in texp]                   #K experimental value
list_HBA_tm=[158.5,597,597,597,597]             #K    
list_HBD_tm=[273.15,406.5,373.8,407.5,354.1]    #K
list_HBA_hfus=[5.02,4.3,4.3,4.3,4.3]            #KJ/mol
list_HBD_hfus=[5.98,14.79,15.75,23.1,15.50]     #KJ/mol

三、example5*.py

下载链接:example5_eutecticssolventscombinationcreening.rar

用途与用法

对给定溶剂,遍历HBA与HBD的组合,看那种组合溶解度最高(输出图中负值越负,溶解度更高)

HBA_path=os.getcwd()+'/coskf-DES/HBA/'
HBD_path=os.getcwd()+'/coskf-DES/HBD/'
solute_path=os.getcwd()+'/coskf-DES/'

指定coskf的路径,包括HBA的路径、HBD的路径、溶质路径

method='COSMOSACDHB'
HBAs=['N2222-Cl.coskf','N2222_Br.coskf','Sucrose.coskf','Glycerol.coskf']
HBDs=['Malonic_acid.coskf','Propanoic_acid.coskf','Benzoic_acid.coskf','5PVA.coskf','Ethylene_glycol.coskf','1,2-Propanediol.coskf','Xylitol.coskf','Urea.coskf']

指定方法(推荐为)为COSMOSACDHB,然后分别指定HBA、HBD,后面会遍历两两组合。

temp=35+273.15

指定温度。

        x=[0.5,0.5,0.0]

这里指定HBA、HBD的摩尔比,第三项为溶质摩尔比,0代表使用的是无限稀释模型。

增加数据打印

该脚本输出的是一个图,形象地显示定性结果。如果用户希望打印具体数据,可以增加一行:

        print(HBDs[i],HBAs[j],data[i][j])

在脚本中体现为(在下面脚本的第五行处,注意对齐方式,不要减少空格):

前面省略
data=np.zeros((len(HBDs),len(HBAs)))
for i in range(len(HBDs)):
    for j in range(len(HBAs)):
        data[i][j]=np.log(result[j*len(HBDs)+i][0])
        print(HBDs[i],HBAs[j],data[i][j])

fig, ax = plt.subplots()
plt.contourf(X, Y, data, cmap='RdGy')
plt.xticks(x,[x.replace('.coskf','') for x in HBAs ])
plt.yticks(y,[x.replace('.coskf','') for x in HBDs ])
plt.title('IDAC of carnosic acid in DES(1:1) at 35C')
plt.colorbar()
plt.tight_layout()
plt.show()

如此,将在命令行中输出每种HBD-HBA组合下的溶解度: