ACD/ChemBasic
Technical Info
"Beginners All-purpose Symbolic Instruction Code": Do you recall this old definition of BASIC?
ACD/ChemBasic is the ACD/Labs Chemical "Beginners All-purpose Symbolic Instruction Code". It both joins and customizes ACD/Labs utilities and serves as a powerful developer's tool.
It is a true macro programming language and much more! You have common statements and functions for dealing with numbers or texts. You also have built-in molecular objects and functions to manipulate them. And you have the objects and functionality of ACD/Labs programs!
A little ChemBasic macro can, for example,
- Get a molecule from the ACD/ChemSketch window, calculate its property, replace one fragment of it with another, and then recalculate the property, or
- Get a shorthand formula of an oligosaccharide like GalNAc(alpha1-3)Gal(beta1-4)[Fuc(alpha1-3)]Glc(betaOMe), for example, and convert it into a ChemSketch diagram, perform conformational analysis, and depict the most probable 3D-structures.
In fact, with ChemBasic you are limited only by your imagination!
ACD/ChemBasic allows you to customize ACD/Labs software for your own purposes, or interface your own programs to the ACD/Labs interface.
ACD/ChemBasic is a result of good design in ACD/Labs software. We have constructed our programs with meta-language variables and data structures that allow you to "drive" the software with very simple, very high-language control.
The meta-language commands consist of text that falls into one of three main categories:
- Read and write the ACD/Labs meta-language variables.
- Control the logical flow of the macros (if, then, do while, etc.).
- Invoke actions by ACD/Labs software.
Here's a sample portion of our sample labeling program, which is provided with ACD/ChemBasic. This will extract the name of the compound as a string and pass it back to the calling program:
Function GetIUPAC(Diagram as Object) as String
' Returns IUPAC name for ChemSketch's molecular diagram
Dim Asm As Object
Set Asm = Assemblies.AddCSImported(Diagram)
GetIUPAC = Asm.Molecules(1).GetIUPACName
Asm.Kill
End Function
There is a lot of flexibility and power in the command specification, allowing you full customization.
|