24小时热门版块排行榜    

查看: 316  |  回复: 2
【奖励】 本帖被评价2次,作者pumbaa增加金币 2
当前主题已经存档。

pumbaa

金虫 (初入文坛)


[资源] 【讨论】关于hyperchem自动获取参数


使用hyperchem软件计算分子的描述符参数是比较简单的一件事,但是如果要计算很多的分子就必然需要能够自动计算并获取参数。我尝试使用Excel的vba功能通过DDE(动态数据交互)调用hyperchem,在该软件的安装目录的DirHyperchem/CDK/excel下有一个例子Hyper_VBA.xls,我在其基础上做了改进,代码如下:
Private Const n = 5, molpath$ = "C:\Hyper80\Samples\Aromatic\", hcpath$ = "C:\Hyper80\Program\"
Dim Channel, NewChan, wsn$, wbn$, datreq$(n)
Public Sub Calc()
On Error GoTo ErrorHandler
    datreq$(1) = "total-energy"
    datreq$(2) = "stretch-energy"
    datreq$(3) = "bend-energy"
    datreq$(4) = "torsion-energy"
    datreq$(5) = "nonbond-energy"
    Range("A2".Select   
    wsn$ = ActiveSheet.Name         ' Gets the names of the active worksheet and workbook
    wbn$ = ActiveWorkbook.Name
    MsgBox "Make sure this is the correct path of HyperChem & the needed files:" & Chr(13) & Chr(13) & hcpath$ + "chem.exe" & Chr(13) & "" & molpath$ & "filename.hin"
    Shell hcpath$ + "chem.exe", 6     '6 means non-selected iconized window.
    Channel = Application.DDEInitiate("HyperChem", "System"
###   NewChan = Application.DDEInitiate("HCQSAR", "System"
    Application.DDEExecute Channel, "[query-response-has-tag(no)]"
###    Application.DDEExecute NewChan, "[qsar-property logp]"
    CurrentCell = ActiveCell.FormulaR1C1
    Do While Not CurrentCell = ""
'Reads the molecule into the HyperChem and switches to Molecular Mechanic Calculation
        Application.DDEExecute Channel, "[file-format(hin)][open-file(" + molpath$ & Selection() & ".hin)]"
        Application.DDEExecute Channel, "[calculation-method molecular-mechanics]"
        Application.DDEExecute Channel, "[molecular-mechanics-method mm+]"
        Application.DDEExecute Channel, "[optim-algorithm polakribiere]"
        Application.DDEExecute Channel, "[optim-convergence 0.1]" '收敛标准
    Application.DDEExecute Channel, "[optim-max-cycles 100]" '最大优化回数
    Application.DDEExecute Channel, "[do-optimization]"
        Application.DDEExecute Channel, "[do-single-point]"        
###     Application.DDEExecute NewChan, "[do-calculation]"
###     Application.DDERequest NewChan, "[QSARResult]"
            For ci = 1 To n
                ActiveCell.Offset(rowOffset:=0, columnOffset:=ci).Value = Application.DDERequest(Channel, datreq$(ci))
            Next
        ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Select
        CurrentCell = ActiveCell.FormulaR1C1
    Loop
    Application.DDEExecute Channel, "[menu-file-exit]"
    Application.DDETerminate Channel
Exit Sub

ErrorHandler:    ' Error-handling routine.
    Dim Msg As String
    Dim Style, Response   
    Msg = "Error # " & Str(Err.Number) & " was generated by " _
     & Err.Source & Chr(13) & Err.Description _
     & Chr(13) & Chr(13) & "Resume?"
    Style = vbYesNo + vbCritical + vbDefaultButton2   
    Response = MsgBox(Msg, Style, "Error", Err.HelpFile, Err.HelpContext)   
    If Response = vbYes Then: Resume   
End Sub
不过很可惜,我始终不能调用QSAR计算模块,虽然我参照其文档使用了Application.DDEInitiate("HCQSAR", "System"(相关语句在代码中前面标示了###),运行时总是体现“不问访问远程数据”的诡异错误。
其中excel中内容为:
Molecule        Total        Stretch        Bend        Torsion        vdW
benzene
在此我仅作为抛砖引玉了,盼望有高人解决!!


[ Last edited by zdhlover on 2009-11-15 at 13:36 ]
回复此楼

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

samtyty

铁杆木虫 (著名写手)


★★★★★ 五星级,优秀推荐

这个要支持的,继续研究啊
2楼2009-06-07 16:16:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zeoliters

木虫 (正式写手)


★★★★★ 五星级,优秀推荐

优秀推荐
3楼2009-06-07 20:44:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 pumbaa 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703一志愿211 285分求调剂 +5 ly3471z 2026-03-13 5/250 2026-03-16 16:16 by 哦哦123
[考研] 283求调剂 +10 小楼。 2026-03-12 14/700 2026-03-16 16:08 by 13811244083
[考研] 277材料科学与工程080500求调剂 +3 自由煎饼果子 2026-03-16 3/150 2026-03-16 14:10 by 运气yunqi
[考研] 22408总分284求调剂 +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[考研] 289求调剂 +5 步川酷紫123 2026-03-11 5/250 2026-03-15 00:45 by kruisytel
[考研] 312求调剂 +6 陌宸希 2026-03-10 6/300 2026-03-14 00:40 by JourneyLucky
[考研] 0856材料与化工309分求调剂 +6 ZyZy…… 2026-03-10 6/300 2026-03-14 00:38 by JourneyLucky
[考研] 一志愿华中农业大学071010,总分三百二,求调剂 +3 困困困困坤坤 2026-03-10 3/150 2026-03-14 00:35 by JourneyLucky
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 329求调剂 +3 miaodesi 2026-03-12 4/200 2026-03-13 20:53 by 18595523086
[考研] 考研调剂 +4 芬达46 2026-03-12 4/200 2026-03-13 16:04 by ruiyingmiao
[考研] 一志愿211化学学硕310分求调剂 +8 努力奋斗112 2026-03-12 9/450 2026-03-13 15:41 by JourneyLucky
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-12 3/150 2026-03-13 14:30 by 求调剂zz
[考研] 268求调剂 +4 好运连绵不绝 2026-03-12 4/200 2026-03-13 10:45 by hyswxzs
[考研] 工科0856专硕化学工程269能调剂吗 +10 我想读研11 2026-03-10 10/500 2026-03-13 10:14 by Yuyi.
[考研] 290求调剂 +3 柯淮然 2026-03-10 8/400 2026-03-11 13:48 by 柯淮然
[考研] 0857环境调剂 +5 熠熠_11 2026-03-10 5/250 2026-03-11 10:59 by wang_dand
[考研] 化工0817调剂 +8 灿若星晨 2026-03-10 8/400 2026-03-10 22:44 by 星空星月
信息提示
请填处理意见