AU712188B2 - Computational method for designing chemical structures having common functional characteristics - Google Patents

Computational method for designing chemical structures having common functional characteristics Download PDF

Info

Publication number
AU712188B2
AU712188B2 AU49350/96A AU4935096A AU712188B2 AU 712188 B2 AU712188 B2 AU 712188B2 AU 49350/96 A AU49350/96 A AU 49350/96A AU 4935096 A AU4935096 A AU 4935096A AU 712188 B2 AU712188 B2 AU 712188B2
Authority
AU
Australia
Prior art keywords
affinity
receptor
false
character
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU49350/96A
Other versions
AU4935096A (en
AU712188C (en
Inventor
Jonathan M. Schmidt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Guelph
Original Assignee
University of Guelph
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Guelph filed Critical University of Guelph
Publication of AU4935096A publication Critical patent/AU4935096A/en
Publication of AU712188B2 publication Critical patent/AU712188B2/en
Application granted granted Critical
Publication of AU712188C publication Critical patent/AU712188C/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • CCHEMISTRY; METALLURGY
    • C07ORGANIC CHEMISTRY
    • C07KPEPTIDES
    • C07K1/00General methods for the preparation of peptides, i.e. processes for the organic chemical preparation of peptides or proteins of any length
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/30Detection of binding sites or motifs
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • G16B15/30Drug targeting using structural data; Docking or binding prediction
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/50Mutagenesis
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/50Molecular design, e.g. of drugs
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Molecular Biology (AREA)
  • Genetics & Genomics (AREA)
  • Analytical Chemistry (AREA)
  • Medicinal Chemistry (AREA)
  • Pharmacology & Pharmacy (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Organic Chemistry (AREA)
  • Computing Systems (AREA)
  • Biochemistry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Saccharide Compounds (AREA)

Description

FIELD OF THE INVENTION The present invention relates to a computer-based methods for designing chemical structures sharing common useful, functional properties based on specific combinations of steric configuration and binding affinity. More particularly the present invention provides a method for producing computer-simulated receptors which functionally mimic biological receptors. The simulated receptors are designed to exhibit optimized selective affinity for known target molecules. Chemical structures are then generated and evolved to exhibit selective affinity for the simulated receptors.
BACKGROUND OF THE INVENTION 0o0 10 Biological receptors are linear polymers of either amino acids or nucleotides that are 0 folded to create three-dimensional envelopes for substrate binding. The specific three-dimensional arrangements of these linear arrays, and the placement of charged sites on .the envelope surface are the products of evolutionary selection on the basis of functional *efficacy. Biological receptors including antibodies, enzymes, ribozymes and transport proteins to mention just a few bind selectively to specific sets of compounds and the S"stereospecific and selective interactions between the relevant molecular species forms the basis of antibody-antigen interactions, biological toxicity and drug design. Although non-specific binding occurs, the functionality of receptors is generally dependent on their capacity to bind with high affinity to a limited set of substrates. For example, the immune system of vertebrates relies on the ability of antibodies to bind to a specific set of antigens.
The selectivity of biological receptors depends upon differences in the strength of attractive and repulsive forces generated between the receptor and the substrate. The magnitude of these forces varies in part with the magnitude and proximity of charged sites
I
C
on the receptor and substrate surfaces. Charge sites can be formed by ionization of the substrate due to the addition or removal of electrons. Charge sites also arise in neutral, polar molecules due to asymmetrical sharing of electrons in covalent bonds. Electronegative atoms acquire partial negative charges by displacement of electrons away from less electronegative atoms.
The resulting charge asymmetry generates a local or atomic dipole moment. Charge sites can also be induced when an uncharged molecule is brought into close proximity with a charged site on the receptor surface. Under these conditions a partial displacement of the electron orbitals in the portion of the substrate close to the charge site on the receptor may 10 induce a net local charge. The strength of these induced charges varies with the susceptibility of the electrons in the affected portion of the substrate to displacement (polarizability), as :i well as the strength and proximity of the charged site on the receptor.
Because substrates differ in the number and magnitude of the charged sites present or induced on their surfaces, as well as the spatial arrangement of these sites, binding affinity can vary with substrate structure. Substrates with similar binding affinities for the same receptor have a high likelihood of sharing a common spatial arrangement of at least some of their induced and fixed charged sites. If the function of the receptor is correlated with binding affinity, then substrates with similar binding affinities will also be functionally similar in their effects. It is in this sense the receptor can be said to recognize or quantify similarities between the substrates.
Recent advances in molecular theory have made numerous contributions to the design of drugs, pesticides and polymers. Molecular theory provides tools based on quantum chemical techniques and a variety of methods that make use of molecular dynamics and 2 Monte Carlo simulations based on empirical potential energy functions. These methods are applied to the determination of the geometric and electronic structural properties of bioactive molecules and polymers. Two principal concerns in the development of these methods are the electronic characteristics charge-distribution, dipole and quadrapole moments and molecular electrostatic potential) and the nature of the active or functional conformation of a molecule.
A significant computational tool in this field is high-resolution force-field simulation based on data from simple experimental systems or ab initio quantum mechanical calculations. Similar approaches can be used to generate models of the distribution of charges 10 over a molecular surface. Such quantum chemical approaches can be applied to a wide variety of small molecules. However, these methods are limited by the significant number of torsional degrees of freedom and corresponding conformational complexity of large molecules.
An important focus of these studies is the description of stereospecific and selective *oU interactions between two molecular species, including antigens and antibodies or pharmacophores and target proteins. Such analyses at the level of individual molecules can be critical steps in the design of novel compounds with specific properties or functions.
Descriptions of molecular interactions can be made by empirical description of the participating molecular species, for example by NMR or X-ray crystallography. Alternatively, one or both of the participating molecules may be modelled by a chemical or computational surrogate or model. Antibodies generated for various pharmacophores and toxophores are used as structural models of the active sites of their targets. Phage display of antibody proteins can also be used to develop structural models of receptors and the 2a identification of selective ribozymes generated by combinatorial techniques represents a similar approach to the indirect description of biological target sites.
The structures of many protein receptor molecules have been determined by x-ray crystallography and NMR. This data is the basis for structure-based design of novel pharmaceutical agents (Kuntz, I. D. et al. (1982) J. Mol. Biol. 161: 269). When the proposed target protein cannot be identified or characterised directly, alternative computational techniques, including homology modelling (Blundell, T. L. et al. (1987) Nature, 326: 347), pharmacophore mapping (Martin, Y. C. et al. (1993) J. Comput.-Aided Design 7: 83) and comparative molecular field analysis (ComFA) (Cramer, R. D. et al. (1988) J. Am. Chem.
S 10 Soc. 110: 5959) have been used to design pharmacophores that can interact with the receptor.
Traditional methods used in molecular recognition to identify or discover novel chemical compounds or substrates for selective binding affinity to receptors are based on finding molecular common subgraphs of active substrates and using these to predict new, similar compounds. A drawback to this technique is that it presupposes substrates exhibiting a similar efficacy for binding are structurally similar. In many cases however structurally dissimilar substrates can exhibit similar binding affinities for the same receptor. More current techniques based on quantitative structure-activity relationships (QSAR) are suited only to developing novel compounds within the same structural class and is largely inadequate at developing new molecular structures exhibiting the desired selective affinity, see for example Dean, Philip "Molecular Recognition: The Measurement and Search For Molecular Similarity in Ligand-Receptor Interaction", in Concepts and Applications of Molecular Similarity, Ed. Mark A. Johnson and Gerald M. Maggiora, pp. 211-238 (1990).
2b Recent efforts have been directed at the construction of atomic models of either pseudoreceptors, in which atoms and functional groups are connected, or minireceptors, comprised of unconnected sets of atoms or functional groups (Snyder, J. P. (1993) In 3D QSAR in Drug Design: Theory, Methods and Applications; Kubinyi, H. Ed.; Escom, Leiden.
P. 336). Related methods involve surrounding known target ligands with a number of model atoms and calculation of the intermolecular forces generated between the ligand and the receptor model. Such models have a high correlation between calculated binding energy and biological activity (Walters, D. E. and Hinds, R. M. (1994) J. Medic. Chem. 37: 2527) but have not been developed to the point where novel chemical structures exhibiting selective S 10 affinity for the receptor models can be produced.
0 WO 97/36252 PCT/CA96/00166 Therefore, it would be very advantageous to provide a method for identifying non-trivial similarities between different chemical structures which are both sufficient and necessary to account for their shared properties which can then be used as the basis for the design of new chemical structures with useful functional properties based on specific combinations of steric configuration and binding affinity.
SUMMARY OF THE INVENTION The present invention provides a method for identifying non-trivial similarities between different chemical structures which are both necessary and sufficient to account for their shared functional properties. The process also provides a method of generating novel chemical structures that display similar functional properties.
The basic concept underlying the present invention is the use of a two-step computational process to design or discover chemical structures with useful functional properties based on specific combinations of steric configuration and binding affinity. In the first step of this process an algorithmic emulation of antibody formation is used to create a population of computer-generated simulated receptors that mimic biological receptors with optimized binding affinity for selected target substrates. In the second stage of the process the simulated or virtual receptors are used to evaluate the binding affinity of existing compounds or to design novel substrates with optimal binding.
The method described herein provides simulated receptors which mimic selected features of biological receptors, including the evolutionary processes that optimize their binding selectivity. The mimics or simulated receptors generated by the method can be used to recognize specific similarities between molecules. Like antibodies and other biological receptors, the simulated receptors generated by this invention are feature extraction mechanisms: they can be used to identify or recognize 0 M WO97/36252 PCT/CA96/00166 common or similar structural features of target substrates.
Binding affinity between the receptors and the target substrates is used as a metric for feature recognition. Target substrates can be quantitatively categorized on the basis of binding affinity with a specific simulated receptor. Compounds sharing specific structural features will also share similar binding affinities for the same virtual receptor.
Binding affinity between biological receptors and substrates is determined by the steric goodness of fit between the adjacent receptor and substrate surfaces, the exclusion of water between non-polar regions of the two surfaces and the strength of electrostatic forces generated between neighbouring charged sites. In some cases the formation of covalent bonds between the substrate and the receptor may also contribute to binding affinity. The simulated receptors generated by this process mimic the binding mechanisms of their biological counterparts. Average proximity of the receptor and target surfaces and the strength of electrostatic attractions developed between charged sites on both surfaces are used to calculate a measurement of binding affinity. The resulting values for binding affinity are used to evaluate substrate molecular similarities.
Binding affinity can be globally determined, that is, dependent upon interactions between the entire substrate surface and a closed receptor or receptor envelope that completely surrounds the substrate. In this case analysis of global similarities between substrates is appropriate as a basis for developing useful quantitative structure-activity relationships.
However, in most, if not all, biological systems, affinity is locally rather than globally determined. Interactions between substrate molecules and biological receptors are generally limited to contacts between isolated fragments of the receptor and the substrate surface. In this situation, analysis of global similarities between substrates is inappropriate as a method of developing structure-activity relationships, since only 'W WO 97/36252 PCT/CA96/00166 fragments of the substrate are directly involved in the generation of binding affinity.
Locally similar structures share similar structural fragments in similar relative positions and orientations.
Locally similar structures are not necessarily globally similar.
Sampling of molecular properties may be achieved by a total sampling strategy involving evaluation of global similarity; a fragment sampling strategy involving evaluation of local similarity; and multiple fragments sampling strategies involving evaluation of both local and global similarity.
The analysis of local similarities relies on sampling discrete regions of substrates for similar structures and charge distributions. In biological receptors, localized sampling arises due to the irregularity or bumpiness of the adjacent substrate and receptor surfaces. Interactions between closely opposed surfaces will predominant over interactions between more separated regions in the determination of binding affinity. The proximity of the adjacent surfaces will also determine the strength of hydrophobic binding. The effective simulated receptors generated by the present method must exploit discrete local sampling of target substrates (molecules) in order to evaluate functionally relevant similarities between compounds.
Analysis of local similarities is complicated by two factors: 1) the number, location and identity of the relevant fragments sufficient and necessary for specific binding affinity cannot usually be established by simple deduction from the chemical structure of the substrate; and 2) the positions and orientations of the sampled fragments are dependent upon the underlying structure of the whole molecule.
The part of the present method directed to the generation of simulated receptors capable of categorizing similarities between chemical substrates is essentially a search for receptors that sample the relevant fragments of the substrates at the relevant locations in space. The optimization process relies on four features of simulated receptors: 1) generality: SWO 97/36252 PCT/CA96/00166 wherein the receptors are able to bind with more than one substrate; 2) specificity: the binding affinity of the receptors varies with substrate structure; 3) parsimony: the receptors differentiate among substrates on the basis of a minimal set of local structural features; and 4) mutability: alteration of the structure of a receptor can change its binding affinity for a specific substrate. Encoding of the receptor phenotype in the form of a linear genotype represented by a character string facilitates the processes of mutation, recombination and inheritance of the structural characteristics of the simulated receptors.
Simulated receptors that satisfy these fundamental criteria can be optimized to obtain specific binding affinities for locally similar substrates using evolutionary selective breeding strategies. This is accomplished by encoding the spatial configuration and charge site distribution of the receptor in an inheritable format that can undergo alterations or mutations.
Like biological receptors, the simulated receptors generated by this method define a three-dimensional exclusion space. Such a three-dimensional space can be outlined to an arbitrary degree of resolution by a one-dimensional path of sufficient length and tortuosity. Proteins formed from linear polymers of amino acids are examples of such structures. Similarly the three-dimensional structure of simulated receptors can be encoded as a linear array of turning instructions. This one-dimensional encoded form of the receptor constitutes its genotype. The decoded form used to assess binding affinity constitutes its phenotype. During the optimization process alterations (mutations) are made to the receptor genotype. The effects of these changes on the binding affinity of the phenotype are subsequently evaluated. Genotypes that generate phenotypes with desirable binding affinities are retained for further alteration, until, by iteration of the mutation and selection process, a selected degree of optimization of the phenotype is achieved. A variety of evolutionary strategies, including classical genetic algorithms, WO 97/36252 PCT/CA96/00166 may be used to generate populations of simulated receptors with optimal binding characteristics.
Receptors generated by this method are then used to generate or identify novel chemical structures (compounds) which share the specific, useful properties of the molecular target species used as selection criteria in producing the simulated receptors. Using interaction with the receptors as selection criteria, novel chemical structures are evolved to optimally fit the receptors. Because these structures must meet the necessary and sufficient requirements for receptor selectivity, they are likely to also possess biological activity similar to that of the original molecular targets. The population of simulated receptors with enhanced selectivity may also be used to screen existing chemical structures for compounds with high affinity that may share these useful properties. The same process may also be used to screen for compounds with selected toxicological or immunological properties.
In one aspect of the invention there is provided a computer-based method of designing chemical structures having a preselected functional characteristic, comprising the steps of: producing a physical model of a simulated receptor phenotype encoded in a linear charater sequence, and providing a set of target molecules sharing at least one quantifiable functional characteristic; for each target molecule; calculating an affinity between the receptor and the target molecule in each of a plurality of orientations using an effective affinity calculation; (ii) calculating a sum affinity by summing the calculated affinities; (iii) identifying a maximal affinity; using the calculated sum and maximal affinities to: calculate a maximal affinity correlation coefficient between the maximal affinities and the quantifiable functional characteristic: WO 97/36252 PCT/CA96/00166 (ii) calculate a sum affinity correlation coefficient between the sum affinities and the quantifiable functional characteristic; using the maximal correlation coefficient and sum correlation coefficient to calculate a fitness coefficient; altering the structure of the receptor and repeating steps through until a population of receptors having a preselected fits coefficient are obtained; providing a physical model of a chemical structure encoded in a molecular linear character sequence, calculating an affinity between the chemical structure and each receptor in a plurality of orientations using said effective affinity calculation, using the calculated affinities to calculate an affinity fitness score; altering the chemical structure to produce a variant of the chemical structure and repeating step and retaining and further altering those variants of the chemical structure whose affinity score approaches a preselected affinity score.
In another aspect of the invention there is provided a method of screening chemical structures for preselected functional characteristics, comprising: a) producing a simulated receptor genotype by generating a receptor linear character sequence which codes for spatial occupancy and charge; b) decoding the genotype to produce a receptor phenotype, providing at least one target molecule exhibiting a selected functional characteristic, calculating an affinity between the receptor and each target molecule in a plurality of orientations using an effective affinity calculation, calculating a sum and maximal affinity between each target molecule and receptor, calculating a sum affinity correlation coefficient for sum affinity versus said functional characteristic of the target molecule and a maximal affinity correlation coefficient for maximal affinity versus said functional characteristic, and SWO97/36252 PCT/CA96/00166 calculating a fitness coefficient dependent on said sum and maximal affinity correlation coefficients; c) mutating the receptor genotype and repeating step b) and retaining and mutating those receptors exhibiting increased fitness coefficients until a population of receptors with preselected fitness coefficients are obtained; thereafter d) calculating an affinity between a chemical structure being screened and each receptor in a plurality of orientations using said effective affinity calculation, calculating an affinity fitness score which includes calculating a sum and maximal affinity between the compound and each receptor and comparing at least one of said sum and maximal affinity to the sum and maximal affinities between said at least one target and said population of receptors whereby said comparison is indicative of the level of functional activity of said chemical structure relative to said at least one target molecule.
In another aspect of the invention there is provided a method of designing simulated receptors mimicking biological receptors exhibiting selective affinity for compounds with similar functional characteristics, comprising the steps of: a) producing a simulated receptor genotype by generating a receptor linear character sequence which codes for spatial occupancy and charge; b) decoding the genotype to produce a receptor phenotype, providing a set of target molecules sharing similar functional characteristics, calculating an affinity between the receptor and each target molecule in a plurality of orientations using an effective affinity calculation, calculating a sum and maximal affinity between each target molecule and receptor, calculating a sum affinity correlation coefficient for sum affinity versus a functional characteristic for each target molecule and a maximal affinity correlation coefficient for maximal affinity versus said functional characteristic for each target molecule, and calculating a fitness coefficient dependent on said sum and I~I~I~ECIL~i~-ll~l~i~~ll~i~=ILI~T1I 1 WO 97/36252 PCT/CA96/00166 maximal affinity correlation coefficients for each target molecule; and c) mutating the genotype and repeating step b) and retaining and mutating those receptors exhibiting increased fitness coefficients until a population of receptors with preselected fitness coefficients are obtained.
In another aspect of the invention there is provided a computer-based method of designing chemical structures having a preselected functional characteristic, comprising the steps of: providing a physical model of a receptor and a set of target molecules, the target molecules sharing at least one quantifiable functional characteristic; for each target molecule; calculating an affinity between the receptor and the target molecule in each of a plurality of orientations using an effective affinity calculation; (ii) calculating a sum affinity by summing the calculated affinities; (iii) identifying a maximal affinity; using the calculated sum and maximal affinities to: calculate a maximal affinity correlation coefficient between the maximal affinities and the quantifiable functional characteristic; (ii) calculate a sum affinity correlation coefficient between the sum affinities and the quantifiable functional characteristic; using the maximal correlation coefficient and sum correlation coefficient to calculate a fitness coefficient; altering the structure of the receptor and repeating steps through until a population of receptors having a preselected fitness coefficient are obtained; providing a physical model of a chemical structure, calculating an affinity between the chemical structure and each receptor in a plurality of orientations using said effective SWO 97/36252 PCT/CA96/00166 affinity calculation, using calculated affinities to calculate an affinity fitness score; altering the chemical strucutre to produce a variant of the chemical structure and repeating step and retaining and further altering those variants of the chemical structure whose affinity score approaches a preselected affinity score.
In yet another aspect of the invention there is provided a method of encoding chemical structures comprising atomic elements, the method comprising providing a linear character sequence which codes for spatial occupancy and charge for each atom of said chemical structure.
BRIEF DESCRIPTION OF THE DRAWINGS The method of the present invention will now be described, by example only, reference being had to the accompanying drawings in which: Figure 1 is a flow chart showing relationship between genotype code creation and translation to produce a corresponding phenotype forming part of the present invention; Figure 2 is a flow chart showing an overview of the steps in the optimization of a receptor for selectively binding to a set of substrates using point mutations forming part of the present invention; Figure 3 is a flow chart showing an overview of the steps in the process of producing a population of related receptors with optimized selective binding affinity for a set of chemical substrates and using these optimized receptors for producing a set of novel chemical substrates with common shared functional characteristics; Figure 4a shows several chemical compounds used in the example relating to examples of ligand generation; Figure 4b shows ligands 1.1 to 1.4 generated by the method of the present invention in the example of ligand generation wherein each ligand has at least one orientation wherein it is structurally similar to benzaldehyde; and FIG. 4c shows ligands 2.1 to 2.4 generated by the method of the present invention in the example of ligand generation relating to design of chemical structural exhibiting an efficacy for repelling misquitoes.
DESCRIPTION OF THE PREFERRED EMBODIMENTS The method can be broken into two parts: evolution of a population of simulated receptors with selective affinity for compounds with shared functional characteristics and (B) t generation of novel chemical structures having the shared functional characteristics. Part (A) 10 comprises several steps including 1) receptor genotype and phenotype generation; 2) presentation of the known chemical structure(s) to the receptor; 4) evaluation of affinity of the receptor for the chemical structure(s); 5) assessing the selectivity of the receptor for the chemical structure(s); 6) stochastically evolving a family of related receptors with optimized selective affinity for the chemical structure(s); screening chemical substrates for toxicological and pharmacological activity and using the optimized receptors to design novel chemical
S
structure(s) with selective binding affinity for the receptors.
The following description of the best mode of the invention refers to various tables of molecular and atomic radius, polarizabilities, effective dipole values, and transition states and addition factors which values are found in Tables I to V located at the end of the description.
Flowcharts giving non-limiting examples of process calculations are attached to the end of the description in Modules 1 to
I
PART A: EVOLUTION OF POPULATION OF SIMULATED RECEPTORS EXHIBITING SELECTIVE AFFINITY FOR TARGET MOLECULES SHARING COMMON FUNCTIONAL CHARACTERISTICS Genotype Code and Receptor Phenotype Generation Both the simulated receptor genotypes and phenotype are computational objects. The phenotypes of the simulated receptors consist of folded, unbranched polymers of spherical subunits whose diameter is equal in length to the van der Waals radius of atomic hydrogen (=110 pm). The radius of the hydrogen atom was chosen as the lower limit of spatial resolution. In many biological receptors, the majority of the receptor surface is formed by 10 projecting hydrogen atoms. Subunits can be connected to each other at any two of the six points corresponding to the intercepts of the spheres with each of their principal axes. In the present implementation connections between subunits cannot be stretched or rotated and the "centers of two connected subunits are always separated by a distance equal to the length of their sides 1 hydrogen radius). Turns occur when two subunits are not attached to the opposite faces of their common neighbour. Four kinds of orthogonal turns are possible: left, S"right, up and down. Turns must be made parallel to one of the principal axes. For computational simplicity, if turns result in intersection with other subunits in the polymer, subunits are permitted to occupy the same space with other subunits.
A complete simulated receptor consists of one or more discrete polymers. In the case of receptors consisting of multiple polymers, the individual polymers can originate at different points in space. For computational simplicity, all polymers comprising a single receptor are chosen to be of the same length in this implementation (=number of subunits).
This restriction is not a requirement for functionality, and sets of polymers differing in length 13 may be useful for modelling specific systems.
The structure of each polymer is encoded as a sequential set of turning instructions.
The instructions identify individual turns with respect to an internal reference frame based on the initial orientation of the first subunit in each polymer. Encoding on the basis of an internal reference frame mimics the assembly of proteins and ribozymes more closely than encoding on the basis of an external coordinate system.
Hydration of the receptor and substrate are not treated explicitly in the current implementation, instead, it is assumed that any water molecules present at the binding site are attached permanently to the receptor surface and comprise an integral part of its structure.
0.0:: 10 This is an arbitrary approximation and those skilled in the art will appreciate that it could be *0*0 0 0- replaced by a more exact treatment (see, for example, VanOss, 1995, Molecular Immunology 32:199-211).
With reference to FIG. 1, the code creation module generates random strings of 0 characters. Each character represents either a turning instruction or determines the charge characteristics or reactivity of a point in the three-dimensional shape comprising the virtual S"receptor. A minimum of five different characters are required to create a string describing the three-dimensional shape of a receptor based on Cartesian (rectangular) coordinate framework. Other frameworks, e.g. tetrahedral structures can also be constructed using different sets of turning instructions. The characters represent turning instructions which are defined with respect to the current path of the virtual receptor structure in three-dimensional space the instructions refer to the intrinsic reference frame of the virtual receptor and not an arbitrary external reference frame). An external reference frame is defined arbitrarily outside the receptor structure as a three-dimensional coordinate system (rectangular, 14 cylindrical or spherical). The position of each subunit is specified by a triplet of coordinates y, and turns are specified by the resulting unit changes to these coordinates. For example x, y, z.fwdarw.x, y+l, z+l could specify a turn in an external rectangular coordinate system. An intrinsic reference frame is defined with respect to the path of the polymer, and without reference to an external coordinate system. In place of turning instructions defined in terms of incremental changes in coordinates, turning instructions are given with respect to the current direction and orientation of the polymer. Only left, right, up and down turns are permitted. If a turn does not occur the polymer can either terminate or continue in its current .e direction. The virtual receptors generated in the current implementation are based upon an 10 intrinsic reference frame.
While the receptor could be encoded using either an external or internal coordinate system, and codes can be interconverted, an internal coordinate system is preferred since the effects of mutation and recombination differ between coordinate systems. Particularly, mutations of codes based on external reference frames cause more restricted changes in phenotype architecture than similar mutations applied to codes based on internal reference p.
S"frames. Specifically, the spatial orientations of the portions of the phenotype derived from unmutated sections of the code are unaffected (conserved) when the code is based on an external coordinate system. In contrast, the orientation of the portion of the phenotype distal to both the attachment site of the polymer and the mutation site will be affected by mutation if an internal reference frame is employed. As a result, the impact of point mutations on the receptor phenotype is generally greater when codes based on an internal reference frame are used. The three-dimensional tertiary structures of both proteins and ribozymes are partially based on internal reference frames (bond angles between adjacent peptides).
For a rectangular system the minimum character set is: C,=no turn; C 2 =right turn;
C
3 =left turn; C 4 -up turn; and C,=down turn. It will be understood that instructions could be combined to create diagonal turns e.g. A,, 2
CC
2 A2, C 2 C etc. The number of different characters that determine different charge or reactivity states is unrestricted and may be adjusted according to empirical evidence. Codes may differ both in length (number of characters) and frequency with which specific characters appear in the series.
Example Of Genotype Creation The following example of a genotype code creation and phenotype expression will be o understood by those skilled in the art to be illustrative only. In this example the following 10 conventions are employed.
The character set used to generate the codes consists of five characters referring to turning instructions and two characters identifying a charged site: "0"=no turn; "l"=right turn; "2"=up turn; "3"=left turn; "4"=down turn; "5"=positively charged site (no *1 turn); and "6"=negatively charged site (no turn).
15 Subunits are of two types: charged or uncharged. All charged subunits are S" assumed to carry a unitary positive or negative charge. The uniform magnitude of charges is an arbitrary convention. It will be understood that receptors may also be constructed using subunits with different charges. The use of uniform charges in the present instance is a computational simplification. It also reduces the number of factors influencing the strength of electrostatic interactions between the receptor and substrate to two: the magnitude of the charge on the substrate; and the distance between the charge sites.
The receptors comprise 15 discrete polymers. The length of the complete code is always a multiple of fifteen. The length of each polymer is equal to the total code length divided by fifteen. It will be understood that receptors can be constructed from any number of discrete polymers of varying or constant length.
The following parameters are set by the user: total code length (and polymer length); the frequency with which each character occurs in the code string; and the occurrence of character combinations. Module I gives a flowchart of a sample of genotype code creation.
Example of Receptor phenotype Creation oEach genotype code is translated to create the three-dimensional description of its S: 10 corresponding phenotype or virtual receptor. From a predefined starting point a translation 9. algorithm is used to convert the turning instructions into a series of coordinate triplets which d t..
describe the position in 9*99 9* 9g IWO 97/36252 PCT/CA96/00166 space of the successive subunits comprising the receptor polymers. The starting coordinates for each polymer must be given prior to translation. The translation assumes that centers of successive subunits are separated by a distance equal to the covalent diameter of a hydrogen atom.
The translation algorithm reads the code string sequentially to generate successive turns and straight path sections. The interpretation of successive turns with respect to an external coordinate system depends upon the preceding sequence of turns. For each polymer comprising the receptor, the initial orientation is assumed to be the same. In the current implementation, the translation algorithm is described by TABLE I giving the input and output states. If no turn occurs, the most recent values for Ax, Ay,Az and new state are used to calculate the new coordinate triplet. Charge sites are treated as straight (no turn) sections. The initial value of old state is The following parameters can be set by the user: a. Starting coordinates for each polymer comprising the receptor.
Output is stored as a. Three vectors (one for each axes: {xl, x 2 XnJ, {Z1..-Zo b: A three-dimensional binary matrix.
c. Separate vectors for charge site coordinates. A sample process of code translation is give in Module 2.
Target Generation Targets are represented as molecules consisting of spherical atoms. The atoms are considered to be hard spheres with fixed radii characteristic for each atomic species. The hard sphere radius at which the repulsive force between the target atoms and the virtual receptor is considered to be infinite is approximated by the exposed van der Waals radius given in TABLE 2. Other estimated values of the van der Waals radius can be used in place of those in TABLE 2.
1. WO 97/36252 PCT/CA96/00166 The distance between the atomic centers of two atoms connected by a covalent bond is expressed as the sum of their covalent bond radii. Covalent bond radii vary with bond order and atomic species. Examples of suitable values of bond radii are given in TABLE 3. As a first approximation, bond length is assumed to be fixed bond vibrations are ignored). Bond rotation is permitted, and multiple configurations of the same structure are required to sample representative rotational states. Configurational stability is not considered because binding with the virtual receptor may stabilize otherwise energetically unstable configurations. Various enery minimization algorithms can be applied to the generation of target ligands.
Electrical charges arising due to bond dipole moments are considered to be localized at the atomic nuclei. The negative charge is carried by the atom with the larger electronegativity.
The dipole values used in the current implementation are given in TABLE 4.0ther estimated values of dipole values can be used in place of those in TABLE 4.
Target Presentation The affinity of the each target for the simulated receptor(s) is tested for several orientations of the target relative to the upper surface of the receptor. The upper surface is defined by the translation algorithm. Prior to the evaluation of binding affinity, the target and receptor must be brought into contact. Contact occurs when the distance between the centers of at least one subunit of the receptor and at least one atom of the target is equal to their combined van der Waals radii. In order to determine the relative positions of the target and receptor at the point of contact, the target is shifted incrementally towards the receptor surface along a path perpendicular to the surface and passing through the geometric centers of both the receptor and the target. When contact occurs, the target has reached its collision position relative to the receptor. The translated positions of the target atoms when the collision position is reached are used to calculate distances between the atoms of the target and the subunits of the receptor. These distances are used to calculate the strength of electrostatic interactions and proximity.
In the current implementation, the target is assumed to travel in a straight line towards the receptor, and to retain its starting orientation at the time of contact. An alternative approach would allow the target to incrementally change its orientation as it approached the receptor so that the maximal affinity position was achieved at the point of contact. Although this method is functionally similar to that implemented, it is much more computationally 4o4* complex. In the current implementation, multiple orientations are tested at lower 10 computational effort. The current implementation allows for adjustable displacement of the path along the x and/or y axis of the receptor to accommodate larger molecules. This feature is required to enhance selectivity when molecules differing in size are tested on the same receptor.
Prior to the calculation of the collision position, the orientation of the target is randomized by random rotation in 6.degree. increments around the x, y, and z axes. Each of 4 these random orientations of the target is unique in a given test series. The reliability of the optimization process is dependent upon the number of target orientations tested as well as the number of target compounds evaluated. A sample process for target presentation is given in Module 4.
Calculation of Affinity Approximation Strategy An exact calculation of the interaction energy between the targets and virtual receptor is neither practical nor desirable. The optimization of the simulated receptors requires 18 ~I multiple testing of numerous target-receptor pairs. The number of pairs tested per unit time is dependent on the time required to evaluate the affinity of each pair. Although the use of more accurate affinity calculations may result in greater discriminatory capacity, this gain will be at the price of increased computational effort. Furthermore, some components of the total interaction energy do not yet have an exact quantitative treatment, for example hydrogen bonding and hydrophobic interactions. The current implementation is based on a simplified approximation that evaluates the principal components of affinity with relatively little computational effort. The approximation is developed in the following sections. However, it will be appreciated by those skilled in the art that more exact affinity calculation procedures .S 10 may be utilized which give a more exact affinity value. Known computational packages for So.
calculating more accurate affinity values may be used directly in the present process.
Quantitative evaluation of the electrostatic interactions between receptor and ligand (or host and guest molecular complexes) requires a detailed description of the electron density distributions of the interacting molecules. However, in general the size of the molecules involved, particularly polypeptides, makes ab initio calculations of the electronic structure very difficult. This problem is often aggravated by the large number of torsional degrees of freedom and lack of knowledge concerning the conformations of the interacting molecules during binding.
Studies of crown ethers indicate that the electron density distribution of small molecules can be used to describe the electron densities of larger compounds (Bruning, H.
And Feil, D. (1991) J. Comput. Chem. 12: Hirshfeld's stockholder method can be used to define strictly local charge distributions that are subsequently characterized by charge and dipole moment (Hirshfeld, F. L. (1977) Theor. Chim. Acta 44: 129). The result is the division 19 of the total electron density distribution of the molecule into overlapping atomic parts, the sizes of which are related to the free atomic radii.
Unfortunately these methods do not yield reliable values for binding energies and are largely restricted to electrostatic interactions that can be derived from electron density distributions. However, it is possible to demonstrate in crown ethers that the major components of electrostatic interactions are determined by local rather than global transfers of charge between atoms. Charge distribution is mainly determined by short range effects due to different chemical bonds. In particular, non-neighbouring atoms contribute little to atomic dipole moments. In addition, although charge transfer between atoms is also influenced by 10 the electrostatic field of the whole molecule, calculations for crown ethers show only a very small influence on the charge distribution.
Calculated stockholder atomic charges and dipole moments can be used to describe electrostatic interactions (Bruning, H. And Feil, D. (1991) J. Comput. Chem. 12: Beyond the van der Waals radius there is only a minor contribution from the atomic quadrapole moments. Calculations of the electrostatic potential that take only atomic charges into OS account give very poor results, whereas use of the dipole moments generates improved values.
Based on these considerations, the method of the present invention incorporates an approximation of affinity between the target ligand and the simulated receptor(s) and between the WO 97/36252 PCT/CA96/00166 simulated receptor(s) and chemical structure(s) being designed based on two measures.
i. The magnitude of the electrostatic forces generated between the charged subunits of the simulated receptor(s) and the atomic dipoles of the target ligand (chemical structure) Because the charged subunits are assumed to carry nontransferrable unit charges, the magnitude of these forces is directly proportional to the magnitude of the atomic dipole and inversely proportional to the distance between the simulated receptor and the atomic dipole of the ligand.
2. The proportion of the non-polar or uncharged subunits of the simulated receptor sufficiently close to the non-polar regions of the ligand for the generation of significant London dispersion forces.
Assumptions Used For Affinity Calculation In The Current Implementation: i. The chemical substrate targets evaluated by the current implementation are assumed to be neutral not ionized) molecules. This is an arbitrary limitation, and an implementation applicable to charged and uncharged targets can be developed using the same methodology.
2. The dipole moments are assumed to be localised at the atomic nuclei. A similar analysis of affinity could be made assuming the dipole moment to be centered on the covalent bond. According to Allingham et al. (1989), these assumptions are functionally equivalent.
3. The environment surrounding the virtual receptor is assumed to be a solvent system in which the target occurs as a solute.
The target is effectively partitioned between the solvent and the virtual receptor.
4. At the instant for which the affinity is calculated, the target and receptor are assumed to be stationary with respect to each other, and in a specific, fixed orientation.
WO 97/36252 PCT/CA96/00166 The targets are assumed to interact with only two types of site on the receptor surface: fixed charge sites (either negatively or positively charged) and non-polar sites.
On the basis of these assumptions, it is only necessary to consider the following contributions to the strength of the interaction: 1. Charge-Dipole
-Q
2 g 2 /6 (4ne) 2 kTr 4 2. Charge-Non-polar -Q2a/2(4ne) 2 r 4 3. Dipole-Non-polar (Debye energy) 2 a/(4ne) 2 r 6 4. Non-polar-Non-polar (London energy) 75[hva 2 /(4ne) 2 r 6 In the current implementation, only relative strengths are considered by the approximation, therefore all constants are ignored. In addition the fixed charge site is assumed to be unitary and either positive or negative. On this basis, the four components can be rewritten in simplified form: 1. Charge-Dipole -y/r 4 or -/r 2 2. Charge-Non-polar -a/r 4 3. Dipole-Non-polar (Debye energy) 2 ax/r 6 or s /r 4. Non-polar-Non-polar (London energy) -a 2 /r 6 or -a/r 3 In general, terms 2 and 3 make only small contributions to long-range interactions. However, both 1 and 4 contribute significantly to the interaction energy. In the current implementation, most interactions between non-polar fragments are assumed to occur between adjacent alkyl and aromatic hydrogens and the non-polar subunits of the receptor. Under these conditions the value of a is assumed to be approximately constant.
HydroDhobic Strenath and Water Exclusion Contribution Solvation effects are important considerations in the generation of binding affinity. For example, hydrophobic bond formation relies upon the close spatial association of nonpolar, hydrophobic groups so that contact between the hydrophobic regions and water molecules is minimized.
Hydrophobic bond formation may contribute as much as half of the total strength of antibody-antigen bonds. Hydration of the WO 97/36252 PCT/CA96/00166 receptor and substrate surfaces is also a significant factor.
Water bound to polar sites of either the receptor or substrate surface can interfere with binding or increase affinity by forming cross-bridges between the surfaces.
The hydrophobic interaction describes the strong attraction between hydrophobic molecules in water. In the case of receptor-target interactions it is taken to refer to the attraction between the non-polar fragments of the target and adjacent domains of non-polar receptor subunits. The effect arises primarily from entropic effects resulting in rearrangements of the surfaces so that water is excluded between adjacent non-polar domains. Exact theoretical treatments of the hydrophobic interaction are unavailable, however, it is estimated that hydrophobic forces contribute as much as 50% of the total attraction between antibodies and antigens. In order to estimate the hydrophobic interaction between targets and virtual receptors, the present implementation evaluates the proportion of the receptor that is effectively shielded from solvation by binding with the target. All non-polar (uncharged) subunits that are within a fixed distance of non-polar atoms on the target are considered to be shielded from solvation by solvent molecules of diameter equal to or greater than the limiting distance.
Combined Affinity Calculation The combined affinity calculation used in the current implementation combines two measures of interaction: the summed strengths of the charge-dipole interactions and a proximity measure. These affinities are assumed in the current implementation to be isotropic. It will be appreciated by those skilled in the art that greater discriminatory power may be obtained if anisotropic calculations of affinity are used, although these are computationally more complex.
The charge-dipole interaction is calculated as D=Zpg/rj v where i= the dipole moment of the ith atom of the target and rij= the distance between the ith atom and the jth charge site on the Il=~ir~LI~LI-~ill----L IC WO 97/36252 PCT/CA96/00166 receptor, and the coefficient v can be set to 2, 3, or 4. The contribution of D to the total affinity is more sensitive to charge separation for larger values of v.
The proximity measure is calculated as P=En 1 where n.=the number of uncharged subunits of the receptor that are separated by a maximum distance of a from the ith atom of the target with a dipole moment 0.75 Debye. In the current implementation, a can range from 1 to 4 subunit diameters (this approximates the van der Waals radius of water). N is the total number of subunits comprising the receptor.
An affinity value A is calculated from D and P using the following relationship A=[P(D+NP/k)] 5 where k is a fitting constant (in the current implementation, k=10000). The value of P in the equation serves two roles. In the first instance it is a weighting factor. As a measure of 'goodness of fit' it is use to bias the affinity value in favour of those configurations in which the non-polar regions of the target and receptor are in close contact. Under these conditions, hydrophobic interactions and non-polar interaction energies will be large and will contribute significantly to the stability and strength of the bond. Under these conditions the target has fewer possible trajectories to escape from the receptor and its retention time will be prolonged. In the second instance P is used to estimate the contribution of the dispersion energy to the strength of the interaction. It is assumed that the dispersion energy will only be significant for uncharged, non-polar regions, and that it is only significant when the target and receptor are close to each other within a of each other). The values of k and a can be adjusted to alter the relative contribution of P and D. In general, p dominates for non-polar targets, whereas D is more significant for targets with large local dipoles. Hydrogen bonding is approximated by paired negatively and positively charged receptor units interacting simultaneously with target hydroxyl, carboxylic or amine functional groups.
WO 97/36252 PCT/CA96/00166 Alternative Approaches to Affinity Calculation-Bond Polarizability It may be advantageous is certain cases to introduce a parameter corresponding to the relative polarizability of the target atoms into the affinity calculation. In this case the equation for calculating P 2 in A=[P(D+NP 2 5 is not P 2 =Fn/N.
Instead, P 2 is calculated as P 2 Zain/N; where ni=the number of either charged or uncharged subunits of the receptor that are separated by a maximum distance of a from the ith atom of the target and oa is the relative polarizability of the ith atom of the target. For simplicity cH could be set to 1.0 for aliphatic hydrogen. The value of k must be adjusted if polarizabilities are used. Sample polarizabilities based on the sums of adjacent bond polarizabilities are given in TABLE V.
Since polarizability is associated with displacement of the electron cloud, the polarizability of a molecule can be calculated as the sum of the characteristic polarizabilities of its covalent bonds. This additivity holds for non-aromatic molecules that do not have delocalized electrons.
Alternative Techniques-Functional Group Specificity The affinity approximation used in the current implementation could be replaced by functionally similar computations that preserve the relationship between local charges, dispersion energy and target-receptor separation. In addition, affinity measures for charged targets could be constructed. The present implementation evaluates only noncovalent interactions, however, the method could be expanded by including in the virtual receptor subunits capable of specific covalent bond-forming reactions with selected target functional groups. Module 5 provides a sample flowchart of the preferred effective affinity calculation used in the present invention.
Assessment of Selective Affinity Goodness of fit between a virtual receptor and a set of target substrates is evaluated by comparing the known activity or affinity values for the targets with those obtained for the virtual receptor-target complex. The maximal affinities of an optimally selective virtual receptor should be strongly correlated with known affinity measures. Successive iterations of point mutations can be used to enhance this correlation between a set of substrates and a virtual receptor (FIG. 2) or for optimizing selectivity of a population of virtual receptors successive iterations of the evolutionary process may used to enhance this correlation (FIG.
3).
Known values can be any index known or suspected to be dependent upon binding affinity, including (but not limited to) ED 50
ID
5 0 binding affinity, and cohesion measures.
The values tested must be positive. Logarithmic transformation of the data may be required.
Unweighted rank data cannot be used.
The optimal orientation of the targets for maximal binding affinity is unknown prior to testing. In order to obtain a representative measure of the range of receptor-target affinity, S each target must be tested repeatedly using different random orientations relative to the i: receptor surface Each test uses Module 5 to evaluate affinity. In general, the reliability of the :.15 maximal affinity values obtained depends upon the sample size, since it becomes increasingly likely that the sample will contain the true maximal value. The same set of target orientations is used for testing each receptor.
Two techniques are employed in the current implementation to circumvent the need for large sample sets for the generation of optimized receptors: 1) the use of a measure 20 combining average (or sum) affinity and maximal affinity to select for receptors with higher selectivity; and 2) incremental increases in the number of orientations tested with successive iterations of the optimization process (optimization begins with a small set of target orientations, as receptors of greater fitness are generated, more orientations are tested).
In the current implementation, the sum is calculated for the affinity values obtained for all the tested orientations of each target. This sum affinity score is a measure of the average 0 0 0.0*0* 0* 0 0 WO 97/36252 PCT/CA96/00166 affinity between the receptor and the target. At the same time, the maximal affinity value is also determined.
Correlations between the known values and both the sum affinity rS and the maximal affinities rA 2 are calculated. The origin is included in the correlation, based on the assumption that target compounds showing no activity should have little or no affinity for the virtual receptor. This assumption may not always be valid, and other intercept values may be required in some tests.
The correlation of using sum affinity is a measure of the average goodness of fit. If this correlation is large, but the correlation between maximal affinity and known affinity is weak, the result suggests that the virtual receptor is not selective, i.e. multiple orientations of the target can interact effectively with the receptor. Conversely, if the maximal affinity is highly correlated with known affinity values and the correlation with sum affinity is weak, the virtual receptor my be highly selective. If both sum affinity and maximal affinity are highly correlated with known affinity, it is probable that the orientations sampled have identified the response characteristics of the receptor with limited error (both type I and type II errors are reduced: the likelihood of either a false positive or false negative result). In some cases it may be more appropriate to minimize the correlation between the known affinities and the sum affinity, while selecting for an increased correlation between maximal affinity and known affinity. Such a selection would require subtraction of the maximal affinity values from the sum total in order to remove these values as a source of confounding bias.
In the current implementation, a joint correlation value is used as the basis for receptor selection. This value is calculated as the square root of the product of the sum affinity and maximal affinity M X r 2 0 This value is optimized by the evolutionary process applied to the virtual receptors.
Note: If r.
2 and r 2 are strongly correlated with each other, then the values contributing to r,, 2 must either individually correlate closely with the maximal affinity value or contribute negligibly to the sum. Alternatively the correlation (rSAm) for the (sum affinity-the maximal affinity) vs known affinity can be calculated and the measure F=(r, 2 x(1-rA2)) 05 is maximized. Use of this measure will select for receptors that have high affinity for a very limited set of target orientations. Module 6 provides a flowchart of a sample goodness of fit calculation.
The Optimization Process The objective of the optimization process is to evolve a virtual receptor that has selective affinity for a set of target receptors. A highly efficient mechanism for finding solutions is required, since the total number of possible genotypes containing 300 instructions is 7300 or about 10253. The following four phases summarize the steps in the optimization process whereinafter each phase is discussed in more detail and example calculations given.
15 PHASE 1: Generate a set of random genotypes and screen for a minimal level of activity.
Use selected genotype as basis for further optimization using genetic algorithm (recombination) and unidirectional mutation techniques.
S S .,«PHASE 2: Mutate selected genotype to generate a breeding population of distinct but related genotypes for recombinations. Chose most selective mutants from population from population for recombination.
PHASE 3: Generate new genotypes by recombination of selective mutants. Select from the resulting genotypes those with the highest affinity fitness. Use this subpopulation for the next recombinant or mutation generation.
PHASE 4: Take best recombination products and apply repeated point mutations to enhance selectivity.
Phase I: Evolution-generation of Primary Code The Genetic Algorithm developed by Holland (Holland, J. H. (1975) Adaptation in Natural and Artificial Systems. U. Michigan Press. Ann Arbour) can be used to search for optimal solutions to a variety of problems. Normally this technique is applied using large, initially random sets of solutions. In the present implementation the technique is significantly modified in order to reduce the number of tests and iterations required to find virtual receptors with high selectivity. This has been accomplished by using a set of closely related genotypes as the initial population and the application of high rates of mutation at each iteration. For any set of target compounds it is possible to develop distinct receptors with optimal affinity characteristics. For example, receptors may bind optimally to the same targets but in different orientations. The use of an initial population of closely related *o S.genotypes increases the likelihood that the optimization process is converging on a single 15 solution. Recombination of unrelated genotypes, although it may generate novel genotypes of increased fitness, is more likely to result in divergence.
The objective of the first stage in the optimization process is to generate a genotype with a minimal level of affinity for the target set. This genotype is subsequently used to generate a population of related genotypes. A flowchart of a sample process for generation 20 of a genotype with a minimum level of affinity is given in Module 7.
Phase 2: Evolution-Mutation of Primary Code Mutation of the genotype comprises changing one or more characters in the code.
Mutations in the current implementation do not alter the number of subunits comprising the receptor polymers and do not affect the length of the genotype. It will be appreciated that these conventions are arbitrary, and it will be understood that variants may have utility in some systems.
Mutations can alter the folding pattern of the phenotype, with resulting changes in the receptor shape space and the location or exposure of binding sites. Mutations that affect the configuration of peripheral regions of the phenotype can result in shifts of the receptor center relative to the target center.
Neutral mutations All mutations alter the structure of the phenotype, however, not all mutations result in .changes in the functionality of the receptor. Such neutral mutations may alter components of the receptor that do not affect affinity. In some cases these neutral mutations can combine *o 15 with subsequent mutations to exert a synergistic affect.
The Breeding Population The objective of the second phase of the evolutionary process is the generation of a population of distinct but related genotypes derived from the primary genotype. Members of this population are subsequently used to generate recombinants. This breeding population is 20 created by multiple mutation of the primary genotype. The resulting genotypes are translated and screened for selectivity. The most selective products are retained for recombination.
Module 8 gives a flowchart for a sample process for multiple mutation of a genotype.
Phase 3: Evolution-Recombination The objective of recombination is the generation of novel genotypes with increased fitness. Recombination facilitates the conservation of genotype fragments that are essential for phenotypic fitness, while at the same time introducing novel combinations of instructions.
In general, recombination coupled with selection results in rapid optimization of selectivity.
Module 9 gives a flowchart for a sample process for multiple mutation of a genotype.
The current implementation retains the population used for recombination for testing in step 7 of Module 9. This ensures that genotypes with high selectivity are not replaced by genotypes with lower selectivity. In addition, in the current implementation, mutations (Module 7) are applied to 50% of the recombinant genotypes prior to testing (Step 7-module This step increases the variability within the recombinant population. The test populations used in the current implementation range in size from 10 to 40 genotypes. This is a relatively small population size. Under some conditions, larger populations may be required.
Phase 4: Evolution-Maturation o 15 Progressive Micromutation Technique :The final stage in the optimization process mimics the maturation of antibodies in the mammalian immune system. A series of single point mutations are applied to the genotype, and the effect on phenotypic fitness is evaluated. Unlike recombination, this process generally results in only small incremental changes to the selectivity of the phenotype. The maturtion 20 process uses a Rechenberg evolutionary strategy (Rechenberg, I. (1973), ."0 Evolutionsstrategie. F. Frommann. Stuttgart). At each generation the fitness of the parental genotype is compared to that of its mutation product, and the genotype with the greater selectivity is retained for the next generation. As a result, this process is strictly unidirectional, since less selective mutants do not replace their parents.
During each iteration of the maturation process, only a single instruction in the code is changed. If a parent and its mutation product have the same selectivity, the parent is replaced by its product in the next generation. This method results in the accumulation of neutral mutations that may have synergistic effects with subsequent mutations. This convention is arbitrary. Module 10 provides a flowchart for a sample maturation process.
If recombination or maturation do not generate improved selectivity after repeated iterations, it may be necessary to repeat Phase 2 in order to increase the variability of the breeding population genome.
a* a p 3 O WO 97/36252 PCT/CA96/00166 Selected Applications The process of the present invention can be used in several areas including: 1) screening for compounds with selected pharmacological or toxicological activity; and 2) development of novel chemical structures with selected functional characteristics. Both applications and examples are provided hereinafter.
1A) Screening Method A population of receptors that have been evolved for selective affinity for a specific group of compounds sharing similar pharmacological properties can be used as probes for the identification of other compounds with similar activity, provided this activity is dependent upon binding affinity. For example, a population of receptors could be evolved to display specific affinity for salicylates. If the affinity of these receptors for salicylates closely correlates with the affinity of cyclooxygenase for salicylates, the receptors must at least partially mimic functionally relevant features of the binding site of the cyclooxygenase molecule. These receptors can therefore be used to screen other compounds for possible binding affinity with cyclooxygenase.
This technique can also be applied to screening compounds for potential toxicological or carcinogenic activity. For example, receptors could be evolved that mimic the specific binding affinity of steroid hormone receptors. These receptors could then be used to evaluate the affinity of pesticides, solvents, food additives and other synthetic materials for possible binding affinity prior to in vitro or in vivo testing.
Simulated receptors may also be constructed to detect affinity for alternate target sites, transport proteins or non-target binding.
IB) Screening For Sub-Maximal Activity In some instances compounds with high affinity may have deleterious side effects or may be unsuitable for chronic administration. In this case, compounds with lower binding affinity may be required. Techniques such as combinatorial synthesis do not readily generate or identify such compounds. In contrast, simulated receptors could be used to effectively screen for structures that display binding affinity of any specified level.
1C) Measuring Molecular Similarity The selectivity of the simulated receptors can be used as a quantitative measure of molecular similarity.
Example of a Software Implementation Appendices A, B, and C are attached. Appendix A is a computer program written in Microsoft Visual Basic 3.0 which can be used to generated simulated receptors. Appendix B is a computer program, also written in Microsoft Visual Basic 3.0, which can be used to generate chemical structures. Appendix C is a file which is required to run both programs.
Both programs are merely examples of programs which can be used to carry out a particular implementations of the invention. Those skilled in the art can write other programs S.which can be used to practice the methods of the invention.
Examples of Simulated Receptors 15 In the examples, fictitious test values of target affinities were chosen to demonstrate the ability of the receptor generation program to construct simulated receptors mimicking any arbitrarily chosen pattern of activity.
:o..In these examples, all receptors consist of 15 polymers. Width, Length, and Depth p.
values specify origin coordinates of the 15 polymers relative to the center of the receptor.
p.
EXAMPLE 1 A simulated receptor was generated with the following specifications: Number of subunits: 240; Width: 6; Length: 6 +Depth: Code: "41000331032122041033334240523120133410241240222323340100322 425101440513324340032462041210013131004311210113241202242130 241323112433013310032305230004334140102022302140414443502652 034131033102205141414102140213401431001023111033123531001624 0" Each target was tested 20 times against the receptor The affinity score for the optimized receptor was 0.9358 which is relatively low.
The target substrates used to optimize the receptor were benzene, phenol, benzoic acid and o-salicylic acid. The aspirin precursor o-salicylic acid is an inhibitor of prostaglandin synthesis by cyclooxygenase. Benzoic acid and phenol have much lower affinity for the same S site. The target affinity values and the scores for the receptor are shown in Table A below which which o EXAMPLE 2 Simulated receptors selective for Benzodiazepams (Valium analogues).
Code: "31330542341434240240032221411311432141136053120242110243202 331110133110040211230332143314023304425124121442020351242223 140022112133223241001421200413121023122414302231344123301021 3" Code Length: 180 Depth: 25 Width: 6 Length: 7 Number of Tests: Population Size for Recombination: Translation Factor: 2 Optimized Correlation Score: 0.98 Training Targets (used to optimize receptor affinity and selectivity; the target affinity scores are fictitious):
S
S
S
S S
S
a Target Sum Compound Affinity Score Maximal Affinity Score Benzene 0.5 64 7.5 (inactive) Diazepam 8.5 616 263 Chlorodiazepam 5.6 383 139 (less active than Diazepam) Methyldiazepam 4.2 354 147 (less active than Diazepam) Test Targets: (Small molecules not known to interact with the diazepam receptor): Compound Sum Affinity Score Maximal Affinity Score Phenol -67.7 5.6 Benzoic Acid 198 31 o-Salicylic Acid 168 21
S
*«S
S
EXAMPLE 2a A simulated receptor mimicking affinity of cyclooxygenase for salicylates.
Optimized Correlation Score: 0.95 Training Targets used to optimize selective affinity (Cyclooxygenase as receptor): These targets differ in affinity for cyclooxygenase. The target affinities used are fictitious.
Sum Affinity Maximal Affinity Compound Target Affinity Score Score Benzene 0.9 29.5 5.8 Phenol 1.6 21.0 7.4 Benzoic Acid 2.1 59.3 27 o-Salicylic Acid 5.3 134 105 Test Targets: (Both m-salicylic acid and p-salicylic acid should be less active than o-Salicylic acid) Compound Sum Affinity Score Maximal Affinity Score o-Salicylic Acid 134 105 m-Salicylic Acid 52 28 (less active) p-Salicylic Acid 28 4 (less active) Note ordering of scores ortho meta para EXAMPLE 2b A simulated receptor mimicking affinity of cyclooxygenase for salicylates.
Optimized Correlation Score: 0.98 Training Targets used to optimize selective affinity (Cyclooxygenase as receptor): These targets differ in affinity for cyclooxygenase. The target affinities used are fictitious.
I p 0000 S p 0* Op 0Pp Poop 00p*r S p So Sum Affinity Maximal Affinity Compound Target Affinity Score Score Benzene 1.1 15 2.4 Benzoic Acid 3.0 43.6 o-Salicylic Acid 5.1 57.9 16.2 Test Targets: (Both m-salicylic acid and p-salicylic acid should be less active than o-Salicylic acid and Diflusinal is an active o-salicylate analogue) Compound Sum Affinity Score Maximal Affinity Score o-Salicylic Acid 57.9 16.2 m-Salicylic Acid 37.7 8.0 (less active) p-Salicylic Acid 35.4 4.4 (less active) Diflusinal 87.5 14.1 (similar activity) Note ordering of scores ortho meta para EXAMPLE 2c A simulated receptor mimicking affinity of cyclooxygenase for salicylates.
Optimized Correlation Score: 0.98 Training Targets used to optimize selective affinity (Cyclooxygenase as receptor): These targets differ in affinity for cyclooxygenase. Phenol was not used in this optimization.
25 The target affinities used are fictitious.
a *e
S
SS
S S
S.
55Sc *555
*SSS
S
S
S
S S Sum Affinity Maximal Affinity Compound TargetAffinity Score Score Benzene .Benzoic Acid o-Salicylic Acid 43.6 57.9 8 16.2 Test Targets: (Both m-salicylic acid and p-salicylic acid should be less active than o-Salicylic acid, Diflunisal is as potent as o-Salicylic acid) Compound Sum Affinity Score Maximal Affinity Score o-Salicylic Acid 57.9 16.2 m-Salicylic Acid 37.7 8 (less active) p-Salicylic Acid 35.4 4.4 (less active) Diflunisal 87.5 14.1 (similar activity) Note ordering of scores ortho>meta>para EXAMPLE 3 A simulated receptor with stereospecific affinity for salicylates.
Optimized Correlation Score: 0.98 Training Targets used to optimize selective affinity (Cyclooxygenase as receptor): These targets differ in affinity for cyclooxygenase. Phenol was not used in this optimization. In this example p-salicylate was assumed to have higher affinity than o-salicylate. The target affinities used are fictitious.
Sum Affinity Maximal Affinity 20 Compound Target Affinity Score Score Benzene 0.9 11 26.3 o-Salicylic Acid 2.5 48.3 40.1 p-Salicylic Acid 6.2 94.8 83.8 Test Targets: Compound Sum Affinity Score Maximal Affinity Score 30 p-Salicylic Acid 94.8 83.8 m-Salicylic Acid 68.7 61.3 (less active) Benzoic Acid 73.5 63.5 (less active) Phenol 31.5 32.6 (less active) Note ordering of scores ortho<meta<para, which reverses the order shown in previous example.
U
U
U
*UUU
U
U..
U
U
U U
U
U.
U U U U 33d EXAMPLE 4 A simulated receptor with specific affinity for salicylates. This receptor responds equally well to diflunisal and o-Salicylic acid, mainly on the basis of the benzoic acid moiety.
It is not strongly specific, probably because of the very small set of optimisation criteria used to generate it.
Optimized Correlation Score: 0.97 Training Targets used to optimize selective affinity (Cyclooxygenase as receptor): These targets differ in affinity for cyclooxygenase. Phenol and benzoic acid were not used in this optimization. In this example o-salicylate and diflunisal were assumed to have similar affinities. The target affinities used are fictitious.
C~$S
S
S.
S
S
S S S S
S.
S
S
*5S
S
S
S
S*
Sum Affinity Maximal Affinity Compound Target Affinity Score Score Benzene 0.6 80 24 o-Salicylic Acid 7.4 232 122.3 Diflunisal 6.6 236 121.5 Test Targets Compound Sum Affinity Score Maximal Affinity Score p-Salicylic Acid 196 104 (less active) m-Salicylic Acid 219 98.3 (less active) Benzoic Acid 214 108 (less active) EXAMPLE 30 A simulated receptor with specific affinity for salicylates. This receptor was optimised first to detect benzoic acid, then o-salicylate. It is selective for the ortho isomer, but equally sensitive to the benzoic acid moieties in p- and m-Salicylic acid.
Optimized Correlation Score: 0.97 Training Targets used to optimize selective affinity. The target affinities used are fictitious.
33e Sum Affinity Maximal Affinity Compound Target Affinity Score Score Benzene 0.7 12.5 1.8 Benzoic Acid 5.9 71.9 12.5 o-Salicylic Acid 8.9 91 17.4 Test Targets Compound Sum Affinity Score Maximal Affinity Score p-Salicylic Acid 56.2 12.4 (less active) m-Salicylic Acid 40.1 12.9 (less active) Benzoic Acid 71.9 12.5 o-Salicylic Acid 91 17.4 EXAMPLE 6 *c 0 0 0 0* 0* *0*0 *000
O
.000 0# 09 r 0 0 Two simulated receptors with stereospecific affinity for salicylates. Receptor A is discriminates more strongly between o-salicylic acid and benzoic acid than receptor B. This difference was established by the target affinities assigned during the training process.
Optimized Correlation Score: Receptor A: 0.99; Receptor B: 0.99 Training Targets used to optimize selective affinity. The target affinities used are fictitious.
25 Receptor A Sum Affinity Maximal Affinity Compound Target Affinity Score Score 30 Benzene 0.9 11.1 6.6 Benzoic Acid 2.4 42.9 3.1 o-Salicylic Acid 4.1 70.1 24.8 Test Targets Compound Sum Affinity Score Maximal Affinity Score p-Salicylic Acid 31.5 13.6 (less active) m-Salicylic Acid 36.6 16 (less active) Receptor B Sum Affinity Score Maximal Affinity Score Compound Target Affinity Benzene 0.9 20 6.2 Benzoic Acid 2.2 41 15.5 o-Salicylic Acid 3.1 51 19.5 Test Targets Compound Sum Affinity Score Maximal Affinity Score p-Salicylic Acid m-Salicylic Acid 16 (less active) 22 (similar to o-salicylic acid)
S
9*
S
9 9* 9.~ 9**9 *9$S
*S.
9.
a 599 Sa 9 9 Note that Receptor B is more strongly affected by the similarities between the compounds and benzoic acid.
EXAMPLE 7 30 Four simulated receptors lacking specific affinity for salicylates. This was established by assigning benzoic acid and o-salicylic acid similar target affinities during the training process. As a result, all four receptors are primarily sensitive to the benzoic acid moiety of the salicylic acids and largely ignore the contribution of the hydroxyl group.
Optimized Correlation Score: Receptor A: 0.997; Receptor B: 0.97; Receptor C: 0.96; Receptor D: 0.995 Training Targets used to optimize selective affinity. The target affinities used are fictitious. Twenty-five tests per target.
33g Target Affinities for All Receptors Compound Target Affinity Benzene Benzoic Acid 4.7 o-Salicylic Acid Receptor Affinities Sum Score Maximal Score Compound A B C D A B C D Benzene 7.5 28.4 1.2 -2.8 5.9 5.8 2.5 2.8 Benzoic Acid 54.5 102 29 69 29.6 19.9 9.3 25.3 o-Salicylic 53.6 97.8 2.7 73.7 32.6 17.9 10.8 26.8 Acid Test Targets Sum Score Maximal Score Compound A B C D A B C D 0 *0 *c 0
S
S
0* 0* 000
S
S.
S.
S.
005
S
S S 0* 0e
S.
0 m-Salicylic 25 p-Salicylic Acid o-Salicylic Acid 15.4 106 25.2 61.5 50.4 104 18.5 59.5 53.6 97.8 22.7 73.7 28.0 18.9 8.6 24.7 28.8 20.1 9.5 23.4 32.6 17.9 10.8 26.8 30 EXAMPLE 8 Three simulated receptors with specific affinity for positional isomers of chlorinated arenes. This was established by assigning chlorobenzene and o-dichlorobenzene very different target affinities during the training process.
Optimized Correlation Score: Receptor A: 0.987, Receptor B: 0.992, Receptor C: 0.996.
Training Targets used to optimize selective affinity. The target affinities used are fictitious. Twenty-five tests per target.
Target Affinities for All Receptors Compound Target Affinity Benzene 0.9 Chlorobenzene o-Dichlorobenzene 5.8 Receptor Affinities Sum Score Maximal Score Compound A B C A B C Benzene 39.7 17.1 31.0 3.7 3.2 3.4 Chlorohenzene 81.8 45.4 76.2 9.0 11.9 12.9 o-Dichlorobenzene 147.3 90.9 170.5 19.9 23.2 21.1 Test Targets Sum Score Maximal Score Compound A B C A B C m-Dichlorobenzene 68.0 73.9 145.6 17.2 17.0 18.5 p-Dichlorobenzene 112.4 92.5 132.6 12.0 14.6 10.7 o-Dichlorobenzene 147.3 90.9 170.5 19.9 23.2 21.1 0000 0 0 0S*S 00 0 OS 0 0 @0 00 0S S 0
S
0050 @0 00 0e 0 6SSg
S
OS..
SOS.
S.
@5 0500 0 Se 00 00 50 550 0 S 00 00 0 0 50 WO97/36252 PCT/CA96/00166 PART B:DEVELOPMENT OF NOVEL COMPOUNDS WITH SELECTED FUNCTIONAL
CHARACTERISTICS
Evolution of Novel Liands A population of simulated receptors evolved for selective affinity to a set of target compounds with similar functional characteristics can be used to devise novel compounds with similar characteristics, provided these characteristics are closely correlated with the structure or binding affinity of the model compounds. Using interaction with the receptors as selection criteria, novel chemical structures can be evolved to optimally fit the receptors. Because these compounds must meet the necessary and sufficient requirements for receptor selectivity, these novel compounds are likely to also possess activity similar to that of the original molecular targets.
Overview of Process i. Generate a population of simulated receptors with optimized selectivity for a set of characterized target compounds. In some cases it may be desirable to generate several populations with different affinity characteristics. For example, three populations of simulated receptors could be generated, the first mimicking the properties of the selected target site, the second mimicking a site required for transport of the ligand to its primary target and a third population of simulated receptors mimicking a target site mediating undesirable side-effects. The development of a new ligand structure in this instance would require simultaneous optimization of affinity for the first two receptor populations and minimizing affinity for the third population.
2. Determine the affinity of a novel primary structure for the simulated receptor population(s).
3. Modify primary structure and evaluate affinity using simulated receptor population(s). If the modification improves affinity characteristics, the modified structure is retained for further modification. Otherwise a different modification is WO 97/36252 PCTICA96/00166 tested. Previously rejected modifications may be reintroduced in combination with other modifications.
4. Step 3 is repeated until a compound with suitable affinity characteristics is obtained.
Note: Using suitably discriminating simulated receptors it is possible to evolve chemical structures with sub-maximal affinity for a selected target site.
1) Molecular Genotpe Code Generation Encoding of the ligand phonotype (molecular structure) in the form of a linear genotype represented by a character string facilitates the processes of mutation, recombination and inheritance of the structural characteristics of the ligand during the evolutionary process.
The ligands evolved by the current implementation consist of substituted carbon skeletons. Each code consists of three character vectors. The primary code vector contains the turning instructions for the generation of the carbon skeleton and determines the position of each carbon atom in the skeleton. The secondary code vector identifies the functional groups attached to each carbon atom. The tertiary code vector specifies the position of the functional group relative to the host carbon.
Molecular skeletons combining atoms other than carbon (e.g.
ethers, amides and heterocycles) can be constructed in a homologous fashion using additional characters in the code to specify atomic species replacing carbon atoms in the skeleton.
The carbon skeleton is constructed from a series of points which form the nodes of a three-dimensional tetrahedral coordinate system. During initial skeleton construction, the distance between nearest points is equal to the mean bond length between alkyl carbon atoms.
Primary code vector: ligand skeleton determinants The primary code vector consists of characters identifying turning direction relative to the current atom position. Each turning direction specifies the coordinates of the next atom in the tetrahedral matrix. Four directions WO 97/36252 PCT/CA96/00166 can be taken from each atom, corresponding to the unfilled valences of sp 3 carbon. Each of the carbon atoms belongs to one of four possible states B, C, These states correspond to the number of distinct nodes in the tetrahedral coordinate system.
The relationship between turn direction and the new coordinates for the next atom in the skeleton is given by the following tables. The two tables B1 and B2 below embody the two turning conventions required to construct the ligands. The boat convention results in the generation of a tetrahedral matrix in which closed 6-member rings (cyclohexanes) assume the boat configuration. The chair convention results in the generation of a matrix in which cyclohexyl rings assume the chair configuration. It is possible to combine both conventions during code generation. Only the boat convention is used in the examples discussed here.
0 WO 97/36252 WO 9736252PCT/CA96/00166 Table Bi: Boat Convention Current Position y, z) New Position Following Turn Current State Turn 1 Turn 2 Turn 3 Turn 4 A 75, 75, y- .864, (x, y+.433, z- y+..433, z- Y z+1) B 75, y- .75, y- 864, (x, .433, .433, 5) y, z- 1) C 75, 75, 864, (X, y+.433, y+.433, 5) y1 z- 5) 5) 1) D y- .75, y- y+.864, (X, .433, z- .433, z- Z- y z+1 Each turn also results in the specification of of the new atom: the state New State Following Turn Turn 1 Turn 2 Turn 3 Current State Turn 4 A B B B C B AAAD 'D C C C B
I
WO 97/36252 PCT/CA96/00166 Table B2: Chair Convention Current Position y, z) New Position Following Turn Current State Turn 1 Turn Turn 3 Turn 4 A y-.864, (x, y+.433, 2- y+.433, z- y, z+1) B y- y- y+.864, (x, .433, .433, y, z- 1) C y- y- y+.864, (x, .433, .433, y, z- 1) D y-.864, (x, y+.433, z- y+.433, z- y, z Each turn also results in the specification of of the new atom: the state New State Following Turn Turn 1 Turn 2 T Current State urn 3 Turn 4 A B B B C B A A A D C D D D A D C C C B Using these relationships, primary code vectors consisting of strings of the characters 1,2,3, and 4 can be decoded to create three-dimensional arrangements of carbon atoms. The resulting string of carbon atoms is allowed to fold back on itself or create closed loops, producing short side chains and ring structures. Specific ring structures (for example, cyclohexanes) can be incorporated directly as specific character sequences, as shown below.
WO 97/36252 PCT/CA96/00166 Secondary Code Vector: Substituents A secondary code vector, of the same length as the primary code vector, is used to allocate the type of substituent attached to the carbon atom specified by the primary code vector. Each substituent is identified by a single character.
Substituents are added singly to the carbon skeleton. A single carbon atom can have more than one substituent, but only if it is specified more than once by the primary code.
In the current implementation, all valences not filled by substituents specified by the secondary code vector are automatically filled with hydrogen atoms during the ligand construction process. Other rules could be applied for filling empty valences with atoms other than hydrogen.
Tertiary Vector: Substituent Bond Vector A tertiary code vector, of the same length as the primary code vector, is used to allocate the valence used for the attachment of the substituent specified by the secondary code vector. The tertiary code consists of the characters 1, 2, 3, and 4 each of which refers to the turn directions specified for the primary code. Substituents are only allocated if the valence is not already occupied by either a carbon atom specified by the primary code vector or another previously allocated substituent. Alternatively, successive substituents could replace previously allocated substituents.
2) Code Creation To create carbon skeletons the primary code is constructed by creating a random sequence of characters belonging to the set The creation of heterocyclic structures, ethers, amides, imides and carboxylic compounds is accomplished by substituting a carbon atom in the skeleton by a different atom specified by the secondary code.
The secondary code is generated from a random sequence of characters identifying substituent types. The frequency of the characters can be random or fixed prior to code generation.
The tertiary code consists of characters belonging to the set Ring structures can be deliberately constructed (as opposed to random generation) by adding specific character sequences to the primary code. For example "431413" codes for a cyclohexyl ring. A total of 24 strings code for all possible orientations of cyclohexyl rings in the tetrahedral matrix. Secondary and tertiary code vectors for the ring primary codes are generated as described previously. Module 12 provides a flowchart of an example creation of code generating carbon skeletons with rings.
The relative positions of the entry and exit points from a ring comprising part of the carbon atom skeleton are determined by the length of the character sequences used to generate the ring. Specifically, if the sequences contains six characters, for example 431413, then the entry and exit point will be the same member of the ring. If the sequence is partially repeated and appended to the initial six characters, the entry point and exit point will not be the same member of the ring. For example, the sequences 4314134 and 43141343141 will generate rings with exit points at the members of the rings adjacent to the entry points.
15 In the current implementation, rings are added to the skeleton by adding sequences of a 6 or more characters to the code. For the ring defined by 431413 the possible sequences used are: 431413 4314134 43141343 431413431 4314134314 43141343141 431413431413 431413431413 The conventions presented for creating a novel ligand genotype can be used to encode other chemical structures in a SWO 97/36252 PCT/CA96/00166 linear format, either for storage or for introduction into the ligand evolutionary process. For example, a known pharmacophore can be encoded in linear format and used as the starting point for evolving novel ligands with similar or enhanced functional properties. Similarly, sets of pharmacophores interacting with a common target site can be encoded in linear format and used for recombination.
3) Code Translation and Ligand Construction The code vectors are converted into three-dimensional representations of ligands in a translation process consisting of three discrete steps. In the first step, the carbon atom skeleton is constructed using the primary code. In the second step substituents are added to the carbon skeleton using the instructions from the secondary and tertiary code vectors.
Instructions from the secondary and tertiary code vectors may also specify replacement of carbon atoms in the skeleton with different atoms. Instructions from the secondary and tertiary codes may also change the number and orientation of available valences present on acarbon or other atom forming part of the primary skeleton. For example, addition of carbonyl oxygen occupies two empty valences. In the third step, all valences not filled by substituents during the second step are filled with hydrogen atoms (unless otherwise specified).
Primary decoding: Ligand skeleton construction Primary decoding uses the turning instructions from the primary code vector to specify the positions of each carbon atom. The first atom is assumed to be located at the origin of the coordinate system. The first atom is assumed to occupy state A in the matrix.
Decoding proceeds sequentially. The result of the primary decoding process is a 3 x n matrix containing the x, y, and z coordinates of each of the n carbon atoms in the skeleton. Because loops and reversals are permitted, the same position in space may be occupied by more than one carbon. In these cases, only one carbon atom is assumed to occupy the IWO 97/36252 PCT/CA96/00166 position. As a result, the number of carbon atoms forming the completed skeleton may be less than the number of characters in the primary code vector.
As the primary code is read, a list is constructed from the secondary code that identifies the substituents attached to each carbon position. At the same time a parallel list is constructed using the tertiary code to specify the valence occupied by each substituent.
Secondary decoding: Substituent additions Substituents are added sequentially to each carbon atom based on the list generated from the secondary code during primary decoding. The corresponding value from the tertiary code is used to specify the valence position of the substituent relative to the host carbon. If the position is already occupied by either an adjacent carbon atom, or a previously specified substituent, the substitution is not carried out. Alternatively, a decoding process could be constructed in which the substitution is carried out at the next unoccupied position or the substitution replcases a previously specificed substituent. The distance between the substituent and the carbon atom is calculated from look up tables of bond lengths. The position data and bond lengths are used to calculate the coordinates of the substituent. In the case of multi-component substituents, such as hydroxyl, nitro, and amino groups, the coordinates for each atom in the substituent are calculated relative to the host carbon.
After all the substituents specified by the secondary code vector are added to the skeleton, all unfilled positions remaining on the skeleton are filled with hydrogen atoms. The hydrogen sp 3 -carbon bond length is used to calculate the coordinates of each hydrogen atom.
A single carbon atom can have more than one nonhydrogen substituent. This can occur if the same position is specified more than once by the primary code vector. The current implementation does not incorporate multiple SWO 97/36252 PCT/CA96/00166 substitutions using the secondary code directly, although this can be readily implemented.
Substitutions are only allowed at loci not occupied by carbon atoms forming the ligand skeleton. A cumulative list is maintained of all occupied sites in the tetrahedral matrix.
During the secondary decoding process a list is compiled of the type, radius, and position of all the atoms comprising the ligand. This list is the basis for subsequent target generation.
At this stage in the process, the feasibility of the structure generated from the code sequence is not evaluated.
In some cases the atomic coordinates may be entered into energy minimization programs to create more realistic structures. However, in the present implementation, no assumptions are made concerning the configuration of the ligand during binding. In addition, the current implementation preserves the structural uniqueness of specific configurations of the same molecule. For example, the current implementation distinguishes between three rotational isomers of butane, and treats each isomer as a unique molecule.
The code vectors constitute the genotype of the corresponding ligand, and can be subjected to mutation and recombination with resulting changes in ligand structure. The ligand structure itself is the phenotype used to evaluate binding affinity with a selected population of virtual receptors.
4) Target Presentation Chemical structures or target ligands are initially constructed from randomly generated codes. Following decoding, the coordinates, radii, dipole moments and polarizabilities of each atom in the target ligand are obtained from look up tables of value and used to evaluate the binding affinity between the ligand and a selected population of virtual receptors.
WO 97/36252 PCT/CA96/00166 The affinity of the target for each of the virtual receptors is tested for many orientations of the target relative to the receptor surfaces. No assumptions are made concerning the relative orientations of the ligand and simulated receptor. Prior to the evaluation of binding affinity, the target and receptor must be brought into contact. The method of target presentation and calculation of affinity between the chemical structures and simulated receptors is essentially the same as discussed above in Module 4 between known target molecules and the simulated receptors.
Evaluation of Binding Affinity and Fitness The binding affinity of the target ligand for each of the simulated receptors used for fitness evaluation is calculated using the same effective affinity calculation method described for simulated receptor generation using the target molecules. As previously noted, affinity calculations using other criteria can be incorporated into the fitness testing process but the efficacy and computational efficiency of the present invention relies in part on using the same effective affinity calculation for virtual receptor generation and generation of the chemical structures using the simulated receptor populations.
6) Ligand Evolution Testing Goodness of Fit Goodness of fit between a selected population of simulated receptors and a novel ligand or chemical structure is evaluated by comparing the target activity or affinity values for the ligand with those obtained for the simulated receptor-ligand complexes. The maximal affinities of an optimally selective virtual receptor should be strongly correlated with the target affinity measures. Successive iterations of the evolutionary process are used to enhance this correlation.
The target values can be set to any level of binding affinity. It is not required that the ligand have the same WO 97/36252 PCT/CA96/00166 binding affinity for all the virtual receptors used in the selection process. In the current implementation, the maximal binding affinities of the optimized virtual receptors for known substrates are used to calculate target binding affinities. For example, the target affinities may be set to of the binding affinity of each member of the virtual receptor population for a specific substrate. Alternatively, the target binding affinity may be set to zero if the interaction between the ligand and the virtual receptor is to be minimised.
By combining simulated receptors optimized for different sets of substrates and associating selected target affinity values with each receptor, novel ligands can be selected for specific binding affinity profiles. Ligand fitness measures the match between calculated ligand binding affinities and the target affinity values. The optimization process maximizes ligand fitness.
The optimal orientation of the ligands for maximal binding affinity is unknown prior to testing. In order to obtain a representative measure of the range of receptorligand affinities, each novel ligand must be tested repeatedly using different random orientations relative to the receptor surface. Each test uses Module 4 discussed in Part A to evaluate affinity. In general, the reliability of the maximal affinity values obtained depends upon the sample size, since it becomes increasingly likely that the sample will contain the true maximal value.
Two techniques are employed in the current implementation to circumvent the need for large sample sets for the generation of optimized novel ligands or chemical structures: 1. The use of a measure combining average (or sum) affinity and maximal affinity to select for ligands with optimized affinity profiles.
0WO 97/36252 PCT/CA96/00166 2. Incremental increases in the number of orientations tested with successive iterations of the optimization process.
(Optimization begins with a small set of target orientations, as ligands of greater fitness are generated, more orientations are tested.) In the current implementation, the sum is calculated for the affinity values obtained for all the tested orientations of each ligand. This sum affinity score is a measure of the average affinity between the receptor and the ligand. At the same time, the maximal affinity value is also determined.
Both sum and maximal affinities are used to test the goodness of fit between the virtual receptor and the novel ligand. The fitness of each novel ligand is rated according to the difference between the calculated values of sum affinity and maximal affinity and the target values for these parameters. In the current implementation, the value: F= Icalculated max affinity target max affinityl 2 x target max affinity Icalculated sum affinity target sum affinityl S2 x target sum affinity is calculated as the fitness score for each novel ligandsimulated receptor pair. FITNESS IS MAXIMAL WHEN THE FITNESS SCORE IS ZERO. Target maximal affinity and target sum affinities are obtained from the regression functions developed during the evolution of optimised virtual receptors, as described in the previous sections. The target values are obtained as follows: target max affinity f x maximal affinity of the most potent substrate used for virtual receptor generation target sum affinity f x sum affinity of the most potent substrate used for virtual receptor generation WO 97/36252 PCT/CA96/00166 where f a scaling factor.
When more than one simulated receptor is used for the evaluation of ligand fitness, the fitness scores of each ligand-simulated receptor pair are summed.
n Ftot=Z Fi i-1 Fi= i Icalculated max affinity target max affinityj t 2 x target max affinity, Icalculated sum affinity, target sum affinity J 2 x target sum affinityi In this case, fitness is maximized when the sum of the fitness scores is zero. In some cases it may be desirable to use only the maximal affinity scores when testing a novel ligand against a panel of different simulated receptors. In this case the fitness would be given by: Ftot= n SIcalculated max affinityi target max affinity i 1/target max affinityi.
i=1 In this case, fitness is also maximized when the sum of the fitness scores is zero. Other methods, for example the use of a geometric mean, could also be used to measure the total fitness of a ligand tested against a series of simulated receptors.
Use of both the maximal affinity values and sum affinity values obtained for each simulated receptor ensures that the selectivity of the virtual receptors is implicated in the evaluation of ligand fitness. In this way, the fitness of the ligand reflects not only the affinity of the ligand but also satisfaction of the steric requirements of the virtual receptor that are the basis of selectivity.
WO 97/36252 PCT/CA96/00166 6a) The Optimization Process Obi ective To evolve a novel ligand that has selected target affinities for a set of simulated receptors. A highly efficient mechanism for finding solutions is required, since the total number of possible genotypes containing instructions is 25625 Process PHASE 1. Generate a set of random genotypes coding for ligands and screen against a set of simulated receptors to select ligands exceeding a threshold level of fitness.
PHASE 2. The selected genotype is used as the basis for further optimization using genetic algorithm (recombination) and unidirectional mutation techniques.
Mutate selected genotype to generate a breeding population of distinct but related genotypes for recombination.
Choose most selective mutants from population from population for recombination.
PHASE 3. Generate new genotypes by recombination of selective mutants. Select from the resulting genotypes those with the highest affinity fitness. Use this subpopulation for the next recombinant (repeat PHASE 3) or mutation (repeat PHASE 4) generation.
PHASE 4. Take best recombination products and apply repeated point mutations to enhance selectivity.
The optimization process is completed when ligands of desired fitness are generated.
PHASE I: Evolution-generation of Primary Code The objective of the first stage in the optimization process is to generate a genotype and corresponding ligand phenotype with a minimal level of fitness. This genotype is subsequently used to generate a population of related genotypes.
The Genetic Algorithm developed by Holland can be used to search for optimal solutions to a variety of problems. Normally this technique is applied using large, initially random sets of solutions. In the present implementation the technique is significantly modified in order to reduce the number of tests and iterations required to find ligands with high selective affinity. This has been accomplished by using a set of closely related genotypes as the initial population and the application of high rates of mutation at each iteration. For any set of target compounds it is possible to develop distinct ligands with optimal affinity characteristics. For example, receptors may bind optimally to the same targets but in different orientations. The use of an initial population of closely related genotypes increases the likelihood that the optimization process is converging on a single solution. Recombination of unrelated genotypes, although it may generate novel genotypes of increased fitness, is more likely to result in divergence.
PHASE 2: Ligand Mutation *a The objective of the second phase of the evolutionary process is the generation of a population of distinct but related genotypes derived from the primary genotype. Members of this population are subsequently used to generate recombinants. This breeding population is created by multiple mutation of the primary genotype. The resulting genotypes are translated and screened for selectivity. The most selective products are retained for recombination.
Ligands are subjected to mutation by changing characters in the genotypes (code vectors) encoding their structures. These mutations change the shape of the ligand, as well as functional group placement and functional group types present on the ligand. Mutations in the current implementation can alter the number of carbons comprising the ligand skeleton.
Module 12 is a flowchart of a sample process for multiple point mutation.
49 Mutations can alter the folding pattern of the ligand phenotype, with resulting changes in shape and the location or exposure of functional groups. Mutations that affect the configuration of peripheral regions of the ligand phenotype can result in shifts in position relative to the receptor center.
Neutral Mutations All mutations alter the structure of the phenotype, however, not all mutations result in changes in the functionality of the ligand. Such neutral mutations may alter components of the ligand that do not affect affinity. In some cases these neutral mutations can combine with subsequent mutations to exert a synergistic affect.
Sequence Mutations Sequence mutations do not change code characters directly. Instead the sequence of characters in the code is rearranged. Sequence mutations can alter the size of the ligand, the structural configuration and presence and location of functional groups. Four types of sequence mutation are used in the current implementation: 15 a) DELETION: A sequence of characters is removed from the code.
ABCDEA ABEA i b) INVERSION: The order of characters comprising a sequence within the code is reversed.
ABCDEA ABDCEA c) DUPLICATION: A sequence of characters comprising part of the code is repeated.
ABCDEA ABCDCDEA d) INSERTION: A sequence of characters is inserted into the code.
ABCDEA ABCDBCEA Mutations are applied in combination in the current implementation. Module 13 provides a flowchart of a sample sequence mutation.
PHASE 3: Generation of Recombinant Code During recombination, randomly chosen, complementary sections are exchanged between selected genotypes. The objective of recombination is the generation of novel genotypes with increased fitness. Recombination facilitates the conservation of genotype fragments that are essential for phenotypic fitness, while at the same time introducing novel combinations of instructions. In general, recombination coupled with selection results in rapid optimization of selectivity. Module 14 provides a flowchart for a sample procedure for recombination.
The current implementation retains the population used for recombination for testing.
This ensures that genotypes with high selectivity are not replaced by genotypes with lower fitness. In the current implementation, multiple mutations are applied to 50% of the 9 recombinant genotypes prior to testing. This process increases the variability within the recombinant population. The test populations used in the current implementation range in size from 10 to 40 genotypes. This is a relatively small population size. Under some
V,
S" conditions, larger populations may be required. Module 14 is a flowchart for an example of recombination.
PHASE 4: Ligand Maturation Progressive micromutation technique The final stage in the optimization process mimics the maturation of antibodies in the mammalian immune system. A series of single point mutations are applied to the genotype, and the effect on phenotypic fitness is evaluated. Unlike recombination, this process generally 51 results in only small incremental changes to the selectivity of the phenotype. The maturation process uses a Rechenberg evolutionary strategy. At each generation the fitness of the parental genotype is compared to that of its mutation product, and the genotype with the greater selectivity is retained for the next generation. As a result, this process is strictly unidirectional, since less selective mutants do not replace their parents. During each iteration of the maturation process, only a single instruction in the code is changed in the present implementation.
If a parent and its mutation product have the same selectivity, the parent is replaced by its product in the next generation. This method results in the accumulation of neutral mutations that may have synergistic effects with subsequent mutations. This convention is arbitrary. Module 15 provides a flowchart for a sample maturation process.
If recombination or maturation do not generate improved selectivity after repeated iterations, it may be necessary to repeat multiple mutations (PHASE 2) in order to increase the variability of the breeding population genome.
EXAMPLES OF LIGAND GENERATION 9 Overview i: The mosquito Aedes aegypti is repelled by benzaldehyde and, to a much smaller degree, by benzene and toluene (Table This species is not repelled significantly by cyclohexane or hexane (Table In the following test of novel ligand generation, the method is used to generate, ab initio, compounds that will be similar in repellent activity to benzaldehyde. In the first step of ligand generation, simulated receptors were constructed with high affinity for benzaldehyde and low affinity for benzene. In the second step, ligands are evolved with binding affinities for the simulated receptors similar to that of benzaldehyde.
52
N
Mosquito Responses Mosquitoes were lab-reared, 7-14 days post-emergence and unfed. Experiments were conducted over six day periods at 20°C. under fluorescent lighting. Tests were run between 12:00 and 17:00 EDT. The test populations in the four sets of trials consisted of 200, 175, 105 and 95 females. Mosquitoes were provided with drinking water.
S. S
S
S
SS
*5 S S
S*
5 5**2 S S S 52a WO 97/36252 PCT/CA96/00166 The tests were conducted in a 35 x 35 x 35 cm clear Plexiglas box with two screened sides forming opposite walls.
The screening consisted of two layers: an inner layer of coarse plastic mesh and an outer layer of fine nylon mesh. The box was placed in a fumehood such that air entered one of the screened sides and exited through the opposite side. Air flow was The mosquitoes landed on the walls of the box, oriented head upwards. Triangular pieces (4 x 4 x 1 mm) of Whatman #1 filter paper were used to present the stimulant compounds. The tips were dipped into the test solution to a depth of 0.5 cm and used immediately. Responses to the test solutions were determined as follows: 1. A stationary female resting on the interior screen of the upwind wall was selected for testing.
2. The treated filter paper tip was placed against the outside of the screen and positioned opposite the mesothoracic tarsus of the mosquito. In all cases the initial approach was made from below the position of the mosquito.
3. The tip was held in position for a maximum of 3 s and the response of the mosquito was noted.
The procedure was then repeated for a new individual.
Mosquitoes were tested only once each day with each compound.
Tips were used for five tests each (total duration of use then replaced. Compounds were tested in random order, and each compound was tested twice on separate days. Two sets of controls were conducted using untreated (dry) filter paper tips and tips moistened with distilled water positioned in the same manner as treated tips. Tests of these controls were interspersed regularly among tests of the repellent compounds.
Responses to the controls did not vary during the course of the experiment (p>0.25).
Four behavioral responses were recorded: 1. No response: the mosquito remained motionless.
2. Take-off: the mosquito flew away from its resting site.
I JI WO 97/36252 PCT/CA96/00166 3. Ipsilateral leg lifting: the mosquito raised the mesothoracic leg on the same side as the stimulus source.
4. Contralateral leg lifting: the mosquito raised the mesothoracic leg on the opposite side from the stimulus source.
Ipsilateral leg lifting was frequently followed by take-off, in which case both behaviours were recorded.
Polyethylene gloves were worn during testing an during all phases of compound preparation.
Table El. Mosrquito responses to selected volatile compounds Compound Boiling N %Flight %Leg Lifting Relative Point (OC) Response Response Repellency* Benzaldehyde 178 130 90 10 178 Benzene 80 72 72 12.5 68 Toluene 110 166 67 27 94 Cyclohexane 81 80 6 0 4.9 Hexane 69 100 4 0 2.8 Control (blank) 450 5 0 *Relative repellency=[(%Flight Response Leg Response) x Boiling Point] 100 Simulated Receptor and Ligand Generation Two simulated receptors were generated using the same selection criteria. Each receptor was used independently to generate a set of ligands.
Molecular Assembly 1 PHASE 1: RECEPTOR GENERATION A receptor was evolved with selective affinity for benzaldehyde.
The training targets were benzene and benzaldehyde. Fifteen orientations of each target were used to calculate affinity values.
Results of the evolutionary process were: Target Activity Level Sum Affinity Maximum Affinity Benzene 1.0 6.87 2.21 Benzaldehyde 5.9 75.87 13.02 The affinity score for the receptor was 0.992 Code for the Optimized 25 x 6 x 7 Benzaldehyde Receptor: WO 97/36252 231014406145 412061421302 022224-31514 402131114311 053400324221 412100131300 413231124335 133100333032 143431012321 341310334122 010233120331 260214016231 PCT/CA96/00166 063112101132 300043541401 101414141021 PHASE 2: LIGAND GENERATION The optimized simulated receptor was used as a template for the evolution of novel ligands. Four different ligands were assembled by random mutation and selection.
Ligands were selected for similarity with benzaldehyde.
The affinity values for the ligands were: Benzaldehyde Ligand 1.1 Ligand 1.2 Ligand 1.3 Ligand 1.4
C
g
H
7
C
12 0H C 8
H
1 5C1 CH 13 C1 C 13 H2 6 0H(=0) Sum Affinity 75.87 74.03 67.88 72.25 72.94 Max.
Affinity 13.02 12.82 15.14 12.58 11.2 Evolved ligands 1.1 to 1.4 are shown in Figure 4b. At least one orientation of each ligand was structurally similar to benzaldehyde.
Molecular Assembly 2 PHASE 1: RECEPTOR GENERATION A 25 x 6 x 7 receptor was evolved with selective affinity for benzaldehyde. The training targets were benzene and benzaldehyde. Fifteen orientations of each target were used to calculate affinity values.
Results of the evolutionary process were: Target Activity Level Sum Affinity Maximum Affinity Benzene 1.0 25.88 8.53 Benzaldehyde 5.8 162.23 42.74 The affinity The code for 031264441313 543301114446 224223503403 323030313214 score for the receptor was 0.996 the receptor was: 004422243042 223140112054 210043042311 323431131340 432003432122 002221221113 002321144010 000243013133 302122330134 130020120133 411440003113 e WO 97/36252 PCT/CA96/00166 PHASE 2: LIGAND GENERATION The optimized simulated receptor was used as a template for the evolution of novel ligands. Four different ligands were assembled by random mutation and selection.
Ligands were selected for similarity with benzaldehyde.
The affinity values for the ligands were: Benzaldehyde Ligand 2.1 Ligand 2.2 Ligand 2.3 Ligand 2.4 CsHi 3 C1(=0) CH 5 sC1(=0) C 6 HioCN(=O) CH 13 Sum Affinity 162.23 182.4 166.5 159.7 156.8 Max.
Affinity 42.74 48.97 43.0 39.0 46.5 Fitness Score 0.135 0.02 0.05 ,0o( Evolved ligands 2.1 to 2.4 are shown in Figure 4c. At least one orientation of each ligand was structurally similar to benzaldehyde.
Compounds 2.1 and 2.4 are substituted cyclohexanone derivatives. Ligand 2.2 is 5-Chloro-2, 7-nonadione and ligand 2.3 is 2-cyano-5-hexanone. Ligand 1.4 contains a fragment corresponding in structure to methyl cyclohexyl ketone.
Experiments testing the repellency of cyclohexanone, menthone, methyl cyclohexyl ketone and 2-octanone (see Figure 4a) suggest that these ligands will also be repellent to mosquitoes (Table E2).
Table E2. Mosquito responses to selected volatile compounds Compound Boiling N Flight Leg Lifting Relative Point Response Response Repellency* Benzaldehyde 178 130 90 10 178 2-Octanone 173 80 82 12.5 162 2-Acetylcyclohexanone 225 100 54 24 175 Cyclohexanone 156 134 99 1 154 Menthone 207 110 72 11 172 Control (blank) 450 5 0 Relative repellency=[(% Flight Response+% Leg Response) x Boiling Point] 100 WO 97/36252 PCT/CA96/00166 The method disclosed herein of designing new chemical structures exhibiting preselected functional characteristics or properties has been described by example only. For example, the method may be readily practise using other known or acceptable values for polarizabilities, dipole moments, covalent radii and the like. In addition, the flowcharts giving process calculation steps in the modules are meant to be illustrative only. For example, the calculation of affinity may be carried out using available computational packages using fewer approximations than used herein. The method of generating new chemical structures has relied upon first generating one or more simulated receptors exhibiting a preselected affinity for known target compounds with similar functional characteristics and using these receptors to generate the novel structures exhibiting these characteristics to whatever degree is desired. The receptors themselves may be used for other applications besides generating novel chemical structures, for example as a means of screening for pharmaceutical or toxicological properties of known compounds.
Thus, it will be appreciated by those skilled in the art that numerous variations of the method disclosed herein may be made without departing from the scope of the invention.
1
I
WO 97/36252 WO 9736252PCTCA96OO166 TABLE I: Transition states and addition factors Old State 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 21 22 23 24 Addition factors New State for Turn Right Up Lef t Down Formula for algorithm: Input (old state, turn) -output(Ax,Ay,Lz, new state) Example: Initial position (12, 34, Input: turn=right: old Output: new state=6, Lxx=0, position (12, 35,-18) Ay=l, Az=0; Subsequent WO 97/36252 PCT/CA96/0J166 TALE 2- Vyan-der Waapis Radii Element H Van der Waals:1l0 Radius (pm) F 0 N 140 150 150 C S Br 170 180 180 190 P I 190 200 Relative Radius 0.5 0.64 0.68 0.68 0.77 0.82 0.82 0.86 0.86 0.91 Based on: N.S. Tssacs, 1987. Physical Organic Chemistry.
Longman Scientific and Technical, New York. 828 pp.
WO 97/36252 TABLE 3: CovalentBodadi p) PCT/CA96/00166 First First Second Third Aromatic
N
66.5 60.2 Si p S 117 110 104 First First 114 Based on values in N.S. Issacs (1987).
WO 97/36252 PCT/CA96/00166 TABLE 4: Sample effective dipole values used for charge site Bond
C-H
ArC-H
=C-H
C=0
C-O-C
C-OH
C-NH
2
C-NO
2
C=N
C-S-C
contexts)
C-N=C
+1.3 Ar-F or C=C-F
C-F
Ar-Cl or C=C-C1 C-C1 Ar-Br or C=C-Br C-Br
C-I
Atom
H
C
H
C
H
C
0
C
0
H
0
H
N
0
N
N
C
S
Dipole Value (Debye) +0.35 or +0.084* no charge assigned +0.6 -0.366 or no charge assigned +0.336 -0.6 or no charge assigned* -2.7 no charge assigned* or +1.35 -0.8 +1.5 or +1.7 -1.1 +1.3 -1.3 -3.7 no charge assigned in thiophene or dimethyl sulphide (may be negatively charged in in pyridine or CH 3
-N=CH
2 +1.5 or -1.3 -1.8 -1.7 -2.1 -1.7 *Preferred uner most conditions Each target atom is described fully by a set of eight values {xi, Yi, zi, ri, br,, c 4 g where i x iY andi z are the positional coordinates relative to the geometric center of the molecule, ri=the van der Waals radius, bri=the bond or covalent radius, cri=the collision radius Qi=the polarizability, and di=the effective dipole moment value.
WO 97/36252 PCT/CA96/00166 TABL-E 5: Seeced RpaieEf feciePlrzblt o Selected TArgqet Atoms Atom
H
H
H
H
F
Cl Br
I
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
0 0 0 0
N
N
N
N
N
S
S
S
Context
C-H
N-H
0-H
S-H
C-F
C-Cl C-Br
C-I
C-CH,
C -CH C
C-CC,-H
C=CH
2
C=CH-C
C=CC
2
C=-C-H
CR-C-C
Arene ring
C-C=-N
C
3 -C-0-
C
2 H- C-C-
CH
2 -C-0-
H
3 -C-0-
C
2
-C=C
CH- C=C
C
2
C=N
CH- C=N
C
3
N
C
2 H- C-N
CH
2 -C -N H C-N C-0-H
C=O
C-C-C
NO
2
C-NH
2 C-NH- C
C-NC,
C-NO
2
C=-N
C=S
C-S-C
C-S-H
Relative Polarizability (xi) 1.1 3. .0* 5.8 8.9* 3.7 3.2 4.3 4.9* 4.6* 4,3* or cloud)) 3.6 3.8 4.1 4,4 3.6 3.8 2.6 (based on benzene (delocalized electron 3.1 3.3 3.6 3.8 2.1 2.1 1.8 1,9* 3.1 2 .8* 4.6* 3.2 7.7 (may be larger in small molecules) BY calculation from molecular polarizabilities.
Values can be determined from appropriate molecular data.
1. .WO 97/36252 PCT/CA96/00166 MODULE 1: Step 1 Step 2 Step 3 Step 4 code Step 5 CODE GENERATION FOR SIMULATED RECEPTORS Input code generation parameters: i) code length; and ii) instruction frequency.
Initialize empty character string to store code.
Generate random number.
Based on random number and instruction frequency, select a character to concatenate to code string.
Repeat Step 4 until string length equals preset length.
Output code.
MODULE 2: CODE TRANSLATION FOR SIMULATED RECEPTORS Step 1 Input origin coordinates for polymers comprising receptor.
Step 2 Input code for polymer.
Step 3 Read first character from code.
Step 4 If character is a turning instruction, use translation algorithm to determine subunit coordinates otherwise step 7.
Step 5 Store subunit coordinates. Assign a charge value of 0 to subunit Step 6 If character is not the last character in code, repeat step 3 otherwise step.
Step 7 If character is a charge instruction, use translation algorithm to determine subunit coordinates assuming no turn.
Step 8 Store subunit coordinates. Assign charge value of +1 or -1 to subunit based on character.
Step 9 If character is not the last character in code, repeat step 3 otherwise step.
Step 10 Repeat steps 2 to 9 for each of the polymers comprising the receptor.
Step 11 Output coordinates and charge values of subunits.
3MDULE TARGET PRESENTATION Step 1 Input coordinates and radii of target atoms (xti, (i=number of atoms in target) Input coordinates of receptor (xrj, yrj,zrj, chargej) (j=number of subunits in receptor) Step 2 Generate random angular (AG,Aqp)and translation values Step 3 Rotate and translate atomic coordinates by random amounts.
Step 3a Convert target coordinates to polar form Step 3b Add random changes to angles (0j,4),p 1 1 radiusj) (0j+A0, 4Pi+A~p, pi, radiusi) Step 3c Convert to rectangular coordinates (0j+A0,cp 1 +A4,pj,radius 1 -(x 11 yi,z 11 radiusj) Step 3d Add random translation (xni 1 yni,zni,radiusi)= (xi+k.,yi+ kcrz 1 radiusi) *Step 4 Center target coordinates on origin Step 4a Find maximum and minimum values of xri 1 ynj and znj.
Step 4b Find geometric center of receptor xn.. t,,r (xfltiaximumi -Xnminimum) yncenter 2(ynmaximum Yflminimum) zncenter (zrlmaximum zlninirnum) /2 Step 4c Calculate centered coordinates: (xncj, yncj, zncj) (xnj Xncenter, ynj yncenter, znj znmaximum) Step 5 Use atomic radii and transformed coordinates (xncj, yncl, znci, radiusi) to construct collision surface of target g (xg,yg,) =zg Step 5a Create a grid with spacing equal to the diameter of the receptor subunits Coordinates of grid: WO 97/36252 PTC9/06 PCT/CA96/00166 x 9 e f Iflt (Xflminimum xfcenter) I Iflt (Xfminimimxfl,nter)+1... Iflt (xflmaximumflcenter) 1 Int (Xflmaximurrll center) I YgC{(Ift (yfn,nimumyfcenter) ,Tnt (yflminimum Yflcenter) +1 0, Int (Ynmaximun-ynccnLr) -1 Int (ynmaxirnum-ynCenter)I Set the initial values of g(xg,yg) to 0 at all points on the grid Step 5b For each atom Wi set the g(xg,yg,) (height) value of each grid point according to the following rule: For i=1 to number of atoms in target I f (xnc (ynci +yp) '<radiUS_ 1 2 then g (xg, yg) minimum (g (xg, yg), znc, radius 1 Else If (xnc 1 -xP) 2 (ynci+y 2<(radiusi 2 then g (xg, yg)= minimum (g znci (radiusi Else g minimum (g (xg, yg) 0) Next i Step 6 Center receptor coordinates on origin Step 6a Find maximum and minimum values of xrl 1 yrj and zrj.
Step 6b Find geometric center of receptor: xrcenter (xrfaxmum xrminimum) /2, yrcenter (yrmaimum yrminimum) /2 zrcenter (zraximum z-rminimum) /2 Step 6c Calculate centered receptor coordinates: (xc yc zc =(xrj -Xcentert yrj Ycentery zrj Zminimum) Step 7 Construct collision surface of receptor s(XSIYS)=zs using the centered receptor coordinates according to the following rule: Set all initial values of s (xcj, ycj) to 0.
for j=1 to the number of subunits in receptor if zc,. s (xcj, ycj) then s (xcj, ycj) =zcj next j Step 8 Find minimal separation between collision surface of receptor and collision surface of the target.
Calculate difference matrix d(xg,,yg,) as follows for all xge Ift (Xfliinimum-Xflcenter) I Iflt (Xflinmum- Xflcenter) Iflt (xnmaximun-Xncenter) Int (xniximum- Xlleenter) and y, e{jInt (ynminimum-Ycenter) I lInt (Yflminiium" yncenter) int (ynmiaximumyfcenter) 1, lInt (ynmymumyncenter) calculate d (h (xg,yq) -ziminimurn+Z1M~aXiMU,1 (s (xg,yg) +zrmnmum-zrmxmum) For all xgy find the minimal value of d(xj,y,)= dmin,.
dmi is the minimal separation distance.
:90 Step 9 Transform target and receptor coordinates for collision configuration For the receptor: (xreceptorj, yreceptorj, zreceptor 1 ycj, ZcJ zrminimu. zraximu,) For the target: (xtarge ti,ytarge ti,z target,)= (xncj, ync 1 zncj -znmin~mu+ Zlnmaximum-dmjn)- Step 10 Use (xtargeti,ytargeti,ztargeti) and (xreceptor 1 yreceptor3, zreceptor5) f or af finity calculations.
Repeat Steps 2-9 for each target configuration tested.
MODULE 5: AFFINITY CALCULATION Step 1 input collision coordinates of target and receptor (xtargeti, ytargetj, ztargeti) and (xreceptor yreceptorj, zreceptorj) where i=nuniber of atoms in target, j=number of subunits in receptor 0 Step 2 Input dipole moment values for target dip(i) Input charge values for receptor charge(j) Step 3 Input threshold value for proximity calculation:
THRESHOLD
Step 4 Calculate dipole affinity value Step 4a For each charged subunit (charge(j) 00) calculate e(i,j) dip(i)/((xtargeti xreceptor) 2 +(ytarget: yreceptorj)2+(ztargeti zreceptorj )2)1.5 Step 4b Calculate the sum of e(i,j) for all combinations of i and j with charge(j) 0.
DIPOLE=Z e(i,j) Step 5 Calculate proximity value (this step could be replaced by a calculation based on polarizability) Step 5a For each target atom with Idip(j) I 0.75 Calculate 1 j) (xtargeti-xreceptorj) 2 (ytargeti-yreceptorj) 2+ (ztargeti- zreceptorcj tep: If l(i,j) THRESHOLD then prox(i,j) 1 Step 5b Calculate the sum of prox(i,j) for all combinations of i and j with Idip(j) 0.75 PROXIMITY=E prox(i,j) SStep 6 Calculate affinity value for target substrate combination AFFINITY AFFINITY= (PROXIMITY/j)((PROXIMITY/10000)+DIPOLE) NODULE 6: GOODNESS OF FIT CALCULATION Step 1 Input known target efficacy or affinity values k=number of targets tested Step 2 Input collision coordinates of targets and receptor (xtargeti,ytargeti, ztargeti) and (xreceptorj, yreceptorj, zreceptorcj) i, number of atoms in target k j number of subunits in receptor Step 3 Input number of target orientations to be tested Step 4 Use Module 5 to obtain affinity values for each target and target orientation (=AFFINITYk,,).
Step 5 Determine maximum affinity (MAk) and sum affinity (SAk) values for each target.
Step 6 Calculate correlation coefficients rm 2 for maximum affinity (MAk) vs known target efficacy or affinity values (Yk) and rsA 2 for sum affinity (SAk) vs known target efficacy or affinity values Step 7 Calculate fitness coefficient F r 2 x rSA 2 Alternate Step 6' Calculate correlation coefficients rm 2 for maximum affinity (MAk) vs known target efficacy or affinity values (yk) and rsA-, 2 for sum affinity (SAk) maximal affinity vs known target efficacy or affinity values Step 7' Calculate fitness coefficient F r 2 x (l-rsA 2 MODULE 7: GENERATE GENOTYPE WITH MINIMAL LEVEL OF AFFINITY Step 1 Set minimal fitness threshold Step 2 Generate random genotype (Module 1) Step 3 Translate genotype to construct phenotype (Module 2) Step 4 Test affinity of phenotype for targets (Modules 3, 4, 5, 6) Step 5 If the fitness of the phenotype exceeds the fitness threshold then discontinue code generation and pass code to phase 2. Otherwise repeat steps MODULE 8: MULTIPLE MUTATION Step 1 Input primary code (from phase 1).
Step 2 Set number (=q)of mutations per code (Current implementation mutates 2.5-5% of characters in genotype).
Step 3 Input population size p).
Step 4 Select a position in the genotype at random.
Step 5 Replace the code character at that position with a different character chosen at random.
Step 6 Repeat steps 4 and 5 until q times.
Step 7 Repeat steps 4-6 to generate a total of p new codes.
Step 8 Apply Modules 1-6 to test fitness of mutant population. Select subpopulation with highest selectivity for use in Phase 3.
MODULE 9: RECOMBINATION Step 1 Set population size P).
Step 2 Select two codes at random from population generated by Phase 2.
Step 3 Select a position in the genotype at random.
Step 4 Generate a random number for the number of 99** characters to exchange.
Step 5 Swap characters between codes beginning at 9 selected position.
Step 6 Repeat steps 2-5 until P new genotypes have been generated.
Step 7 Apply Modules 2-6 to test fitness of mutant population. Select subpopulation with highest selectivity for next recombination series or for Phase 4 maturation.
MODULE 10: MATURATION Step 1 Input parental code derived from Phase 3.
Step 2 Set number of iterations.
Step 3 Select a position in the parental genotype at random.
Step 4 Replace the code character at that position with a different character chosen at random.
Step 5 Test selectivity of parental code and mutation product (FM) using Modules 2-6.
Step 6 If FM Fp replace parental genotype with mutation product.
Step 7 Repeat steps 3-6 for required number of iterations.
MODULE 11: CREATION OF CODE GENERATING CARBON SKELETONS
WITH
RINGS (6 Member Rings, Entry point Exit Point) Step 1. Set length of code Set vl, v2, v3, vn (frequencies of substituent groups) 9 9 Set prob_ring (frequency of ring code sequence).
(0 prob_ring 1) S Step 2. Initialize primecode Initialize second_code Initialize third code Step 3 Create character strings.
Repeat step 4 until code length is obtained.
WO 97/36252 Step 4a.
PCT/CA96/00166 If prob_ring random (0 random I 1) Then Assignment of characters for ring (boat convention).
Set newcharacter_l to randomly selected member of {'431413', '314134', '141343', '132132', '321321', '213213', '123123', '231231', '312312', '421412', '214124', '141242', '324234', '242343', '423432'} Assignment of characters for substituents.
Set new character 2 to six randomly selected members of {cl, c2, cn using frequencies vl, v2, v3, vn. (cl..cn are characters specifying different functional groups) Assignment of characters for substituent valences.
Set new character 3 to six randomly selected members of Else Step 4b.
Step 4c.
Assignment of single (non-ring) characters for primary code.
Set newcharacter_1 to a randomly selected member of Assignment of characters for substituents.
Set new character 2 to a randomly selected member of {cl, c2, cn} using frequencies vl, v2,...vn.
Assignment of characters for substituent valences.
Set new character_3 to a randomly selected member of Concatenate new characters to code strings Prime code Primecode new character 1 Secondcode Second code new character_2 Third code Third code new character_3 MODULE 12: MULTIPLE POINT MUTATION Step 1 Input primary code.
Step 2 Set number q) of mutations per code (Current implementation mutates 2.5-5% of characters in genotype) Step 3 Input population size p).
Step 4 Select a position in the genotype at random.
Step 5 Replace the code characters at that position in each of the code vectors with different characters chosen at random.
Step 6 Repeat steps 4 and 5 until q times.
Step 7 Repeat steps 4-6 to generate a total of p new codes.
Step 8 Test the fitness of each member of the mutant population. Select subpopulation with highest fitness for use in recombination or additional multiple mutation.
0 MODULE 13: SEQUENCE MUTATIONS Step 1 Set PDEL, PIW PIN, and Pvur as threshold levels for the occurrence of mutations 0 Px 1).
Step 2 Generate a random position x) in the code (0 s p s Length of code).
Step 3 Generate random length of sequence L) (0 L Length of code x).
*Step 4 Copy sequence from code starting at x and extending for a total of L characters.
Step 5 If 0 g Pnv Random Number 1 Then Reverse the order of the characters in the string.
Step 6 If 0 Pup, Random Number 1 Then Copy the sequence and concatenate copy to sequence.
Step 7 If 0 PDEL Random Number 1 Then Eliminate L characters from the code starting at position x Else Replace sequence in code with sequence generated in steps 5 and 6.
Step 8 If 0 Pns Random Number 1 Then Generate a position y) at random in code (0 g y Length of code) Insert sequence generated by steps 5 and 6 at position y.
MDDULE 14: RECOMBINATION Step 1 Set population size P) Step 2 Select two codes at random from population generated by multiple mutation.
Step 3 Select a position in the genotype at random.
Step 4 Generate a random number for the number of characters to exchange.
Step 5 Swap characters between each of the three code vectors beginning at selected position.
Step 6 Repeat steps 2-5 until P new genotypes have been generated.
Step 7 Test the fitness of each ligand in the resulting mutant population. Select subpopulation with highest fitness for next recombination series or for maturation.
.9 *i MODULE 15 MATURATION Step 1 Input parental code derived from recombination.
Step 2 Set number of iterations Step 3 Select a position in the parental genotype at random.
Step 4 Replace the code characters at those positions in each of the code vectors with a different characters chosen at random.
Step 5 Test fitness of parental code (Fp) and mutation product (FM) using Modules 4 and Step 6 If FM 2 F, replace parental genotype with mutation product Step 7 Repeat steps 3-6 for required number of iterations.
V,
S.
Ai APPENDIX A Simulated Receptor Generation Program Code: Microsoft Visual Basic A2 1. Globally Defined Variables Global maximals As Double Global niaxirnalrn As Double Global igh,1affinity As Double Global mixtest As Integer Global mixtarget As Integer Global rnxscorc As Double Global transtarget As Integer Global transtest As Integer Global bx As Double Global aleri As Integer Global codei As Integer Global coeff As Integer Global itercount As Integer Global itermean() As Double Global iterrnax() As Double Global transval As Integer Global radiusltest(40) As Double Global cradius Itest(40) As Double Glba *ip I.et4 sDul Global diprntest(40) As Double '0:0 Global yoitest(40) As Double Global zomtest(40) As Double Global fzinitest As Integer Global bestscore(3-) Global bestcode(3) :Global threshold I As Single 00,. Global xo2() As Double Global Nyo 2 As Double Global zo2() As Double 0 Global bestinutcode As String Global bestsscorc As Double Global bestsslope As Double Global bestrnscore As Double Global bestmnslope As Double Global best maxcoinb(lO0) As Double Global bestsurncornb( 10) As Double Global multiscore As Double Global depth As Integer Global rwidth As Integer (7i~h1lc C h~f Az 1Tcgcr,, Global cnumi As Integer Global bscore As Double Global best As Single A3 Global pscore As Double Global zmat( As Integer Global z3mat( As Integer Global xo() As Integer Global yo() As Integer Global zo) As Integer Global ox(25) As Integer Global oy(25) As Integer Global oz(25) As Integer Global codearray(40) As String Global dipsum As Double Global randarray(3000) As Single Global testnumber As Integer Global codenumber As Integer Global proxsense As Single Global prox As Integer Global tarj( As Integer Global tark( As Integer Global tarz() As Double Global tarcount As Integer o •Global centerx As Integer Global centerv As Integer Global cenx As Integer Global ceny As Integer Global cl As Integer Global clneg As Integer Global xcz() As Integer Global yczO As Integer Global zczO As Integer Global xczneg( As Integer Global yczneg( As Integer Global zczneg( As Integer Global pi As Double Global pi2 As Double Global mindiff As Double Global zmmn As Double Global flnm As String Global fz As Integer Global xs(40) As Single Global ys(40) As Single Global zs(40) As Single Global A(24) As Integer Global C(2? 1) A, Intc!,er Global C(24) As Integer Global D(24) As Integer Global E(24) As Integer Global F(24) As Integer A4 Global G(24) As Integer Global h As String Global transscore As Double Global bmscore As Double Global muth As String Global mutg As String Global mutk As String Global zs2 As String Global vl As Integer Global v2 As Integer Global v3 As Integer Global v4 As Integer Global v5 As Integer Global Itot As Integer Global t As String Global v6 As Integer Global v7 As Integer Global v8 As Integer Global v9 As Integer Global xl As Integer Global x2 As Integer *Global l As Integer Global -2 As Integer *Global As Integer Global y As Integer Global z As Integer Global z As Integer Global z2 As Integer Global scalar As Integer Global s\ As Integer Global matrx(00, 100) As Integer Global mtx(100. 100, 100) As Integer S: Global mtrx(100, 100) As Integer Global hk As Integer Global mtnl As Integer Global pml As Integer Global lm2 As Integer Global pm2 As Integer Global vs As Integer Global mtxs2 As Double Global xmcans As Double Global ymeans As Double Global mnx As Double Global many As Double Global dx As Integer Global dy As Integer Gonll dic!m: As Integcr Global dtsmx As Integer Global xtsmn As Integer Global xtsmn As Integer Global minx As Integer Global mninx As Integer
A
Global rnaxx As Integer Global ininy As Integer Global ina,.N As Integer Global tninz As Integer Global ia-xz As Integer Global radius(40) As Double Global dipni(40) As Double Global cradius(40) As Double Global rcolor(40) As Integer Global radius 1 (10. 40) As Double Global dipml1(10. 40) As Double Global cradiusl(10, 40) As Double Global colrn(10. 40) As Integer Global colrmtest(40) As Integer Global randeount As Integer Global larget(l0) As Single Global targeti As Single Global nimun As Integer Global courittarget As Integer Global inutsurncomb(10) As Double Global mniaNCOrb( 10) As Double Global miu(40) As Double Global Nvm(4O) As Double Global zfl1(40) As Double Global xomi(I0. 40) As Double Global Nvom(10. 40) As Double Global zoni(l0. 40) As Double Global maxcombiscore As Double Global sumconmbi As Double Global pmscore(40) As Double Global sslope3 (40) As Double :Global srxN,3(40) As Double Global nislope3(40) As'Double Global nmrxvN3(40) As Double Global popsize As Integer Global maxeornb3(l0, 40) As Double Global niaxcomib2() As Double Global rnaxcombl(I0) As Double Global sunicomb3(10, 40) As Double Global sumcomb2() As Double Global stuncombl(l0) As Double Global slopes As Double Global f'iiii( I0) As Intcgci Global fzint As Integer A6 2. Control Object Specifications VERSION 2.00 Begin Form Form i AutoRedrawo I1 'Trute BackColor =&H008080Stj& Caption "ROBOMITE DEMO v'ers.3 ClientHeight =6825 ClientLeft 540 ClientTop =165 Client Width 9600 FontBold 0 'False Fontltalic 0 'False FontName ="MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False Height 7230 Left =480 LinkTopic 'Forni t *.Scalelicight =6825 ScaleWidth =9600 :Top -180 Width =9720 WindoNA-State 2 'Maximized Begi n TextBox Text-i I Height =285 Left =2520 TabIndex 126 *Text ift Top 5760 Width 615 End Begin TextBox Height 285 Left =1800 **Tablndex 125 Textift Top =5760 WVidth =615 End Begin CommandButton Command Caption ="HIGH AFFINITY" FontBold =0 'False Fontitalic =0 'False FontName ="MS Sans Serif, FontSize =8.25 FontStrikethru 0 'False Height =375 Left =7440 Tablndex 124 Top =6360 Width 2055 End Begin Textflox Text49 Height 285 Left =6480 TabIndex =123 Text Top =6480 Width =855 End Begin TextBox Text48 Height 285 Left =5880) Tablndex 122 Text Ol Top 6480 Width =495 End Begin TextBox Text47 :Height =285 Left 5280 :Tablndex 121 Text ="0 :Top =6480 :Width 495 End Begin TextBox Text46 HeigZ-ht 285 Left =6240 Tablndex =119 xtTop 4200 End Begin CommlandButton Command9 Caption 941! *Heighit 255 Left =5760 TabIndex 118 Top 4 -200 Width =375 End Begin CotnrnandButton Coniniand2 Caption "9311 Height =255 Left =5280 Tablndex 117 Top =4200 Width =375 Enld Begin HScrollBar HScrol119 Height =255 LargeChange Left 5280 A8 Max =500 Min I TabIndex =114 Top =1320 Value Width End Begin Textflox HeighIt 285 Left =6840 TabIndex 113 Text
,#I
Top 1-320 Width =495 End Begin TextBox TextS Height 285 Left =6840 TabIndex I Text Top 840 Width 495 *.*End Begin CommandButton Cornrnand7 :::Caption "RAD Height 375 Left =4320 Tablindex =112 Top =2400 Width End Begin CommandButton Caption "FILE" Height 375 Left =3240 TabIndex II1 *Top 2400 Width =855 End Begin HScrollBir IlScroIl 8 Height =255 Left 5280 Max Tablndex 109 Top =3720 Width =1455 End Begin TextBox Text44 Height =285 Lei t 6840 TabIndex 108 Text ="0ft Top =3720 Width =495
A
9 End Begin TextBox Text43 Height =375 Left 7440 Tablndex 106 Top =6000 WVidth =1455 End Begin TextBox Text42 Height 285 Left =2520 TabIndex 105 Text Top =6480 Width =615 End Begcin TcxtBox Text4 I BackColor =&HOOFFFFFF& ForeColor =&HOOOOOOOO& Height =285 Left 1800 Tablndex 104 Text Top =6480 Width =615 End Begin ComnnandButton Cominand4 Caption ="TEST" FontBold =0 'False Fontltalic =0 'False FontName IN"S Sans Serif' FontSize 9 FontStrikethru 0 'False s..FontUnderline 0 'False Height =375 Left 8 880 .'TabIndex =103 Top =6000 Width =615 End Begin TextBox Height =285 Left =6840 TabIndlex 102 Text Top =5640 Width 495 End Begin HScrollBar HScrollI7 Left =5280 Max TabIndex 101 A io Top =5640 Value Width =1455 End Begin TextBox Text39 Height =285 Left =840 TabIndex 99 Text fil Top =6480 Width =615 End BegIin TextBox Text.1S Height =285 Left =2520 TabIndex 97 Text It- Top =6120 Width 615 End Begin ComimandButton Coniinand6 'Po Caption "RECOMBINATION" FontBold =0 'False FontItalic 0 'False *Font~ame ="MS Sans Serip' *FontSize =8.25 FontStriketlirt 0 'False -too:FontUnderline 0 'False Height =375 Left =7440 .TabIndex 96 Top =5280 Width =2055 *E d Begin TextBox Text'17 Height =285 e-Left =1800 ,*TabIndex Text fl Top =6120 Width =615 End Begin TextBox Text34 Heighit 285 Left =840 TabIndex 94 Text iti Top =6120 WVidth =615 Begin Te~xtBox Text2l1 Height =285 Left =120 TabIndex 93 All Text Top -6120 WVidth =615 End Begin HScrollBar HScroll 16 H4eight =255 Left =120 Max Min
I
TabIndex 92 Top 3000 Value I Width 3015 End Begin ComnmandButton Cormand3 Caption
="MUTATION"
FontBold =0 'False FontlIalic =0 'False FontName "MS Sans Serif' FontSize 8.2 FontStriketliru 0 'False FontUnderline 0 'False Heigyht =375 Left 7440 Tablndex 91 Top =4920 Width =2055 End Begin PictureBox Picturel :Height 2895 Left =120 ScaleHeight =2865 .ScaleWidth 2985 :TabIndex 89 Too 120 00:Width 3015 End Begin ComnmandButton Command I 0 Caption
="MATURATION"
,*.00Font.Bold =00 'False Fontitalic 0'False FontNamne "MS Sans Serif' FontSize 8.2 5 FontStrikethru =0 'False FontUnderline 0 'False Height 375 Left =7440 Tabindex 88 Top =5640 'Viduli 2055 End Begin TextBox Text2O Height =285 Left =2520 A12 TabIndex =86 Text Top =3600 Width =615 End Begin CommnandButton Command 13 Caption ="INITIATION" Font~old =0 'False FontItalic 0 'False FontName "MIS Sans Serif' FontSize =8.2 FontStrikcthm 0 'False FontUnderline 0 'False Hei-ht =375 Left 7440 TabIndex 82 Top =4560 Width =205 End Begin GRAPH Graph2 AsciiFFanil AsciiFSize "80-150-60--100" AsciiFStyle "0" AsciiSymnbol "7" GraphTitle ="Max Affinity" GraphiType =9 'Scatter High-t 1815 Left =3240 :LineStats =8 BestFit :RandomiData 0 'Off TabIndex =81 Top =4920 Width =1935 End Begin TextBox Text33 Height 285 Left 6840 TabIndex 74 :Text II"1 Top =6120 WVidth =495 End Begin HScrollBar HScrolIlO Height 255 Left =5280 **Max 200 Mini I TabIndex 72 Top =6120 Width =1455 End Begin TextBox Text3l1 Height =285 A13 Left =2520 TabIndex 71 Text $o Top 5400 Width =615 End Begin TexiBox Heighit =285 Left I 1800 Tablndex Text Top =5400 Width =615 End Begin TextBox Text29 Height =285 Lcft =2520 TabIndex 69 Text fil Top =4560 WVidth =615 End Begin Text.Box Text28 Height =285 Left =1800 TabhIdex =68 Text it Top =4560 WVidth =615 End Begin TextBox Text27 ::Left =6840 TabIndex 67 Text -'17" Top =2640 Width =495 End Begin HScrollBar HScrol9 *Height 255 Left ==5280 Min 1 Tablndex 66 **Top 2640 Value =7 Width =1455 End 13,,n Tcx tfox Tc-\t9 BackColor &H00808080)& BorderStyle 0 'None Height =285 Left =3240 Tabindex 6 A14 Text Top 1320 Width End Begin TextBox Text6 BackColor &HOOS08080& BordcrStyle 0 'None Height =225 Left 3240 TabIndex =3 Text I'll.
Top 600 Width 2-55 End Beglin ComnmandBution Commandig Caption ="Reset" FontBold 0 'False Fontitalic =0 'False FontNamne "MIS Sans Scrif" FontSize =8.25 FontStrjkethru 0 'False FontUnderline =0 'False Height =375 Left =8880 Tab~ndex Top 1080 Width =615 S:2::qgEnd ListBox List 1 FontBold 0 'False FontItalic o 0 False FontNamne 6"Small Fonts" FontStrjkethni 0 'False FontUnderline =0 'False Height 780 Left =7440 :Tablndex 64 Top 3720 Width 2055 End **,Begin TextBox Text26 Height =285 Left 120 :Tablndex 61 Top 5400 Width =615 End B egin TextBox Height 285 Left 840 TabIndlex 62 Text of- Top =5400 Width =615 End Begin ComnmonDialog ClvDialogl Left =2160 Top =1440 End Begi n TextBox Text 18 Height =285 Left =6840 Tab~ndex Text 17f Top 2280 Width =495 End Begin HScrolIBar H Scroll Height 255 Left =5280 Max Mill TabIndex 59 Top =2280 Value =7 Width =1455 End Begin TextBox Text24 Height 285 Left =120 TabbIdex =49 Text Top ==4560 Width 615 End Begin GRAPH Graphi AsciiFFamily ="[01 AsciiFSize "80-1 i0--60-j100" AsciiFStvle "0ff .AsciiSyrnbol "7" GraphTitle "Sum Affinity" *GraphType 9 'Scatter Height =1935 Left =3240 LineStats 8 'BestFit IF NuniPoints =4 RandomnData =0 'Off TabIndex =53 Top =2880 Width =1935 Begin TextBox Text23 Height =285 Left I 1800 TabIndex 57 Text ItI A16 Top =3600 Width =61i End Begin Text.Box Tcxt22 Height =285 Left 840 TabIndex Text I'l Top 4560 Width =615 End Begi n HScrolIBar HScrolll14 Height 255 Left 5280 Max Mill =I TabIndex =51 Top 3240) Value =6 Width =1455 End Begin TextBox Text 17 Height =285 Left 6840 TabIndex Text 0'3" Top =3240 Width =495 End **.Begin TextBox Text16 Height =285 *Left 840 TabIndex *Text =-to Top 3600 Width =615 End Begin TextBox Text BackColor =&HOOFFFFFF& ::Height 285 Left =120 Tabbidex =46 Text of- Top 3600 :Width 615 End Begin TextBox Text2 Height =285 Tabindex Text "25t25 Top =1920 Width =495 End A 1 Begin HScrolIBar HScrol13 Height 255 Left =5280 Max TabIndlex 44 Top =1920 Value Width =1455 End Begin HScrollBar HScroll 12 Height 255 LargeChange Left =5280 Max =100 Min I TabInclex =16 Top =5160 Value I WVidth =1455 End Begi n HScrollBar HScroIll II Height =255 Left =5280 Max 100 TabIndex =43 Top 4680 Value so8 Width =1455 End Bein TextBox Text36 Height =285 Left 6840 *TabIndex 13 Text 11"1" Top =5160 Width 495 End Begin TextBox Height 285 :Left 6840 TabIndex =14 Text 08- Top 4680 Width =495 :End Begin Textox Text32 Height =285 Left =8880 ThbTndec =3 Text "0f.
Too 720 Width =615 End Begin HScrolBar HScroll8 A18 Height 285 Left =7440 Max 100 Tablndex 37 Top 720 WVidth =1335 End Begin Text~ox Text4 FontBold 0 'False FontItalic =0 'False FontNanie "Arial" FontSize 8.25 FontStrjkethni C) 'False FontUnderline 0 'False Height =615 Left =3240 MultiL-ine -1 'Tnie ScrollBars 2 'Vertical TabIndlex 0 Text "Code View" Top 1680 Width =1935 End Beg-in CommandButton Commnand 12 Caption ="Acquire Target" FontBold 0 'False Fontltalic 0 'False FontName "MS Sans Serii' *FontSize 8.2 :FontStrikethru 0 'False *FontUnderline 0 'False Height =375 Left =7440 :Tablndex =36 Top =1080 Width 1335 End Begin HScrollBar HScroll2 Height 255 Left =3480 Max STabIndex 8 Top =600 Value ***Width =855 End Begin PictureBox Picture2 Height =2055 Left 744f) ScaleHeight 2025 ScaleWidth 2025 TabIndlex 34 Top =1560 WVidth =2055 End Begin TextBox Textl19 Height =285 Left 7440 Tabbidex 33 Top 360 Width =2055 End Bcgin PictureBox Picturc3 Height =2895 Lcft =120 ScaicHeight 74.902 ScaleMode =0 'User Scale Width 69.3 38 Tablndex 32 Top =120 Width =3015 End Begin TcxtBox Text3 FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serir' FontSize 8.2 FontStrikethru 0 'False FontUnderline 0 'False Height 285 Left =6840 TabIndex =3 1 Top 360 idth =495 End Begin HScrollBar HScroll7 Height =255 LargeChange Left =5280 Max Tablndex 2236 :Value =12 *Width 855 End Begin TextBox Height 285 :Left =4800 Tabindex =21 Text #f= Top =1320 Width End Begin TextBox Text 14 Height =285 Left 4800 Tablndex Text Top =1080 Width =375 End Begin TextBox Text 13 Height =285 Left =4800 Tablndex 19 Text 1- 1 Top =840 Width 375 End Begi n TextBox Text 12 Height 285 Left =4800 TabIndex 18 Text _11 Top 600 WVidth 375 End Begin Te.NtBox TextI I Height 285 Left. 4800 Tablndlex 17 Text 1= 1 Top =360 Width =375 BeinH~roIar HScrol16 *.Height =255 LargeChange Left =5280 *Max 500 *Mil
I
Tabindex =12 Top =840 Value Width =855 End Begin HScrollBar Height 255 Left =3480 Max Tablndlex =11 Top =1320 Value WVidth 855 End Height 255 Left =3480 Max TabIndex Top =1080 A2 1 Value Width End Begi n HScroll11a r HScroll13 Height =255 Left 3480 Mix Tablndex =9 Top =840 Width U End Begin HScrollBar HScroll I Height =25 Left =3480 Max Tablndex =7 Top =360 Value Width =855 End Begin TextBox TextS BackColor &H0080)8080& BorderStvle 0 'None Height =285 Left =3240 TabIndex Text
"YO'
:Top =1080 Begin TexitBox Text7 BackColor &H00808080& BorderStyle =0 'None Height =285 Left =3240 TabIndlex 4 Text "21 :Top =840 Width =255 *End Begin Text.Box Text 1 *BackColor =&H00808080& BorderStyle =0 'None Heighit =285 @9 9Left =3240 TabIndex 2 Text ="0 Top WVidth -255 End Begin Label LabeI39 BackColor =&HOOSO880~& Caption ="Coefficient" A22 FontBold =0 'False Fontitalic =0 'False FontName ="Times New Roman" FontSize =9 FontStrikethru =0 'False FontUnderline =0 'False Height =2_55 Left =5280 Tablndex =120 Top 3960 Width =97i End Begin Label Labe138 Alignment =2 'Center BorderStyle 1 'Fixed Single Caption ="1.67" Height 255 Left =6240 TabIndex =116 Top 1320 Width =495 End Begin Label Labe137 BackColor =&HO00808080& Caption Charge Sites FontBold =0 'False Fontltalic =0 'False FontName "Times New Roman" FontSize 8.25 :FontStrikethru =0 'False FontUnderline 0 'False :0,0 Height =253 *Left 5280 *TabIndlex =115 Top =1080 Width =1455 End Beglin Label LabeI36 BackColor &-1008080S0& Caption ="Translation" *FontBold 0 'False Fontltalic =0 'False FontName "Times New Roman" FonitSize =9 FontStrikethru =0 'False FontUnderline 0 'False Height =255 Left =5280 *Tab11!1 CX 110 Top 3480 Width =1335 End Begin Label Labc135 BackColor &H008080S0& A23 Caption ="Population Size" FonttBold =0 'False Fontltalic 0 'False FontName ="Timies New Roman" FontSize =8.2 FontStrikethni 0 'False FontUnderline =0 'False Height Left 5280 Tablndex 107 Top =5400 Width 133 End Begin Label Labe134 BackColor =&H0080S080& Caption "MEAN" Height =255 Left 120 Tablndex 100 Top =6480 Width 615 End Begin Label Label333 BackColor =&H008080S0& Caption Parental Scores" Height =255 Left =120 see*Tabindex 98 Top =5880 Width =1455 End Begin Label Label32 BackColor =&H00808080& Caption ="Mutation Result" Height =255 Left =1800 TabIndex Top =4920 Width =1455 *00:00End *00* -Begin Label Label3 I :.oeBackColor &H008080S0& Caption ="Score" Heighit 255 Left =2520 Tablndex =87 Top 3360 Width =495 En d Begin Label Label' O BackColor =&HO08080S0& Caption ="Mutation" Height =255 Left 1800 A24 Tablndex Top =4080 Width =1215 End Begin Label Label29 BackColor =&H00808080& Caption Max Affinitv" Height =255 Left 120 Tablndex 84 Top =4920 Width 109i End Begin Label Labc12O BackColor &H00808080k& Caption ="Sumn Affinitv" Height =255 Left 120 TabIndex 83 Top =4080 Width =1215 End Begin Label Label28 BackColor =&H00808080& Caption Current" FontBold =0 'False FontIalic 0 'False *FontNamne 'Times New Roman" FontSize =8.2 5 's FontStrikethru 0'as *FontUnderline =0 'False Height =255 ::Left =2520 TabIndex -g.Top =5160 Width =495 End :Begin Label Labe127 *BackColor =&HO08080& Caption ='MA"f FontBold 'False Fontlalic 0 'False FontName ="Times New Roman' FontSize =8.25 **FontStrikethru 0 'False FontUnderline 0 'False H-eight =255 Left =1800 Top =5160 Width =495 End Begin Label Label26 BackColor &H008080SO&
M
A2 Caption "M-Valtue" Font.Bold =0 'False Fontltalic =0 'False FontName "Times Newi Roman" FontSize 8.25 FontStrikethru 0 'False FontUnderline 0 'False Hei ght 255 Left 2520 Tabindex =78 Top 4320 Width =615 End Begin Label Labe124 BackColor &H00808o)So& Caption "M-Site"l Font-Bold =0 'False Fontltalic =0 'False FontName "Times New Roman" FontSize 8.25 FontStrikecthni 0 'False FontUnderline =0 'False Heighit 255 Left =1800 TabIndex 77 Top =432(0 Width =495 End Begin Label Label22 BackColor &H00808080& Caption ="slope" FontBold 0 'False :Fontltalic =0 'False FontName ="Times New Roman" FontSize 8.2 FOntStrikcthru =0 'False FonitUnderline 0 'False Height =255 Left =120 TabIndlex =76 Top 5 160 Width =495 End Begin Label Labcl2 I BackColor =&H00808080& Caption r-square" FontBold 0 'False Font11talic =0 'False FontSize 8.25 FontStrikethru 0 'False FontUnderline 0 'False Height =255 Left =840 A26 Tablndex Top 5160 Width =615 End Begin Label LabellI9 BackColor =&H00808080& Caption ="Maturation Cycles" FontBold =0 'False Fontltalic 0 'False FontName "Times New Roman" FontSize =8.25i FontStrikethru 0 'False FontUnderline 0 'False Height 2 25 Left =5280 Tablndex 73 Top 588 Width =1455 End Begi n Label Label 17 BackColor =&H008080S0& Caption ="Target" FontBold 0 'False Fontltalic =0 'False FontName "Times New Roman" FontSize 8.25 FontStrikethni 0 'False *FontUnderline 0 'False Height =255 L eft =7440 Tablndex 6312 :Width =495 End Begin Label BackColor =&H00808080& Caption ="Target" .FontBold 0 'False Fotitltalic =0 'False *FontName "Times New Roman" VFontSize 8.2 *FontStrikethru 0 'False FontUnderline =0 'False *.Height M *.Left 1800 Tablndex 58 Top =3360 Width =495 Fnd Begain Label Labe125 BackColor =&H008080S0& Caption ="slope" FontBold 0 'False Fontitalic 0 C 'False A27 FontName "Times New Roman" FontSize 8.25 FontStrikethru 0 'False FontUnderline 0 'False Height Left =120 Tablndex 54 Top 4320 Width =615 End Begi n Label Label 18 BackColor =&H00808080&, Caption ="r-square" Font-Bold =0 'False Fontltalic 0 'False FontNamne "Times New Roman" FontSize =8.25 FontStrikethru =0 'False FontUnderline 0 'False Height =255 Left =840 Tablndex =56 Top =4320 Width =615 End Begin Label Label6 BackColor =&H0808080& Caption ="Proximity Sensitivity" FontBold 0 'False *Fontltalic =0 'False FontName "Times New Roman" *FontSize =8.2 :FontStrikethni 0 'False FontUnderline 0 'False Height 255 Left =5280 TabIdex 52 :Top 3000 WVidth =1695 End Bcgin Label Label23 BackColor =&H00808080& Caption "Test" Font-Bold 0 'False FontItalic =0 'False FontName "Times New Roman" FontSize =8.25i FontStrikethru o 'False FontUnderline f 'Fnlsce Height =255 Left =840 TabIndex 48 Top =3360 Width 615 A 28 End Begin Label LabelS BackColor =&HO00808080& Caption ="Code" FontBold 0 'False Fontlialic =0 'False FontName "Timces New Roman" FontSize =8.2 FontStrjkethru (1 'False FontUnderline 0 'False Height 255 Left =120 Tabindex 47 Top =3360 Width =495 End Begin Label Label4 BackColor &H00(8080S80& Caption ="WidthlDepth Factors" FontBold =0 'False Fontitalic =0 'False FontNamne ="Times New Roman" FontSize =8.25 FontStrikethru =0 'False FontUnderline =0 'False Height =255 Left =5280 TabIndex =42 Top =1680 Width =1575 End Begin Label Label3 :BackColor =&H00SS88)& Caption ="Test Number" FontBold =0 'False Fontltalic =0 'False FontName "Times New Roman" :FontSize 8.25 *FonfStrikethni =0 'False FontUnderline =0 'False Height =255 Left =5280 TabIndex 41 Top 4920 Width =1215 End Begin Label Label2 BackColor &H00)8098080& FonitBold =0 'False FontItalic =0 'False FontName Times New Roman" FontSize 8.2 FontStrikethru =0 'False
A
2 9 FontUnderline 0 'False Height =255 Left 5280 Tabindex Top 4440 WVidt.h =1215 End Begin Label Label 1 BackColor &1-100808080& Caption Code Frequency' FontBold 0 'False Fontltalic =0 'False FontName "Times New Roman" FontSize =8.25 FontStrikethint 0 'False FontUnderline 0 'False Height M Left 3240 Tablndex 39 Top =120 Width =1215 End Begin Label Labell16 BackColor =&f-1008080)80& Caption Charge Sites FontBold =0 'False FontItalic 0 'False 0 FontNarne =="Timecs New Roman" ::FontStrikethru 0 'False FontUnderline =0 'False **Height 255 ::Left 5280 TabIndex Top =600 00:Widih =1455 End :Begin Label Label 14 BackColor &H008080S0& zCaption Code Length" FontBold =0 'False Fontltalic 0 'False FontName ="Times New Roman" FontSize 8.2 FontStrikethru 0 'False FontUnderline 0 'False Height =255 Left =5280 Top 120 Width =1215 End Begin Label Labell13 Alignment =2Cne BorderStyle I 'Fixed Single Caption ="1.67" Height 255 Left =62401 Tablidex =29 Top =840 Width =495 End Begin Label Labell12 Alignment =2 'Center BorderStyle I 'Fixed Single Caption Height M Left =4320 TabIndlex =28 Top 1320 WVidth =375 Eiid Begin Label Label I11 Alignment 2 'Center BorderStyle 1 'Fixed Single Caption Height =255 Left =4320 TabIndlex =27 Top 1080 Width =375 End Begin Label Labell 'Cete *BorderStyle 1 'Fixed Single Caption :Height 255 Left =4320 Tablndex 26 Top =840 Width =375 End Begin Label Label9 Alignment 2 'Center BorderStyle I 'Fixed Single Caption "120"f Height =255 Left =4320 TabIndlex Top =600 Width =375 End Alignment 2 'Center BorderStyle I 'Fixed Single Caption ="20"1 Height =255 Left 4320 A 31 Tablndex 2 4 Top 360 Width 375 End Begin Label Label7 Ali 'gnment 2 'Center BordcrStNvle 1 'Fixed Singlc Caption "180", FontBold =0 'False Fontltalic =0 'False FontNamne "MS Sans Serif" FontSize 8.2 FontStriketh-u 'False FontUnderline 0 'False Height =255 Left 6240 Tablndex 23 Top 360 WVidth =495 End End a.
0 4a a.
A
3 2 3. Program Code FUNCTION at 1 (ratio As Double) As Double 'ARCTAN FOR Quadrant I at I Atn(Abs(ratio)) END FUNCTION FUNCTION at2 (ratio As Double) As Double 'ARCTAN FOR 11 at2 pi Atn(Abs(ratio)) END FUNCTION FUNCTION at3 (ratio As Double) As Double 'ARCTAN FOR III at3 =pi2 Atn(Abs(ratio)) END F UNCTIONV *INV.FUNCTION at4 (ratio As Double) As Double :7k 'ARCTAN FOR IV at4 =pi Atn(Abs(ratio)) END FUNCTION SUB codecreate0 'CODE CREATION SUBPROGRAM :codei =codei+ I 0e text I0.Text codei too 'initialise variables for calculating frequencies *jl=0 p3 0 j4 =0 =0 'initialise string for storing code toll 'set charge site counters to zero
A
33 cl 0 cineg 0 'calculate probability value's from selection pane! values Inote N-7 is the length of the string (nlumber of elements) tot =vI N-2 N-3 N-4 ti I Nt2 vI v2 t0 =Qt 1 t4 Q t 03 4 I t6 14 N-4 t7 t6 I t8 t6 'Assignment of string values 'start of primary code generating loop *For i= I TovN7 'generation of random number Rn I Int(toi (Rtid(I))) 'generation of code sequence Select Case Rn Case 1 To v I 'ALTERNATIVE CODING LINES zs2) =o Pzs2 ="0121123223433414" =jI I Case t1I To 12 zs2 1"1 J2 J2 1 Case 13 To t4 j3 =j3 1 Case t5 To t6 zs2 Case 17 To t8 zs2 "#4"t =j5 I m m m
A
34 End Select 'add charge sites ,note that if charge site is added. previous value for zs2 is over-written 'this is necessary to keep string length a multiple of If Int(,v6 2) I Int(N-6 (Rnid(1))) Then zs2 'increment charge site counter ci ci 1 End If 'add negative charge sites 'note that if charge site is added, previous value for zs2 is overwritten 'this is necessary to keep string length a multiple of If Jnt(N-9 2) 1 Int(A-9 (Rnd( Then too: zs2 'increment charge site counter clin clneg 1 *to: End If concatenate result to the string h li zs2 Next 'display of report values 'report charge site counter v'alue Text c I cineg 'length of code string Itot Len~h) tcxt3.Text Itot 'calculation of fi Cqucflcy disti-ibutioiis text I I.Text lnt(100 j] Itot) text 12.Text Jnt(1 00 J2 tot) text 13.Tex 't Int(I 00 j3 /ltot) text I4.Text Int(1 00 j4 tot) Int(l100 j5 tot) END SUB SUB Comiandi_Click0 hscroll 16. Visible False 'Adaptive Routine 1 text39.Text text28.Tcxt= text29.Text text3l.Text text21.Tc.Nt text34.Text tcxt37.Text text38.Text text24.Text text22.Text tcxt26.Text= tcxt4.Tcxtbh h bscore transscore bscore 9...'Randomn mutation subroutine :For cycle 1 To mutnm text lO.Tcxt cycle li =bli .2locus 1 Int(Len(h) *Rnd) texI28.Tex.t =locus allele lnt(5 Rnid) Do Until Mlid$(h, locus. 1) Trim$(Str$(allele)) allele =Int(5 *Rnd) Loop If Int(N-6 2) 1 Int(%-6 Then allele A36 End If text29.Text allele Mid$(h. locus. I) Trim$(Str$(allele)) '****CREATE 3-D REPRESENTATION OF CODE**** 'Read in codes from code storage array 'Code index is codei freport current code number text IO.Text cycle 'load next code into hi for processing 'Code is stored in h 'nin decoder to create receptor :decodes C 't*****START TESTS ON TARGETS For iv= I To counttarget text23.Text iv 'reinitialize random number counter and target coordinates for each test series Crandcount =0 'Start target in original position for each test series 'get number of atomis and store in fznit (also used in testeri) fzmt fzmm(iy) For ti I To fzmt 'read in original target coordinates preserved in xomn. y'om and zom xm(ti) y-om(iv. tu) Z11n(ti) zom(iN.. ti) radius(ti) radius l(iy, ti) cradius(ti) cradiusl(iv., ti) dipm(ti) =dipmlI(iy. ti) A437 Next ti 'start loop for tcst series For tcsti 1 To testnumber text 16.Text =testi frun test tester I Next testi 'record nmaximnum score for this code and clear maxscore for next cNycle :sumcomb I(iN.) =suniconibi maxconibiscore 0 suinconibi 0 Next iN7 'end of test loop *'display results for sumn affinity as graph graphlI.DataReset=1 For ly I To counttarget graph 1. GraphData surncomb I(iN.) Next i3y graph I.GraphData 0 For iy I To counttarget graph I.XPosData =target(iy) Next iy gPmph 1 YosT),it o graph I.Dra"wMode =2 'display results for Maximum affinity as graph A38 grapl12.DataReset I For ij- I To counitarget grapl12.GrapliData maxcomibliNj) Next ivgraph2.GraphiData 0 For iv I To counttarget graph2..XposData target(iy) Next iNv graph2.XPosData 0 graph2.DravMode 2 'calculation of regression, correlation and primary scores *.Includes 0.0 as point 'Calculation 1: Sumn Affinity sunix 0 sumx2 0 sumv 0 For iy I To counttargct sunix =suimx target(iy) surnx2 surnx2 target(iv) A 2 Next iNv **.ssx sumx2 (((SIIMX) A 2) (counttarget I) For iv I To counittarget sutnv surn sumcomblI (iv) sun2 sunw2 sunicombl (iy) A 2 Next iq ssNv sumN-2 (((SUMV) A 2) (counttarget 1)) For iy I To coutittarget suntxy sumxvy (target(iy) surncomb I(iNv)) Next ivssxy surn\i ((sumix suim) (counttarget +1) srxN-2 ((ssxNv ssxy-) (ssx ssN) A39 sslope ssx) ssx sscore Sgn(sslope) srxNw2 text22.Text (Int(1000 srxy2)) 1000 text24.Text (Int(1000 sslope)) /1000 'Calculation 2: MAX Affiniqsurnx 0 stimx2 0 sunly 0 suniy2 0 surnxy 0 For iy 1 To counttarget sumnx sumix target(iv) surnx2 =sumix2 target(iy) A 2 Next iy ssx =surnx2 (((sumx) A 2) (counittarget 1)) For iy 1 To coutittarget sumv sunw rnaxcomb I (iA.) sumv2 =suini2 rnaxcombl A2 Next iv *ssy sunw2 A 2) (counttargct 1)) For iy I To counttarget sumxy sunixy (target(iy) rnaxcornb I (iv)) *Next iv ssxy surnxy ((surnx *surny) (counttarget 1)) rnrxy2 ((ssxy ssxvi) /(ssx ssy)) m1slopc =ss.\I ssx rnscore Sgn(mislope) *mrxv2 (Int(1000 rnrxN.2)) 1000 text26.Text (Int(l000 rnslopc)) 1000 multiscore Sgn(rnslope) Sqr(iiir.\%2 *srxv%2) =multiscore 'keep track of best example =bscore text') l.Text multiscore If bscore multiscore Then
A
40 bscore multiscore bmscore =bscore 'store results for best mutation result tstore results for best mutation result bestmutcode h bestsscore =sscore bestsslope sslope bestmscore mscore bestnislope mslope For iy I To countlarget bcstniaxcoinb(iy) maxcomibl1(iN) bcstsumconib(iy) sumcombl1(ijy) Next iy bscore bh h End If Next cycle 'Display best mutation text28.Text text29.Te.Nt :tcxt3 IText :tecxt21.Text text34.Text :text') .Text= text-I.Text :textI0.Text text 16.Text= text23.Text tcxt24.Text besisslope text22.Text bestsscore text26.Text bestnislope bestmscore text2g.Text text29.Text text2O.Text =bscore text3 I .Text A41 'DECODE BEST CODE 'Reid in codes from code storage array h bestrnutcode transscore bscore 'print code hg tl For 1 0To 14 For k =I To alen Jig bg Mid$(h, (I alen) k. 1) Next k hig hig Next I text4.Text hg decodes 'GAHN
SURUTN
*dslyfii~ reuta rp grap I.Gah~t Fo iv I ocuitre grp Nex i graph .XDataee 0 grp*IDawod 'display results for maximun aff inity as graph A42 grapb2.DataReset=I For iv I To counttarget graph2.GraphData. bestlnaxcornb(iy) Next iy grapl12.GraphData 0 For iy 1 To counttarget graph2.X~osData =target(iy) Next iy, graph2.X<PosData 0 graph2.Dra"wMode =2 END SUB SUB Command 10_Click C niaximals 0 naximairn 0 :text49.Text =0 liscrolll16. Visible False 'find and display high affinit-Y code text39.Text= text28.Text text29,Text= C. text30.Text :text' .Text tcxt2 I.Text= text34.Text= text37.Text= text38.Text text24.Text text22.Text text26.Text text4.Tcxt bscdre transscore bscore A43 CREATE 3-D REPRESENTATION OF CODE**** 'Read in codes from code storage array 'Code index is codel 'load next code into h for processing 'Code is stored in hi 'run decoder to create receptor decodes '***START TESTS ON TARGETS highaffinity 0 For I To couittarget text23.Text iy reinitialize random number counter and target coordinates for each test series randcount 0 'Start target in original position for each test series 'get number of atomns and store in frnit (also used in tester 1) fzmt fzmm(iv) For ti =I To fznit 59 'read in original target coordinates preserved in xorn. yorn and zom xm(ti) xorn(iNv. ti) ym(ti) 37om1(i',. ti) zni(ti) =zoni(i%. ti) radius(ti) radius l(iyv. ti) cradius(ti) cradiuIsI(i)v. ti) dipm(ti) =dipnfI (iy. ti rcolor(ti) colrm(iv. ti) Next ti 'start loop for test series For testi 1 To testnumber text 16.Text testi 'run test tester2 A44 Next testi 'record maximum score for this code and clear maxscore for next cyclc sumcombl(iN.) sumconibi m3axcombl(iy) naxcombiscore maxconibiscore 0 sumcombi 0 Next iNv 'end of test loop 'displav results for sumn affinity as graph graphl.DataReset I For iv 1 To courittarget graph 1. GraphData 0ucmb~~ Next iy graph .GrPosData 0 For iv I To counttarget 9graph2.XrposData taget b I v) Next iv graph .XrposData 0 Fo 9.=ITocuttrc griph2.XPosData =target~iy) Next i), graph2.XPosData 0 grapl12.DriNNMode 2 'calculation of regression, correlation and primary scores 'includes 0,0 as point 'Calculation 1: Sum Affinitv sunix 0 sumx2 0 0 surnv2 0 suflL\y 0 For iv I To counttarget sumx =sumix target(iN.) sunix2 =sumnx2 target(iy) A 2 Next iy ss umx2- ((sum) A2) (counttarget 1) For I To counttarget surny sumny sumfornbl(iv) SUMNw2 sumv2 sumnconibl(iNv) A 2 Next iv *ssy, surnNv2 (((suniy) A 2) (counittarget 1)) For i3-= I To counttarget sea sumxv =su mxN (target(iv) sunicomblI(iN)) Next iyv SSXNv stMN) ((sunix sumy) (counttarget 1)) srxv2 =((ssxv! ssxv) (ssx ssN.)) sslope ssxv ssx sscore =Sgn(sslope) srxy-2 text22.Tcxt (Int(l000 srxN-2)) /1000 text24.Text (Int(I 000 sslope)) 'Calculation 2: MAX Affinity SUMN 0 surnx2 0 surnv 0 A46 sumv2 0 surnxv 0 For iv 1 To counittarget stnix surnx target(iv) sunix2 =surnx2 target(iy) A 2 Next iy ssx surnx2 (((surnX) A 2) (counittarget 1)) For iy 1 To counttarget su my sumny rnaxconib I(iv) surnY2 surnv2 maxcornbI(iv-) A 2 Next iv SSV SUMy2 A 2) (counttarget 1)) For iy I To counittarget sumx sumxy (target(iy) maxconmbl(iy)) Next iy ***SSXV= suix-v -((sumx *sumy) (counittarget nirxN2 =((ssxv ssx-,) /(ssx ssy)) 9mslope SSXv /ssx muliscore Sg(islope) q~r.y srrxv2 41 (Int100* rx 2) text56.Text (aint(00 isoe) 9044 .et ainan EN SUB texnt0Text ticoitret cax mals ru texthlText nt rnaxinttr
A
47 'load target -value target(counttarget) target 1 'FILE READING ROUTINE FOR TARGET ACQUISITION 'loading target 'test for filename; if present continue, if not. exit If tcxtl9.Text Then 'preparc for display, picture2.Cls picture2. Scale -7) 1compose filenamec string fliame "c:\vb3\ mites\" textl9.Text "S.txt" eo* *0 0 000 listl.Addltem Str$(counttirget) textl9.Text Str$(target(counittarget)) 000 'open file Open fname For Input As 1 'read in atomn count(fzmm) as first itemi in file Input fl, fzmni(counttarget) 1 'stairt loop to read in values from file for each atom For i I To fzmmi(counttarget) 'store in arra-s '.xx=x-centcr
SI
y--center 0 Izz=z -center 'radius =atornic radius 'cradius=collision radius 'dipm=dipole moment Input I. xx. N. zz. radiuslI(counttarget. cv'radm. craditislI(counttarget. dipmlI(cowittarget.i.
colrmi(counttarget. i) 'divide positional coordinates by 100 and store .xomn(counittarget. i) xx /100 yont(counittargeL, 1) =y I)O1U zoni(counttarget. i) zz /100 Next A48 'close file Close 1 End If tstore grey color code gcol =RGB(50, 50, 'start loop to calculate collision matrix values For i 1 To fzmmi(counttarget) zp =zomi(counittarget. i) xp xom(counttarget. i) y'p y*om(couttarget, i) rp, radiuslI(counttarget, i) sp cradiuslI(counttarget, i) colm colrm(counttarget, i) 'draw atoms using radius and collision radius picture2.Circle yp). rp. QBColor(colm) 'picture2. Circle (xp. rp, gcol 'calculation of collision matrix *s psp #start loop to calculate collision points Forj=1nt(xp -sp) To Int(xp +sp+ 1 For k lnt(yp -sp) To Int(yp +sp 1) 'calculate distance from atom center dist Sqr((xp A 2 (yp k) A 2) 'if distance is less than radius. then set collision height matrix component to radius If dist rp Then 'draw collision point picture2.Circle .2 Else 'if distanmce is Icss thani collision radius (but greater thami radius) 'set collision matrix component to radius/2 If dist sp Then A49 'draw point picture2.PSet End If End If Next k Next j Next Close 1 'draw grid on target frame picture2.Line picture2.Line (20. 0) END SUB SUB Command 13 Cl ick( liscroll 16. Visible False reset counter and multiscore values nultiscore 0 codei =0 :text39.Text text28.Text text29.Text text3 I.Text *text34I.Tex\t= *text37.Text text38.Text text30.Text text24.Text= text22.Tcxt text26.Text text4.Text bscore 0 Do Until multiscore threshold I A 'Set maximum target orientation number to 0 'Clear maxtarget nixtest =0 mxtarget =0 mxscore =0 text47.Text text48.Text text49.Text codecreate 'MULTI TEST PRIMARY ROUTINE 'initialise best score '****CREATE 3-13 REPRESENTATION OF CODE**** 'Read in code 'Code is stored in h 'run decoder to create receptor decodes TESTS ON TARGETS *.For 1 To counttarget 'report current target text23.Text =iNv 'reinitialize random numiber counter and target coordinates for each lest series randcount 0) 'Start target in original position for eachi tcst series 'get number of atoms and store in fznit (also used inl testcri) fit fzmm(iNv) *For ti 1 To fzmt 'read in original target coordinates preserved in xom. vom and zom xm(ti) xOM(iv-. ti) zm(ti) =zom(iy. ti) radius(ti) radius l(iNv. ti) cradius(ti) cradiusl(iv.. ti) dipm(ti) dipmlI(iy, ti) Next ti 'start loop for test series For testi 1 To testnumber textl6.Text testi 'run test transtest testi transtargct iy tester 1 Next testi 'record maximum score for this code and clear maxscore for next cycle sumcornb I (iNv) surncombi maxcornblI(iy) =maxcombiscore nixcombiscore 0 sumcoinbi 0 Next iy 'end of test loop 'displaN results for sum affinity as graph :graph I.DataReset 1 For iy =I To counittargct graph 1. GraphData =suincomb I(iy) Next iv, graph 1. GraphData 0 For iv 1 To counttarget .graph 1 .XosData target(iv) Next iv graph I .XPosData 0 graph 1.DrawMode 2 'displayv results for maximum affinity as graph A52 graph2.Data.Reset =I For iy 1 To counttarget graph2. GraphData maxcomblI(iy) Next iy grapl12.GraphData =0 For iy I To counttarget graph2.X~osData target(iy) Next iv graph2.XPosData 0 griph2.DrawMode =2 'calculation of regression, correlation and primary scores 'includes 0.0 as point 'Calculation 1: Sumn Affinity surnx2 0 *.sunmv= 0 suMNi2 0 sumxv= 0 :For iv =I To counttarget SUMx sumnx target(iNv) sunix2 surnx2 target(iv) A2 Next iy ssx sunix2 (((sumix) A 2) /(counttarget 1)) :For iy I To counittarget s1u1Niv sumvy surnconibl(iy) muy sry2 sumcombl(iN) A\ 2 Next iv ~**ssy =sumni2 (((sumvy) A 2) (counttarget 1)) For iv =I To counttarget sumxv =sumixv (target(iv) sumcombl(iv)) ssxNy SUMrnx ((surnx sumv) (counttarget 1)) A53 sr-xx2 =((ssxv ssxy) (Ssx ssNv)) sslope =ssxy ssx sscore Sgn(sslope) srxvN2 text22.Text (int(l000 srxv"2)) 1000 text24.Text =(lnt(1000 *sslope)) /1000 'Calculation 2: MAX Affinity sumnx =0 suinx2 0 surniN 0 sum%12 =0 suinxy =0 For iy I To courmttarget sunix suffix target(iNv) surnx2 sunix2 target(i) A 2 Next iy, ssx sumx2 (((sufinx) A 2) (counttarget 1)) For iY 1 To counittarget sunfiv= surmy maxcomb I(iy) surny2 =sum-2 rnaxcomblI(iNvyA 2 Next IN ISN sunv2 (((sunmN) A 2) (courittarget 1)) For iv I To counittarget *stunxv surnxi (target(iv) *maxcombl(iv)) :Next iv ssx-y surnix ((suffix *surny) (counittarget 1)) .*mrxvy2 ((ssxvr ssxN,) I(ssx ssy)) inscorc Sgn(inslope) irx.-v2 (Int(1000 mrxy2)) 1000 text26.Text (Int(1 000 mislope)) 1000 multiscore =Sgn(mislope) Sqr(nirxvN2 *srxiv2) =multiscore 'track best score Jf bscore multiscore Then bscore multiscore =bscore End It 'track mean of codes generated sunicycle sunicycle multiscore text' 9.Tcxt sunicvcle /codei maxcombiscore 0 sunicornbi 0 Loop transscore iultiscore 'display code hig ft For 1 0 To 14 For k =I To alen Jig hg Mid$(h, (I len) k, 1) Next k fig bg Next I :text4.Tex\t hg *Beep ***END S UB SUB Comniand3_Click hcoff= isbl =3n text22.Text =cof ENDt6Tcx SU tex...ct 'RNOIE POUATO GEEAO Forolll=.I sieze text24.Text hin h For j 1 To Int(Len(h) text 16.Text =j locus =I Int(Len(h) Rnd) text28.Text =locus allele Int(5 Rnd) Do Until Mid$(hm, locus. 1) Trim$(Str$(allele)) allele =Int(5 *Rnd) Loop If Int(v6 2) 1 Int(v6 Then allele End If text29.Text allele *0q4Mid$(hrn., locus. I) =Trinl$(Str$(allele)) *Next j codearrav(i) hin S SNext codearraNv(0) h niultitester END SUB SUB 'FILE READING ROUTINE FOR TARGET ACQUISITION 'loading target 'test for filename-; if present continue. if not, exit If tcxt43.Text Then 'prepare for display A56 picture2.Cls picture2.Scale -7) 'compose filename string friame ="c:\-Wb3\mnites\" text43.Text "s.txt" 'open. file Open fname For Input As 1 'read in atom count(fzmm) as first item in file Input fzmmtest 'start loop to read in values from file for each atom For i 1 To fzmmtest 'store in arrays Jxxx-center 'vyy-center 'zzz-center 'radius =atomic radius 'cradius=collision radius 'dipm=dipole moment Input #1L xx. zz, radiuslItest(i). cvradm~i. cradiuslItest(i). dipin Itest(i). colrmtest(i) 'divide positional coordinates by 100 and store :xomtest(i) xx /100 vonmtest(i) =v 100 zomtest(i) zz /100 Next 'close file Close I End If 'store grey color code gcol RGB(50. 50.. 'start loop to calculate collision matrix values For i 1 To fzmmtest zp zomtest(i)
A
57 xp= xomtest(i) Yp =yomtest(i) rp radius ltest(i) sp cradiuslItest(i) 'draw atoms using radius and collision radius picture2. Circle rp. QBColor(colrnutest(i)) 'calculation of collision matrix sp=sp,+0 'start loop to calculate collision points Forj =Int(xp sp) To Int(xp sp 1) For k =Int(y-p sp) To Jnt~yp sp 1) 'calculate distance from atom center dist Sqr((xp A 2 (y-p k) A1 2) 'if distance is less than radius, then set collision 'height matrix component to radius If dist rp, Then *ova 'draw collision point picture2.Circle j .2 Else 'if distance is less than collision radius (but greater than radius) 'set collision matrix component to radius/2 r If dist sp, Then 'draw point picture2.PSet j.k) End If End If Next k Nextj Next Close I draw grid on target frame picture2.Line picture2.Line (20, 0) 'TEST PRIMARY ROUTINE naxcoiiibi score =0 sumicombi =0 'initialise best score, bestscore and bestcode text I 0.Text "TEST" text28.Text tcxt29.Text text39.Text text2lI.Text= text34.Text text37.Te.Nt text38.Text text4.Tcxt- ~CREATE 3 -D REPRESENTATION OF CODE 'edin codes from code storage arraN 'oeindex is codei 'load next code into i for processing :'Code is stored in h 'run decoder to create receptor decodcs TESTS ON TARGETS 'report current target text23.Text text43.Text 'reinitialize random number counter and target coordinates for each test series randcount 0 A59 'Start target in original position for each test series 'get number of atoms and store in fzmt (also used in tester 1) fzmt fzinmtest For ti 1 To fzint 'read in original target coordinates preserved in xom, vom and zom xrn(ti) =xomtest(ti) ym(ti) yomtest(ti) zm(ti) zomtest(ti) radius(ti) radius ltest(ti) cradius(ti) cradiusltcst(ti) dipm(ti) =dipm Itest(ti) Next ti 'start loop for test series For testi 1 To testnuniber text 16.Text =testi 'run test tester I Next testi :'record maximum score for this code and clear maxscore for next cvcle, text I .Text =suniconbi text42.Text maxcombiscore :maxconibiscore 0 sumcombi 0 'display best code hig fl For 1 0 To 14 a For k I To alen hg =hg Mid$(h. (1I alen) k. 1) Next k hg hg o Next I text4.Text =hg END SUB SUB Command5_Click C 'ROUTINE FOR SAVING CODES IN FILE set file extension default cmdialogl.DefaultExt ".cod" cnidialogl.Filter "code (*.cod)I*.codlf activate common dialog box for file input cmdialog1. Action 2 store filename codefilename cnidialogl.Filetitie Open codefilename For Output As I 'write number of codes as first item in file Write h Write v7 Write depth Write rwidth Write 1. rlength Write #11. proxsense Write testnuniber Write popsize Write fl, inaximals Write maximalm CloselI ENVD SUB SUB Comnmand6_Click fisciolll6.Vjsibic True 'ExchangeSort: The ExchangeSort compares each element--starting with 'the first-with every following element. If any of the following 'elements is smaller than the current element, it is exchanged wvith A61 'the current element and the process is repeated for the next element.
text24.Text text22.Text text26.Text= text39.Text 'choose partners for recombination For I I To (popsize 2) text23.Text I agene Int(4 Rnd) Do bgene Int(4 Rnd) Loop Until bgene agene text] O.Text agene X bgene aacode =bestcode(agene) bbcodc =bestcode(bgene) 'selection of a crossover site genenber Int(Rnd sitenumber =I Int(alen Raid) alleleposition (alen genenuniber) sitenuniber text28,Text alleleposition xlength (alen sitenumber) I tCxt29.Tcxt xleiigth 'extraction of code fragments xacode Mid$(aacode. alleleposition. xlength) xbcodc Mid$(bbcodc. alleleposition. xlength) 'replacement of code fragments atcode =aacode btcode bbcodc Mid$(atcode. alleleposition. xlength) xbcode Mid$(btcode. alleleposition, xlength) =xacode IA 62 codearray(I) atcode codearray(l (popsize btcode Next I 'RANDOMIZED POPULATION
GENERATOR
For i I To Int(.5 popsize) codeselect 1 Int(Rnd popsize) text IlO.TCxt codeselect hrn codearray(codeselect) Forj 1 To text 16.Text =j locus I Int(Len(h) Rnd) text28.Text locus allele =Int(5 Rnd) Do Until Mid$(hrn. locus, 1) Trirn$(Str$(allele)) :allele =Int(5 Rnd) Loop If Int(v6 2) =1 Int(v6 Then allele Woo: End If 4* text29.Text allele 9 id$(hm. locus. I) Triin$(Str$(allele)) Nextj :~:codearrav(codeselect) hni Next i 'include example of bestcode fromn last generation For i 1 To Int(.5 popsize) codeselect I Int(Rnd popsize) A63 textlO.Text codeselect hm codearraNv(codeselect) Forj I To 1 text 16, Text =j locus I Int(Len(h) R-nd) text28.Text locus allele Int(5 Rud) Do Until Mid$(hmni. locus, 1) Trinm$(Str$(allele)) allele =Int(5 *Rind) Loop IflInt(v6 2) 1 I Int(%-6 Then allele End If text29.Text allele Mid$(hm. locus, 1) Trirn$(Str$(al lele)) Next j codearrav(codeste) lm 0iese etifodealexesn cmdearrlo)lFle "scode A6 4 'activate file common dialog box cnidialog1. Action=I $store filename in codefilename codefilename =cmdialogl .Filetitle Open codefilena me For Input As I 'get codenumber stored as first item in file Input h Input N-7 hscroll7 v7 Iabel7.Caption N7 Input 41 depth bscroll 13. Value depth text2.Text depth Input rwidth hiscroll 15.Value nvidth text8.Text rwvidth Input rlength hscro119. Value length text27.Text rlength Input #I1. proxsense hscroll 14. Value 2 proxsense textlI7.Text proxsense Input 1, testniumber hscrolll2.Vilue testnumber text36.Text testnumber Iniput popsize liscroll 17. Value popsize 2 text4O.TCxt Ppsize Input transval hscrolll18. Value transxval text44.Text transval Input 1. maximals Input maximalm 'close file Close 1 'display code decodes hig 14 For k I To alen hg hg Mid$(h. (I *alen) k, 1) Next k hg =hg Next I tcext4.Text -hg Beep ENVD SUB SUB Command8_Click text 19.Text=" picture2.Cls counttarget 0 list I.Clear END SUB SUB Cornrnand9_Click :coeff =4 text46,Text coeff END SUB SUB decodes 'DECODER FOR CREATION OF RECEPTOR V, 'Clear vectors for storing x.Nv and z coordinates Erase xo ~Erase N o Erase zo 'Redirnension vector coordinates to length of code ReDirnixo(Len(h)) As Intcger ReDim yo(Len(h)) As Integer ReDiin zo(Len(h)) As Integer A66 'initialize min and max values maxx -10000 max -10000 maxz -10000 minx 10000 miny 10000 minz 10000 'set initial position in movement array. This determines the starting orientation n 'initialise counters of charge sites cl=0 clneg 0 'calculate allele lengths (code length/15): store in alen alen Len(h) 'start loop for decoding 'one cycle per allele For ni 0 To 14 'load starting coordinates for each successive allele 'Coordinates stored in ox. ov and oz S: x= o.(ni) oy(ni) z oz(ni) 'set initial position in movement array. This determines the starting orientation n 'start loop to decode each allele 'For i 1 To alen 'read character from code zs2 Mid$(h. (ni alen) i. 1) 'if character is 5 set as charge site If zs2 Then 'move 1 unit in current direction A67 Xx x+ y y z =z C(n) add one to charge site counter ci. ci 1 'redimension charge site storage vectors ReDim Preserve xcz(clI) ReDini Preserve ycz(clI) ReDin Preserve zcz(c I) 'store charge site coordinates, using charge site counter as index ,xcz(cl) =x )ycz(clI) y zcz(cl) =z End If 'if character is 6 set as charge site If zs2 Then 'mnove I unit in current direction x =x y y 4- z z C(n) 'add one to charge site counter *clneg=clneg+1I 'redimension charge site storage vectors ReDim Preserve xczneg(cineg) ReDinii Preserve -,'cziieg(cl1neg) ReDi m Preserve zczneg(clIneg) store charge site coordinates, using charge site counter as index :xczneg(c I neg) =x )-czneg(clIneg) :zczne(c Ineg)= z End If 'il chatacter is not 5 or 6 start decoding 'select case according to character Select Case Val(zs2) A68 'calculate new values for coordinates Case 0 Case z=z+C(n) n x -x y y z =z C(n) Case 2 n x x y y+ z z C(n) Case 3 n x x y y z z C(n) Case 4 n x x yv y z =z C(n) Case Case 6 End Select 'write data to the file, use code index position as vector index .xo((ni *alen) i) x vo((ni *alen) i) y zo((ni *alen) i) =z 'find min and max values :22: If x mfinx Then minx= x End If :If x axx Then End If If N rniny Then End If IfIy maxy Then rnaxV End If :If z <minz Then *minz =z End If If z in1axz' Ihen.
niaxz =z End If A69
'LOOP
Next ni 'display. of report values 'charge site counter values cl cineg 'confirm length of current string ltot =Len(h) 'length of code string text3.Text Itot 'Calculate center of matrix centerx Int((maxx mninx) 2) centerv I nt((maxv minv) 2) 'creates z matrix without drawing result 'Clear previous matrix of heights Erase zmnat Erase z3mat 'Redimi height matrix to minimum and maximum values :ReDim zmat(minx centerx To niaxx centerx. miny center%, To maxy centerv) As Integer ReDim z3mat(minx centerx To maxx centerx, inyv centerv To maxv ceniterv. I To maxz 1 minz) As Integer 'Create new height matrix 'Get values from coordinate vector For i 1 To Len(h) 'Calculate values for height normalized for minimum 0: A* i=zo(i) 1- minz 'Get x and N. values for z coordinate to use as indices for height matrix .xi xo(i) centerx 3-i yo(i) centerv A 7o z3mat(xi, yi, zi) 1 'Set values for height matrix 'Check to see whether matrix component has already been set 'If yes then check if new value is greater than old value set value to greater value If zmat(xi, yi) 0 Then zmiat(xi. yi) zi Else If zmat(xi, vi) <zi Then zmat(xi, .yi) =zi End If End If Next 'Set up picture for drawing result picture3 .Cls picture3.BackColor RGB(0. 0. 0) picture3.Scale 20)-(20. 'Draw frame on picture ~**.picture3.Line RGB(255. 255. 255) picture3.Line 20). RGB(255. 255. 255) picturc3.Line (10, 10)+M-l. RGB(100. 0. B 4 'Set color factor scale cfac 255 (maxz minz) 'Draw height matrix For i maxv centery To niinN- center-, Step -I Forj minx centerx To rnaxx centerx ac =cfac zmat(j. i0 If ac 0 Then colr RGB(120. ac. ac) picture3.Line (j .25, i .25)-oj .25. i colr. BF End If A 7 1 Next j Next 'Set up to draw charge sites oldstyle =picture3.Fill~tyle oldcolor =picture3. Fill Color picture3.FilIStyle =0 picture3.Fi 11Color RGB(0, 0, 0) 'Draw charge sites For ii 1 Toad xcz(ii) xcz(ii) centerx vcz(ii) ycz(ii) centery zcz(ii) zcz(ii) I minz If zmYat(xCz(ii), 3,cz(ii)) zcz(ii) Then colz =QBColor(l0) Else colz QBColor(2) End If picture3.Circle (xcz(ii), ycz(ii)). 1. colz Next ii :For ii 1 To cIneg xczneg(ii) =xczneg(ii) centerx 3yczneg(ii) yczneg(ii) centerv zczneg(ii) =zczneg(ii) I ininz If zrnat(xczncg(ii), yczneg(ii)) =zczneg(ii) Then colz QBColor(12) Else coiz =QBColor(4) End If picture' .Circle (.xczneg(ii). czneg(ii)). L, colz Next ii picture3.FillSty'le =oldstyle picture3.Fi 11Color oldcolor END SUB FUNCTION dist' d (x 1. y L. zi1, x2, y 2 z2) As Double A72 'THREE DIMENSIONAL DISTANCE CALCULATION dist3d, Sqr((xl x2) A 2 (yI 3-2) A 2 (zI z2) A 2) END FUNCTION SUB Form Load liscro!1 16. Visible False 'Set tip picture for drawing result picture 1.Visible =False picture3 .Cis picture3.BackColor RGB(0, 0. 100) picture3.Scale 20)-(20, 'Draw frame on picture picture'.Line RGB(255. 255, 255) *picture3.Linc 20). RGB(255, 255, 255) picture3.Line RGB(1 00, 0, B depth ridth =7 length =7 cnum threshold. =.8 popsize transval =0 :coeff =3 *'Set numerical constants pi 3.14159265 pi2 pi 2 'lest and code numbers testnumber 1 codenunmber I proxsense 3 counttarget 0 'initialise target file entry boxes text 9.Text text4' .Text 'initialiscs string frequencies vs I N-1 A73 v4 v6 v7 =180 v9 $set rnaxz=0 as default value maxz 0 'this routine loads the matrix required for code conversion Open 'c:\v-b3\miites\robodat.bas" For Input As 1 liput junk Input junk For i I To 24 Input a(i) Next For i =I To 24 Ipt# 1. B(i) Nex S Next For i= I1To 24 :Input 41, (i) Next *For i I TIo 24 Input 1. d(i) A74 Next Close fragorig 'set up random numbers For i 0 To 3000 randarray~i) CSng(Rnd) Next END SUB 9 a.
9 9 9 9 a.
9 9 9* 9* 9*99 *999 9* a.
9.
.9 9*9 9 9 9 9 9 99 SUB fragorig 'LOADS INITIAL RECEPTOR ORIGIN COORDINATES I'origins for fragments ON(O) =-7 ox(1) =0 ox(2) 7 ox(3) =-7 ox(4) 0 ox(5) =7 ox(6) -7 ox(7) =0 ox(8) =7 ox(9) -7 ox(1) =0 ox(I 1) =7 ox(1 2) -7 ox(1 3) 0 ox(14) 7 ov,(0) =7 oy(I) '7 ov,(2) =7 oy(3) =7 oy(4) =7 =7 oy(6) =0 0 03-( 8 =0 oy(9) =-7 =-7i oy(l 11) =-7 ov(12) =-7 oly(l3) -7 oy(14) -7 oz(0) =0 oz(1) =0 oz(2) 0 oz(3) =-14 oz(4) -14 -14 oz(6) -28 oz(7) -28 oz(8) -28 oz(9) =-14 -14 oz(I 1) -14 oz(12) 0 oz(13)= 0 oz(14) 0 END SUB SUB H-ScrollI Change() 'CODE FREQUENCY CONTROL 'control for controlling code frequencN, for 0 'load value into v vI hscrolll.Value 'updatc total for frequency calculations tc =v1I+ 013 +v4 'update frequency labels laeSCato a.00*N1 label 1. Caption Int( 00 v4 tc) labell.Caption Int(00 N-5 c) END SUB SUB HScrollI 10 -Change0 mutnun hscrolll0.Value text33.Text mutnum END SUB SUB 1-IScrol Inutnuin hiscrull 10. Value text')3.Text mutnum END SUB A 76 SUB HScroll I1IChange 'CODE NUMBER CONTROL 'load new number of codes into codenumbcr AND DISPLAY liscroill l.Value threshold 1 Val(hscrolll Il.Value) 100 END SUB SUB HScroll I IScroll C 'load number of codes into variable AND DISPLAY liscrollI l.Value codenumber Val(hiscroll 11. Value) END SUB SUB HScroll 1
S
TEST NUMBER CONTROL 'load number of tests into testnumnbcr AND DISPLAY text36.Text =hscroll12.Value to testnuinber Val(hscroll 12. Valute) transscore 0 too ENVD SUB SUB HScrolll12_Scroll 'load number of codes into variable AND DISPLAY text36.Text =hscroll12.Value testnuinber =Val(hscroll I 2.Valuc) END SUB SUB HScrolll3 Change0 'RECEPTOR DEPTH CONTROL 'get new value for receptor depth and display depth liscrolll13. Value WMx2. I ext depth1 'store new value in code origin vector A77 oz(6) depth oz(7) -1 depth oz(8) depth oz(3) A1 Int(depth 2) oz(4) Int(depth 2) -I Int(depth 2) oz(9) -1 Int(depth 2) oz(1O) -1 Int(depth 2) oz(11) A I nt(depth /2) ENVD SUB SUB H-ScrollI13_Scroll 'RECEPTOR DEPTH CONTROL 'get new value for receptor depth and display Sdepth scrol3. Value text2.Text depth :'stor newvalue in code origin vector oz(6) -1 A depth oz(7) -I depth oz(8) -1A depth oz(3) -I Int(depth 2) *oz(4) =-1I Int(depth 2) -1 A Int(dcpth 2) oz9 IS..eth/2 oz(1) -1 nt(depth 2) 11) Int(depth 2) END SUB SUB 1-IScroll 14 Change0 'PROXIMITY CONTROL 'get new proxinmity value and store in proxsense 'divide by two to allow intermediate values text I17.Text hscrolll14. Value 2 proxsense =hscrolll14. Value 2 END S UB SUB A78 textlI7.Te.Nt hscroll14.Value 2 proxsense hscrolll14. Value 2 END SUB SUB HScrollI 5Change 'RECEPTOR WIDTH CONTROL Iget new width value from scroll bar and display rwidth hscrolll15. Value texNtl8.Te.Nt rw'idth 'update width coordinates in code origin matrix oy(O) i-width oy(I) rwidth oy(2) rwidth ov(3) nvidth ov(4): nidth =rwidth :oy(9) -I nvidth ov(lO) -1 rwidth =ylI -I i-width oy(1 2) -I *i-width oy(13) -1 i-idth :oy(l4) i-idth 'draw new receptor frame on screen picture3.Cls picture3.Line rlength), rxvidth))-(rlength, nvidth). RGB(255, 0. 255). B END SUB SUB HScrolll15_Scroll0 'RECEPTOR WIDTH CONTROL 'get new width value from scroll bar and display i-width hscroll I text 18.Text i-width update width coordinates in code origin matrix oy(O) i-wvidth oy( 1) i -wvidth oy(2) i\-widthi oNy(3 i-width oy(4) nvidth 03-(5) i-width A79 oy( 9 -I rwidth MOvO) rwidth oy(ll1) -I rwidth oy-(I 2 rwidth oy(l 3 rwidth oy(14) 4* nvidtli 'draw new reccptor frame on screen picture3.Cls picture3.Line rlength), nvidth))-(rlength, rwidth), RGB(255. 0. 255). B END SUB SUB HScroIIl16_Change0 'SCAN RESULTS cnum =hscroll 16. Value :text22.Text tcxt24.Text =sslope3(cntim) text25.Text =mrxy3(cnuni) text26.Text instope3(cnium) pnlscore(cntim) text3 1. .Text pmscore(cnitm) bscore trinsscbre pinscorc(ciunl) text lO.Text= ru 'DECODE BEST CODE 'Read in codes from code storage arraN 'Code index is crnn 'prior to testing. cnttm=0 h codearra%.(cnum) 'Code is stored in Ii hog fl For 1 0To 14 For k =I To alen hg hg Mid$(h. (1I alen) k. 1) Next k hg hg Next I text4.'I1ext hg decodes A 8o 'GRAPHING SUBROUTINE 'display results for sum affinity as graph graph l.DataReset
I
For iv 1 To counittarget graph I GraphData sumcornb3(iyv. cnum) Next ivr graph 1. GraphData 0 For iv I To countlarget graph 1.XPosData. target(iy) Next iv, a. **graph l.XPosData =0 :graph I.DraivMode =2 'display results for maximum affinity as graph graph2.DataReset
=I
Fo y ocorttre For i3- I To counttarget graph2.GrphsData axcomb(iv.cnum :Next iv graph2.GrposData 0 graph2.DraivMode =2 END SUB SUB HScroll I 7 Change popsize 2 hscroll 17. Value A8 popsize liscrolll6.max =popsize END SUB SUB HScrol II7_Scroll popsize 2 *hscrollll. Value =popsize END SUB SUB3 HScroll118_-Change() text44 hscrolll8.Value transval hscrolll8.Value END SUB SUB HScroII18_Scroll0 text44 =hscrollls.Vahie END SUB SUB HScrolll19_Change 'CHARGE SITE FREQUENCY CONTROL 'get new value for charge site percentage from 'scroll bar and store in N-6 v9 =hscroll19.Value 'update label with new charge site probability label38.Caption (lnt(10000 /100 END SUB SUB HScroll2 -Change0 'CODE FREQUENCY CONTROL 'control for controlling code frequency for I 'load value into N-2 N-2 =hscroll2.Value update total for frequency calculations tc vi v2 v3 v4I vi 'update frequency labels labKl8.taiiot l nt(10 IU V1 IC) label9.Caption Int(100 N-~2 tc) label lO.Caption =Int(I00 03 tc) labell 1 1Caption Int(100 tc) A82 label 12. Caption Int(lO00 v5 tc) END SUB SUB 'CODE FREQUENCY CONTROL 'control for controlling code frequency- for 4 'load value into v3 v3 hscro1l3.Value 'update total for frequency- calculations tc =i A± v2 0 'update frequency labels l*c8Cato *a00*N1 label8.Caption =Int(100 v2 tc) ~*label 1.Caption Jnt(100 N-3 tc) *labellII Caption =lnt(lO00 tc) labc112.Caption Int(lOO v5 tc) END SUB SUB3 HScroll4_Change 'CODE FREQUENCY CONTROL 'control for controlling code frequency for 3 'load value into v4 N-4 hscrol]4.Value 'update total for frequency calculations tc Nv1 v2 N-3 v4 'update frequency. labels labelS.Caption Int(100 tc) label9.Caption Int(OC) N-2 tc) labcllO.Caption =Int(lOO v3 tc) labell II.Caption Int(100 v4 tc) labell12.Caption =Int(IOO N-5 tc) END SUB SUB HScrolI5 Change0 A83 'CODE FREQUENCY CONTROL 'control for controlling code frequency for 4 'load value into 'update total for frequency calculations tc vI v'2 v3 v4 +I 'update frequency labels label8.Caption Int(l00 vi tc) label9.Caption Int(l00 N-2 tc) IabeliO.Caption Int(100 v'3 tc) labell Il.Caption Int(100 /ftc) label 12.Caption Int(i0O N-5 tc) EN AD SUB SUB 'CHARGE SITE FREQUENCY CONTROL 'get new value for charge site percentage from 'scroll bar and store in v6 N,6 hscro116.Value 'update label with new charge site probabilitN :labellI3.Caption (Int(I0000 v6)) 100 END SUB SUB HScro1I7-Change0 *'CODE LENGTH ADJUSTMENT CONTROL 'get new setting for code length from scroll bar and store in 0' 'MULTIPLY by 15 to ensure codes are ALL multiples of N-7 15 hscroll7.Vilue 'Update label label7.Caption N- END SUB SUB HScro117-Scroll
A
84 v715 hscroll7. Value label7.Caption v7 END SUB SUB 'TARGET VALUE CONTROL 'get new value, store in target I and display targeti hscroll8.Value text32.Text =hscroll8.Value END SUB SUB 'TARGET VALUE CONTROL Iget new value, store in target 1 and display *ta rget I hscrol 18. Value text32.Text hscrol]8. Value END SUB :::SUB HScro]I9 -Change0 'RECEPTOR LENGTH CONTROL Iget new wvidth value from scroll bar and display rlength =hscro]19.Value :text27.Text =rlength 'updatewidth coordinates in code origin matrix ox(2) =rlength ::ox(5 rlength ox(1) rlength ox(1 Irlength ox(1) -Irlength ox(6) -I rlength ox(9) -I length ox(12) *rlength 'draw newv receptor Iranie on screen picture3.Cls picture'3.Line rlength), flvidth))-(rlength, rw~idth), RGB(255, 0.255). B A END SUB SUB HScro1I9_Scroll0 'RECEPTOR LENGTH CONTROL 'get new width value from scroll bar and display rlength =hscro119.Vilue text27.Text =rlength 'update width coordinates in code origin matrix ox(2) =rlength length ox(8) rlength ox(1 1) rlength ox(14) =rlength ox(O) rlength ox(3) -I rlength -I rlength 0*0 ox(9) rlength ox1)=-I rlength :00: 'draw new receptor frame on screcn .0.0 picture3.C~s picture3.Line rlength). (-1I r-width))-(rlength., rwidth). RGB(255.. 0. 255). B END SUB FUNCTION length (xl As Double. vI As Double) As Double 'LENGTH CALCULATION (Pythagorean) length Sqr(xlI A 2 yI A 2) END FUNCTION FUNCTION max (varl, var2) If varlI va r2 Then max varl Else max var2 1:1d If END FUNCTION A86 FUNCTION min (vanl, x'ar2) If varn var2 Then min v~ar Else min var2 End If END FUNCTION SUB multitester 'MULTI TEST PRIMARY ROUTINE 'initialise best score.. bestscore and bestcode Erase bestcode Erase bcstscore text28.Text ::text29.Text text')9. Text= text2 1. Text textJS .Text= text-I.Textbscore 0 3-D, REPRESENTATION OF CODE *'I 'Read in codes from code storage array 'Code index is codei For codci 0 To popsize 'report, current code number text 10. Text codei 'load next code into h for processing h =codearray(codei) 'Code is stored in h 'run decoder to create receptor decodes A87 I*****STAJRT TESTS ON TARGETS For iy =I To counttarget 'report, current target text23.Text i3, 'reinitialize random number counter and target coordinates for each test series randcount 0 'Start target in original position for each test series 'get number of atoms and store in fzmt (also used in tester 1) fznit =fzmin(iy) For ti 1 To fzmt 'read in original target coordinates preserved in Nom, Nomn and zorn xm(ti) xorn(iv. ti) Vn(ti) yom(iv. ti) znl(ti) zom(i3v. ti) radius(ti) =radiusl(iy. ti) cradius(ti) cridiusl(iN. ti) dipi(ti) dipm 1 (iy? ti) Next ti 'start loop for test series testi I To testnumber text 16.Text testi run test testerd Next testi 'record maximum score for this code and clear maxscore for next cycle sumcomb3(iN". codei) =sumcombi niaxconib3 (iNv. codei) =maxcombiscore A88 maxcombiscore 0 sumcombi 0 Next iy 'end of test loop 'display results for sum afl inity as5 graph graph I.DataReset 1 For iy I To counttarget graphi .GraphData suniconib3(iv. codei) Next iNv graph 1. GraphData 0 For iv I To counittarget graph il.XPosData target(iy) Next iv graph I.XPosData 0 graph Il.DrawMode 2 'display results for maximum affinity as graph :graph2.DataReset 1 For iNv 1 To counttarget grapli2.GraphData. maxcoiib3(iN-. codei) Next iv graph 2. GraphData 0 For iy I To courittarget graph2.XPosData target(iN.) Next iv graph2.XPosData =0 graph2.DrawMode 2 A89
S
*5 S S S S *5 S p 0
S
*5 'calculation of regression, correlation and prinmary scores 'includes 0,0 as point 'Calculation 1: Sum Affinit, sunix 0 sumx2 0 sum).y 0 sunw2 =0 sumlxy 0 For iy 1 To counutarget sumx =surnx target(iy) sumx2 sumx2 target(iV) A 2 Next iyssx sumx2 (((sumx) A 2) (counttarget 1)) For iv I To counttarget surny su my sumcomb3(iy, codei) sumV2 sumN-2 sumcomb3(iy, codei) A 2 Next iv ssy surnv2 (((sunwV) A 2) (counttarget 1)) Fbr iv I To counittarget suflxv =su mxy (target(iv) sunicomb3(iv-. codei)) Next iy ssx\v sum.\3 ((sumx sunw) (counttarget 1)) srxy-2 =((ssxv ssxN) (ssx ssy)) sslope =ssxy ssx sscore =Sgn(sslopc) srxNv2 text22.Text (Int(1000 srxvN2)) /1000 text24.Text =(lnt(1000 sslope)) /1000 'Calculation 2: MAX Affinity sumnx =0 sumx2 0 sums' 0 sumN-2 0 sulmxv 0 For 1 To counttarget SUMx sumx target(i) sumx2) sumx2 target(iNv) A 2 S
S
SS
S.
S
OS
S S S S S OS A go Next iy ssx =surnx2 (((SUMX) A 2) (counttargct 1)) For iy- 1 To counttarget sunly suimy maxcomb3(iv., codei) sumy2 sumy2 maxcomb' (iv. codei) A 2 Next iy ssv, sumy2 (((sumv) A 2) (counttarget 1)) For iv 1 To counitarget sumxy suaxy (tar get(iv.) maxcomnb3(iy, codei)) Next iy SSxyV sumXv ((sumx *sumvy) (counttarget 1)) mrxv2 =((ssxy I(ssx sm.)) mislope =ssxy ssx miscore =Sgn(inslope) rrxy2 *text25.Text (Init(1000 *mrxv2 /1000 text26.Text (Int(1000 nslope)) /1000 'cilculate niultiscore and assign sign multiscore Sgn(nislope) *Sqr(mrxN-2 *srxNy2) =multiscore 'store output in vectors sslope3(codei) sslope srxN-3(codei) srxA2 mslope3(codei) mslope nix*(cdi pil scr r (code muxv2 or 'keep track of 3 best examples If bscore pmiscore(codei) Then bscore pmscore(codei) bcode =codei End If text3 I .Text =bcode bscore If prnscore(codei) bestscore(3) Then bestscore(3) =pmscore(codei) bestcode(3) =h End If Agl If pmiscore(codei) bestscore(2) Then bestscore(3) bestscore(2) bestscore(2) pmscore(codei) bestcode(3) bestcode(3) bestcode(2) h End If If pmiscore(codei) bestscore(l) Then bcstscore(2) bestscore(l) bestscore( 1) =prnscore(codei) bestcode(2) bestcode( 1) bestcode(l) =h End If text2 I .Text bestscore( I) text34.Text bestscorc(2) text37.Text bestscore(3) I'variables reset for next cycle 0090maxcomibi score 0 0090 sumcoibi 0 *Ncxt codei 'random selection of additional parent extra Int(Rnd (popsize 1)) bestcode(O) codearrav(extra) bestscore(0) =pmscore(extra) ~'~te.xt3S.Text =bestscore(0) 'calculation of mean score ***sums 0 For k (0 To popsize sums sums pmscore(k) :Next k 'calculate mecan text' 9.Text sumns (popsize 1) 'transmit best code and best score h bestcode( I) transscore bestscore(l) 'displa) bcst codc hg Il For I 0 To 14 A92 For k I To alen hg =hg Mid$(h, (I alen) k, 1) Next k hg hg Next I text4.Text =hg END SUB SUB Picture 1 Click0 'Routine for restoring topographical view of receptor picture 1. Visible False picture3. Visible True decodes END SUB SUB Picture3 Click 'LANDSCAPE PLOTITING ROUTINE 1 picture3. Visible False *.pictuire1. Visible =True 'Clear screen for drawing. set scale 00 picturel.Cls 00*picturel.BackColor =RGB(O. 0. 0) picturei.Scale 25)-(25..-25) RGB(255. 255, 255) 'read height values from matrix zmat For i miny centery To niaxy centery Forj minx centerx To maxx centerx I 'calculate line points YzlI i .2 ((zmato. vz2 =i .2 ((zniato 1L (j 1)) 'plot. lines picturel.Line 3yzl)-(j 1. yz2). colr Nextj Nc."xt END SUB A 93 SUB proxim0 tO =Timer prox 0 For j 1 To fzmt dipc dipmoj) If Abs(dipc) .7 Then radc radiusoj) margin =Int(radc proxsense x2c xmoj) y2c =ymoj) z2c zmm) 1000) mindiff 'bounds calculation xupper min(maxx centerx, Jnt(.x2c margin)) xlower =max(minx center%, Int(N2c margin)) yupper min(maixy ccntery, Int(y2c margin)) 04::ylower =max(miny centery, Int(y2c margin)) :zupper min(mnaxz 1 iniz. Int(z2c margin)) ziower =max(1. Int(z2c margin)) .4:4 For xmg xlower To xupper For vnig =ylower To yupper If znlat(.xmg, ymng) 0 Then For zmg =ziowver To zupper If z3 mat(xmng. 'ing. zmg) 0 Then distc dist3d(xng. zmg. x2c. y2c. z2c) If distc rado proxscnse Then prox prox I End If EndI It Next zmg A 94 End If Next ymg Next xnig End If Next j END SUB SUB tester 1 'Erase target coordinate vectors to start cycle 'these vectors store updated target locations Erase tani Erase tark Erase tarz 'Set target count to zero for start of each cycle tarcot= 0 'Set up picture to display target ,04:4,picture3.Cls picture3.BackColor RGB(0. 0) -:96picture3 .Scale 20)-(20. 'Draw frame 44.. picture3.Line RGB(255. 255. 255) 4picture3.Line 20). RGB(255, 255, 255) 'Set color scale ~.cfac 255 (maxz minz) 'Draw height matrix For i maxv centery To miny centerv Step -1.
For j mninx centerx To mixx centerx ac efac zmatoj. i) If ac 0 Then colr RGB(120. ac. ac) picttire'l.Line .25. i .25)-oj .25. i colr. BE End If Next j Next 'Sav-e picture properties oldsh'le picture3.FiIIStyle oldcolor picture3.FiIIColor 'set picture values to draw charge sites picture3.FiIIStyle 0 'Draw charge sites For ii 1 To cI If zmat(xcz(ii), zcz(ii) Then pictu re3. FillIColor QBColor(l0) colz QBColor(lO) Else *pictu re3. FiH IColor =QBColor(2) colz QBColor(2) End If picture' )Circle (xcz(ii), ycz(ii)). 1, colz :Next ii Fo i ITocl$ gt 59(xze~i) -zei) pit*3 F ill TolnegQBoor4 colz QBColor(1) EndlIf.
jpiCtUIC3.CifC]C (xzici) xc~~~i .CoL Next ii A 96 'reset picture values picture3.FilIStvle oldstyle picture3.Fill Color =oldcolor 'Set random numbers for angle changes: Note-series stored in randarray 'Same series used for each test series 'Get random change for z rz 6 Int(randarray(randcount) 'advance counter randcount randcount randcount 1 'Calculate angle rrz =(rzI/6) pi 'Get random change for v 6 Int(randarray(randcount) 'advance counter *randcount =randcount +J 'Calculate angle rr (r 6) 'Get random value for x rx 6 Int(randarray(randcouuit) 'Advance counter **0randcount randcount I 'calculate angle rrx =(rx *pi 'Random N, translation .xtrans transval Int(randarray(randcount) *(transval *2 1)) rand,.unIu~ jaiidcouit I 'set z rotation A97 'loop to. calculate transformed coordinates of centers For i 1 To fzmt 'Calculate length to centers w length(xm(i), 3ym(i)) 'Transformation logic for 3-d rotations 'Set z rotation Select Case xm(i) Case 0 If vini) 0 Then theta =pi /2 Else theta =3 *pi/ 2 End If :Case Is >0 If Nmn(i) 0 Then *theta tI(yiu(i) xm Else theta Wt(yni(i) xrn(i)) *Case Is< 0 If )mn(i) 0 Then theta at2(ym(i) xm(i)) Else thecta at4(vin(i) xiin(i)) End If End Select Nvm(i) Sin(theta rrz) xrn(i) A Cos(theta, rrz) Next 'Set y rotation For i 1 To Lint w length(xni(i). ztn(i)) Select Case \m(i) Case 0 If zm(i) 0 Then theta pi 2 *Ldsc theta 3 p 2 End If Case Is 0 A 98 If zm(i) 0 Then theta atl(zm(i) xrn(i)) Else theta =at3(zrn(i) I xrn(i)) End If Case Is 0 If zni(i) 0 Then theta at2(zm(i) Nm(i)) Else theta =at4(zm(i) xrn(i)) End If End Select zm(i) w Sin(theta rry) xni(i) A Cos(theta rn~) Next 'Set x rotation For i To fzrnt iv length(yrn(i), zm(i)) Select Case yrn(i) Case 0 If zrn(i) 0 Then theta pi /2 Else *theta 3 *pi 2 End If V. Case Is 0 If zin(i) 0 Then theta atlI(zrn(i) /rni(i)) Else theta at3(zni(i) Nvm(i)) *End If Case Is 0 If zrn(i) 0 Then theta W(zm(i) yrn(i)) Else theta at4(zni(i) vrn(i)) End If End Select zm(i) w Sin(theta rrx) yii) i Cos(theta rrx) Next gcol =RGB(150, 150, 150) picture2.Cls 'load target coordinates and data For i To fznit zp =zm(i) xp= xm(i) xtrans yp yr(i) rp radius(i) sp cradius(i) 'draw transformed target 'picture2. Circle (xp, yp). sp, gcol picture2. Circle (xp, yp), rp. gcol 'Set spacing value sp =sp *~.'Create target surface matrix 'These calculations center the target 'use into to round values to nearest coordinate point For j Int(x\p sp) To Int(xp sp 1) For k Int(yp sp) To Int(yp sp I) 'Calculate height of target surface *dist Sqr((xp A 2 (yp k) A 2) 'Simplify target surface If dist rp Then :'if point is within I radius of center set height to z value minus radius 'Draw target surface picture2.Circle .2 'Load target surface into storage vectors 'Increment counter for storage vector tarcount tarcount I 'Redimension storage vectors, preserving current data ReDiin Preserve tarj(tarcount) As Integer tarj(tarcount) =j ReDim Preserve tark(tarcount) As Integer tark(tarcount) =k A 100 ReDini Preserve tarz(tarcount) As Double tarz(tarcount) zp rp Else If dist sp Then 'if point is within 1 radius 1 set height to z value one half radius 'drawv target surface picture2.PSet k) 'Store data in vectors tarcount tarcount I ReDim Preserve tarj(tarcount) As Integer tarj(tarcount) =j ReDim Preserve tark(tarcount) As Integer tark(tarcount) k ReDim Preserve tarz(tarcount) As Double tarz(tircount) =zp (rp /2) EndlIf End If Next k ::Next j :Next 'Start contact calculations 'Part 1: 'Determine point of minimum separation zmm 100000 'Sct initial minimum separation rnindiff =100000 'Load target height values For ti I To tarcount xtxt tarj(ti) Nvtxt tirk(ti) AM tarz(ti) 'get target surface minimum to normalise target surface If zmm ztxt Thcn 'find minimum value of z for substrate and store in zmm zmtn ztxt End If Next ti 'Load target height v'ectors For ti 1 To tarcount xtXt tarj(ti) vtIxt tark(ti) ztxt tarz(ti) 'Calculate target height matrix 'Draw target surface 'check that points are within receptor matrix If (xtxt (maxx centerx)) And (vtxt (niaxv centery)) Thcn If (xtxt >=(minx -centerx)) And ()-txt (miny, centery)) Then picture3.Circle (xtxt. )txt). RGB(255. 255. 0) 'Get height value of receptor surface at position xtxt. ytxt from zmat zrec zmat(xtxt. AIMt) 'check that there is a receptor tinder the substrate 'if not, skip calculation If zrec 0 Then 'Calculate difference in receptor and target heights 'get the height of the substrate at xtxt.Ntxt '(ztxt-zmim) is the normalized value of the substrate '(iaxz+1I-minz) is the maximum value of thc zmat matrix (all of it!) 'adding these values ensures that all the values of the substrate are above the receptor 'ALTERNATIVE LINE diff (ztxt zmin) (1000) zrec 'transx =(ztxt zmm) maxz 1 minz dif- tile Se:Padlioll be:tween tile substrate and thle receptor 'difft= transx zrec A 1'02 'Track minimal difference If mindiff diff Then mindiff duff Mxow =xt.Xt ylONN Ytxt End If End if End If End if Next ti 'Loop 'if the mindiff value has not changed then the substrate 'his missed the receptor, in which cage don't continue 'calculations If rnindiff 100000 Then :picture3. Circle (xlow, ylow). 1, RGB(125, 255, 0) V 'Clult scor 'th fol wn seto acltstesp rto ew e h eetradsbtaec ag ie 'Clascore sunidist 0 ncnt= 0 'calculation for positive charge sites For i 1 To ci For j 1 To fzti 'Multiply. by -I to make negative dipoles attracted to positive charge sites dipc -I dipm(j) 'only do calculation if there is a dipole moment If dipc 0 Then 'get receptor charge coordinates XlC xcz(i) vi IC=Ycz(i) zIc =zcz(i) A 103 'get substrate site locations x2c xmOj) y2c ymoj) 'calculate the collision height of the substrate 'Alternative z2 c =((znij) zmm) 1000) mindiff 'z2c =((zmoj) zmm) maxz 1 minz) mindiff 'calculate distance between charge sites distc dist3d(xlc.. yic, zic, x2c. y2c, z2c) 'calculate approximate value of electrostatic energy scorec dipe (distc 11 coeff)
I
'sum to obtain updated score *score score scorec sumdist surndist diste ncnt =ncnt I End If Nextj NextI calculation for positive charge sites For i 1 To cineg For j I To fzint 'Multiply by- 41 to make negative dipoles repelled by positive charge sites dipc dipnio) 'only do calculation if there is a dipole moment If dipc 0 Then 'get receptor charge coordinates xI C \CL~iCg(i) yIec %vczneg(i) zlIc zczneg(i) A104 'get substrate site locations x2c xm(j) y2c ym(j) 'calculate the collision height of the substrate 'Alternative z2c zmm) 1000) mindiff 'z2c zmm) maxz 1 minz) mindiff 'calculate distance between charge sites distc dist3d(xlc, ylc, zlc, x2c, y2c, z2c) 'calculate approximate value of electrostatic energy scorec dipc (distc A coeff) 'sum to obtain updated score score score scorec sumdist sumdist distc 99 ncnt ncnt 1 End If Next j "Next i .9 A sophisticated (and very proximity detector proxim 'Display results 'Calculate proximity score as proportion of receptor points 'within proximity margin proxscore prox Len(h) 'calculate combined score as product combiscore Int(proxscore ((prox 10000) score) 1000000) 1000 'Accumulate combiscores for this test series A 105 sunicombi sumcombi combiscore text I .Text sumcombi 'Track maximum affinity scores If combiscore maxcombiscore Then niaxconibiscore combiscore tcxt42.Text maxconibiscore If maxcombiscore mxscore Then mxscore maxcombiscore text49.Text =mxscore *4 9.
9**e 9* a a.
a a..
a.
a a a rnxtest transtest mixtarget transtarget text47.Text mixtarget tcxt48.Text =nixtest End If End If End If END SUB SUB tester2 'Erase target coordinate vectors to start cycle 'these vectors store updated target locations Erase tarj Erase tark Erase tarz 'Set target count to zero for start of each cycle tarcount =0 'Set random numbers for angle changes: Note-series stored in randarray 'Same series used for each test series 'Get random change for z rz =6 Int(randarrav(randcount) 'advanice COuIHICl ralidcount randcount randcount 1 A 106 'Calculate angle rrz =(rz pi130 'Get random change forv r= 6 Int(randarrav,(randcount) 'advance counter randcount randcount I 'Calculate angle rry (ry, 6) pi 'Get random value for rx 6 Int(randarrav(randcount) *000 'Advance counter *randcount randcount I 'calculate angle rrx (rx 6) pi 'Random v translation xtrans tranval -Itrnaay(randcount) *(transval *2 1)) randcount =randcount 1 set z rotation 'loop to calculate transformed coordinates of centers For i 1 To Uznit 'Calculate length to centers Av length(xm(i). ym(i)) 'Transformation logic for 3-d rotations 'Set z rotation Select Case xm(i) Case 0 If ym(i) >0 Then A 107 theta pi /2 Else theta 3 *pi 2 End If Case Is 0 If ym(i) 0 Then theta atl(y-m(i) xrn(i)) Else theta at3)(ym(i) xm(i)) End If Case Is 0 If vrn(i) 0 Then theta at2 (vr(i) xrn(i)) Else theta at4(ym(i) xm(i)) End If End Select pu(i) wv Sin(theta rrz) xm(i) AN Cos(theta rrz) Next i t Set y rotation For il--ITo fznt Av= lengthi(xni(i), zrn(i)) :Select Case xrn(i) Case 0 If zm(i) 0 Then theta =pi 1 2 Else theta 3= pi 2 *4 End If Case Is 0 If zni(i) 0 Then theta tlI(zrn(i) xrn(i)) Else theta at3(znm(i) xnii(i)) End If Case Is 0 If zni(i) 0 Then theta at2(zni(i) xrn(i)) Else theta at4(zm(i) /.xin(i)) End If End Select zm(i) wv Sin(theta rry) xm(i) Av Cos(theta rry) A 108 Next 'Set x rotation For i 1 To fzmt Av length(yrn(i), zm(i)) Select Case ym(i) Case 0 If zrn(i) 0 Then theta =pi/2 Else theta =3 *pi 2 End If Case Is 0 if zrn(i) 0 Then theta at I(zni(i) vNm(i)) Else theta =at3(zni(i) vni(i)) End If Case Is 0 If zrn(i) 0 Then theta =at2(zrn(i) vin~i)) Else theta =at4(zm(i) yin(i)) End If End Select ::zin(i) Sin(theta rrx) yni(i) v*Cos(tbeta +rrx) Next i gcol =RGB( 150, 150. 150) 'load target coordinates and data For i =I To fzmt zp =zm1(i) Np xrn(i) Ntrans yp Y'dfl(i) rp, radius(i) sp =cradius(i) 'draw transformed target 'Set spacing value A o109 sp sp+ 'Create target surface matrix 'These calculations center the target 'use int() to round values to nearest coordinate point For j Int(.xp sp) To Int(xp sp 1) For k Int(yp sp) To Int(vp sp 1) 'Calculate height of target surface dist Sqr((xp A 2 k) A 2) 'Simplify target surface If dist rp Then 'if point is within 1 radius of center set height to z value minus radius 'Draw target surface 'Load target surface into storage vectors 'Increment counter for storage vector tarcount tarcount 1 'Redimension storage vectors, preserving current data ReDim Preserve tarj(tarcount) As Integer tarj(tarcount) =j ReDim Preserve tark(tarcount) As Integer 0tark(tarcount) k ReDim Preserve tarz(tarcount) As Double tarz(tarcount) zp rp Else SIf dist sp Then 'if point is within I radius 1 set height to z value one half radius 'Store data in vectors tarcount tarcount 1 ReDim Preserve tarj(tarcount) As Integer tarj(tarcount)= j ReDim Preserve tark(tarcount) As Integer tark(tarcount) k ReDim Preserve tarz(tarcount) As Double tarz(tarcount) zp (rp 2) A nio End If End If Next k Next j Next 'Start contact calculations 'Part 1: 'Determine point of minimum separation zmm 100000 'Set initial minimum separation mindiff 100000 'Load target height values S For ti 1 To tarcount xtxt tarjyti) vtxt =tark(ti) o* 'get target surface minimum to normalise target surface If zmni> ztxt Then 'Find minimum value of z for substrate and store in zmm 00.S.
0. zmmn ztxt End If Next ti 'Load target height vectors For ti I To tarcount xtxt tarj(ti) ytxt tark(ti) ztM tarz(ti) 'Calkulate target height matrix 'Draw target surface 'check that points are within receptor matrix A i If(xtxt (maxx centerx)) And (ytxt (maxy centerv)) Then If (xtxt (minx centerx)) And (ytxt (miny centery)) Then 'Get height value of receptor surface at position xtxt, ytxt from zmat zrec zmat(xtxt, ytxt) 'check that there is a receptor under the substrate 'if not, skip calculation If zrec 0 Then 'Calculate difference in receptor and target heights 'get the height of the substrate at xtxt.ytxt '(ztxt-zmm) is the normalized value of the substrate '(maxz+1-minz) is the maximum value of the zmat matrix (all of it!) 'adding these values ensures that all the values of the substrate are above the receptor 'ALTERNATIVE LINE diff= (ztxt zmm) (1000) zrec 'transx (ztxt zmm) maxz 1 minz 'diff the separation between the substrate and the receptor S* 'diff= transx zrec 'Track minimal difference If mindiff> diffThen mindiff= diff xlow xtxt yvlow vtxt End If End If End If End If Next ti 'Loop 'if the mindiff value has not changed then the substrate 'has missed the receptor, in which case don't continue 'calculations If mindiff 100000 Then 'Calculate score 'the following section calculates the separation between the receptor and substrate charge sites A 112 score =0 sumdist =0 ncnt 0 'calculation for positive charge sites For i 1 To ci For j 1 To fzmt 'Multiply by -1 to make negative dipoles attracted to positive charge Sites dipc djpnj) 'only do calculation if there is a dipole moment If dipc 0 Then 'get receptor charge coordinates I~ lc xcz(i) -vIeC ycz(i) zlc =zcz(i) 'get substrate site locations x2c xrno) y2c yr(j) 'calculate the collision height of the substrate 'Alternative z2c ((znioj) zrnm) 1000) mindiff Oz2c ((znio) ziun) niaxz 1 minz) mnindiff 'calculate distance between charge sites distc dist3d(xlc. ylc. zic. x2c, N2c. z2c) 'calculate approximate value of electrostatic energy scorec =dipe!/ (dist: /I coeff) 'sumn to obtain updated score score score scorec sunidist =sumndist. diste nent ncnt I A 113 End If Nextj Next 'calculation for positive charge sites For i 1 To cineg Forj 1 To fzrnt 'Multiply by, +1 to make negative dipoles repelled by positive charge sites dipc dipmoj) 'only do calculation if there is a dipole moment If dipe 0 Then 'gt receptor charge coordinates y I xcx=czneg(i) z. yIc =vczneg(i) 'get substrate site locations x2c =xnij) v2c =vmo~) 'calculate the collision height of the substrate *'Alternative z2c ((zmoj) zmm) 1000) mindiff 'z2c ((zmoj) zmm) maxz 1 minz) mindiff 'calculate distance between charge sites distc =dist3d(xlc. yIc. zIc. x2c. N-2c. z2c) 'calculate approximate value of electrostatic energy scorec dipc (distc A coeff) 'sum to obtain updated score score score scorec sunidist suidist distc ncnt ncnt I A 114 End If Next j Next sophisticated (and very proximity detector proxim 'Display results 'Calculate proximity score as proportion of receptor points 'within proximity margin proxscore prox Len(h) 'calculate combined score as product comibiscore nt(proxscore ((prox 10000) score) *1000000)/1000 ~:'Accumulate combiscores for this test series :sumconmbi =sumcornbi combiscore text4 I .Texi sumncombi 'Track maximum affinityN scores If combiscore maxconmbiscore Then maxcombi score combiscore text42.Text niaxcombiscore 'Track maximum affinity for this target and draw current configuration If niaxcomib iscore highaiffinity Then highaffinitv maxcombiscore text49.T-ext =highaflinit% 'Set Up Picture to display target picture3.Cls picture3.BackColor RGI3(0. 0. 0) picture3.Scale 20)-(20, 'Draw frame A 115 picture3.Line RGB(255. 255,' 255) picture3.Line 20). RGB(255. 255, 255) 'Set color scale cfac =255 (maxz minz) 'Drawv height matrix For i =max)' centery To miny centery Step -1 For j minx centerx To mnaxx center~x ac cfac zmatoj. i) If ac 0 Then coir -RGB(1 20, ac. ac) picture3.Line (j .25, 1 .25)-oj .25, i colr. BE End If Next j *Next i 'Save picture properties oldstyle pictture3.FillStvle oldcolor picture').FilIColor 'set picture values to draw charge sites :picture3. FillIStyle 0 'Draw charge sites For ii 1 To ci If zmat(Ncz(ii). ycz(ii)) =zcz(ii) Then picture' FilIColor =QBColor( colz Else picture3.FillColor QBColor(2) colz QBColor(2) End If picture' .Circle (xcz(ii). ycz(ii)). 1. colz Next ii 11 For ii 1 To cineg gtx =zmat(xczneg(ii), yczneg(i i)) If gtx zcznecg(ii) Then picture3. FillIColor QBColor(12) colz QBColor(12) Else picturc3.Fill Color =QBColor(4) colz QBColor(4) End If pictu rc3. Circle (xczneg(ii), yczneg(ii)). 1, colz Next ii reset picture values picturc3.FillStylc oldstyle picture3.FillColor =oldcolor 'End draw routine e~g..'Draw target surface picturc2,Cls For ij I To fznmt toga zp zni(ij) xp xni1(ij) xtrans p vni11ij) *rp radius(ij) egsp cradius(ij) cohn rcolor(ij) 'draw transformed target **picturc2.Circle yp). rp. QBColor(colni) N ex t ij 'Load target height vectors For ti =I To tarcount xtxt tarj(ti) N-txt tark(ti) ztxt tarz(ti) If (NtXt (nlaxx center.x)) And (ytxt (iaxv cente rv)) Then If (xtxt (minx centerx)) And (t1xt (minY centerv)) Then A 117 picture3.Circle (xtxt, y-txt), RGB(255, 255, 0) End If End If Next ti End If End If End If If nixinials sumcombi Then maximals =sunicombi End If 0909 9* 0~ .9 a 0 00. *S a a 9 00..
0 0 *0 0 009.
0 @94 09..
S.
00
S.
e a *9 *0 000
S
0 0 0 *4 If maxiialn maxcombiscore Then iuaxjimahn ma xcoinbi score End If EN JD S UB SUB Text 19 Click0 textP1.Text ENDJ SUB SUB Text36 Click0 text36.TexNt END SUB SUB Text43 Click0 tCxt43).Tcx\t= EN ID SUL, 13i APPENDIX B Molecular Assembly Program Code: Microsoft Visual Basic too: to 0 0*09 :0 0 B2 1. Globally Defined Variables Global codefragl As String Global codefrag2 As String Global codefrag3 As String Global startfrag As Integer Global lenfrag As Integer Global maxinals As Double Global maximalm As Double Global mainscore As Double Global maxtarget As Double Global sumtarget As Double Global ppoint As Single Global pseq As Single Global pins As Single Global pdel As Single Global pdup As Single Global pinv As Single SGlobal code As String S. Global oldcode As String see Global codet As String Global oldcodet As String Global codeq As String Global oldcodeq As String SGlobal codea As String *Global oldcodea As String Global coded As String Global ik As Integer Global subscount(16) As Integer Global chemform As String Global sscale(16) As Double Global scolor(16) As Integer SGlobal stype(16) As Integer Global pring As Integer Global s As String Global g As String Global q As String Global ringcount As Integer Global hetero As Single Global methyl As Integer Global methcount As.Integer Global vl As Integer Global v2 As Integer Global v3 As Integer Global v4 As Integer Global v5 As Integer Global \6 As Integer Global v7 As Integer Global v8 As Integer Global v9 As Integer Global vl0 As Integer Global vl 1 As Integer Global v12 As Integer Global v13 As Integer Global v14 As Integer Global v15 As Integer Global ng As Integer Global pg As Integer Global og As Integer Global sg As Integer Global wg As Integer Global tc As Integer Global td As Integer Global mtations As Integer Global state As Integer Global scount As Integer 6 Global xc As Single S* Global yc As Single Global zc As Single Global codclength As Integer Global atomcount As Integer Global hnumber As Integer 'real coordinates Global x(500) As Double Global v(500) As Double Global z(500) As Double Global r(500) As Single Global subsx(1200. 2) As Double Global subsy(1200. 2) As Double 0. Global subsz(1200. 2) As Double Global subsr(1200) As Double Global subsc(1200) As Integer Global pi As Double Global pi2 As Double 'rectangular coordinates Global xr(500) As Integer Global vr(500) As Integer Global zr(500) As Integer Global atoms(-20 To 20, -20 To 20, -20 To 20) As Integer Global atoms(-20 To 20, -20 To 20, -20 To 20) As Single Global atorny(-20 To 20, -20 To 20, -20 To 20) As Single Global atornz(-20 To 20, -20 To 20, -20 Ta 20) As Single Global atomstate(-20 To 20, -20 To 20, -20 To 20) As Integer Global subn(-20 To 20, -20 To 20, -20 To 20, 4) As Integer Global occupy(-20 To 20, -20 To 20, -20 To 20) As Integer Global bond 1(-20 To 20, -20 To 20, -20 To 20) As Integer Global bond2(-20 To 20. -20 To 20, -20 To 20) As Integer Global bond3(-20 To 20, -20 To 20, -20 To 20) As Integer Global bond4(-20 To 20, -20 To 20, -20 To 20) As Integer Global rnolecule(500, 14) As Single Global skelcol(500) As Integer Global rcx(500) As Integer Global rcy(500) As Integer Global rcz(500) As Integer Global subt(500) As Integer Global xa As Integer Glbl...sItee Global za As Integer Global suas As inge Global subs As Single Global def As Single Global dely As Single Global delz As Singyle Global dcl2N As Single Global dclrb As Single Global rcar As SIngc Global j2 As Integer Glba j3A Itee a.:::Global j2 As Integer Global j5 As Integer Global j6 As Integer Global j7 As Integer Global j6 As Integer Global j9 As Integer Global jl As Integer Global j I As Integer Globaljl12 As Integer C.Global j 13 As Integer Global j14 As Integer *:.Global j15 As Integer Globaljl4s As Jnteger As Integer Global NWs As Integer Global zaa As Integer Global xab As Integer Global yaa As Integer Global zab As Integer Global vab As Integer Global yac As Integer Global zac As Integer 'variables for testing Global hi As String Global clength As Integer Global depth As Integer Global rwidth As Integer Global rlength As Integer Global proxsense As Integer Global testnumber As Integer Global popsize As Integer Global transvpal As Integer Global ph(10) As String Global pclength(I0) As Integer Global pdepthi(10) As Integcr Glbl 0idh00 sInee Global pridnth(I0) As Integer Global pproxsense(l0) As Integer Global ptestnurnber(l0) As Integer Global ppopsize(I0) As Integer Global ptransval(I0) As Integer Global prnaxiniils(l0) As Double Global piaximalrn(I0) As Double Global targetp As Integer Global codenuin As Integer Global codes' As Integer Global transcore As Single Global alen As Integer 0* Global coeff As Integer :':Global zs2 As Siring @0 Global xoo As Integer Global yo() As Integer Glblzo sInee Global zaoo As Integer Global zmat) As Integer Global centerx As Integer **Global centery As Integer Global randlarray(3000) As Single *:Global Aq(24) As Integer Global Bq(24) As Integer Global Cq(24) As Integer Global Dq(24) As Integer Global Eq(24) As Integer Global Fq(24) As Integer Global Gq(24) As Integer Global cI As Tnteeer Global cineg As Integer Global.NczO As Integer Global yczO As Integer Global zczo As Integer Global xczneg() As Integer Global yczneg() As Integer Global zczneg() As Integer Global minx As Integer Global rnaxx As Integer Global miny As Integer Global maxy As Integer Global minz As Integer Global maxz As Integer Global xq As Integer Global 3-q As Integer Global zq As Integer Global ON(25) As Integer Global oy(25) As Integer Global oz(25) As Integer Global dradius(2 1) As Single Global clradius(21) As Single Global colord(2 1) As Integer Global dipoles(2 1) As Single Global xorn(500) As Single Global yom(500) As Single Global zom(500) As Single Global radiusl1(500) As Single Global cradiusl(500) As Single Global dipml1(500) As Single Global colrm(500) As Integer Global xonitest(500.) As Single Global Nyontest(500) As Single Global zomtest(500) As Single Global radiuslItest(500) As Single Global cradiusltest(500) As Single Global dipmiltest(500) As Single Global colrnitest(500) As Integer 00 0Global xrn(500) As Double Global ym (500) As Double Global *zr(500) As Double Global radius(500) As Single Global cradius(500) As Single Global diprn(500) As Single Global tarj() As Integer Global tarko As Integer *:.Global tarzo As Double Global fznit As Integer Global surnconibi As Double Global maxcombiscore As Double Global prox As Integer Global mindiff As Double Global zmrn As Double Global tarcotint As Tntcr7cr Global threshold As Single Global maxaffinity As Single Global testno As Integer 137 0@@ [THIS PAGE IS INTENTIONALLY BLANK] S.
S
0*g.
S
S 0 S. 0S S.
S.
S
S..
S
055
S
S.
S
S.
S.~
2. Control Object Specifications VERSION 2.00 Begin Form Form 1 BackColor =&H00FF0000& Caption "ASSEMBLER 7.1 ClientHeight 6915 ClientLeft 210 ClientTop =1515 Client Width =9600 FontBold -1 'Tnte FontItalic =0 'False FontName "Small Fonts" FontSize =6.75 FontStrikethru 0 'False FontUnderline =0 'False Height =7320 Left =150 LinkTopic ="Form I ScaleHeight -6915 ScaleWidth =9600 :.Top ==1170 *SOWindoNNState 2 'Maximized Begin CommandButton Comma nd4l 4...Caption ="EVOLVEY" FontBold =0 'False FontItalic =0 'False FontName "MS Sans Serif' FontSize =8.25 FontStrikethni =0 'False FontUnderline 0 'False Height =375 Left =6600 TabIndex 177 Top =1920 Width 855 End 4 Begin ListBox List2 Height =615 7560) Tabindex 176 11 woo Top 4680 Width =1815 End Begin CommandButton Cornmand3 Caption "E VOL VE2" FontBold =0 'False Fontitalic =0 'False FontName c "MS Sans Serif' FoinSize =8.25 FontStrikethni =0 'False FontUnderline 0 'False Heiszht 375 M- M-- 89 Left =5640 Tablndex =175 Top =1920 Width =855 End Begin TextBox Text78 Height =285 Left =7560 Tablndex 174 Text Top 3840 Width 18 End Begin TextBox Text77 Height =285 Left =7560 TabIndex =173 Text 0*0. Top =3480 00*Width =855 *':*End Begin ListBox Listi C. FontBold =0 'False FontNane W "S Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False Height =420 Left =3960 Tablndex 172 Too 5280 Width =1575 End Begin CommandButton Comimancil Caption ="CLS"1 Height =375 Se.Left =3360 TabIndex =171 Top =5280 idth =495 End Beg~in TextBox Text76 Height =285 Left =4560 Tablndex =169 Text Top =6600 Width =495 End Bcgiu I~cxU~ox~ lcx t 7 FontBold =0 'False FontItalic =0 'False FontName ="MS Sans Serif' FontSize =8.2 FontStrikethru =0 'False FontUnderline =0 'False Height =285 Left =1680 TabIndex 168 Text to"0" Top =2640 Width =375 End Begin TextBox Text74 FontBold =0 'False FontItalic =0 'False FontName "MS Sans Serif' FontSize =8.25 ForitStrikethru =0 'False FontUnderline =0 'False Height =285 Left 1200 TabIndex 167 Text Top 2640 *Width =375 End Begin HScrollBar HScroll3O Height 255 Left =120 Max 100 Tablndex =165 Top =2640 Width =495 .1:..End Begin TexiBox Text73 Height =285 Left =8520 Tablndex 164 ~.Text _1.
Top =3480 Width =855 End Begin TextBox Text72 **Height =285 Left =8880 Tablndex 163 Text "100"1 Top =5640 Width =495 End Begin HScrollBar HScroll29 Height =255 Left =7560 Max =200 TabIndex =161 Top =5640 13 11 Value 100 Width 1215 End Begin Text~ox Text7l.
FontBold 0 'False Fonitltalic =0 'False FontName ="MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FontUnderline 0 'False Hcight =285 Left =7560 Tablndex 158 Text 1_ 0 Top =1920 Width =615 End Begin Te~xtBox Text7O 046*FontBold =0 'False .00*Fontitalic =0 'False FontNanic ="MS Sanls Serif' SFontSize =8.2 .FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left 7560 TabInclex =157 Textft1 Top =2760 Width =615 End Begin TextBox Text69 Font-Bold =0 'False Fontltalic =0 'False SooFontName "MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FonitUnderline =0 'False Height M 8 Left =5640 ,*Tablndex 154 Text Top =6600 Width =975 End Begin TextBox Text68 FontBold =0 'False Fontltalic =0 'False FontNarne ="MS Sans Serif' FontSize =8.2 FoiitStriketi'Ai =0 T.alse FontUnderline =0 'False Height =285 Left =5640 B312 TabIndex =153 Text fit Top 6240 Width 975 End Begin TextBox Text67 Height =375 Left =2160 Tablndex 152 Text toll Top 3240 Width =495 End Begin TextBox Text66 FontBold 0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8.25 0000FontStrikethru =0 'False 000FontUnderline =0 'False 'eHeight =375 Left =2760 *TabIndlex 151 *Text fil *8Top =3240 Width =133i soft End Begin HScrollBar HScroll28 Height 255 Left 5640 Max =100 TabIndex 147 Top =5880 Value Width =1215 End Begin HScrollBar HScroll27 *6*Height 255 Left =5640 Ma N 100 Tabbidex 146 *6666Top =5400 *Value PWidth =1215 End Begin HScrollBar HScroll26 Height 255 Left =5640 Max 100 TabIndlex 145 Top) 1I920) Value Width =1215 B313 Begin TextBox Height =285 Left =6960 Tablndex 144 Text 115 Top =5880 Width =495 End Bcgi n TcxtBox Text64 Height =285 Left 6960 Tablndex 143 Text .511 Top =5400 Width =495 End Begin TextBox Text54 Height =285 0@..Left =6960 TabIndex 142 Text 1 "5 4,64 9 Top =4920 .Width =495 End :Begin HScrollBar Height 255 Left =5640 Magx 100 Tabidex 138 Top =4440 Value EnWidth =1215 EnHcola ~rl2 eigh =~rla 255o12 Left =5640 -lax =100 Tablndex 137 Top =3960 Value ~End =11 Begin HScrollBar HScro1l23 *Height 255 Left =5640 Max 100 TabIndex =136 Top =3480 Value Width =1215 [lid Begin HScrollBar HScroll22 Height =255 Left =7560 Mix TabIndlex =114 Top =6600 Width =1215 End Begin Textflox Text63 Font.Bold =0 'False Fontltalic 0 'False FontName "Small Fonts" FontSize =6.75 FontStrikethru 0 'False FontUnderline 0 'False Height =375 Left =4200 MultiLine =-1I 'True TabIndex 135 Text it$ Top =3240 Width =1335 End .o Begin CommandButton Command 0 0Caption
'EVOLVE"
FontBold =0 'False ,**Fontltalic =0 'False *FontNarne ="MS Sanls Serif' )*.FontSize =8.25 FontStrikethni 0 'False FontUnderline 0 'False Height =375 Left =4800 Tablndex 131 =1440 Width =735 End Begin TextBox Text62 FontBold =0 'False Fontltalic =0 'False OweFontNamec "MS Sails Serif' FontSize =8.2 FontStrikcthru 0 'False FontUndcrlinc 0 'False Height 315 *~*Left =8520 *TabIndex 130 Text "0" Top =4200 Width =855 End Begin TextBox Text6l FontBold =0 'False .i'ontl1talic =0 'False FontNamne "MS Sans Serif' FontSize =8.25 FontStrikethru 0 'False FontUnderline 0 'False Height =315 Left =2160 Tablndex =129 Text 0,00" Top 2400 Width =615 End Begin Textflox Text6O Left =6960 Tablndex =126 Text 1,1 Top =2520 Width =495 End Begin TextBox Text59 Height 285 Left =6960 *TabIndex 125 0Text 1 "0" Top 3000 Width 495 *AS* End Begin HScrollBar HScroll2 I Height 255 Left =5640 Max 100 Tablndex 124 Top 252(0 Width 1215 End Begin HScrollBar *Height 255 Left =5640J Max 100 *Tablndex 123 Top =3000 Width =1215 End Begin HScrollBar HScroII19 Height 255 *:.Left =7560 *Max 100 Tablndex 122 Top =6120 Width =1215 End Begin TextBox TexNt38 FontBold =0 'False FonitItalic 0 'False FontNamne ="MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False 816 FontUnderline =0 'False Height =285 Left =3720 Tablndex 119 Text ftI Top =2400 Width =615 End Begin TextBox Text57 FontBold =0 'False Fontltalic =0 'False FontNarne ="MIS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FonitUnderline =0 'False Height =285 Left =7560 cc.. *Tablndex =118 Text *Top 3120 eeCWidth =615 aEnd Begin TextBox Text42 FontBold =0 'False Fontltalic =0 'False FontNanie ="MIS Sans Serif' FontSize 8.25 Font Striketh ru 0 'False FonitUnderline =0 'False Height =285 Left =7560 cc Tablndex =117 Text COTop 2280 Width =615 End Begin PictureBox Picture4 *Height 1695 Left =7560 ScaleHeight =1665 .Scale\Vidth =1785 .:.Tablndex =116 Top =120 Width =1815 End Begin PictureBox Picture'3 Height =1695 Left 5640 ScaleHeight 1665 ScaleWidth =1785 lI blndex =115 Top =120 Width =1815
S.
5 5 QSO S 50 0 0S.S 5 0 5O S 0.*O
SOS
S *55 S S S *5
S.
500 0
S
OS
6 *5
S
*6O Bcgin TextBox Text56 Height 375 Left =2160 MultiLine -1 'True ScrollBars 2 'Vertical Tablndex 106 Text fil Top =5760 Width =3375 End Begin Textflox FontBold =0 'False Fontitalic =0 'False FoiitName ="MS Sans Serif" FontSize =8.2 FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left 8880 Tablndex =105 Text It Top 6600 Width 495 End Begin TextBox Text53 FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left =8880 Tablndex =104 Text
I
Top =6120 Width =495 E iid Begin TextBox Text52 FontBold =0 'False Fonthtalic =0 'False FontName "MIS Sins Serif" FontSize 8.25 FontStrikethru =0 'False FontUnderline =0 'False Height =285 Left =4560 Tablndex =103) Text Top =6240 \Vidll 49 End Begin TextBox TextS 1 FontBold 0 'False B818 Fontitalic 0 'False FontName "MS Sanis Serif' FontSize 8.25 FontStrikethni =0 'False FontUnderline =0 'False Height =28i Left =3360 Tablndex =102 Text its Top =6600 Width =495 End Begin TcextBox FontBold 0 'False Fontltalic 0 'False FontNamie "MS Sanis Serir' FontSize =8.25 0000 FontStrikethru 0 'False FontUnderline 0 'False .00* Height =285 000Left 3360 .Tablndex 101 Text It- See Top 6240) End=49 Begin TextBox Text49 FontBold =0 'False Fontltalic =0 'False FontName "MS Sanls Serif' FontSize =8.2 FontStrikethnu 0 'False FontUnderline 0 'False Height 285 Left =2160 *Tablndex =100 seText *esTop =66300 Width =495 End Begin Textox Text48 FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8.25 FontStrikethru 0 'False FontUnderline =0 'False Height =285 Left 2160 Tablndex =99 le.t Top =6240 Width =495 B 19 Begin CommonDialog CMDialogl Left =2520 Top =5640 End Begin CommandButton Cominand2 Caption ="File Read" Height =375 Left =2160 Tabindex 98 Top =5280 Width =1095 End Begin TextBox Text47 FontBold =0 'False Fontltalic 0 'False FontNaine ="MIS Sans Serif" FontSize 8.2 #0*4FontStrikethru =0 'False 0*090FontUnderline =0 'False .0 9 Height =285 04aLeft =1680 .TabIndex 96 Text "10"1 Top =2280 Width 375 End Begin TextBox Text46 FontBold =0 'False Fontitalic =0 'False *FontNamne ="MS5 Sans Serif" FontSize =8.2 FontStrikcthni 0 'False FontUnderline 0 'False *Height =285 Left =1200 *Tabindex Text 1 "0" *Top 2280 Width 3.375 *.End Begin HScrollBarHlScrolllS Height 255 Left =120 Max TabIndlex 94I Top =2280 Width =495 End Begin TextBox FontBold 0 'False lonitlic L 'Fls FontName "MNS Sans Serif' FontSize =8.2 FontStrikethrm 0 'False [3 FontUnderline 0 'False Height =375 Left =3720 TabIndlex =93 Text Top =2760 Width =1815 End Begin HScrollBar HScrol7 Height 255 Left =120 Max TabIndex =91 Top =4440 Width =495 End Begin TextBox Text44 *000FontBold =0 'False Fontitalic =0 'False FontName ="MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FontUnderline =0 'False Height 285 Left =1200 TabIndlex Text "0" Top =4440 Width =375 End Begin TextBox Text43 'as os :00Font~talic 0 'False *FontName ="MVS Sans Serif' FontSize =8.2 *FontStriketbru =0 'False FontUnderline 0 'False Height =285 Left =1680 0:0:.TabIndlex =89 0 :9 Top =4440 Width =375 End Begin HScrollBar HScrolll6 Height =255 Left =120 Max TabIndex 87 Top =6600 Wijdth 495 End Begin TextBox Text4l.
FonitBold 0 'False B821 Fontltalic =0 'False FontName ="MS Sanis Serif' FontSize 8.25 FontStrikethru =0 'False FontUnderline =0 'False Height =285 Left =1680 Tablndex 86 Text "0" Top. 6600 Width =375 End Begin TextBox Text38 FontBold =0 'False Fontltalic =0 'False FontName IN"S Sans Serif' FontSize =8.2 0900FontStrikethru =0 'False FontUnderline =0 'False Height =285 Left =1200 *.*Tablndex 9Text 111 Top =6600 Width 375 End Begin TextBox Fontlold =0 'False Fontltalic 0 'False FontName ="MS Sans Serif' FontSizc 8.2 S:FontStrikethru =0 'False FontUnderline =0 'False Height 285 Left =1200 *Tablndex 84 Text f= l 9. lop =6360 9 Width =375 End 999999Begin TcxtBox Text4() FontBold =0 'False Fontltalic =0 'False FontName IN"S Sans Serif' FontSize 3 ForntStrikethni 0 'False FontUnderline =0 'False Height =285 Left =1200 Tablndex =83 Top =6120 Width =375 B322 Begin HScrollBar HScroll 1 Height =255 Left =120 Max TabIndex =81 Top =6120 Width =495 End Begin TextBox Text39 FontBold =0 'False Fontltalic =0 'False FontName ="MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False Height =285 Left =1680 Tablndex *Text "0" Top =6120 Width =375 *End Begin TextBox Text37 FontBold =0 'False Fontltalic =0 'False FontName ="MS Sans Serif' FontSize =8.25 FontStrikethni 0 'False FontUnderline =0 'False Height =285 Left =1200 Tablndex =78 Text Top =5160 Width 375 End bee Begin TextBox Text36 FontBold =0 'False Fontitalic =0 'False **FontName "MS Sans Serif' *.FontSize =8.2 *FontStrikethru 0 'False *FontUnderline 0 'False Height 285 Left =1680 TabIndex 77 Text 91"0"0 Top =5160 Width =375 End becgin fficroiar I IScroll 14 Height 255 Left =120 Max B323 Tablndex 76 Top 5160 Width =495 End Begin TextBOx Text34 FontBold =0 'False Fontltalic =0 'False FontNarne "MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left 1680 Tablndex 74 Text "0" Top =6360 Width =375 End Begin HScrollBar HScroll 13 *Height 255 Left =120 *Max *Tablndex 73 :Top 6360 Width =495 End Begin Te~xtBox Text33 FontBold =0 'False FontItalic =0 'False FontName "MIS Sans Serif' FontSize =8.2 FontStrikethni 0 'False FontUnderline 0 'False *Height 285 Left =1200 s..TabIndlex 71 Text "0"f *Top =5640 Width =375 .*.End Begin TextBox Text32 FontBold =0 'False Fontltalic =0 'False FontNamie Sans Serif' FontSize =8.2 FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left =1680 TabIndex I t j "0, Top =5640 Width =375
I
1324 Begin HScrollBar HScroll 12 Height 255 Left =120 M ax Tablndex 69 Top 5640 Width =495 End Begin TextBox Text3 1 FontBold 0 'False Fontltalic =0 'False FontNamne ="MS Sans Serif' FontSize 8.25 FontStrikethru 0 'False FontUnderline 0 'False Height 285 Left =1200 Tablndlex =67 Text "0" 'Top =5880 9. Width =375 End Begin TextBox Fontlold 0 'False Fontltalic =0 'False FontName ="MS Sans Serif' FontSize =8.25 FontStriketliru 0 'False FontUnderline 0 'False Height =285 Left 1680 Tablndex 66 Text"0 Top =5880 Width =375 End Begin HScrollBar HScrolll 1 Height 255 Left =120 *Max TabIndlex Top 5880 Width =495 End Begin TextBox Text29 FontBold =0 'False FontItalic =0 'False FontName "Small Fonts" FontSize =6.75 FontStrikethni 0 'False IFontUnderhune 0 t'False Height =375 Left =2160 MultiLine -1 'True 325 Tablndex Text Top Width -64 =1920 =3375 goes g g.e.
C.
C 9 gge g 6.
0 0 gem.
OC
0@ S Ogge 0 e.g.
g.e.
C
tg C g.e.
C C gO 0 0*
C
peg
S
gge C 0 C @5 Cc 4 g.
.ee End Begin HScrollBar HScroll 1 Height 240 Left =120 Max Min I Tablndex 2 Top 3000 Value Width =495 End Begin HScrollBar HScroll Height 255 Left 120 Max Tablndex 63 Top =5400 Width =495 End Begin TextBox Text28 FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8-25 FontStrikethru 0 'False FontUnderline 0 'False Height =285 Left 1680 Tablndex =61 Tcxt "0" Top =5400 Width =375 End Begi n TextBox Text I 1 FontBold =0 'False Fontitalic =0 'False FontName "IMS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline =0 'False Height =285 Left =1200 Tablndex Text ="0"f Top =5400 Width =375 Enid Begin PictureBox Picture2 AutoRedrav -1 'True FontBold =-1I 'True 13 26 Fontltalic 0 'False FontName "Timecs New Roman" FontSize =9 FontStrikethru =0 'False FontUnderline 0 'False Height =1695 Left =2160 ScaleHeight =1665 Scale Width 1785 Tablndex =59 Top 120 Width 1815 End Begin TextBox Text27 FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8.25 FontStrikethru =0 'False a FontUnderline =0 'False Height 285 Left =1200 Tablndex 57 Text "0" Top =1920 S...Width =375 End Begin HScrollBar HScroll2 Height =255 Left =120 Max 100 Tablndex =56 Top =1920 Width =495 End Begin ListBox List3 FontBold =0 'False Fontltalic =0 'False FontName "Arial" es.FontSize =8.25 *FontStrikethru =0 'False .FontUnderline =0 'False Height =450 Left =2160 Tablndex Top =4560 Width =3375 End Begin TextBox Text26 FontBold =0 'False Fontitalic =0 'False FontName "MS Sans Serif' FontSize =8.2 FontStrikethru =0 'False 827 FontUnderline 0 'False Height 285 Left =1680 Tabindex 53 Text It"0, Top =1920 Width =375 End Begin HScrollBar I-Scrol9 Height 255 Left =120 Max 100 Mini 1 Tablndex =52 Top =3240 Value Width =495 End Begin TextBox .FontBold 0 'False Fontltalic =0 'False FontNaine ="MS Sans Serif' FontSize =8.25 FontStrikethn 0 'False FontUnderline =0 'False H-eight =285 Left =1680 Tablndex Text "0" Top =3240 .9..Width =375 End Begin TextBox Text24 FontBold =0 'False Fontltalic =0 'False *,**FontName ="MS Sans Serif' FontSize 8.25 'as FontUnderline =0 'False Height 285 Left =1200 Tablndex 49 OText "150"0 Top =3240 Width =375 End Begin TextBox Text23 FontBold =0 'False Fontltalic 0 'False FontNanie "MS Sans Serif' Fontsizc 82- FontStrikethru =0 'False FontUnderline =0 'False Height 285 8 28 Left =1680 Tablndex 48 Text 11"0"1 Top =3480 Width =375 End Begin TextBox Text22 FontBold =0 'False Fontltalic =0 'False FontNaie "MWS Sans Serif' FontSize =8.2 FontStrikethni 0 'False FontUnderline 0 'False Height =285 Left =1680 Tablndex 47 Text 11'0" 0*00Top =3720 Width =375 *End Begin TextBox Text2l.
FontBold =0 'False Fontilic 0 'False :FontNanie "MS Sans Serif' %sFontSize =8.25 FontStrikethru 0 'False FontUnderline 0 'False Height =285 Left =1680 Tablndex 46 Text 11"0" Top 3960 Width =375 End Begin TextBox Text2O FontBold =0 'False Fontltalic =0 'False *FontName "MAS Sans Serif' FontSize -8.2 FontStrikethni 0 'False 'FontUnderline 0 'False *:.Height =285 Left =1680 Tablndex Text "0" Top 4200 Width =375 End Begin TextBoN Text 19 FontBold 0 'False Faitlic 0 'ialsc FontName "MIS Sans Serif' FontSize =8.2 FontStrikethru =0 'False B329 FontUnderline 0 'False Height 285 Left =1680 Tibindex 44 Text "0" Too 4680 Width =375 End Begin TextBox Text 18 Font.Bold 0 'False Fontltalic 0 'False FontName ="MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline =0 'False Height 285 Left =1680 *Tablndex 43 Text 00 Top =4920 Width 375 End Begin Textflox Text]l7 FontBold =0 'False Fontltalic =0 'False FontName ="MS Sans ScriP' FontSize =8.25 FontStrikethru =0 'False FontUnderline =0 'False Height =285 Left =1200 TabIndex =36 Text "0"1 Top =4920 Width =375 End Begin Text~ox Text 16 o FontBold =0 'False Fontltalic =0 'False FontName ="MS Sans Serif' FontSize 8.25 FontStrikethni =0 'False *FontUnderline =0 'False Height =285 Left =1200 Tablndex Text #V"0 Top 4680 Width =375 End FontBold =0 'False Fontltalic =0 'False FontName "MIS Sans Serif' B830 FontSize 8.2 FontStrikethru =0 'False FontUnderline 0 'False Height =285 Left =1200 Tablndex =34 Text to"0" Top =4200 Width =375 End Begin TextBox Text14 FontBold =0 'False FontItalic =0 'False FontName "MS Sans Serif" FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False Height 285 Left =1200 Tablndex =33 Text "0' Top =3960 Width 375 End Begin TextBox Text 13 FontBold =0 'False Fontltalic 0 'False FontName "MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False *FontUnderline 0 'False Height =285 **Left 1200 TabIndex 32 Text Top 3720 W~idth =375 5 End Begin TextBox Text 12 ~ForntBold =0 'False FontItalic =0 'False *.FontNamec "MNS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False Height =285 Left 1200 Tablndex 31 Text 01"0" Top =3480 Width *=375 End Begin HScrollBar HScroll8 Height 255 Left 120 Max TabIndlex Top =4920 Width =495 End Begin HScrollBar HScroll7 Height =255 Left =120 Max Tablndex 29 Top =4680 Width =495 End Begin HScrollBar HScrolI6 Height 255 Left =120 0 Max Tablndex =28 -Top =420 0 t* Width =495 End ae~e Begin HScrolIBar HScrollS *6Height 255 Left =120 Max Tabindex 27 Top 3960) Width =495 End Begin HScrollBar HScrolI4 Height =255 ac Left =120 Max TabIndex 26 *~*Top =3720 a: End49 Begin HScroIIBar HScroll3 Height 255 6OeLeft 120 0.M ax TabIndex Top =3480 Width =495 End Begin CommandButton Comniand6 Caption T "CODE"f Fontflold =0 'False Fontitalic =0 'False FontName 'MS Sans Seif" FontSize =8.2 FontStrikethru =0 'False FontUnderline =0 'False B 32 Height =375 Left =4080 Tablndex 24 Top 1440.
Width =735 End Begin CommandButton Cornmand23 Caption Height =255 Left 5040 Tablndex 23 Top =360 Width =495 End Begin CommandButton Comniand22 Caption Height =255 Left =4560 T abindex =22 Top =840 .Width =495 End Begin CoinmnandButton Comniand2 1 :Caption f= M1 Height 255 *.eeLeft =4080 TabIndex, 21 Top =840 Width =495 End Begin CommandButton .0:.Caption
I
so *Height 255 Left =4560 0 Tabbidex Top =600 Width =495 End Begin CommandButton Conimiandl9 Caption +xl oHeighit 255 *.Left =4560 :.Tablndex =,19 Top =360 Width =495 End Begin ConmandButton Commandl8 Caption Height =255 Left =4080 Tabincc.\ IS1 Top =600 Width =495 End 833 Begin CommandButton Command 17 Caption fl= 9 Height 255 Left =4080 Tablndex 17 Top =360 Width =495 End Begin TcxtBox Text Height =285 Left =5040 Tablndex 16 Text "0" Top 120 Width =495 End Begin CommandButton Command 16 Caption '711 Height =255 se*Left =5040 0 Tablndex Top =1080 *Width =495 ~::End @0 Begin ConmmandButton Comrnand 14 Caption -zl Height =255 Left =5040 Tablndex 14 Top 600 Width =495 ~:.End Begin TextBox Text9 :Height =285 Left =1680 TabIndex 131 Text $oi Top 3000) 0 *Width =375 End 000 Begin Comma ndBuon Commalnd 12 @0Caption .:.Height =255 Left =5040 Tablndex 12 Top =840 Width =495 End Begin TextBox Tcxt8 Height =375 LcfL 216o TabIndex =1 Text Top =2760 Width =1455 End Begin TextBox Text7 Height =285 Left =6960 Tabindex Text "5"9 Top =3480 Width =495 End Begin TextBox Text6 Height =285 Left =6960 TabIndex =9 Text 11".5" Top 3960 Width =495 End Begin TextBox Height 285 Left =6960 Tabindex =8 S*Text"S Top =4440 Width =495 End e~g Begin CommandButton Commandg Caption 1= I Height 255 Left =4560 Tablndex 7 Top =1080 Width =495 End Begin ComnmandButton Command7 Caption
=II
Height =255 0 0 Left =4080 *Tablndex 6 Top =1080 ccWidth 495 End Begin TextBox Text4 Height =285 Left =4560 Tablndex Text "01 Top =120 Width 495 End BeCgin 1CXL83&A~c.\t3 Height =285 Left =4080 Tablndex 4 a 3 Text 1"0.0 Top 120 Width =495 End Begin Textflox Text2 FontBold =0 'False Fontltalic =0 'False FontNamne "MS Sans Serir" FontSize =8.25 FontStrikethru 0 'False FontUnderline 0 'False Height =285 Left 1200 Tabindex 3 Text 11"5" Top =3000 Width 375 End Begin TextBox Text I FontBold =0 'False ~*Fontltalic =0 'False FontName ="Anial' .FontSize =9 FontStrikethni 0 'False :FontUnderline =0 'False Height =735 Left 2160 MultiLine -1 'True ScrollBars 2 'Vertical TabIndex 1 Text of- ~:.Top =3720 Width =3375 .9.:..End Begin PictureBox Picture 1 AutoRedraw 'True BackColor =&HOOFFFFFF& FontE~olcl 0 'False *Fontltalic 0 'False FontName "Small Fonts" FontSize =6 .*FontStrikethni 0 'False FontTranspa rent 0 'False FontUnderline =0 'False ForeColor =&HOOOOOOOO& Height =1695 Left 120 ScaleHeight 1665 Scale Width 1785 Tablndex 0 T u 1,-1 120 Width =1815 End Begin Label B836 -*BackColor &H00FF0000& Caption *#f ForeColor =&HOOOOFFFF& Height =255 Left =5160 TabIndex 170 Top =6600 Width =375 End Begin Label Labe144 BackColor =&HOOFFOOOO& Caption "H4" ForeColor =&HOOOOFFFF& Height =255 Left =720 Tablndex 166 Top =2640 Width =615 End Begin Label Labc143 BackColor =&HOOFFOOOO& Caption ="TARGET LEVEL" *FontBold 0 'False Fontltalic =0 'False *FontNarne "MS Sans Serif' FontSize 8.2 FontStrikethru 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left 7560 TabIndex 162 Top 5400 Width =1335 End Begin Label Labe142 *~..Back Color =&HOOFFOOOO& *FontBold 0 'False Fontltalic 0 'False FonitNaine "MS Sans Serif' FontSize =8.25 FontStrikethru 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height Left =8280 Tablndex =160 Top =1920 Width =1215 E n c Begin Label Label4l.
BackColor =&HOOFFOOOO& Caption ="Target Max" FontBold =0 'False FontItalic =0 'False FontName ="MS Sans Serif' FontSize 8.25 FontStrikethru 0 'False FontUnderline =0 'False ForeColor &HOOFFFFFF& Height =255 Left =8280 TabIndex 159 Top =2760 Width =1095 End Begin Label Label4O BackColor &HOOFFOOOO& Caption ="Max Max" FontBold =0 'False Fontltalic =0 'False es..FontName ="MIS Sans Serif' FontSize =8.25 *FontStrikethiru 0 'False FontUnderline =0 'False S.ForeColor =&HOOFFFFFF& 0**SHeight 255 Left =6720 156 Top 6600 Width =735 End Begin Label Labcl39 BackColor &HOOFFOOOO& Caption ="Max Sumn" FontBold 0 'False FontItalic =0 'False FontNamie ="MS Sans Serif' FontSize 8.25 FonitStrikethni =0 'False FontUnderline 0 'False ForeColor =&HOOFFFFFF& Height =255 .*Left 6720 **TabIndex 155 *:.Top =6240 *Width 73-5 End Begin Label Label38 BackColor =&HOOFFOOOO& Caption ="Insertion M" FontBold =0 'False Fontltalic =0 'False l:uIatlnic-l C "MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline 0 'False B38 ForeColor =&HOOFFFFFF& Height =255 Left 5640 Tabindex 150 Top =5640 Width =1215 End.
Begin Label Label37 BackColor =&HOOFFOOOO& Caption "Inversion M FontBold =0 'False FontItalic 0 'False FontName "MS Sans Serif' FontSize 8.25 FontStrikethni 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height 255 ,*9,Left =5640 .*OoTabIdex 149 .0 q Top =5160 se.Width =1215 g End s* Begi n Label Label' )6 .o:BackColor &HOOFFOOOO& 0:0*Caption Duplication M FontBold =0 'False FontItalic =0 'False FontName "MS Sans Serif' FontSize 8.25 FontStrikethn' 0 'False .9:9FontUnderline 0 'False Fore Color =&HOOFFFFFF& .H Heit =2-55 TabIndex 148 Top =4680 Width =1215 End Begin Label Labc135 BackColor =&HOOFFOOOO& Caption Deletion M FontBold =0 'False *Fontltalic 0 'False FontNamie ="MS Sans Serif' FontSize =8.2 FontStrikethru =0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height 255 Left 5~640 Tablndex% 141 Top =4200 Width =1215 B 39 End Begin Label Libel' )4 BackColor =&HOOFFOOOO& Caption ="Sequence M" FontBold =0 'False Fontltalic =0 'False FontNamne ="IMS Sans Serif' FontSize =8.2 FontStrikcthru =0 'False FontUnderline =0 'False ForcColor =&H00FFFFFF& Height =255 Left =5640 Tabindex 140 Top =3720 Width =1215 End Begin Label Labc126 go..BackColor =&HOOFFOO00& Caption ="Point M FonitBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8.2 FontStrikethni 0 'False FontUnderline 0 'False ev*ForeColor =&HOOFFFFFF& Height Left 5640 Tabindex 139 Top =3240 Width =1215 End :Begin Label Label3) BackColor =&HOOFFOOOO& Caption Orientation" FontBold =0 'False Fontitalic =0 'False *FontNarne "MS Sans Serif' FontSize =8.25 FontStrikethni 'False FontUnderline 0 'False .:.ForeColor =&HOOFFFFFF& Height =255 Left =4440 Tablndex 134 Top =2400 Width =855 End Begin Label Labc132 BaclCoioi-i &N II0OFFOOUO&3 Caption ="Mutation" FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FoniSize =8.25 FontStrikethru =0 'False FontUnderline 0 'False ForeColor &HOOFFFFFF& Height =255 Left 2880 TabIndex 133 Top =2400 Width =735 End Begin Label Label3l1 BackColor =&HOOFFOOOO& Caption ="Best Score" FontBold =0 'False Fontltalic =0 'False FontName ="MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left 7560 *TabIndex 132 Top =4200 Width =855 End Begyin Label Label3O BackColor &HOOFFOOOO& Caption ="Threshold" Font.Bold =0 'False FontItalic =0 'False *FontNarne ="MS Sans Serif' FontSize =8.2 FontStrikethni =0 'False FontUnderline 0I 'False ForeColor =&HOOFFFFFF& '*0Height =255 Left =5640 TabIndex 128 Top =2280) **Width =1335 *:.End Begin Label Labe127 BackColor =&HOOFFOOOO& Caption ="Maturation Cycles" FontBold 0 'False Fontitalic =0 'False FontName "MS Sans Serif' FontSize 8.25 I'ontStlikcthi'td 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left =5640 Tablndex =127 Top =2760 Width 1335 End Begin Label Labe129 BackColor =&HOOFFOOOO& Caption ="Sample Affinity" FontBold =0 'False Fontltalic =0 'False FontName "MWS Sans Serif' FontSize =8.2 FontStrikethru =0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left =8280 Tablndex 120 *Top =3120 Width =1215 *End Begin Label Label28 BackColor =&HOOFFOOOO& Caption "Sumn Affinity" FontBold =0 'False Fontlialic 0 'False FontName "MS Sans Serif' FontSize =8.25 FontStrikcthru 0 'False FonitUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left =8280 TabIndex 121 Top 2280 Width =1215 0 000End Begin Label *BackColor
&HOOFFOOOO&
Caption ="Trans' FontBold =0 'False Fontltalic =0 'False :.FontName ="MIS Sanls Serip' FontSize 8.25 FontStrikethru 0 'False FontUnderline 0 'False ForeColor =&HOOFFFFFF& Hei ght =255 Left =7560 Tablndex =113 lop Width =615 End Begin Label Label24 8 42 BackColor =&HOOFFOOOO& Caption ="Test No" FontBold =0 'False Fontitalic 0 'False FontName "MS Sans Serif' FontSize =8.2 FontStrikethru 0 'False FontUnderline =0 'False ForeColor =&H00FFFFFF& Height =255 Left =7560 TabIndex 112 Top =5880 Width =615 End Begin Label Labe123 BackColor =&HOOFFOOOO& Caption ="Prox" FontBold =0 'False Fontltalic =0 'False *FontName "MS Sans Serif' FontSize 8.25 FontStrikethru 0 'False Se:' FontUnderline 0 'False ForeColor =&HOOFFFFFF& *feHeight 255 Left 5160 TabIndex III Top =6240 Width =375 End Begin Label Labe122 Back Color =&HOOFFOOOO& *Caption ="Height" FontBold 'False Fontltalic =0 'False ***FontName ="MIS Sanls Serif' FontSize =8.25 FontStrikethni 0 'False FontUnderline =0 'False *ForeColor =&HOO0FFFFFF& S.Height 255 .:.Left =3960 *TabIndex =110 Top 6600 Width =615 End Begin Label Labcl2 1 BackColor =&HOOFFOOOO& Caption ="WVidth" Fonltbold 0 False FontItalic =0 'False FontName "MIS Sans Serif' FontSize =8.25 843 FontStrikethni 0 'False FontUnderline =0 'False ForeColor =&HOOFFFFFF& Height =255 Left =3960 Tablndex =109 Top 6240 Width =615 End Begin Label Labe120 BackColor =&HOOFFOOOO& Caption "'Depth" FontBold =0 'False Fontltalic 0 'False FontNamne "MIS Sans Serif, FontSize =8.2 FontStrikethru =0 'False FontUnderline =0 'False 4,00* ForeColor &HOOFFFFFF& Height =255 Left =2760 S.Tablndex =108 *Top =6600 Width =615 End Begin Label Labell19 BackColor =&HOOFFOOOO& Caption "Length" FontBold =0 'False Fontitalic =0 'False FontNarne ="MS Sans Serif' 0 FontSize =8.2 00 .FontStrikethru =0 'False 000: FontUnderline 0 'False ForeColor =&HOOFFFFFF& Height =255 Left =2760 Tabindex *=107 Top =6240 Width =615 End Begin Label Labell18 .,.BackColor =&HOOFFOO00& Caption ="Desat" FontBold =0 'False Fontltalic =0 'False FontName "MS Sans Serif' FontSize =8,2 FontStrikethru 0 'False FontUnderline t) 'False ForeColoi &HUUOOPIkFF,& Height 255 Left =720 Tablndex 97 B4 4 Top =2280 Width =495 End Bcgin Label Label 17 Alignment I 'Right Justify BackColor &HOOFFOOOO& Caption =1SH ForeColor =&HOOFFFFFF& Height 255 Left 720 Tablndex =92 Top 4440 Width 375 End Begin Label Label 16 Alignment 1 'Right Justify BackColor &HO0FFOOOO& Caption 11"S10 ForeColor =&HOOFFFFFF& Height =255 0Left 600 Tablndex 88 Top =6600 Width =495 End Begin Label Alignment 1 'Right Justify BackColor &HOOFFOOOO& Caption ForeColor &HOOFFFFFF& Height =255 Left 600 Tablndex =82 Top 6120 Width =495 End Begin Label Label 14 Alignment 1 'Right Justify 3.BackColor
&HOOFFOOOO&
Caption 11N01 00ForeColor =&HOOFFFFFF& 9.Height =255 Left 600 *Tablndex 79 Top 5 160 Width =495 End Begin Label Label 13 Alignment 1 'Right Justif-, BackColor &HOOFFOOOO& Caption -i ForeColor =&HOOFFFFFF& Height =255 Left =600 8 4 Tablndex Top 6360 Width =495 End Bcgi n Label Labell12 Alignment I 'RighitJustifAy BackColor &HO0FFOOOO& Caption 1=~ ForeColor =&H0OFFFFFF& Height =255 Left =600 Tabindex 72 Top 5640 Width =495 End Begin Label Label I11 Alignment 1 'Right Justifv BackColor &H-OOFFOOOO& Caption ForeColor
&HOOFFFFFF&
ow Height =255 Left =600 *TabIndex 68 Top 5880 Width =495 End Begin Label Label Alignment 1 'Right Justify BackColor &HOOFFOOOO& Caption ForeColor &HOOFFFFFF& Height =255 Left =600 Tablndex =62 Top 5400 Width =495 End ,b Begin Label Labcl9 Alignment 2 'Center BackColor &HOOFFOOOO& a. Caption Rios FontBold =0 'False Fontltalic =0 'False FontName "IMS Sans Serir' FontSize =8.2 FontStrikethru =0 'False FontUnderline 0 'False ForeColor =&HOOOOFFFF& Heighit =255 Left =600 11,ablindex =58 Top 1920 Width =615 846 Begin Label Label8 Alignment I 'Right Justify BackColor &HOOFFO000& Caption ForeColor =&HOOFFFFFF& Height =255 Left =720 Tablndex 54 Top 3000 Width =375 End Begin Label Labe17 Alignment 1 'Right Justify BackColor =&HOOFFOOOO& Caption "-H"f ForeColor =&HOOFFFFFF& Height 255 Left 720 Tablndex =51 E: :Top 3240 Width =375 End Begin Label Label6 Alignment 1 'Right Justify BackColor &HOOFFOOO0& Caption "-CN" ForeColor =&I-OOFFFFFF& Height 255 Left =720 Tabindex 42 Top =4920 Width =375 End Begin Label Alignment I 'Right Justify BackColor &HOOFFOOOO& too Caption =1 T ForeColor =&HOOFFFFFF& HeIight =255 Left 600 *TabbIdex =41 Top =4680 Width =495 End Begin Label Label4 Alignment 1 Right Justify BackColor =&HOOFFOOOO& Caption "t-OH" ForeColor &HOOFFFFFF& Height =255 Lett 720 Tablndex Top =4200 Width =375 B 47 End Begin Label Label3 Alignment 1 'Right Justify BackColor &HOOFF0000& Caption ForeColor &HOOFFFFFF& Height =255 Left =720 Tabindex .=39 Top 3960 Width =375 End Begin Label Labe12 Alig-nment 1 'Right Justify BackColor &HOOFFOOO0& Caption ForeColor =&HOOFFFFFF& Height =255 Left =720 Tabindex 38 Top =3720 Width =375 End Begin Label Label I Alignment 1 'Right JuIStifV BackColor &HOOFFOOOO& Caption "-F ForeColor &HOOFFFFFF& Height Left =720 TabIndex 37 Top 3480 Width =375 End End .6 0*e *6 0 0 0* 0 0 Ow 6000 #0 ow 0600 6.
0* a #0 #09 0 000 0 0 a* *0 0 006 0 [348 3. Program Code SUB ami 'Subroutine for amine construction scount scount 1 subsx(scount, 2) subsx(scount 1, 1) subsy(scount, 2) subsv(scount 1, 1) subsz(scou nt, 2) =subsz(scount I1 1) subsx(scount 1, 2) subsx(scount 1. 1) subsv(scount 2) subsy(scount 1, 1) subsz(scount 4- 1, 2) subsz(scount 1, 1) Select Case state Case 1 1) subsz(scount 1, 1) .34 subsx(scount, 1) =s 'ubsx(scount 1, 1) .3 *.subsy(scount. 1) subsy(scount 1, .51 subsz(scount 1. 1) subsz(scount 1. 1) .34 *subsx(scount 1, 1) subsx(scount 1, 1) .3 subsy(scount 1, 1) =subsy(scount 1, 1) .51 Case 2 subsz(scount. 1) subsz(scount 1. 1) .34 subsx(scount, 1) subsNx(scount 1. 1) .3 subsv(scount, 1) =subsy(scount 1, 1) .51 .:*subsz(scount 1, 1) =subsz(scount 1 1) .34 subsx(scount 1. 1) =subsx(scount 1. 1) .3 ~:.subsy(scount 1. 1) subsv(scount 1, 1) .51 Case 3 subsz(scount, 1) subsz(scount 1, 1) .34 S. subsN(scount. 1) =subsx(scount 1. 1) .3 subsy(scotint. 1) subsy(scount 1. 1) .51 subsz(scount 1. 1) subsz(scount 1. 1) .34 *us~son .10@ubxso -1 subsx(scount 1. 1) subsy(scount 1. 1)-.31 Case 4 subsz(scount, 1) subsz(scount 1. 1) .34 subsx(scount. 1) subsx(scount 1. 1) .3 subsy(scount. 1) subsy(scount 1. 1) .51 subsz(scount 1. 1) =subsz(scount 1, 1) 34 subsx(scount 1. 1) subsx(scount 1. 1) +.3 subsy(scount 1. 1) subsv(scount 1. 1) +.51 End Select subsr(scount) .4206 8 49 subsc(scount) =12 subsr(scotint 1) =.4206 subsc(scount 1) =12 subt(scount) 4 subt(scount 1) 4 picturel.Line (subsx(scount, subsy(scount, 1))-(subsx(scount. subsy(scount. QBColor(13) picturel.Circle (subsx(scount. subsy(scount, subsr(scount). QBCo'lor(12) picturel.Line (subsx(scount 1, subsy(scount 1. 1))-(subsx(scount 1. subsy(scount +I 1. QBColor( 13) picturel.Circle (subsx(scount 1, subsy(scount 1, subsr(scount QBColor(12) scount scount 1 END SUB SUB aii2( 'Subroutine for amnine construction scount scount 1 subsx(scount, 2) subsx(scount. 1, 1) subsy(scount. 2) subsv(scount 1, 1) subsz(scotint. 2) subsz(scount 1) *see subsx(scount 1 2) =subsx(scoun t 1. 1) subsy(scount 1, 2) subsy(scount 1. 1) subsz(scount 1. 2) subsz(scount 1. 1) o Select Case state Case 1 subsz(scount. 1) subszscount 1. 1) .34 S.sxson,1 usxson .1 3 *..subsy(scount. 1) =subsx(scount 1. 1) .31 subsz(scount.+1 1) sbsz(scount 1 1) .3 S subsz(scount 1. 1) subsx(scount 1) .34 subsx(scount 1. 1) subsx(scount 1. 1) .51 Case 2 S subsz(scount. 1) subsz(scount 1) .34 subsx(scount. 1) subsx(scount 1 1) .3 subsy(scount, 1) =subsy(scount 1. 1) .51 subsz(scount 4+ 1, 1) subsz(scount 1. 1) .34 subsx(scount subsx(scount 1L 1) .3 subsy(scount 1. 1) subsy(scount 1. 1) 51 Case 3 =s b zS O~l .1 3 subs7.(scount. ")=sbzson .1 3 subsx(scount. 1) subsx(scount L. 1) subsv(scount. 1) subsy(scount 1. 1) .51 subsz(scount 1, 1) subsz(scount 1. 1) .34 B subsx(scount 1, 1) subsx(scount 1, 1) .3 subsy(scount 1, 1) sub*-(scount 1, 1) .51 Case 4 subsz(scount, 1) subsz(scount 1. 1) .34 subsx(scount, 1) subsx(scount 1, 1) .3 subsy(scount, 1) =subsv(scount .51 subsz(scount 1, 1) subsz(scount 1. 1) .34 subsx(scount 1, 1) subsx(scount 1. 1) .3 subsy(scount 1, 1) subsy(scount 1, 1) .51 End Select subsr(scount) .4206 subsc(scount) 12 subsr(scount 1) .4206 subsc(scount 1) 12 See *subt(scount) 4 subt(scount 1) 4 picturel.Line (subsx(scount, subsy(scount. 1))-(subsx(scount. subsy(scount. QBColor(13) picturel.Circle (subsx(scount. subsy(scount, subsr(scount), QBColor(12) sees picture I.Line (subsx(scount 1. subsN (scount 1, l))-(subsx(scount 1, subsN (scount 1. QBColor( 13) picturel.Circle (subsx(scount 1. subsy(scount 1, subsr(scount QBColor(12) scount scount 1 EN SUB END SUBi 'Subroutine for amnine construction scount scoiuirt 1 subsx(scount. 2) subsx(scount 1, 1) subsvx(scount. 2) subsy(scount 1. 1) subsz(scount. 2) subsz(scount 1, 1) subsx(scount 1. 2) subsx(scount 1. 1) subs% (scount 1. 2) subsy(scount 1. 1) sub~z(scount 2) subsz(scount 1. 1) Select Case state CaselI subsz(scount, 1) =subsz(scount 1. 1) .34 subsx(scount,. 1) =subsx(scount 1. 1) .59 subsy(scount, 1) subsy(scount 1, 1) B51 subsz(scount 1. 1) =subsz(scount 1, 1) .34 subsx(scount 1) subsx(scount 1. 1) .59 subsv(scount 1) subsy(scount 1, 1) Case 2 subsz4scount, 1) subsz(scount 1, 1) .34 subsx(scount, 1) =subsx(scount. 1, 1) .59 subsy(scount, 1) subsy(scount 1, 1) subsz(scount 1, 1) =subsz(scount 1, 1)-+.34 subsx(scount 1, 1) subsx(scount 1, 1) 59 subsy(scount 1, 1) subsy(scount 1, 1) Case 3 subsz(scount. 1) subsz(scount 1 1) .34 subsx(scount, 1) subsx(scount 1. 1) .59 subsy(scount. 1) subs-v(scount 1, 1) S *6*subsz(scount 1, 1) subsz(scount 1. 1) +.34 sus*cun 1 u.xson 1,1-5 subsy(scount +I 1, 1) subsx(scount 1. Case 4 sus*cut 1)=.bzson ,1 3 ::.subsz(scount, 1) subsx(scount 1, 1) .54 subsv(scount, 1) =subsy(scount 1. eas siibsv(scount, I) subsz(scount 1)-3 subsx(scount 1. 1) subsz(scount 1, 1)+-.34 subsy(scount 1, 1) subsx(scount 1, 1) End Select subsr(scount) .4206 subsc(scount) =12 @6 subsr(scount I) .4206 subsc(scount 1) 12 subt(scount) 4 subt(scount 1) 4 *picture! .Line (subsN.(scourit. subsv(scount, I -(subsx(scou tt. subsy(scomit. QBColor( 13) a picture! Circle (subsx(scount. subsv(scount. subsr(scounQ. QBColor( 12) picturciLine (subsx(scount 1. subsy(scount 1. 1))-(subsx(scount 1. subsy(scount 1. QBColor( 13) picture 1.Circle (subsx(scount 1. subs' (scount 1. subsr(scount QBColor(12) scount scount I END SUB SUB ami4 B52 'Subroutine for amine constniction scount Scount I subsx(scount, 2) =subsx(scount 1) subsv~scount, 2) subsy(scount 1, 1) stibsz(scount, 2) =subsz(scount 1. 1) subsx(scount 1, 2) subsx(scount 1, 1) subsy(scount 2) subsy(scount 1, 1) subsz(scount 1, 2) =subsz(scount 1, 1) Select Case state Case 1 subsz(scount, 1) subsz(scount 1, 1) .34 subsx(scount. 1) subsx(scounl 1, 1) .51 *00**0 subsy(scount, 1) =subsy(scount 1) .3 subsz(scount 1, 1) =subsz(scount 1, 1) .34 subx~soun 1) =subsx(scount 1) .51 subsy(scount 1, 1) subsy(scount 1, 1) .3 Case 2 subsz(scount, 1) stibsz(scount 1L 1) .34 subsx(scount, 1) subsx(scount 1. 1) .51 subsy(scount, 1) subsy(scount 1. 1) .3 subsz(scount 1. 1) subsz(scount 1 1) .34 subs.N(scount 1, 1) subSN(scount 1. 1) .51 subsv(scount 1. 1) subsy(scount 1, 1) .3 Cse 3~cont 1) subsz(scount 1. 1) .34 subsx(scount. 1) subsx(scount L. 1) +I .51 sus*cut us0cut 1 subsy(scount1. 1) subsz(scount 1 1) .34 00 subsx(scount 1. 1) =subsN(scount .51 subsy(scount 1, 1) subsy(scount 1, 1) 3 0 0 Case 4 subsz(scount. 1) =subsz(scount 1, 1) .34 subsx(scount, 1) subsNx(scount -1 subsy(scount, I1) subsv(scount 1. 1) subsz(scotint 1. 1) subsz(scount 1, 1) .34 subsx(scount 1. 1) subsNx(scount 1. 1) +.51 subsy(scount 1, 1) subsy(scount 1. 1) +.3 End Select subsi(scoullt) 4206 subsc(scount) 12 subsr(scount 1) .4206 subsc(scount 1) 12 B 53 subt(scount) 4 subt(scount 1) 4 picturel.Line (subsx(scount, subsN(scount, 1))-(subsx(scount. subsvy(scount. QBColor(13) picturel.Circle (subsx(scount. subsy(scount, subsr(scount). QBColor(12) picturcl.Line (subsx(scount I1. subsyv(scount 1, 1))-(subsx(scount 1. subsy(scount 1. QBColor( 13) picturel.Circle (subsx(scount 1. subsy(scoiint 1, subsr(scount QBColor(12) scount scount 1 END SUB SUB assemblel I too 'LIGAND BACKBONE CONSTRUCTION
ROUTINE
'PART 1 of ligand code translation *'builds unsubstituted carbon skeleton and labels atom substituent type~s codelcngth Len(code) Erase atoms Erase bond I Erase bond 2 Erase bond') Erase bond4 Erase atomix Erase atomv Erase atomz Erase atornstate Erase subn 0* Erase occupy picture1. Cls picture2.Cls text3.Text 0 text4.Text 0 state =I xc= 0 yc 0) zc 0 .xa =0 za= 0 B 54 dclx dely .433 picturel.Circle .6 picture2.Circle .6 y(O) 0 0 atoni( 0,0=0 atorny(0, 0, 0) 0 atomz(0, 0, 0) 0 itomstate(0. 0, 0) 1 subn(0, 0, 0, 1) 1 subn(0, 0, 0, 2) I goe subn(0, 0, 0, 3) 1 subn(0, 0, 0, 4) 1 occupy(0, 0, 0) 8 For i 1 To codelength oxc Nc 0cy =0 -c rule Mid$(code. i. 1) snum Mid$(codeq, i. 1) substd Mid$(codet, i, 1) Select Case substd Case "a" 'hYdrogen kind I skind =0 6~ Case "b" kind 2 ccskind=1I *Ca se "c" 'chlorine kind 3 skind 1 Case "d" 'bromine kind 4 skind I Case "c" 'hNvdroxvkid skind= 1 Case "T' famine B kind 6 skind I Case "g" fcyano kind 7 skind I Case "h" 'nitro kind 8 skind= Case "k" 'thiol kind 9 skind 1 Case Ti" 'ketone kind= skind Case .'thione kind =1I1 skind I Case "n" 'pyrrole kind 12 skind I Case "p" 'pyridi ne kind 13 skind I Case "o fether/pyran kind =14 skind I Case 'sulfide/thiophene kind skind =I Case "w" 'desaturate kind 16 ***skind =1 End Select Select Case rule Case 1 bond I (xa. va. za) =1 iiLolls(.\a va. bond I(xa. Na. za) +1 bond2(xa. ya- za) bond3(.\a. za) bonid4(xa, ya. za) 856 Select Case state Case I xc =xc deix xa =xa I Nyc yc dely ya a zc zc za za state =2 Case 2 c xc delx xa =xa+ Iyc =c dely zc =zc eve: za za state Case3 .*xc =xc -delx xa xa I *c c= Nc +dely ya =ya zc zc *za =za Ut0state =4 Case 4 xc =xc delx xa =xa 1 yc dely ya ya zc Zc za za state 3 End Select atomx(xa, ya, za) Nc atorn(xa. ya, za) yc atomz(xa. ya, zn) zc occupy(xa. za) 8 atornsta tc(.xa, yIa, za) state subn(xa, NVa. za. snurn) =kind bond ya, za) I atorns(.xa, ya, za) bond ya, za) bond2(xa, va. za) bond'3)(xa. va, zi) bond4(xa. ya. zn) Case 2 bond2(xa. ya. za) 1 atoms(xa, ya, za) bond l(xa. va. za) bond2(xa, ya, za) bond3(xa.. ya. za) bond4(xa. ya. za)
C
we..
C.
C
Ce. C C. CC C e
C
eelS *e C
S
C C we CC ew C C e5 C 6e
'S
we.
C
we. e
C
we C S
CC
C SCe Select Case state Case 1 .xc xc deix .xa. xa I yc='c delI' N'3 ya zc zc za. Zn state 2 Case 2 xc =xc delx xa xa -I yc Nvc dely ya ya zc:zc za za state =I casc 3 xc =.xc delx xa =xa I A58 yc vc dclv va Ya zc zc za =za state 4 Case 4 .xc xc deix xa xa I a a. a.
a a a 0* a. a a *a.a a a S. S a a 4a a a.
@6 a..
a a a Ca a *a a..
yc yc dely ya a zc=zc za za state 3 End Select Itonix(Na, ya, za) =xc itoniy(xa. ya, za) =yc atomz(xa. ya, za) zc occupy(xa. Iva, za) 8 atornstate(sa. ya, za) state subn(xa. ya. za, snurn) =kind bond2(xa, ya. za) 1 atoms(xa. va, za) bond I1(xa. ya. za) boiid2(xa, ya. za) bond3(xa. za) bond4(xa, i a. za) Case 3 bond'3(xa,. ya. zn)= atorns(xa. va, za) bond 1(xa. va. za) bond2(.xa. ya, za) bond3(xa, za) bond4(xa, va. za) Select Case state Case I Nec xc xa xa yc .6' "a Va -I zc =zc 8 59 0 *0@e p.
S S *0 S 0 *00S @0 0@ 0 009.
S
*900 za =za state =2 Case 2 A c XC xa =xa yc +.864 ya I zc zc za =za state I Case 3 xC c xa xa Nyc yc .864 ya a 1 zc zc za za state 4 Case 4 NC NC Nxa xa vc N-c .864 ya= va I zc= zc- za =za state 3) End Select 0505 0@ 00 0 0* PO 00 05 0 @0
OSO
S
0
S
00 S 0 0@ *55
S
aIII.\(xa. ,a Li)xt atomv (xa. Nva. za) y atomz(xa. Na. za) zc occupy(xa, ya. za) 8 atomstate(Na, ya, za) state subn(.xa. va. za, snurn) kind bond3(xa, ya, za)=1 atorns(xa. ya, za) =bond I1(xa. y'a. za) bond2(xa, ya, za) bond3(.xa. ya. za) bond4(xa. ya. 7a) Case 4 bond4(xa, ya, za) 1 .tm~a ya, za) bond 1(xa, ya, za) bond2(xa, va, za) bond3(xa. 3a. za) bond4(.xa. va za) Select Case state Case I xc xc .xa xa C C yc =y)c CC..ya =ya 009:0*zc=zc+1I *0 za=za+lI state 3 Case 2 xa =xa yc= vc zc=zc-lI za z I state =4 Case 3 XC*= Nc xa =x yc= vc ya= va.
za za -I 83 61 .state 1 Case 4 Ne xe xa =xa Ye 3,c ya ya zc =zc 1 za =za 1 state 2 End Select 9990 *9 S 9 .9 *9 9 9 9 49 9 5090 9.99 9* 9. 99*9 *9 *9 09 9** 99 9 99 9 9.
4 *9* atomx(xa, N a, za) xc atorny(x. ya. za) vc atornz(xNa, ya. Zn) ze occupy (xa, ya, za) 8 atornstate(xa, ya. za) state subn(xa, yi. za, snuin) kind bond4(xa, va, za) I atorns(xa. va. za) bond I(ma. Va. za) bond2(.xa, va za) bond3 (xa, N a. za) bond4(xa. v za) End Select x(i) xc z(i) zc r(i) =.6 xr(i) xa yr(i) y zr(i) za picture 1.Line (oxc. ovc)-(xc. Ne) picture 1.Circle Nc), .6 picture2.Circle ye), .6 Next END SUB 8362 FUNCTION ati (ratio As Double) As Double 'Arctan calculation 'First quadrant ati Atn(Abs(ratio)) END FUNCTION FUNCTION at2 (ratio As Double) As Double 'Arctan calculation 'Second quadrant Wt pi Atn(Abs(ratio)) END IFUNCTION FUNCTION at3 (ratio As Double) As Double 'Arctan calculation 'Third quadrant at3 =pi2 Atn(Abs(ratio)) END FUNCTION see* FUNCTION at4 (ratio As Double) As Double 'Arctan calculation 'Fourth quadrant 104 pi Atn(Abs(ratio)) END FUNCTION SUB3 changer 'Subroutine for sivapping virtual receptor parameters in 'evolution programs using more than one receptor for 'ligand testing, li ph(codev) .:.text56.Text h clength =pclength(codev) text48.Text clcngth depth pdepth(codev) text49.Text depth rwidth prividth(codev) i-width 863 rlength prlength(codev) rlength proxsense =pproxsense(codev) =promsense testnumber =ptestnumber(codev) te.Nt53.Text =testnumber hscroll 19. Value =testnumber popsize 0 text54.Text popsize transval =ptransval(codev) hscroll22.Value transval 'to' maxirnals pmaximlals(codev) 0 text68Text maxinials surntarget maxinials text7l:Text surntarget niaxinialin plnaximalm(codev) text69.Text ruaximilm 111axtarget =maximaim text70.Text maxtarget 0*xare niaxtarget maximalni (targtp 100) 0,60 text70.Text =maxtarget 0 text7 LText suntarget *06 END SUB SUB codecreate 'Routine for the generation of ligand codes 'Calls ring and methv for insertion of 'cNvclohe.\Nl rings and methyl groups codelength hscroll 1. Value ringcomit 0 IIIClhcouiL 0, tcxt26.Text "0" a864 code #It cadet codeq WS 0 j3 =0 0 j6 =0 i10=0 jil =0 j12=0 0- age j13 =0 j14 =0 'calculate probability values from selection panel values to Q+v 4 -6+0+v +v I t1 I V1 Q2 v1 N-2 13 Q '2 1 t4 =Qt t6 t4 1, t7=t6+ I t8=t6+v5 19 18 v6 *6t12=t8O+ v7 *tI3 =t12 I t14 112 -,8 U14 I 016 114 v9 t17= t16 1 tlS=t6 NI1 'Iterative character creation/selection for primary, secondary 'and tertiary code construction.
'Repeat as specified by codelength.
For i 1 To codelength If Pi1ing I -iI IQRiid 100) T1iiC11 'Call ring generation subroutine
M
8 rings Else If methyl I Int(Rnd 100) Then 'Call methyl group generation subroutine methy Else 'Generate primary code character s Trini$(Str$(Int(1. 4 Rnd))) 'Check for functional group availability and add hydrogens 0 'if no functional groups are available for substitution If ltc +td 0Then hvdl Else hN d (hscroll9.Value 100) End If 0000If Rnd hyd Thcn 'This section adds characters to secondary code that instruct 'the molecular assebler to replace carbon atom in skeleton with oxygen, nitrogen or sulfur If Rnd (wg 100) Then q =Trim$(Str$(lnt(I 4 *Rnd))) Else j2=jws I Else If (Rnd) <npg/ 100 Then g "po B366 P13 =j13 I Else If (Rnd) og 100 Then g fool, j14 =j14 1 Else If (Rnd) sg 100 Then g W1 =j15 I Else 'Assignment of string values for substituents start of main secondary code generating loop.
*0 *'Characters instruct assembler to add substituents to primar y skeleton.
:'Begins with generation of random number.
Rn 1 Int(tot (Rnd(1))) 'generation of code sequence Select Case Rn :Case I To v1 jl =jl +1I Case t11 To 12 "c" j2 =j2 I Case B3To t4 j3 =j3 I Case ti To t6 j4 =j4 I Case t7 To t8 g Of ji =j5 1 Case t9 To 110 g P9I j6 =j6 I Case tIlI To tl2 g
PW
j7 =j7 I Case tM To t14 g 1 j8 =j8 I Case t15 To t06 g 1l j9 =j9 I Case t17 To t18 jlO =jIO+1I .*.End Select EndlIf End If End If 'Generation of character for tertiary code vector.
q =Triim$(Str$(Iiit(Rnd 4) 1)) *End If End If End If 'Assemble primary, secondary and tertiary code vectors 'by concatenation of new characters with'the vectors code =code s *codet codet g codeq codeq q Next 'Set codelngth variable to length of code generated by 'preceding steps. Note: new codelength my differ from old codelength due to the introduction of rings and methyl groups.
codelength Len(code) coded 8 67 'Display resulting code as string.
B68 Forj I To codelength coded coded Mid$(codet, j, 1) Mid$(codeq. j. 1) Mid$(code. j, 1) Chr$(1 26) Nextj text 1.Text coded oldcode =code oldcodet =codet oldcodeq =codeq 'calculation of frequency distributions of substituents.
tot =jI +j2 +j3 +j4 +j5 +j6 +j7+jS +j9 ±jIo Ifltot 0 Then text2 3.Text Int(1 00 jlI htot) *text22.Text Int(1 00 *j2 Itot) *text2 I.Text =Int(100 *j3 Itot) text2O.Text Int(100 j4 Ihot) teC9.et= tt 0000 textl9.Text Int(I0O *j6 Itot) text38.Text Int(100 j6 Itot) text26.Text =Int(100 j8 Itot) text32.Text Int(100 *j8 Itot) tcxt43.Text =Int(I00 *jIO Itot) text' )O.Text =ji12 text39.Text =j13 text' 4.Tcxt =j14 text41. Text j End If j12 text39.Tcxt =j13 o text' 4.Text =ji14 :.text4lI.Text =j 0 text47.Te.Nt Avs text2 5.Text jhyd END SUB SUB codemaker 'Code generation subroutine
'(DIAGNOSTIC)
text29.Text= codecreate assemble 1 8 69 list substitutes END SUB SUB Command I-Click codenum 0 text76.Text codenurn Erase ph Erase pclength Erase pdepth Erase pnvidth Erase prlcngthi Erase pproxsense Erase pteStnumber Erase ppopsize Erase ptraiisval Erase pmaximals Erase pmaxirnalm listi Clear h Il text56.Text= clength 0 text48.Text =clength depth 0 text49.Text =depth nvidth 0 rwidth rlengtli 0 =rlength proxsense 0 text52.Text =proxsense testnumber 0 text53.Text testnumber 11SC10!I I 9,Va~jj[ tiUIOc popsze =0 text54.Text popsize transval 0 =trans-val hscro1122.Value transval maximals 0 text68.Text =maximals sumtarget =maximals text7l.Text sumntarget maxirnahn 0 text69.Text maximaim maxtarget maxinialn maxtarget EN SUB END SUB ndIO-lc 'EVOLUTION I PROGRAM 'Evolution of ligands against a single virtual receptor picture l.Cls picturc2.Cls picturel.AutoRedraw~ False picture2.AutoRedraw False V. 'Initial variable settings 000 maxaffinity 0 0 ~bestscore 100 go mainscore 100 'Ligand Counter initialised *fill 0 'Generation and testing of random ligands until a ligand 'of sufficient affinityI for the virtual receptor is produced Do Until mainscore threshold im =im 1 text6lI.Text =im singtest 1370 'testing of newv ligand score against best previous score B871
C
*eg.
C.
S S Ce
C
C
Ce..
C C
CC..
S
If bestscore mainscore Then bestscore mainscore text62.Text =Int(bestscore *1000) 1000.
End If Loop te.Nt62.Text Int(bestscore *1000) 1000 lone-wavi evolution of ligand bynmutation and selection process continues for preset number (=testno) of Cycles For i I To testno text6l.Text 'mnutation maininutate Ievaluation singtest 'comparison of new ligand with best previous best score 'and selection of ligand with best score If bestscore niafiscore Then bestscore =nlainscore text62.Text Int(bestscore 1000) 1000 oldcode =code oldcodet =codet oldcodeq codeq End If Next text6l.Text ="Final" 'display of best ligand generated by procedure code =oldcode codet oldcodet codeq =oldcodeq assemble 1 list substitUICS
CCC.
C C CC
CCC.
C C
CC
C
C..
C
CCC C
CC
C. C CC
C
CCC
C
singtest 872 text62.Text Int(bestscore 1000) 1000 Picture I.AutoRedraw =True picture2.AutoRedraw =True END SUB SUB Comimand 12_Click Control for positive rotation around z-axjs: uses 90 degree increments text I 0.Text =(textI0.TCxt 90) Mod 360 For i =I To codelength w Iength(x(i), y(i)) *:*Select Case x(i) Case 0 0 If AD 0 Then theta pi/ 2 Else theta =3 *pi /2 End If Case Is 0 If v(i) 0 Then theta at I y(i) x(i)) Else theta =at3()v(i) x(i)) End If 0 Caselis< 0 If 0 Then theta at2(y(i) x(i)) Else theta =at4(y(i) X(i)) End If End Selcct 00*YOi) =w Sin(theta (pi %V Cos(thetl (pi Next picturel1 Us picture2.Cls For i 0 To codelength
I
Pict ure I -Circle .6 picturci.Line y(i y(i)) picture2.Circle (i)yi).6 picture2.Ljne (x(i Y(i y(i)) Next Picture 1. Circle (x(codelength), y(codelength)). .6 picture2.Cjrcle (x(codelength), y(codelength)), .6 For i= I To hnurnber length(stibsx(i. subsy(i, 1)) Select Case subsx(i, 1) Case 0 If subsy(i, 1) 0 Then thcta2 pi /2 Else theta2 3pi/ 2 :*End If :hta =a I (subSy(i.I>=0 1) stibsx(i, 1)) Else theta2 at3(subsy(i.. 1) subsx(i, 1)) End If Case Is 0 If subsy(i. 1) 0 Then tbeta2 at2(subsv(i. 1) subsx(i. Else tlieta2 at4(subsy(i, 1) subsx(i, 1)) End If End Select subsy(i. 1) w* Sin~thcta2 (pi *subsx(i. 1) =w Cos(theta2 (pi ,~.Next i @0@*For i I To hinumber %v length(subsx(i, subsy(i. 2)) Select Case SUbSN(i, 2) Case 0 If subsy(i. 2) 0 Then theta2 =pi 2 Else theta2 =3 *pi/ 2 E id U Case Is 0 If subsy 2) 0 Then theta2 =atlI(subsv(i, 2) subsx(i. 2)) 87 Else theta2 at3(subsy(i, 2) 1 subsx(i, 2)) End If Case Is 0 If subsy(i, 2) 0 Then theta2 at2(subsy(i, 2) subsx(i, 2)) Else theta2 =at4(subsy(i, 2) subsx(i, 2)) End If End Select subsy(i, 2) w Sin(theta2 (pi 2)) subsx(i, 2) w Cos(theta2 (pi 2)) Next i picture l.ForeColor =QBColor(9) For i= 1 To hnumber pit rl C rle( us*.1 u s9*1),sb riQ oo~ u s~) picturel.Circe (subsx(i. subsy(i, subs(i.). QuBsoo(subsc2)) Next picture I.ForeColor QBColor(0) END SUB SUB Conimandl4_Click Control for negative rotation around z-axis; uses 6 degree increments textl0.Text =(textl0.Text 6) Mod 3160 For i I To codelength w length(x(i). y(i)) Select Case x(i) Case 0 If y(i) 0 Then theta pi /2 Else theta =3 *pi 2 End If Case Is 0 if N:Q) 61 then theta at I y(i) x(i)) Else theta =at3(y(i) x(i)) End If 1375 Case Is< 0 If A~i) 0 Then theta =at2(y(i) Else theta at4(yv(i) End If End Select YOi) w Sin(theta (pi X(i) 1 Cos~thcta (pi Next i 9* picturel.Cls Picture2.Cls For i 0 To codelength
I
picturel.Circle .6 picturel.Line (x(i y(i y(i)) picture2.Circle .6 picture2.Line (x(i y(1 y(i)) Next pit rlCr...~o eent) o el n t) picture2lCircle (x(codelengthi). y(codelength)), .6 For i 1 To haumber wv length(subsx(i, subsv(i. 1)) Select Case subsx(i, 1) Case 0 If subs; 1) 0 Then theta2 pi /2 Else theta2 3 *pi 2 End If Case Is 0 If stibsy(i. 1) 0 Then theta2 at I(subsy(i. 1) subsx(i. 1)) Else theta2 3(subsy(i, 1) subsx(i. 1)) End If Case Is 0 If subsy(i. 1) 0 Then Else theta2 =at4subsy(i. 1) subsx(i, 1)) End If 8 76 End Select subsN 1) w *Sin(theta2 (pi subsx(i, 1) w v Cos~theta (pi Next For i I To hnurnber Nv length(subsx(ij, subsy(i. 2)) g~e*0* Select Case subsx(i, 2) Case 0 If subsy(i, 2) 0 Then theta2'=pi 2 Else theta2 =3 *pi 2 *End If Case Is> 0 If subsy(i. 2) 0 Then theta2 atlI(subsy(i, 2) /subsx(i, 2)) Else theta2 =at3(subs% 2) subsx(i, 2)) End If Case Is 0 9 9S:9If subsN 2) 0 Then theta2 at2(subsy(i, 2) subsx(i. 2)) C.Else theta2 at4(subs%-(i. 2) subsx(i, 2)) :End If End Select subsy(i, 2) w Sin(theta2 (pi subsx(i. 2) =NN, Cos(theta2 (pi Next picturel 1.ForeColor =QBColor(9) For i =I To hnuniber picturel.Circle (subsx(i, subsy(i. subsr(i). QBColor(subsc(i)) picturel.Line (subsx(i. subsy(i. I))-(subsx(i, subs%.(i, 2)) Next\ I picture I .ForeColor QBColor(0) B 7 *END SUB SUB Command 16_Click Control for positive rotation around z-axis; continuous movement through 360 degrees picture1. Cls picture I.AutoRedraw False Forj =I To text 10.Text (text 10.Text 6) Mod 360 For i 1 To codelength %v length(x(i), y(i)) Select Case X(i) Case 0 If y(i) >0 Then *theta pi /2 Else theta 3pi/ 2 End If Case Is 0 If 0 Then theta atlI(y(i) x(i)) 'C:.Else theta at'3(y(i) x(i)) EndlIf Case Is 0 If ADi 0 Then theta at2(y(i) x(i)) Else theta at4(y(i) x(i)) End If End Select *0O y(i) =w Sin(tleta (pi x(i) w Cos(theta (pi Next picture I.Cls For i 0 To codelength
I
pictutre I.Circle .6 picture i.Line (x(i y(i y(i)) B878 Next Picture I. Circle (x(codelength).. 3(codelength)), .6 For i =I To hnuniber w Iength(subsx(i, subsy(i, 1)) Select Case subsx(i, 1) Case 0 If subss'(i. 1) 0 Then theta2 pi 2 Else theta2 =3 pi/ 2 End If 0000 Case Is> 0 **see If subsy(i. 1) 0 Then We* theta2 atl(subsy(i 1) subsx(i. 1)) Else theta2 at3(subsy(i, 1) /subsx(i, 1) Case Is<0 If subsy(i. I) 0 Then thcta2 2(suhsy(i, 1) subsx(i. 1)) Else theta2 at4(subsy-(i. 1) subsx(i. 1)) End If End Select foe subsy(i, 1) =w *Sin(theta2 (pi subsx(i. I) w *Cos(theta2 (pit/ Next i For i I To hnumnber length(subsx(i. subsyv(i. 2)) Select Case subsx(i. 2) Case 0 If subs-%(i. 2) 0 Then theta2 =pi/2 Else theta2 3 *pi 2 End If Case Is 0 If subsy(i. 2) 0 Then Els dti~sbs\i: /SiibSx\(i7 2)) Eletheta2 at3(subsy(i. 2) subsx(i. 2)) End If Case Is 0 8 7 If subsy(i, 2) 0 Then theta2 =at2(subs3y(i, 2) subsx(i. 2)) Else theta2 =at4(subsy(i, 2) /subsx(i, 2)) End If End Select subsy(i, 2) w '.Sin(theta2 (pi subsx(i, 2) w *Cos(theta2 (pi Next sea$ a picture 1 .ForeColor QBColor(9) 'he's 0For 1 To hnumber *picturel.Circle (subsx(i, subsy(i, subsr(i). QBColor(subsc(i)) picturel.Line (subsx(i, subsy(i. 1))-(subsx(i. subsy(i. 2)) Next i picturelI.ForeColor QBColor(0) Next j picture1. AutoRed raw True END SUB1 SUR Command 1 7_Click 'Control for positive rotation around Nv-axis: a. uses 6 degree increments *tcxt3.Text =(text3.Text 6) Mod 360 For i 1 To codelength length(x(i). z(i)) Select Case x(i) Case 0 If z(i) 0 Then theta pi /2 Else theta =3 *pi 2 End If Case Is 0 If z(i) (ITlci theta =atlI(z(i) x(i)) Else theta at3)(z(i) x(i)) End If 880 Case Is 0 If z(i) 0 Then theta at2(z(i) x(i)) Else theta =at4(z(i) End If End Select z(i) wv Sin(theta (pi x(i) wv Cos(theta (pi Next i ce Picturel.Cls 'Ca 'picture2.Cls 41 ~For i=O0To codelength 1 Ole picturel.Circje .6 picture l.Line (x(i YO 1)-x y) picture2. Circle .6 picture2.L-ine (x(i I).vy(i yI-)) Next C rcc(~ o een t) o el n t) *picture2.Circie (x(codelength), y(codelength)), .6 For i I To hnurnber wv length(subsx(i, subsz(i. 1)) Select Case subsx(i. 1) Case 0 aIf subsz(i. 1) 0 Then theta2 pi /2 h~e Else theta2 =3 *pi 2 End If Case Is 0 If subsz(i, 1) 0 Then theta2 =at I(subsz(i, 1) subsx(i. 1)) Else thcta2 =at3(subsz(i. 1) subsx(i. 1)) End If Case Is 0 If subsz(i. 1) 0 Then Else theta2 at4(subsz(i. 1) subsx(i, I)) End If 881 End Select subsz(i, 1) w v Sin(theta2 (pi subsx(i, 1) wv Cos(theta2 (pi Next i For i 1 To hnumber iv length(subsx(i, subsz(i, 2)) Select Case subsx(i, 2) -*seeCase 0 so* If subsz(i, 2) 0 Then so* theta2 =pi 2 so Else .theta2 3pi /2 age: End If Case Is 0 If subsz(i, 2) 0 Then tht2= tI(ubzi 2 usxi Eltheta2 at(subsz(i 2) sbsx(i 2)) End If Case Is 0 so:**If subsz(i. 2) 0 Then theta2 at2(subsz(i, 2) sribsx(i, 2)) El se theta2 at4(subsz(i, 2) subsx(i. 2)) so- End If End Select subszOi. 2) =w *Sin(theta2 (pi subsx(i, 2) w Cos(theta2 (pi Nex V pitr .oeolr=Q0lr9 picture l.Forceoo =sbxi us~.1) us~) QBColor(susi picturel.Line (subsx(i. subsv(i. 1))-(subsx(i, subsv(j. 2)) picture I.ForeColor QBColor(0) END SUB SUB Command 18_-Click Control for negative rotation around y-axis; uses 6 degree increments text3.Text (text3.Text 6) Mod 360 For i I To codelength w length(x(i), z(i)) Select Case x(i) Case 0 If z(i) 0 Then *see theta =pi/2 Else theta 3 pi/ 2 ~Case Is 0 Te theta atlI(z(i) x(i)) Else theta =at3(z(i) x(i)) End If Case Is 0 If z(i) 0 Then theta at2(z(i) x(i)) Else theta =at4(z(i) x(i)) End If End Select =wA Sin(theta (pi w Cos(theta (pi Net picure0C.
picture21.Cls For i 0 To codelength
I
picture I.Circle QBColor(skelcol(i)) picturel.Line (x(i I y(i)) picture2. Circle QBColor(skelcol(i)) picture2.Line (x(i y(i y(i)) Nite l.iee(xteegh) -cdlnt),.
picturel.Circle (x(codelcngth), y(codelength)), .6 8382 8383 For i 1 To hnumbcr w length(subsx(i, subsz(i. 1)) Select Case subsx(i, 1) Case 0 If subsz(i, 1) 0 Then theta2 pi /2 Else theta2 3 *pi 2 End If Case Is 0 If subsz(i, 1) 0 Then theta2 atl(subsz(i, 1)1/ subsx(i. 1)) C. Else theta2 at3(subsz(i, 1) subsx(i, 1)) OQOWEnd If *Case Is< 0 CIf fsubsz(i. 1) Then tht2=a2susC, us.. El theta2 at(subsz(i. 1) subsx(i.. 1)) :End If End Select stibsz(i. 1) 11, Sin(theta2 (pi subsx(i. 1) =w *Cos(theta2 (pi Seec Cae*bs~.2 Case If susi If egsubs(i. bi 2))he os EltCse subsx a(i. szi 2)/sb~xi *Case I 0 If siibsz(i. 0 Then theta2 pi(ubzi 2) 2 us~ Eltheta2 at(sibsz(i 2) subsx(i.. 2)) 13 84 End If End Select subsz(i. 2) w*Sin(theta2 (pi subsx(i, 2) w Cos(theta2 (pi Next picturel.ForeColor =QBColor(9) For i= ITo hnumber picu r 1 Cicle(sbsxi, ),subsy(i, subsr(i), QBColor(subsc(i)) Next i picturelI.ForeColor QBColor(O) END SUB SUB ComnmandlI9_Click 'Control for positive rotation around x-axis: C 'uses 6 degree increments text4.Text (text4.Text 6) Mod 360 *For i= ITo codelength iv ength(y(i), z(i)) Select Case Ny(i) 0' *Case 0 If z(i) 0 Then theta pi /2 Else theta 3 *pi/ 2 End If Case Is 0 If z(i) 0 Then theta atlI(z(i) y(i)) Else theta =at3(z(i) Ny(i)) End If casc Is -1 If z(i) 0 Then theta =at2(z(i) y(i)) Else theta at4(z(i) End If End Select z(i) w Sin(theta (pi Y(i) =v Cos(theta (pi Next picturel.Cls picture2.Cls 0000For i=O0To codelength 000 0picturel.Circle .6 picturel.Line (x(i y(i 1)-xiy(i)) picture2.Circle .6 .00 picture2.Line y,(i 1)-xoi). y(i)) Next picturel1.Circlc (x(codelengtli). y(codclength)), .6 picture2.Circle (x(codelength), y(codelength)), .6 For i 1 To hnurnber w length(subsy(i, subsz(i. 1)) Select Case subsy(i, 1) Case 0 If subsz(i. 1) 0 Then theta2 pi /2 Else 0theta2 =3 *pi/ 2 End If Case Is> 0 If subsz(i. 1) 0 Then theta2 atlI(subsz(i. 1) /subsy(i, 1)) Else theta2 at3(subsz(i. subsy(i, 1)) End If Case Is 0 If subsz(i, 1) 0 Then thieta2 at2(subsz(i, 1) /Isubsv(i. 1)) Else thieta2 =at4(subsz(i. 1) subsv(i. 1)) End If Endi Select subsz(i. 1) Sin(theta2 (pi
I
B886 subsy(i. 1) w Cos(theta2 (pi Next For i =I To hnumber wv length(subsy(i, subsz(i, 2)) Select Case subsy(i, 2) Case 0 If subsz(i, 2) 0 Then theta2 pi /2 see* Else theta2 =3*pi /2 End If If subsz(i, 2) 0 Then thcta2 atl(subsz(i, 2) subsy(i. 2)) Else theta2 =at3(subsz(i.. 2) subsv 2)) End If Case Is 0 If subsz(i, 2) 0 Then theta2 =at2(subsz(i, 2) subsy(i, 2)) Else theta2 at4(subsz(i, 2) stibsy(i, 2)) End If End Select subsz(i, 2) w Sin(theta2 (pi subsy(i, 2) w Cos(theta2 (pi **Next i pictureciForeColor =QBColor(9) Fori 1 o nu.1e END SUB B3 87 SUB Command2_Click 'ROUTINE FOR READING VIRTUAL RECEPTOR CODES FROM FILE 'Setting for default extension cnidialogl.DefaultExt "cd cmdialoglI.Filter "code (*.cod)*.cod"s 'activate file common dialog box cnidialogl.Action 1 'store filename in codefilename codefilenanie =cindialogl.Filetjtle 0O* Open codefilename For Input As 1 'set codenum to count number of virtual receptors entered codenum =codenumn I text76.Text =codenum list I.Add Itemi codefilename Input h ph(codenum) hi 'h=code string for virtual receptor Input clength text48,Text clength pclength(codentim) =clength clength=number of chartacters in virtual receptor code string Input depth text49.Text depth pdepth(codenum) =depth 'depth=depth setting for the virtual receptor Input rwidth textiO.Text nvidth pr-width(codenum) rwidth width=-%Nidth setting for the virtual receptor Input rlcngth I.Text length prlength(codentim) =rlength ldn1gtli=1eigth kdttiig foi it tual rcccptor length. wvidth and depth are used to set the starting points for the virtual receptor polymers and are used by the fragorig routine 8 88 Input proxsense tcxt52.Text =proxsense Pproxsense(codenxm) =proxsense proxsense=the proximity, threshold used in the aff inity calculation Input 1, testnumber text53.Text testnumber hscrolll19.Value testnumber ptestnumnber(codenum) testnumber testnurnber-- the number of ligind orientations tested for each ligand Input popsize ppopsize(codenumn) popsize (not used by EVOLVE) Input fl, transval transval 0:hscroll22. Value =transval **si 'transval=the distance the ligand is shifted laterally during testing Input niaximals text68.Text maximals 66se 00 0: sumntarget =maximals text7 I Text sunitarget pmaxirnals(codenurnn) maxinials Inaximals=the maximum sum affinitv value obtained for the current virtual receptor Input 41, maximblin le.Nt69.Text miximalm maxtarget maximalrn text7O.Text maxtarget prnaximalm(codenum) maximalmn 'maximalm=the maximumn max affinity value obtained for the current virtual receptor 'close file Close I 'display code fragorig decodes alen. Len(h)f hg =O~ 14 For k I To alen hi lg Mids(m. (I a Im k. 1) Next k h-g hg Next I [389 text56. Text =hfg Beep END SUB SUB Control for negative rotation around x-axis: uses 6 degree increments text4.Text (text4.Text 6) Mod 360 For i 1 To codelength NN lengyth(y(i), z(i)) Select Case v(i) Case 0 If Z(i) 0 Then theta pi /2 Else theta 3I pi 2 End If Case Is 0 If z(i) 0 Then *theta atlI(z(i) qi)) Else theta y(i)) If Case Is If Z(i) 0 Then theta =at2(z(i) v(i)) Else theta =at4(z(i) v(i)) a End If C 99 End Select N Sin(theta (pi w Cos(theta (pi Next picture iCis picture2.Cis For i 0 To codelength
I
picturelI.Circle NOi) .6 [890 picturelI.Line (x(i y(i y(i)) picture2.Circle .6 picture2.Line (x(i 310 y(i) Next picturel.Circle (x(codclength). y(codelength)), .6 picture2.Circle (.x(codelengtli), y(codclength)). .6 For i I To linumber Nw length(subsy(i. subsz(i. 1)) Select Case subsy(i, 1) Case 0 *00*0, Ifsubsz(i., 1) 0 Then 48* thcta2 =pi/2 Else thcta2 3pi /2 End If Case Is 0 If subsz(i. 1) 0 Then theta2 atlI(subsz(i, 1) subsy(i. I)) Else thcta2 at3(subsz(i. 1) subsv Ci. 1)) End If Case Is 0 If subsz(i. 1) 0 Then thet12 =at2(stibsz(i. 1) subsy(i, I)) *Else theta2 at4(subsz(i. I) /subsy(i. 1)) End If End Select subsz(i. 1) wv Sin(theta2 (pi subsy(i, 1) w* Cos(theta2 (pi Next For i =I To hinmber iv length(subsy(i. subsz(i. 2)) Select Case subsy(i. 2) Case 0 If subsz(i. 2) 0 Then theta2 pi /2 LlIse theta2 3 *pi 2 End If Case Is 0 891 If subsz(i. 2) 0 Then theta2 atlI(subsz(i. 2) subsv(i. 2)) Else theta2 at3(subsz(i, 2)1/ subsy(i. 2)) End If Case Is 0 If subsz(i, 2) 0 Then theta2 at2(stibsz(i. 2) subsy(i, 2)) Else theta2 at4(subsz(i, 2) subsy(i, 2)) End If End Select subsz(i, 2) NN Sin(thct12 (pi subsyv(i. 2) wv Cos(theta2 (pi Next *itrlFocoo =0Bolr Next i picturel.ForeColor =QBColor(9) For i 1 To hoenumbe picur l.Cthil (sb(i, us(,1).sbri.QBo)us~) Selct Ceasie (us ,2.sbvi )-(us),1,sbvi picthreta =oeoo pi 2 Boo SUB Comnd2_likf Cses 0ereicmns For i) 0 Toc ent thet 8392 Else theta at3(z(i) x(i)) End If* Case Is 0 If z(i) 0 Then theta at2(z(i) I x(i)) Else theta =at4(z(i) End If End Select z(i) iv Sin(theta (pi x(i) Cos(theta (pi goo* 00 .00 Next i S.e.Cl picturel.Cls For i =0 To codelength I picturel1.Circle .6 picturel.Line (x(i 1)7 picture2. Circle .6 picture2.Line (x(i y(i I y(i)) we Next i picture I Circle (x(codelengtn). y(codelength)). .6 pic(ure2. Circle (x(codelength). y(codelength)). .6 For i I To hnumber *v length(subsx(i. subsz(i, I)) Select Case siibsx(i. 1) O .:.Case 0 If subsz(i. 1) 0 Then theta2 pi /2 Else theta2 pi 2 End If Case Is 0 If subsz(i. 1) 0 Then theta2 atl(subsz(i. 1) subsx(i. I)) Else theta2 =at3(subsz(i. 1) subsx(i, 1)) End If Ciaseis u If stibsz(i. 1) 0 Then theta2 at2(subsz(i. 1) subsx(i. I)) Else theta2 at4(subsz(i, 1) subsx(i. 1)) 8 93 End If End Select subsz(i, 1) =w Sin(theta2 (pi subsx(i, I) wv Cos(theta2 (pi Next For i 1 To hnumber 'v length(subsx(i. subsz(i. 2)) Select Case subsx(i, 2) Case 0 If subsz(i, 2) 0 Then theta3 pi 2 Else theta3 3 pi 2 End If Case Is 0 If subsz(i. 2) 0 Thent theta3 atlI(subsz(i. 2) /subsx(i, 2)) Else theta3 at3(subsz(i. 2) stibs.N(i. 2)) End If Case Is< 0 So:.If subsz(i. 2) 0 Then theta3 at2(subsz(i. 2) subsx(i. 2)) Else theta'3 at4(subsz(i. 2) SUbsx(i. 2)) If End Select *uszi Snteal p subsz(i.. 2) Nv* CS(theta3 (pi Next picture 1 ForeColor =QBColor(9) For i I To hnuruber picturel.1ine (subsx(i, subsx-(i. 2))-(subsx(i. subsy(i. 1)) Next picture 1 .ForeColor QBColor(0) END SUB SUB Command22_Click Control for positive rotation around x-axis; uses 90 degree increments text4.Text (text4.Text 90) Mod 360 For i 1 To codelength %N length(y(i), z(i)) Gee* Select Case y(i) G so**-Case 0 .gg. If z(i) >0 Then goo* theta pi /2 :0-1 Else 06 0:theta 3 *pi 2 End If Case Is> 0 Gee* If z(i) 0 Then theta atlI(z(i) Ali)) Else theta at3(z(i) End If Case Is 0 GOOe:. If z(i) 0 Then 00* theta at2(z(i) v(i)) Else theta at4(z(i) Nv(i)) End If End Select z(i) w Sin(theta (pi =w *Cos(theta (pi Next picturelI.Cls picture2.Cls For i 0 To codelength I picture I.Circle .6 picture2.Circle .6 picture2.Line (x(i y(i y(i)) 13 Next picturel1.Circle (x(codelength), y(codelengthi)), .6 picture2. Circle (.x(codelength), y(codelength)), .6 For i 1 To hinurnber w Iength(subsy(i. subsz(i, 1) Select Case subsy(i, 1) Case 0 If subsz(i, 1) 0 Then theta2 pi /2 Else theta2 3 *pi/ 2 End If Case Is >0 If subsz(i, 1) 0 Then theta2 at I(subsz(i, 1) /subsy(i. I)) b *Else theta2 at'3(subsz(i, 1) subsv(i.. I)) End If Case Is< 0 If subsz(i. 1) 0 Then theta2 at2(subsz(i. 1) subsy(i. 1)) Else tlieta2 =at4(subsz(i. 1) subsy(i. 1)) End If End Select subsz(i. 1) *v Sin(theta2 (pi 2)) subs)v(i. 1) *v Cos(theta2 (pi 2)) Cae w enIfsubs(i. s si 2))he theta2 =pi/2 Else theta2 pi 2 End If Case Is 0 If subsz(i. Y; 0 Thlen thecta2 atlI(subsz(i. 2) /subsy(i. 2)) Else theta2 at3(subsz(i. 2) /subsy(i. 2)) End If 8396 Case Is 0 If subsz(i, 2) 0 Then theta2 =at2(subsz(i, 2) subsv(i, 2)) Else theta2 at4(subsz(i. 2) subs 2)) End If End Select subszOi. 2) =w Sin(theta2 (pi subsy(i. 2) wv Cos(theta2 (pi I2)) Next i picture l.ForeColor QBColor(9) For i =1I To hnumber picture LCircle (subsx(i, subsy(i, subsr(i), QBColor(subsc(i)) picturelI.Line (subsx(i. subsy(i, 1))-(subsx(i, subsv(i, 2)) Next picture 1. ForeColor QBColor(0)
SUB
SUB Cornmand23_Click0 Control for positive rotation around z-axis.
'uses 6 degree increments textlI0.Tcxt (textlI0.Text 6) Mod 360 For i I To codelength length(x(i). Select Case x(i) Case 0 If y(i) 0 Then theta =pi/2 Else theta 3 *pi /2 End If C'ase Is 0 1IvN(i) UIle theta at x(i)) Else theta at3(N-(i) x(i)) End If [3 97 Case Is< 0 If 0 Then theta at2(y(i) Else theta at4(y(i) End If End Select y(i) w Sin~theta (pi x(i) w* Cos(thcta (pi Next i *picturel.Cis picturc2.Cls For i= 0To codelengt
I
picturel.Circle .6 picturel.Line (x(i y(i y(i)) picture2.Circle .6 picture2.-inc (x(i y(i I y(i)) Next *picture1. Circle (x(codelength), y-(codelength)). .6 picture2.Circlc (x(codelcngth). y(codelength)), .6 For i I To hnurnber w leigth(subsx-(i. susyi 1) Select Case subsx(i. 1) Case 0 If subs 1) 0 Then 0 to a thet12 =pi/ /2 Else theta2 =3 pi 2 End If Case Is 0 If subsy(i, 1) 0 Then theta2 at I(subsy(i. 1) subsx(i. 1)) Else theta2 at3(subsy(i, 1) subsx(i. 1)) End If Case Is 0 If subsv(i, 1) 0 Then theta2 ita2(stibsN-(i. I) subsxtL 1)) Else theta2 at4(subsy(i. 1) subsx(i. 1)) End If B 98 End Select subsy(i. 1) w Sin(theta2 (pi subsx(i, 1) w Cos(theta2 (pi Next For i =I To hnurnber w length(subsx(i, subsv(i. 2)) Select Case subsx(i. 2) Case 0 If subsv(i. 2) 0 Then theta2 pi /2 Else rtheta2 3 pi/ 2 End If *~u.CaselIs >0 If subsy(i. 2) 0 Then theta 2 atlI(subsv(i, 2) subsx(i. 2)) Else theta2 at3(subsNv(i. 2) subsx(i, 2)) End If Case Is 0 If subsy(i. 2) 0 Then theta2 =at2(subsN-(i. 2) subsx(i. 2)) Else theta2 a14subsy(i.. 2) subsx(i. 2)) End If End Select sus4.2 v*Si*ht2+(i3) subsx(i. 2) NN Cs(theta2 (pi Next picture 1.ForeColor QBColor(9) For i I To hnurnber picture1. Circle (subsx(i. subs-v(i. subsr(i). QBColor(subsc(i)) picturel .Line (subsx(i. subsv(i. l))-(subsx(i. subsv(i, 2)) picture 1.ForeColor QBColor(0) I399 END SUB SUB 'EVOLUTION 2 PROGRAM 'Evolution of ligands against multiple virtual receptors 'Fixed number of selection and mutation cyclcs picture 1 Cls picture2.Cls 'Initial variable settings picture I AutoRedraw False picture2.AutoRedraw False 0900 maxaffinity= 0 bestscore =100 *mainscore 100 Vo 'Ligand Counter init ialised im 0 'Generation and testing of random ligands until a ligand 'of suficient affinity for the virtual receptor is produced Do Unt il mainscore threshold im =im+1I *e~etext6l.Text fin codemaker many test 'testing of new ligand score against best previous score If bcstscore mainscore Then bestscore rnainscore text62.Text =Int(bestscore 1000) /1000 End If Loop Iext62.Text =lnt(bestscore 1000) 1000 one-way evolution of ligand by mutation and selection 'process continues for preset number (=testno) of cycles For i =I To testno LX1 'mutation mainmutate B 100 'evaluation manvtest 'comparison of new ligand with best previous best score 'and selection of ligand with best score If bestscore mainscore Then bestscore mainscore text62.Text Int(bestscore *1000) /1000 oldcode =code oldcodet =codet oldcodeq codeq End If Next i text61.Text "Final" 'display of best ligand generated by procedure code oldcode codet oldcodet codeq oldcodeq assemble 1 list 00:. substitutes to:* manv-test text62.Text =Int(bestscore *1000) /1000 picture 1.AutoRedraw True 0picture2.AutoRedraw =True END SUB SUB Command4_Click 'EVOLUTION 3 PROGRAM 'Evolution of ligands against multiple virtual receptors 'TwNo-step model: 'Step 1. Ligand is evolved for high affinity for one member of 'virtual receptor population 'Step 2. Partially optimized ligand is optimized using all other if Wil1-,ti I xcpt Iii p~opulationl 'STEP 1 'Partial optimization of ligand using B101 'first virtual receptor ill test panel picture I Cls picture2.Cls picture l.AutoRedraw False picturc2.AutoRedraw False maxaffinity =0 bestscore 100 mainscore 100 'Ligand Counter initialised ini= 'Generation and testing of random ligands until a ligand 'of sufficient affinity for the virtual receptor is produced 6SDo Until mainscore threshold ifil =ini I text6l.Text ir *codeniaker singtest 'testing of new ligand score against best previous score If bestscore mainscore Then bestscore mainscore text62.Text Int(bestscore 1000) 1000 End If Loop text62.Text Int(bestscore 1000) 1000 Pone-way evolution of ligand by mutation and selection 0S'process continues un~til score threshold is achieved Do Until mainscore (threshold fin im 1 text61.Text im mainmutate singtest It bestscore niailiscore 'lhen bestscore mainscore text62.Text =Int(bestscore 1000.) 1000 B 102 oldcode =code oldcodet =codet oldcodeq codeq End If Loop text6l.Text "Final" es..
0 gee.
S S.
S
S
CS *5e 0 code =oldcode codet =oldcodet codeq =oldcodeq assemnble 1 list substitutes singtest te~xt62.Te~xt Int(bestscore *1000) 1000 'STEP 2 'Complete optimization of ligand using all virtual receptors in test panel tcxt6 I.Text 0 mavItest *00 S 0 S *5 *060
SO
S5 5
S.
0 .50 0 6 0 S 0
B.
C
eS.
C
bestscore =inainscore text62.Text Int(bestscore 1000) 1000 'one-way' evolution of ligand by mutation and selection 1process continues for preset number (=testno) of cycles For i =I To testno tcxt6l.Text i mainmnutate manmIest If bestscore mainscore Then bestscore =mainscore text62.Text Int~bestscore 1000) /1000 oldcode =code oldcodet =codet oldcodeq =codeq B103 End If Next text6l.Text "Final" 'Display best ligand code oldcode codet oldcodet codeq oldcodeq assemble I list substitutes mani-test text62.Text Int(bestscorc I 1000) 1 1000 picture 1.AutoRcdraw True :.picture2.AutoRedraN True END SUB SUB Comrnand6_Click 'Code creation and display (DIAGNOSTIC) *tcxt29.Text *codecreate list 0 substitutes 'Increment target counter S.counttarget 1 **.'load target value 'prepare for display picture4. Cis picture4.Scale -7) 1'7111,n aloiiico'U'11 hinumbcr 'start loop to read in values from file for each atom t3 104 For i 1 To atornount xom(i) 1.54 molecule(i, 2) yom(i) 1.54 molecule(i, 3) zonl(i) =1.54 molectile(i, 4) radius 1(i) dradius(molecule(i. 9)) craditis I clradius(moleculc(i. 9)) diprnl( i) =dipoles(molecule(i, 9)) colrm(i) =colord(molecule(i. 9)) 'divide positional coordinates by 100 and store Next .For i=lITo hnumber xom(i atomicount) 1.54 subs.x(i. 1) *yom(i atomcount) =1.54 subsv(i.' 1) zom(i atomicount) =1.54 subsz(i. 1) raiu I *+aocut =daissb~) radiusl(i atomcount) d cradius(subt(i)) crdiu I (i atomcount) clais(subt(i)) colrm(i atomecount) =colord(subt(i)) 0000 'divide positional coordinates by 100 and store Next i *0 store grey color code gcol RGB(50. 50, 'start loop to calculate collision matrix values *'For i I To fzmun 0 zp zom(i) .Xp =.xom(i) 31p Yom(i) rp radiusl(i) sp cradiusl(i) colm =colrm(i) 'draw atoms using radius and collision radius picture4.Circle (4,x yp). rp. QBColor(colii) 'picture2. Circle (xp. yp). rp. gcol 'calculation of collision matrix B Sp 'start loop to calculate collision points Forj Int(xp sp) To Int(xp sp 1) For k Int(yp sp) To Int(yp sp 1) 'calculate distance from atom center dist Sqr((xp A 2 (yp k) A 2) 'if distance is less than radius, then set collision 'height matrix component to radius If dist rp Then 'draw collision point *picture4.Circle k)7 .2 Else S S*'if distance is less than collision radius (but greater than radius) C:I 'set collision matrix component to radius/2 If dist sp Then 'draw point picture4.PSct End If End If Next k Next j ccNext i Close I 'draw grid on target frame picture4.Line picture4.Line (20. 0) LADJ S U1 SUB Command7_Click 83 106 Control for positive rotation around N-axis continuous movement through 360 degrees picturelI.Cls picture 1.AutoRedraw =False Forj I To text3.Text =(text3.Text 6) Mod 360 For i I To codelength %v length(x(i). z(i)) Select Case x(i) Case 0 If z(i) 0 Then theta pi /2 Else Ctheta 3pi /2 End If Case Is >0 If z(i) >=0Then *theta =atlI(z(i) x(i)) Else theta at3(z(i) x(i)) C. End If Case Is< 0 If z(i) 0 Theni theta at2(z(i) x(i)) Else theta at4(z(i) x(i)) End If End Select w Sin(theta (pi x(i) Cos(theta (pi **Next *..picturel.Cisce(x(oceghycdlnt),.
For i 0 To clength %v length(subsx(i, subsz(i, 1)) 13 107 Select Case subsx(i, 1) Case 0 If subsz(i, 1) 0 Then theta2 pi /2 Else theta2 3 *pi 2 End If Case is 0 If subsz(i. 1) 0 Then theta2 =atlI(subsz(i, 1)1/ subsx(i, 1)) Else thecta2 at3(subsz(i. 1) subsx(i. 1)) End If Case Is 0 If subsz(i, 1) 0 Then theta2 at2(siibsz(i, 1) subsx(i 1)) Else thecta2 =at4(subsz(i, 1) subsx(i, 1)) End If End Select *.subsz(i. 1) iv Sin(theta2 (pi subsx(i. 1) =w Cos(theta2 (pi Next For i I To linuinber Iength(subsx(i. subsz(i. 2)) 0 ,.*Selct Case subsx(i, 2) Case 0 If subsz(i. 2) 0 Then thcta2 =pi /2 Else ~thcta2 =3 *pi 2 *:.End If Case Is 0 If subsz(i. 2) 0 Then theta2 atlI(subsz(i. 2) /subsx(i. 2)) Else theta2 at' (subsz(i. 2) subsx(i. 2)) End If Case Is 0 If subsz(i. 2) 0 Then theta2 W subsz(i. 2) subSx(i. 2)) Else theta2 at4(subsz(i. 2) subsx(i. 2)) End If End Select 8108 subszi. 2) w Sin(theta2 (pi subsx(i, 2) w Cos(theta2 (pi Next picturelIForeColor QBColor(9) For i I To hnumber picture I Circle (subsx(i. subsy(i. subsr(i). QBColor(subsc(i)) picturel.Line (subsx(i, subsy(i, 1))-(subsx(i, subsy(i, 2)) Next picture 1 YoreColor QBColor(0) Next j picture 1. AutoRedraw True END SUB SUB Cornmand8_Click Control for positive rotation around x-axis; continuous movement through 360 degrees *picturel.Cls picture1. AutoRedramw False For j I To 120 text4.Tcxt (text4.Text 6) Mod 360 For i =I To codclengtli %N length(y(i), z(i)) Select Case s'(i) Case 0 If z(i) 0 Then theta pi /2 Else theta =3 *pi 2 End If Case Is 0 If zNi) 0 Then Else theta =at3(z(i)/ i) End If Case Is 0 P3 109 If z(i) 0 Then theta at2(z(i) y(i)) Else theta =at4(z(i) v(i)) End If End Select zOi) w Sin(thecta (pi *Cos(theta (pi Next picture I.Cis For i 0To codelength 1 picturel1 Circle .6 picturel .Li ne A~i l)-XXi).y(i)) Next i picture1. Circle (x(codelength). y(codelenigth)). .6 For i I To hnuniber N% length(subsv(j. subsz(i. 1)) Select Case subsy(i, I) Case 0 If subsz(i. 1) 0 Then theta2 pi /2 Else theta2 =3 *pi/ 2 End If Case Is 0 00,000If subsz(i. 1) 0 Then 0 so theta2 =at l(subsz(i. 1) subsy(i. 1)) 0: Else theta2 =at3(subsz(i. 1) subs%-(i. 1)) End If Case Is 0 If subsz(i. 1) 0 Then theta2 at2(subsz(i, 1) subsy(i, 1)) Else theta2 =at4(subsz(i, 1) subsy(i. 1)) End If End Select subsz(i. 1) =w Sin(theta2 (pi subsv(i. 1) %N Cos(theta2 (pi s110 Next For i= 1 To hnumber w =length(subsyv(i, subsz(i, 2)) Select Case subsy(i, 2) Case 0 If subsz(i, 2) 0 Then theta2 =pi/I 2 Else theta2 3 pi 2 End If I Cascs>i 2) 0 Then theta2 =at I(subsz(i. 2) subsy(i, 2)) Else theta2 at3(subsz(i., 2) subsy(i. 2)) End If Case. Is< 0 If subsz(i, 2) 0 Then theta2 at2(subsz(i, 2) subsy(i, 2)) Else theta2 =at4(subsz(i, 2) /subsy(i, 2)) End If End Select subsz(i. 2) w Sin(theta2 (pi subsY(i. 2) wv Cos(theta2 (pi Net Next picture I ForeColor QBColor(9O) Next picture I .AutoRedraw True B iii END SUB SUB cyani I 'Subroutine for nitrite construction SCOtint scount I subsx(scount. 2) subsx(scount 1, 1) subsy(scount, 2) subsy(scount 1. 1) subsz(scount, 2) =subsz(scount 1, 1) Select Case state Case I subsz(scount, 1) =subsz(scount 1, 1) 38 subsx(*scount, 1) subsx(scount 1. 1) 57 *subsy(scount, 1) =subsy(scount 1. 1) +.33 Case 2 sus*cut 1)=sbz6cut- ,1+3 *subsz(scount, 1) subsz(scount 1, 1) +.38 subsx(scount, 1) subsy(scount 1, 1)-±.57 .Cas 3 *subsz(scount, 1) subsy(scount 1 1)+-.38 Case 3 *subsz(scount, 1) =subsz(scount I1. 1)-+.38 subsx(scount. 1) subsx(scount L, 1)-.57 subsy(scount. 1) subsy(scount 1, 1)-+.33 subs(scount s son -1 3 subx(scount 15 us~cut .1 SUb(scount 1) us~son 8 .1 3 END Selec '*Subsr~ouefnit i contrutio scusc= scount I .subs(scount. 2 =8us~cun ,1 B3 112 subsy(scount, 2) subsy(scount 1, 1) subsz(scount, 2) subsz(scount 1, 1) Select Case state Case 1 subsz(scotint, 1) stibsz(scount 1. 1) 38 subsx(scount, 1) subsx(scount 1, 1) +.57 subsy(scount, 1) =subsy(scount 1, 1) .33 Case 2 subsz(scount, 1) subsz(scount 1, 1) 4-.38 subsx(scount, 1) subsx(scount I1, 1) 57 subsy(scount, 1) subsy(scount 1. .33 Case 3 subsz(scount. 1) subsz(scount .3 8 S..subsx(scount. 1) subsx(scount 1. 1)+±.57 subsy(scount, 1) subsy(scount 1, 1) .33 0 Case 4 suszsout 1)=sbz*c t- ,1-3 .subsz(scount, 1) subsz(scount 1, .38 *subsx(scount, 1) subsy(scount 1. .37 End Select subsr(scount) subsc(scount) 9 subt(scount) subt(scount 1) 8 picturel1.Line (subsx(scount. subsy(scount. I ))-(subsx(scount. subsy(scount. QBColor( 13 picture 1.Circle (subsx(scount. subsv(scount. subsr(scount). QBColor(9) BOO END SUB SUB cvan3( 'Subroutine for ni trile construction scount scount 1 subsx(scount. 2) subsx(scount 1. 1) subsy(scount. 2) subsv(scount 1. 1) subsz(scount. 2) subsz(scount L. 1) Sibsx(scount,,)L subsx(scount 1. 1) Select Case state Case I 8 113 subsz(scount, 1) subsz(scount 1, 1) .38 subsy(scount. 1) subsy(scount L, 1) Case 2 subsz(scount, 1) subsz(scount 1, 1) .38 subsy(scount, 1) subs)y(scount 1, 1) Case 3 subsz(scount, 1) subsz(scount 1, 1) .38 subsy(scount, 1) subsy(scount 1, 1) Case 4 subsz(scotint, 1) subsz(scount 1, 1) .38 0e*subsy(scount, 1) subsy(scount 1, 1) .6i End Select subsr(scount) subsc(scount) 9 @0 subt(scount) subt(scount 1) 8 pictureI. Line (subsx(scount. subsy(scount. 1 ))-(subs.N(scount. subsy(scount. QBColor( 13) picturel.Circie (subsx(scount, subsy(scount, subsr(scouiit), QBColoi(9) END SUB *SUB cy an4 'Subroutine for nitrile coristruction ***scount =scount 1 subsx(scount. 2) subsx(scoit 1. 1) **.subs' (scount. 2) subsy(scount 1, 1) *subsz(scount. 2) =subsz(scount 1, 1) subsx(scount, 1) subsx(scount 1. 1) subs-v(scount, 1) =subsv(scount 1. 1) Select Case state Case I subs/z(scoun(t. =3 subszscount 1, 1) Case 2 subsz(scount., 1) subsz(scount 1. 1) B 114 Case 3 subsz(scount, 1) subsz(scount 1, 1) Case 4 subsz(scount. 1) =subsz(scount 1. 1) End Select subsr(scount) subsc(scouflt) 9 subt(scount) subt(scount 1) 8 picturel.Line (subsx(scount. subsv(scount, l))-(subsx(scount, subsy(scount, QBColor(13) picturel1.Circle (subsx(scount, subsy(scount, subsr(scount). QBColor(9) a elm 0END
SUB
.00, 0~ SUB decodes0 'DECODER FOR CREATION OF VIRTUAL RECEPTOR ~CS 'Clear vectors for storing xy and z coordinates Erase xo Erase yo Erase zo 'Redimension vector coordinates to length of code Rei oLe') s nee go ReDirn yo(Len(h)) As Integer ReDimvzo(Len(h)) As Integer 'initialize min and max values nixx -10000 maxy =-10000 min 10000 minz =10000 'set initial position in movement array. This determines the starting orientation n 'initialise counteds of charge sites cl =0 cineg 0 [3 115 'calculate allele lengths (code length/15): store in alen alen Len(h) 'start loop for decoding 'one cycle per allele For ni 0 To 14 'load starting coordinates for each successive allele 'Coordinates stored in ox, oy and oz xq ox(ni) yq oy(ni) zq oz(ni) 'set initial position in movement array. This determines the starting orientation n S 'start loop to decode each allele Fori= Toalcn 'read character from code zs2 Mid$(h. (ni alen) i, 1) 'if chaacter is 5 set as charge site If zs2 Then a a 'move 1 unit in current direction xq xq aq(n): yq yq Bq(n): zq zq Cq(n) S* 'add one to charge site counter cl =cl+1 S'redimension charge site storage vectors ReDim Preserve xcz(c I) ReDim Preserve ycz(cl) ReDim Preserve zcz(cl) 'store charge site coordinates, using charge site counter as index xcz(cl)= xq yc4(cl)= yq zcz(cl)= zq 13116 End If 'if character is 6 set as charge site If zs2 Then 'move I unit in current direction xq =xq aq(n): yq =yq Bq(n): zq zq Cq(n) 'add one to charge site counter clneg clneg 1 'redimension charge site storage vectors .e pgReDim Presere xczneg(clIneg) ReDim Preserve yczneg(clneg) ReDirn Presente zczneg(c 1neg) foe 0 '0 *'store charge site coordinates, using charge site counter as index *xczneg(clneg) xq yczneg(c Ineg) yq zczneg(c 1 neg) =zq End If if character is not 5 or 6 start decoding 'select case according to character Select Case Val(zs2) too'calculate new values for coordinates Cae Case 0 n xq xq aq(n): yq yq Bq(n): zq zq Cq(n) Case 1 dq(n): xq =xq aq(n): yq =yq Bq(n): zq =zq Cq(n) Case23 n xq =xq aq(n): Nvq yq Bq(n): zq zq Cq(n) Case 4 n Fq(n): xq =xq aq(n): yq q zq zq Cq(n) Case 4 Case 6 End Select 81117 'wvrite data to the file, use code index position as vector index xo((ni alen) i) =xq yo((ni alen) i) yq zo((ni alen) i) zq 'find min an~d max values If xq minx Then minx =xq End If If xq maxx Then maxx xq End If If vq minv Then *0m miny= yq Endlf If yq maxivThen miaxy vq If zq <minz Then minz =zq End If If zq maxz Then maxz zq Endif 000 :'LOOP 00 Nexti Next ni S 'confirm length of current string *Itot =Len(h) 'length of code string text3.Text =Itot Calculc center *I matrix centerx Int((maxx minx) 2) centerv Int((maxv minv) 2) 6*S* 6 @660 60 0 0 .00 S .6 .6 0 0 @000 6 0 0 S 0 0@e0 0 0* @066 00 6S S *0
S
eSo
S
S
6e
S.
S. @6 0 0WS
S
Bu18 'creates z matrix without drawing result 'Clear previous matrix of heights Erase zmat Erase z3 mat 'Redim height matrix to minimum and maximum values ReDini zmiat(minx centerx To maxx centerx. miny centery To maxy centery) As Integer ReDim z3mat(minx centerx To maxx centerx, miny centerv To maxy centery, 1 To maxz 1 minz) As Integer 'Create new height matrix 'Get values from coordinate v'ector For i 1 To Len(h) 'Calculate values for height normalized for minimum zi zo(i) I minz 'Get x and y values for z coordinate to use as indices for height matrix xi xo(i) centerx Vi Vo(i) centery z3mat(xi. vi. zi) I 'Set values for height matrix 'Check to see whether matrix component has already been set Wlfes then check if newN value is greater than old value 'set value to greater value If zmat(xi, Nyi) 0 Then Zmnat(xi. yi) A z Else If zmat(xi. v-i) zi Then zmat(xi. yi) zi End If End If Next 'Set tip picture for drawing result picture3.Cis -M B 119 picture3.BackColor =RGB(0, 0, 0) 'picture3.Scale 15. 'Draw frame on picture picture3.Line RGB(255, 255, 255) picture3.Line 15). RGB31(255. 255, 255) picture3.Line (10, RGB(100, 0, B 'Set color factor scale cfac 255 (maxz minz) 'Draw height matrix For i maxy centery To minv centery Step -1.
Forj minx centerx To rnaxx centerx ac cfac *zmatoj, i) :If fac <>O0Then colr RGB(120, ac, ac) ~picturc3.Line (j .25, i .25)-o .25. i colr. BE End If Next Nextj1 'Set tip to draw charge sites oldstyle =picture'.FillStyle oldcolor =picture3.FillColor ***piCtUre.FillStyle =0 .picture3. Fil IColor RGB(0. 0, 0) S 'Draw charge sites For ii I To ci .Ncz(ii) xcz(ii) centerx ycz(ii) ycz(ii) centery zcz(ii) zcz(ii) 1 minz If zmat(xcz(ii). 3-cz(ii)) zcz(ii) Then COlZ: QBCoioI( W) Else colz QBColor(2) End If B 120 picture3.Circle (xcz(ii), ycz(ii)), 1, colz Next ii For ii I To cineg .xczneg(ii) xczneg(ii) centerx yczneg(ii) czneg(ii) centery zczneg(ii) zczneg(ii) 1 rninz If zmat(xczneg(ii), yczneg(ii)) zczneg(ii) Then colz QBColor(12) Else colz QBColor(4) End If picture3.Circle (xczneg(ii), )ycznieg(ii)). 1, colz 060* Next ii picture'. FillStyle oldstyle picture').FillColor oldcolor O END SUB FUNCTION dist3d (xl. zI, x2, N2, z2) As Double 'THRIEE DIMENSIONAL DISTANCE CALCULATION dist3d Sqr((xI x2) A 2 (3-1 N.2) A 2 (zI z2),A 2) .0 END FUNCTION SUB fdelete Soso*'Deletion Mutation subroutine lb =startfrag -I rb =I Len(code) startfrag len-frag ~.'code Left$(code, Ib) RightS(code. rb) codet =Left$(codet, Ib) Right$(codet. rb) codeq =Left$(codeq. lb) Right$(codeq. rb) END SUB SUB fduplicate C 'Duplication Mutation subroutine B 121 codefrag I codefrag I codefrag 1 codefrag2 codefrag2 codefrag2 codefrag3 codefrag3 codefrag3 END SUB SUB finsert0 'Insertion Mutation subroutine insertp Int(Rnd Len(code)) code =Left$(code, insertp) codefragi Right$(code. Len(code) insertp) codeq =Left$(codeq. insertp) codefrag2 Right$(codeq. Len(codeq) insertp) codet =Left$(codet.. inscrtp) codefrag3 Right$(codet, Len(codet) insertp) E ND SUB SUB finert( 'inversion Mutation subroutine codefragl strinv'(codefragl) codcfrag2 strinx'(codefrag2) codefrag3 strinv(codefrag3) END SUB SUB Form_Load V1 =0 v2 0 v3 0 0 A,6= 0 v7 0 V8 0 v02 0 S N,13 =0 r-1 0 tc 0 pi 3.141B9265358979 pi2 =2 pi codenum =0 codelength state1 tntations1 B 122 pinv pins pdel ppoint pseq targetp 100 picturei.Scale picture2.Scale 'Needed for test routines 'Set up picture for drawing result picture3 .Cls picture3.BackColor =RGB(0, 0, 100) picture3.Scale 15)-(15, 'Drawv frame on picture picture3.Line 0)-(15 RGB(255, 255, 255) picture'.Line 15). RGB(255. 255, 255) picture3.Line RGB(100, 0. B coeff =.3 'test and code numbers #50*5testnumbcr 1 codenumber =I :proxsense 3 counittarget 0 set maxz=0 as default value 'this routine loads the matrix required for code conversion Open "c:\vb3\mites~robodat.bas" For Input As 1 I nput #1I. ju nk Input junk For i I To2 4 Input# 1. iq(i) Next For i 1 To 24 B3 123 Input Bq(i) Next For i I To 24 Input 1, Cq(i) Next For il To 24 Input dq(i) Next For i 1 To 24 Input fl. eq(i) p.
S
S.
5 S S *59*
S
0 S 0* S
S
554
S
5S p 5
S.
055 Next For i I To 24 Input Fq(i) Next For i 1 To 24 Input gq(i) Next Close 'set up random numbers For i 0 To 3000 randarray(i) CSng(Rnd) Next dradius(I) 1 dradius(2) I (liadius(3) 1 dradius(4) I =1.28 dradius(6) =1.64 dradius(7) =1.72 B 124 dradius(8) =1.54 dradius(9) 1.54 dradius(I0) 1.36 dradius( 1) 1.36 dradius(12) 1.36 dradius(13) 1.36 dridius(14) 1.36 1.36 draditis(16) =1.36 draditts(17) 1.36 dradius(18) 1.36 driditis(19) 1.64 =1.64 draditts(2 1) =1.64 ciraditis(1) clradius(2) ciraditis(3) clradius(4) 1.78 U. clradius(6) 2.14 ciraditts(7) 2.22 6* ciraditis(8) 2.04 clradius(9) =2.04 1.86 clradius(1 1) =1.86 ciraditis('12) 1.86 ciraditis(13) 1.86 clradius(14) 1.86 1.86 clridius(16) 1.86 .:cl radius(1 7) 1.86 clradius(18) 1.86 clradius(19) 2.14 2.14 clradius(2 1) 2.14 colord(1) 12 a: colord(2) 12 colord(3) 12 9. colord(4) 12 **colord(5) colord(6) 2 colord(7) colord(8)= 0 colord(9) 0 11I colord(I1) 11 colord(1 2) I I colord( 3) I1' colord(14) 9 colord(1 5) 9 colord(16) 9 colord(17) 9 B 125 colord(18) =9 colord(19) 14 14 colord(21) =14 dipolcs(1) dipoles(2) dipoles(3) 1. 1 dipoles(4) 1.3 =-1.8 dipoles(6) -2 dipoles(7) -2.1 dipoles(8) 0 dipoles(9) 0 dipoles(1 0) 1. 1 dipotes(I 1) -2 dipoles(12) -2.9 dipoles(13) 8 dipoles(14) =-1.3 =-4 dipoles(16) 3.8 dipoles(17) =-1.3 dipoles(20) 0 dipoles(2 1) END SUB SUB fragorig0 'LOADS INITIAL RECEPTOR ORIGIN COORDINATES 'origins for fragments ox(O) =-rlength *ox(I) =0 ox(2) rlcngthi ox(3) -rlength ox(4) =0 =riength =-rlength Sox(7) 0 ox(8) length ox(9) -rlength ox(I0) =0 ox( 1J) =rlength ox(12) -rlength ox(1 3) 0 ox( 14) =rlcngth ov(O) nvidth oy(l) nvidth ov(2) rwidth oy(3) rwidth B3126 oy( 4 rwidth nvidth oy( 6 =0 ov(7) 0 oy(8) 0 oy(IO) -nidth oy(l 1) -rwidth oy(12) -r-vidth oy(13) -nvidth oy(l4) -rwidth oz(0) =0 oz( 1) 0 oz(2) 0 oz(3) =-Int(depth 2) oz(4) -Int(depth 2) -Int(depth 2) oz(6) -depth oz(7) =-depth oz(8) =-depth oz(9) -lnt(depth 2) -Int(depth 2) oza o 1) =)-Int(depth /2) oz(12) =0 oz(13) =0 oz(14) =0 END SUB SUB frplace0 'Subroutinte for replacing mutated sequences during sequence mutation process insertp startfrag 1 code Left$(code. insertp) codefragi. Right$(code. Len(codc) insertp lenfrag) *codeq =Left$(codeq. inserip) codefrag2 Right$(codeq. Len(codeq) insertp lenfrag) cadet Lcft$(codet, insertp) codefrag3 Right$(codet. Leni(codct) inscrtp lenfrag) END SUB SUB HScrollI-Change 'Sets code length 'The number of carbon atoms in the resulting molecule w~il be 'less than or equal to this number codelength liscroil.Value text2.Text =codelength END SUB [3 127 SUB H-Scroll 1_Scroll 0) codelength =hscrolll.Value text2.Text codelength END SUB SUB HScrolllO_-Change0 'CODE FREQUENCY CONTROL 'Carbonyi oxygen substituents 'control for controlling code frequencN, for 0 'load value into v I NS= hscroll 10. Value 'update total for frequency calculations update frequency labels *If tc=0 Then tc=lI End If textl2.Text Int(100 tc) text 13.Text lnt(I 00 Q2 tc) text I4.Text =Int(100 v3 /ftc) text 15.Text Int(l00 v4 tc) text 16.Text Int(100 v5 tc) a..text I7.Text =Int(l00 v6 tc) text3 7.Text Int(l 00 tc) textlIl.Text Int( 100 v8 /tc) text3 3.Text lnt(1 00 N-9 tc) *text44.Text Int(l 00 N710 tc) END SUB SUB H-Scrolll I IChange0 for setting percentage (=ng) 'of carbon atomns replaced with sp2 nitrogen ng hscrolll I.Value text3 l.Text =ng td ng pg og sg END) SUB SUB HScroll 11_-Scroll0 ng hscroll11. Value text31 I.Text ng B 128 END SUB1 SUB HScroll12 -Changeo( 'CODE FREQUENCY CONTROL 'Thione substituents 'control for controlling code frequency for 0 'load value into vi hscrolll2.Value update total for frequency calculations tc vI *2 v3 v4 v5 N-6 v9 vlO update frequency labels If tc =6Then tc= I End If tct1.Tx *.00*-I textl23.Text Int( 100 v2 tc) textl4.Text Int(l00 N-3 tc) textlI4.Text Int(1 00 N-4 tc) text I .Text nt(100 v5 tc) textlI6.Text Int(1 00 05 tc) text'37.Text =Int(100 v7 tc) text I .Text Int(l00 tc) text33 .Text =Int(]00 v8 tc) text44.Tecxt Int(100 09 tc) S...ENVD SUB3 SUB HScroll 3 Change 'Control for setting percentage (=og) 'of carbon atoms replaced with ether oxygen og hscrol 113. Value text35.Text =og td ng pg og sg END SUB SUB H Scroll I 3Scroll ogc hscroll 13. Valie og END SUB SUB HScro1I14 Change 0
M
8 129 'CODE FREQUENCY CONTROL 'Nitro substituents 'control for controlling code frequency for 0 'load value into vi v7 hscroll14.Va1lue 'update total for frequency calculations tc 4- v2 v'3 v4 v5 A-6 v'7 v8 v9 +v1O 'update frequency labels If tc 0 Then tc End If 0*00 ~text I2.Text =lnt(1 00 v I tc) ease textlI3.Text Int(1 00 tc) tetI .ex Int(100 v3 tc) t ex I .Tet nt(00 v4/ tc) textlI6.Text Int(100 v5 tc) textI 7.Text lnt(100 v6 tc) a text37.Text =Int(lO0 N-7 tc) texti I .Text =Int(I 00 N-8 /ftc) text33.Text Int(I00 v9 tc) tcxt44.Text Int(l0O v10 tc) ENVD SUB SUB HScrol Il 'Control for setting percentage (=pg) 'of carbon atoms replaced with sp3 nitrogen a 0 pg hscroll 15. Value text40.Text pg a: td ng pg og sg END SUB SUB HScrolll15_Scroll pg pg END SUB SL/I lIScroll I6 Chlange 'Control for setting percentage (=sg) 'of carbon atoms replaced with sulphide sulphur 8 130 sg hscrolll16. Value tex't38.Text sg td ng pg og sg END SUB SUB sg hscroll16, Value text38.Te.xt =sg END SUB SUB HScrolll17_-Change0 'CODE FREQUENCY CONTROL 'Thiol substituents 'control for controlling code frequency for 0 4% 'load value into vi v10 hscrolll7.Value 'update total for frequency calculations tc vi v2 +v3 +v4 +v5 ±v6 v8 +v9 +vlO 'update frequency labels If tc 0 Then tc I owes End If textl2.Text =Int(l00 vi tc) textl13.Text =Int( 100 Q' tc) text 14.Text Int(I 00 v3 tc) Int(1 00 v4 Ic) tet6Tx nt10*v c text17.Text Int(100 N-6 tc) text'37.Text =Int(i0O v7 tc) textl I .Text Int(1 00 v*8 tc) text33.Tcxt Int(i00 N-9 tc) text44.Text Int( 100 0lO tc) END SUB SUB HScroll 1 8 Change0 'Control for setting the percentage likelihood that 'a carbon atom Wvill be sp3 (unsaturated) Nvg hscroll118. Value text46.Text Nvg B8131 END SUB SUB HScrolll18_Scroll %Ng hscrolll18. Value text46.Text wg END SUB SUB HScrolll19 Change0 'Control for setting the number of ligand orientations to be tested testnurmber =hscrolll9. Value text53.Text =testnumber END SUB SUBHScroIII9_ScrollO testnumber hscrolllI9.Value text53.Text =testnuinber END SUB SUB 'Control for setting the percentage likelihood (stored as pring) 'that a carbon atom wvill be replaced by a cyclohexyl ring a pring hscroll2.Value :1.text27.Text =pring END SUB SUB 'Control for setting the number of mutation cycles for the 'directed evolution of ligands testno =hscro1l20. Value tcxt59.Text =testno END SUB SUB HScroll20 Scroll0 testno =hscroll20. Value text59.Text testno END SUB SUB HScro112 I-Change0 'Control for setting the threshold value for the acceptance of 83132 'of randomly generated ligands for directed evolution threshold =hscroll21.Value /100 =threshold END SUB SUB HScroll2l 1Scroll threshold hscroll2 I.Value text6O.Text threshold END SUB SUB HScro]l22 Change0 'Control for setting the amount of lateral movement of the ligand 'during testing transval hscroll22.Valtie tcxt55.Text transval END SUB SUB HScroll22_Scroll0 transval hscroll22.Value transval END SUB 0 SUB HScroll23 Change0 :0 'Control for setting the likelihood of point mutations *ppoint =hscroll23.Value 100 te~xt7.Text =ppoint END SUB .:.SUB HScroll23 Scroll0 ppoint hscroll23.Valuc 100 text7.Tcxt ppoint END SUB SUB HScro1l24_Chiange0 'Control for setting the likelihood of sequence mutations pseq =hscroll24. Value/ 100 END SUB SUB HScroll24_Scroll0 81 33 pseq hscroll24. Value 100 text6.Text pseq END SUB SUB HScroll25_Change0 'Control for setting the percentage of deletion mutations pdel hscroll25.Value 100 pdel END SUB SUB HScrolI25_Scroll pdel hscroll25.Value/ 100 pdel END SUB SUB HScrol126 -Change 0 S 'Control for setting the percentage of duplication mutations S. *@pdup hscro1l26.Value 100 text54.Text =pdup
V.
END SU13 S SUB HScroll26 Scroll pdup hscroll26.'ValIe 100 teMx54.Text =pdup g END SUB SUB HScro]l27_Change 'Control for setting the percenitage of inversion mutations pi nx hscroll2 7. Value /100 text64.Text pinv END S UB SUB HScroll27 Scroll 0 pin%* hscroll27.Value /100 text64.Text pinIV END SUB SUB HScroll28_Change0 8134 'Control for setting the percentage of insertion mutations pins hscroll28. Value 100 pins END SUB 0000
U
0000 0@ S S S. Os 0 S
S
0000 @0 6g S @0.0 0.s@ 0 S 00 S 0000 0@ @5 0 @0 050 0 0 0 SUB HScrolI28_Scroll pins hscroll28.Value /100 text65.Text pins END SUB SUB HScroll29 -Change 0 'Control for setting the target values sum and max affinity for ligand evolution targetp hscro1129.Value text72.Text =targetp maxtarget =maximialm (targetp 100) sumtarget mnaximals (targetp 100) =maxtarget text7l.Text sunitarget END SUB SUB HScro1l3_Change0 'CODE FREQUENCY CONTROL 'Flourine sustituents 'control for conrolling code frequency for 0 'load value into vI 00 0@ 0 0S 0 000
S
v1i hscroll3.Valuc 'update total for frequency calculations tc vi v2 N-3 N,4 v5 Nv7 v8 N-9 'update frequency labels If tc 0 Then t= I End If text 12.Text =Int(100 NvI tc) textl3.Te.xt Int(100 v2 tc) text 14.Text Int(1 00 N-3 tc) Int(100 v4 tc) tcxt 16.Text Int(l 00 v5 tc) text I7.Text =Int(100 v'6 tc) te.\137.Te.Nt Int(I00 v7 /ftc) textl I.Text Int(100 Nv8 tc) text33.Text Jnt(100 v9 ic) tcxt44.Text int(100 N, I0 tc)
B
3 END SUB SUB HScroll30-Change 'Control for setting the percentage likelihood methyl) 'that a code triplet will be repeated to generate a methyl group methyl text74.Tcxt methyl 0000 *s 0 eeg 0 00 0 0 @009
S
0g 0 0090
OS..
0 0 S. S 5.55 0* 55 5 0S0
S
0 0 0* 5 5 @0 0 500
S
ENDS SUB SUB HScroll4_Change 'CODE FREQUENCY CONTROL 'Chlorine substituents 'control for cont rolling code frequency for 0 'load value into vI v2 =hscroll4.Value 'update total for frequenc calculations tc vi v2 v'4 v'5 v7 vS v9 'update frequency labels If tc 0 Then tc End If textl2.Text =Int(100 N-1/ tc) text 13.Text Int(100 N-2 /tc) text l4.Tcxt =Int(100 v3 /tc) text 15.Text Int(l00 N-4 /tc) text 16.Text =Int(l 00 N!5 /tc) text 17. Text I nt(l100 N-6 Itc) text37.Text Int(l0O v7 /tc) text I1 .Tcxt =lnt( 100f NS 8 tc) text33.Text =Int(100 v-9 /tc) text44.Text nt(l0O v10 tc) END SUB SUB HScrol15_Change 'CODE FREQUENCY CONTROL 'bromine substituents 'control for controlling code frequency for 0 'load value into vi.
v3 =hscro115.Value B 1 3 6 'update total for frequency calculations tc =v1 v2 v3 v4 v'5 v'6 07 Nv8 v'9 'update frequency, labels If tc =0 Then tc End If tex112.Text Int(l0O v1 tc) 0ees text I3.Text Int(l00 A-2 tc) S. e14Tet=It10 c *00 text15.Text Int(l00 v4 tc) text16.Text lnt(100 v5I c) text I6.Text =Int(100 N-6 tc) text37.Text Int(I00 v7 tc) text I .Text Int(I00 AS tc) text33.Text =Int(100 v9 tc) text44.Text Int(l00 N-10 tc) END SUB SUB HScroll6_Change 'CODE FREQUENCY CONTROL 'Hy-droxvl substituents 'control for controlling code frequency for 0 :'load value into v I N-v4 hscro116.Valuf.
'update total for frequency calculations tc v1 v2 +v3 v5 +v6 +v7 +v8 %9 00 'update frequency labels If tc =0 Then tc I End If text12.Text Int(10() Nv1 tc) text 13.Text =Int(I 00 N-2 1c) text14.Text Int(100 N-3 tc) =Int(100 N-4 tc) text 16.Text Int(l00 A-5 tc) textl7.Text Int(I00 N-6 tc) tCxt37.Te~xt =lnt(l00 v7 tc) text I I.Text Iiit(lO00 Nv8 c) text33.Tex\t Int(100 N-9 c) tex\t44.Text Int(i0O N-10l tc) END SUB B 1 37 SUB HScroll7 -Change0 'CODE FREQUENCY
CONTROL
'Amine substituents 'control for controlling code frequency, for 0 'load value into v I hiscro1l7. Value 'update total for frequency calculations 'update frequency labels If tc =OThen *Oq* tc=lI End If text I2.Text =Int(1 00 v te) text 13. Text =Int(1.00 v2 tc) 1ext14.Text Int(lO0 tc) so:. textl5.Text Int(l0O v4 tc) text 16.Text =lnt(l00 v5 tc) so:s textl7.Text =Int(l00 N-6 tc) S. text37.Text =Int(l00 07 tc) textllI.Tcxt lnt(l00 v8 tc) text33)'Text Int(I00 v9 tc) text4.Tet nt~lo ?10I tc) END SUB S SUB HScroll8-Change c 'CODE FREQUENCY
CONTROL
*'Nitrile substituents control for controlling code frequencyv for 0 'load value into v I v6 hscro118.Value 'update total for frequency calculations tc v1 N-2 v3 v4 v5 v6 07 v8 N-9 update frequency labels If tc 0 Then ic End If tcxti2.Text Int(l00 A-1 tc) texNtI3.Text Int(I00 v'2 tc) 1138 textl4.Text Int(100 tc) text I5.Text Int(1 00 v'4 tc) tcxtl6.Text Int(100 v5 tc) text I 7.Text Int(100 tc) text37.Text Int(loo 07 tc) text 1 1.Text Int(1 00 N,8l/ tc) text33.Text Int(lOO tc) text44.Text Int(lOO N-10 tc) END SUB *egoSUB HScroll9_Change 'Control for setting the percentage of substituents that will 'not be hydrogen atoms (=100-hscrol~xahe) text24.Tcxt =hscroll9.Value END SUB SUB HScroll9 Scroll text24.Text =hscroll9.Value END SUB SUB hvdl I 0. 'Subroutine for hydroxyl group construct ion scount scount 1 subsx(scount. 2) subsx(scount 1, 1) subsy(scount. 2) =subsy(scount 1 1) subsz(scount. 2) =subsz(scount 1. 1) subsx(scount, 1) subsx(scount 1. 1) subsy(scount, 1) subsy(scount 1, 1) Select Case state Case 1 subsz(scount. 1) =subsz(scount 1, 1) 63 Case 2 subsz(scount, 1) subsz(scount 1, 1) .63 Case 3 subsz(scount. 1) subsz(scount 1. 1) .63 Case 4 subsz(scount. 1) subsz(scount 1L 1) .63 End Select B8139 subsr(scount) .4206 subsc(scount) 12 subt(scount) 2 picturcl.Line (subsx(scount, subsy,(scount, 1))-(subsx(scount, subsy(scount, QBColor(13) picture1. Circle (subsx(scount. subsy(scount, subsr(scount). QBColor(12) END SUB SUB *'Subroutine for hydroxyl group construction scount =scount I subsx(scount, 2) =subsx(scount 1, 1) subsy(scourn, 2) =subsy(scount 1, 1) subsz(scount, 2) =subsz(scount 1, 1) subsx(scount., 1) =subsx(scount 1, 1) Select Case state Case 1 subsy(scount. 1) subsy(scourn 1, 1) subsz(scount, 1) subsz(scount 1, 1) .31 Case 2 subsy(scount. 1) subsy(scount I1, 1) *00*00subsz(scount.. 1) subsz(scount 1. 1) .31 Case 3 *subsy(scount. 1) =subsy(scount I1. 1) subsz(scount. 1) =subsz(scount 1, 1) .31 Case 4 subsy(scount. 1) subsy(scoLInt 1. 1) subsz(scount, 1) subsz(scount 1. 1) .31 End Select subsr(scount) =.4206 subsc(scount) =12 subt(scount) =2 picturel.Line (subsx(scount. subsv(scount. 1))-(subsx(scount. subsy(scount. QBColor(13) picturel.Circle (stibsx(scount. subsy(scount, subsr(scount), QBCo'lor(12) B8140 END SUB SUB ketol I 'Subroutine for addition of carbonyl oxygen If molccule(ik, 6) =0 Then inolecule(ik, 6) 1 sub 12 Else If molecule(ik, 7) 0 Then rnoleciile(ik, 7) 1 sub13 Else If rnolecule(ik, 8) 0 Then rnmolecule(ik, 8)= sub 14 End If End If End If END SUB SUB *wee 99 c 'Subroutine for addition of carbonyl oxy~gen If rnolecule(ik, 7) 0 Then rnolecuile(ik., 7) I sub23 *Else If niolecule~ik, 8) =0 Then niolecule~ik, 8) 1 sub24 Else If molecule(ik. 5) 0 Then *molecule(ik. 5) 1 sub 12 End If End If End If END SUB SUB 'Subroutine for addition of carbonyl oxygen If rnolecule(ik. 6) 0 Then tnolecule(ik. 6) 1 sub23 Else If rnoiccule(ik, 5) 0 Then molecule(ik. 5) I sub 13 B 141 Else If molecule(ik, 8) =0 Then molecule(ik, 8)= sub' 4 End If End If End If END SUB SUB keto4 Subroutine for addition of carbonyl oxygen If molecule(ik, 6) 0 Then molecule(ik, 6) 1 sub4 Else If molecule(ik, 7) =0 Then molecule(ik. 7) 1 sub4 Else If niolecule(ik, 5) =0 Then inolecule(ik. 5) 1 sub4 End If End If End If END SUB FUNCTION length (xl As Double, As Double) As Double 'Subroutine for 2-Dimensional length calculations length =Sqr(x1A^2 ylIA 2) END FUNCTION SUB list 0) 'ROUTINE FOR THE GENERATION OF ATOM LIST 'Translates assemble I arrays into molecular mapping matrix for 'substitutions atomcount 0 For i= -15 To Forj -15'1o Ii For k =-15 To If atoms(i. j. k) 0 Then ,a 7 aocount atomcount 1 B3 142 molecule(atorncount, 11) subn(i, j, k, 1) molecule(atomcount, 12) =subn(i, j. k, 2) molectile(atomcount, 13) subn(i, j. k, 3) molecule(atomcount, 14) subn(i., j. k, 4) rcx(atomcount) rcy(atomcount) =j rcz(atomcount) k molecule(atomcount, 1) =atomistate(i. j, k) niolecule(atomcount, 2) atomx(i, j, k) niolectule(atorncount, 3) atomy(i. j, k) iiolecule(atonicount, 4) atornz(i. j. k) a. molecule(atoincount, 5) bondlI(i, j, k) molecule(atoincount, 6) bond2(i, j, k) molecuile(atomcount, 7) =bond3(i, j, k) molecule(atonicount, 8) bond4(i. j, k) molecule(atonicount, 10 atoms(i.j k) skelcol(atomcount)
I
End If Next k Next j Next i te~xt9.Text =atomcount END SUB SUB mainmnutate 'PRIMARY MUTATION ROUTINE 'Coordinates both point and sequence mutations text8.Text text67.Text= text66.Text= text63.Text= code =oldeode codet =oldcodet codeq =oldcodeq Point mutation control ppl Rnd If ppl ppoint Then B 143 End If 'Sequence mutation control pp2 Rnd If pp2 pseq Then sequencemut End If codelength Len(code) coded For j 1 To codelength coded coded Mid$(codet,j 1) Mid$(codeq, j. 1) Mid$(codc,j 1) Chr$(126) :Next j lextl.Text coded assemblelI list substitutes END S UB SUB ma nytest 'ROUTINE FOR TESTING LIGAND AGAINST MORE THAN 'ONE VIRTUAL RECEPTOR scorev'=O0 a see For i= ITo codenum codev= text77.Text =codev* changer singlest scorev scorcv mainscore text78.Te.Nt =scorev codev Next mainscore =scorev codenum LID SUB FUNCTION max (van. 1, ar2) 'Subroutine for finding the largest of two numbers B 144 If var I var2 Then max van Else max var2 End If END FUNCTION SUB methy0 ,boo:: 'Subroutine for Methyl group construction methcount =methcount 1 text75.Text =methcount ss =Trini$(Str$(Int(Rnd 4) 1)) mmn= ss &ss qq
M
pp
I
tot vI v2 v3 v4 v6 +07+ v8 v9 +vl'1 t3t2+ I t4 =t2 %3 t4 1 t6. 1=t4 +v4 17= t6+ 1 *t8=t6 t9 t8 1 0 1121=110 +1% t1 t12 I7 114 =112 %-8 115 114 1- 017 116 1 118 =t16 +vlO1 For k 1 To 2 If tc td =0 Then hyd 1 Else hyd (hscroll9. Value /100) End If If Rnd hyd Then If Rnd (wg 100) Then 8145 g= "Ia., q Trim$(Str$(Int(1 4 Rnd))) Else g=9 v q =Trinm$(Str$(In( 4 *Rnd))) ivs ivs 1 End If jhyd =jhyd I Else If (Rnd) <ng 100 Then g lnl j12 =j12+1I Else If (Rnd) pg /100 Then g Itp It j13 =j13 I Else *.If (Rnd) <o-g100OThen 9 Ow* j14 =j14+ I Else If (Rnd) sgo 100 Then =j15 1 Else 'Assignment of string values for sbttet 'start of primary code generating loop 'generation of random number Rn =I lnt(tot (Rnd(l))) 'generation of code sequence Select Case Rn Case 1 To N-1 g ="b j1 =jI I 13146 Case t I To Q2 g= lc" j2 =j2 1 Case G3 To t4 g "o j3 =j3 1 Case t5 To t6 j4 =j4+1I Case t7To t8 59 Of gI~f 99 j5 =j5 +I Case t9To lO Ve. 9 t9i 0600 j6 =j6 1 Case t11I To t112 g 10111 j7 =j7+ I Case tO To 04 8 No j8 =j8 +1I Case 015 To 116 j9 =j9 I Case 11 7 To tl8 jlO =j10 I End Select End If End If End If End If q Trim$(Str$(Int(Rnd 1)) End If gg; gg g qq qq q Next k B3 147 s mm g gg q =qq END SUB
A
FUNCTION min (varl, var2) 'Subroutine for finding the smallest of two numbers If varl var2 Then *woe' in =varl Else muin var-2 End If END FUNCTION SUB nitrol 'Subroutine for nitro group construction 44 scount scount 1 sus9cun, )=sus9gun ,1 subsx(scount 2) Suibsy(scount 1) subsz(scount, 2) subsy(scount 1, 1) subsz(scount.+1 2) subs(scount 1, 1) .4s son ,2 sbN(cut-1,1 .subsz(scount 1, 2) subsz(scount 1, 1) see*** a subs(scount 1) =subs(scount 1 1) *subs(scount 1 subs(scount I1, 1) *Case 2 subszdscount., 1) =subsz(scount 1, 1) .815 subsx(scount. 1) subsx(scount 1L 1) subsv-(scount. 1) =subsy(scount 1. 1) subsz(scount 1. 1) subsz(scount I1. 1) .407 subsx(scount 1, 1) subsx(scount 1. 1) .61 subsy(scount 1, 1) subsv(scount 1. 1) Case 2 subsz(scount. 1) subsz(scount 1, 1) .815 B 148 subsx(scount, 1) subsx(scoiint 1, 1) subsy(scount, 1) =subsy(scount 1, 1) subsz(scount 1, 1) =subsz(scount 1, 1) .407 subsx(scount 1, 1) =subsx(scount 1, 1) .61 subsy(scount 1, 1) subsy(scount 1, 1) +i Case 4 subsz(scount, 1) subsz(scount 1, 1) .815 subsx(scount, 1) subsx(scount 1 1) subsy(scount, 1) subsy(scount 1. 1) *O..cut ,1 ubzson 1 subsz(scount 1, 1) =subsx(scount 1, 1) .407 :subsy(scount 1, subsy(scount ,1 3 End Select susrscut)= subsr(scount) =.13 subsc(scount1) 3 SUbsr(scount 1) 155 subt(scount) =1I1 :x subt(scount 1) I1I picturel.Line (subsx(scount. subsy(scount, 1))-(subsx(scount, subsv(scount. QBColor(13) picture I.Circle (subsx(scount, subsy(scount, subsr(scount), QBColor( 13) picturel.Line (subsx(scount 1. subsy'(scount 1, 1))-(subsx(scount 1. subs-v(scount 1. QBColor(1 3) *picture1. Circle (subsx(scount 1. subsy(scount 1. subsr(SCOUnt QBColor(13) scount scount 1 END SUB SUB nitro2 'Subroutine for nitro group construction scount scount I subsx(scount. 2) subsx(scount 1, 1) subsy (scount. 2) =subsy(SCOLunt 1, 1) subsz(scount. 2) =subsz(scount 1. 1) subsx(scount 1, 2) subsx(scount 1. 1) subsy(scount 1, 2) =SUbsy(scount 1. 1) subsz(scount 1. 2) =subsz(scount 1. 1) Select Case state Case 1 subsz(scount. 1) =subsz(scount 1) .815 subsx(scount, 1) subsx(scount I1r 1) 13 149 subsy(scount, 1) =subsy(scount 1, 1) subsz(scount 1, 1) subsz(scount 1, 1) .407 subsx(scount 1, 1) subsx(scount 1, 1) .61 subsy(scount 1. 1) =subsy(scount 1, 1) Case 2.
subsz(scount, 1) subsz(scount 1. 1) .815 subsx(scount, 1) subsx(scount L. 1) subsy(scount, 1) =subsy(scount 1, 1) subsz(scount 1, 1) =subsz(scount 1, 1) .407 a subsx(scount 1, 1) subsx(scount 1, 1) .61 subsy(scount 1, 1) =subsy(scount 1, 1) Case 3 0, I.v subsz(scount, 1) subsz(scount 1, 1) .815 subsx(scount, 1) =subsx(scount 1, 1) subsy(scount, 1) subs-%(scouiic 1, 1) subsz(scount 1, 1) =subsz(scount 1, 1) .407 *subsx(scount 1, 1) subsx(scount 1, 1) .61 subsy(scount 1, 1) subsy(scount 1, 1) Case 4 subsz(scount, 1) subsz(scount 1, 1) .815 subsx(scount, 1) subsx(scount 1. 1) subsy(scount. 1) subsy(scount 1. 1) subsz(scount 1, 1) subsz(scount 1, 1) .407 OrSUbs.N(scount 1, 1) subsx(scount 1 1 .61 subsy(scount 1, 1) subsy(scount 1, 1) End Select 4 subsr(scount1) subsc(scount 1) 13 subt(scount) I11 SUbt(scouut 1) I11 picturel.Line (subsx(scount, subsy(scount, l))-(subsx(scount, subsy(scount. QBColor(13)) picture 1. Circle (subsx(scount, subsy(scount, subsr(scount), QBColor( 13) picture [.Line (subsx(scount 1. subsy(scount 1, l))-(subsX(SCOUnt 1. subsv(scount 1. QBColor( 13) picturel.Circie (subsx(scount 1. subsy(scount 1. subsr(scount QBColor(13) scount scount 1 END) S U1 SUB nitro3 'Subroutine for nitro group construction B iso scount scount I subsx(scount, 2) subsx(scount 1, 1) subsy(scount, 2) subsy(scount 1, 1) subsz(scount, 2) =subsz(scount 1, 1) subsx(scount 1, 2) subsx(scount 1, 1) subsy(scount 1, 2) subsy(scount 1, 1) subsz(scount 1 2) subsz(scount 1, 1) tooe Select Case state C ase lI .subsz(scount, subsz(scount -1 1) .815 subsN~soun, sbsxscout -11I) .~*subsy(scount, 1) subsy(scount 1, 1) subsz(scount 1, 1) suibsz(scount 1, 1) .407 subsx(scount 1, 1) subsx(scourit 1, 1) subsy(scount 1, 1) subsyv(scount 1, 1) .706 Case 2 subsz(scount, 1) =subsz(scount 1, 1) .815 subsx(scount, 1) subsx(scount 1, 1) subsy(scount, 1) subsy(scount 1, 1) stibsz(scount 1, 1) subsz(scoiint 1, 1) .407 sus(con )=sbs9cut ,1 subsx~scount 1) subsx(scount 1, 1) +.0 subsz(scount,+ 1) subs(scount 1, 1) .06 Cse 3~cun. 1) subszscount 1, 1) +.1 subsy (scount, 1) subsy(scount 1. 1) **~*subsz(scount1, 1) subsz(scount 1) 0 subsz(scount 1, 1) subsz(scount 1. 1) 0 *subsy(scount 1, 1) subsy(scount 1, 1) 0 ICas 4S subsz(scount1, 1) sbs(scount 1 1) .706 Csebxscut 4)=sbXSOIl ,1 subsy(scount. 1) =subsy(scount 1, 1) 1 subsz(scount ,1 1) subs(scount 1, 1) +.0 subsx(scount1, 1) subsx(scount 1, 1) subsy(scount 1, 1) subsy(scount 11, 1) .707 End Select subsr(scount) subsc(scount) 13 subsr(scount 1) subsc(scount 1) 13 subt(scount) 11I 13 subt(scount 1) I1I picturel1.Line (subsx(scount, subsy(scount, 1))-(subsx(scount, subsy(scount. QBColor( 13) picturel.Circle (subsx(scount, subsy(scount, subsr(scount). QBColor(13) picturel.Line (subsx(scount 1. subsy(scount 1, ]))-(subsx(scount subsv(scount QBColor( 13) picturelI.Circle (subsx(scount 1, subsy(scount 1, subsr(scount QBColor(1 3) Scount Scount 1 END SUB *e SUB 'Subroutine for nitro group construction C. Scount =scount 1 subsx(scount, 2) subsx(scount 1, 1) *ore subsy(scount, 2) subsy(scount I1' 1) subsz(scount, 2) subsz(scount 1. 1) subsx(scount 1. 2) subsx(scoun t 1, 1) subsy(scount 1, 2) subsy(scount 1, 1) subsz(scount 1, 2) =subsz(scouiit 1, 1) 0*0 0 00.0 Select Case state 0 Case 1 subsz(scount, 1) subsz(scount 1. 1) .407 subsx(scount, 1) subsx(scount 1, 1) .706 subsy(scount, I) subsy(scount 1. 1) subszscount 1, 1) subsz(scount 1, 1) .407 0 subsX(scount 1, 1) =subsx(scount 1, 1) .706 subsy(scount 1, 1) subsy(scount 1, 1) 0Case 2 subsy(scount. 1) subsz(scount 1. 1) 0 subsx(scount1. 1) subsz(scount 1. 1) .7 subsN(scount 1. 1) subsx(scount 1 1)-70 subsy(scount 1. 1) subsy(scount 1, 1) 0 subsz(scount 1) subsx(scount 1) subsx(scounc 1 1) subsv(scount .0 subsz(scount 1) subsz(scount 1, 1) 0 subs7(scount1. 1 subsz(scoint 1 1) .07 subsvx(scount.+1 1) subsx(scount 1 1) +.0 subsx(scotint 1, 1) subsy(scount 1, 1) +.0 Case 4 subsz(scount, 1) subsz(scount 1, 1) .407 13 152 subsx(scount, 1) =subsx(scount 1, 1) .706 subsy(scount, 1) subsy(scount 1, 1) subsz(scount 1, 1) =subsz(scount 1, 1) .407 subsx(scount 1, 1) subsx(scount 1, 1) .706 subsy(scount 1, 1) subsy(scount 1, 1) End Select subsr(scount) subsc(scount) 13 subsr(scount 1) subsc(scount 1) =13 subt(scount) I1I subt(scount 1) I1I picture I.Line (subsx(scount, subsy(scount, 1))-(subsx(scount, subsy(scount. QBColor(13) picture 1. Circle (subsx(scount, subsy(scount, subsr(scount), QBColor(13) sb(ctn ,2) QBColor(13) picturel.Circle (subsx(scount 1, subsy(scount subsr(scount QBColor(13) scount scount 1 END SUB SUB iireplace0 'Subroutine for replacing carbon atom with nitrogen xc =molecule(ik. 2) yc rnoleculc(ik. 3) zc molecule(ik. 4) picturel.Circle (xc. yc), RGB(0. 0,'.255) picture2.Circle (xc. yc), RGB(0, 0, 255) *If substl= 2 Ten mnolccule(ik., 9) =17 subscount(12) subscount(12)
I
Else mnolecule(ik, 9) =18 subscount(13) =subscount(13) 1 End If skelcol(ik) 9 END SUB SUB oreplace 'Subroutine for replacing carbon atom with ether oxygen B3 153 xc molecule(ik, 2) yc molecule(ik. 3) zc rnolecule(ik, 4) picturel.Circle (xc, yc), RGB(O, 255, 255) picturc2.Circle (xc, yc), RGB(O, 255, 255) subscotint(14) =subscount(14)
I
rnolecule(ik, 9) =13 skelcol(ik) =3 END SUB SUB oxy I) 'Subroutine for ether construction If molecule(ik, 6) 0 Then molecule(ik. 6)=1 oreplace Else If xnolecule(ik, 7) 0 Then molecule(ik, 7) 1 oreplace Else If rnolecule(ik, 8) 0 Then rnolecule(ik, 8) =1 oreplace End If End If End If END SUB SUB o.N)2 'Subroutine for ether construction If rnolecule(ik, 7) 0 Then rnolccule(ik, 7) I oreplace Else If rnolecule(ik, 8) 0 Then molecule(ik, 8) I oreplace Else If Inolecule(ik. 5) 0 Then rnolecule(ik, 5) 1 oreplace 154 End If End If End If END SUB SUB o xy3 'Subroutine for ether construction If molecule(ik, 6) 0 Then rnoleculec(ik, 6)=1 oreplace Else If molecule(ik, 5) =0 Then molecule(ik, 5)1 oreplace Else If inolecule(ik, 8) 0 Then @600 rnolecule(ik, 8)= oreplace End If End If End If END SUB s SUB oxv4() 'Subroutine for ether construction If molecule(ik. 6) 0 Then rnolecule(ik. 6)=I oreplace Else If molecule(ik. 7) =0 Then miolecule~ik, 7) I oreplace Else If molecule(ik, 5) =0 Then molecule(ik, 5)1 oreplace End If End If End If 8155 END SUB SUB Picture 1 Click 'Routine for saving current structure diagram as a bitmap assemble 1 list substitutes 0 0~ 0 0 *0 00 0 S
S
0* S. S
OSSS
0 *0*S picture] I CurrentX -6 picture L.CurrentY picture 1. Print code picture I.CurrentY -6 picture1. CurrentX -6 picture 1.Print chemnform SavePicture picturel .Image. %c:arnoll1.bmp" text3.Text (text3.Text 90) Mod 360 For i I To codelcngth w =length(x(i). z(i)) 0 0 6* 0 S S S. S 0S
S
S..
S
0S* S 0 *0 0 0 *0
S
55*
S
Select Case x(i) Case 0 If z(i) 0 Then theta =pi /2 Else theta 3 *pi 2 End If Case Is 0 If z(i) 0 Then theta atlI(z(i) x(i)) Else theta at3(z(i) x(i)) End If Case Is 0 If z(i) 0 Then theta at2(z(i) x(i)) Else theta =a14(z(i) x(i)) End If End Select z(i) w Sin(theta (pi 2)) x(i) w Cos(theta (pi 2)) Next i B 156 0.0 0 0000 00 0 0 000 0 00 *0 0 0 0 00.0 00 0o S 0000
S
*000 0000 0 0 00 0 0000 00 0 00 0 000 0 000 0 00 0 0 00 000 0 picture2.Cls For i =0 To codelength 1 picture l.Circle .6 picturel.Line (x(i y(i 1)-xi.y(i)) picture2.Circle .6 picture2.Line (x(i y(i y(i)) Next i picture1. Circle (x(codelength), y(codelengilh)), .6 picture2. Circle (x(codelength), y(codelength)), .6 For i =1 To hnurnber w length(subsx(i, subsz(i. 1)) Select Case subsx(i. 1) Case 0 If subsz(i. 1) 0 Then theta2 =pi/2 Else theta2 =3 *pi/ 2 End If Case Is 0 If subsz(i. 1) 0 Then theta2 atlI(subsz(i. 1)1/ subsx(i. 1)) Else theta2 at3(subsz(i. 1) subsx(i, 1)) End If Case Is 0 If subsz(i. 1) 0 Then theta2 =at2(subsz(i. 1) subsx(i, 1)) Else theta2 at4(subsz(i, 1) subsx(i, 1)) End If End Select subsz(i, 1) iv* Sin(thcta2 (pi 2)) subsx(i,. 1) w Cos(thieta2 (pi 2)) Next i For i =I To hnumber lv length(stibsx(i. subsz(i. 2)) Select Case subsx(i, 2) Case 0 If subsz(i, 2) 0 Then [3 157 theta3 pi /2 Else theta3 =3 *pi/ 2 End If Case Is 0 If subsz(i, 2) 0 Then theta3 at I(subsz(i, subsx(i, 2)) El se theta3 at3(subsz(i. 2) subsx(i, 2)) End If Case Is 0 If subsz(i, 2) 0 Then theta3 =at2(subsz(i, 2) subsx(i, 2)) 99*Else theta3 at4(subsz(i. 2) subsx(i, 2)) End If End Select subsz(i, 2) iv Sin(theta3 (pi 2)) subsx(i, 2) wv Cos(theta3 (pi 2)) Next picturelIForeColor QBColor(9) ForilITo hnumber picturel.Circle (subs.N(i. subsy(i, subsr(i), QBColor(subsc(i)) picturel.Line (subsx(i. subsy(i. 2))-(subsx(i, subsv(i. 1)) Next i picture 1 ForeColor QBColor(O) .picture 1.CurrentX =-6 picture 1.CurrentY picture I Print code picture ICurrentY =-6 picture I.CurrentX -6 picture I .Print cheniform SavePicture picture 1. Image. "c:\amol2 .bmp" END SUB SUB pmutO 'POINT MUTATION ROUTINE 'Set location of point mutation 83158 position Int(1 codelength Rnd) text8.Text =Str$(position) 'Routine to mutate primary code mutation Trim$(Str$(Int(1 4 Rnd))) Mid$(code, position, 1) =mutation 'Routine to mutate secondaty code 'calculate probabilit% values from selection panel values *tot vl v 2 +0 v4 +v5 +v6 0 +8 +v9 v tl I V1 Q2 vI v2 03 Q 1 t4 Q t v3 t6 W v4 t7=t6+ I t8 t6 t9 =t8+ I 0 =o tOt8 %6 00 0 til =tiu I t12 tIO 07 t13 012 1 :.t14 =t024+v U6 t1=U4 +v9 t17 t16 I tI8 116 '00 If pring 1 Int(Rnd *100) Then rings Else s Trim$(r$(Tnt(lI 4 Rnd))) If tc td =0 Then h%-d=I Else hyd (hiscroll9.Value 100) B 159 End If If Rnd hyd Then g via" q =Trirn$(Str$(Int(1 4 *Rnd))) jhyd =jhyd 1 Else If (Rnd) ng 100 Then g lt to j12 =j2 I Else If (Rnd) <pg 100Then j1 3 =jl3 I Else If (Rnd) og 100 Then j14 =j14 1 Else If (Rnd) sgl/ 100 Then g= Ust =j15 1 Else 'Assignment of string values for substituents start of primary code generating loop 'generation of random number Rn I Int(tot (Rnd(1))) ogeneration of code sequence Select Case Rn Case 1 To vi g ="b ji =jI I Case t11 To Q2 g ti# A~N. j2 =j2+ I B 160 Case 13 To t4 g 1d j3 =j3 I Case t5 To 16 9 fel j4 =j4 1 Case t7 To t8 g tf =j5 1 Case t9 To 110 :11: j6 =j6 I 0 Case tII To tl2 9 'h 0: soj7 =j7+ I ease* Case t13 To t14 g 11 j8 =j8 1 Case 115 To 116 j9 =j9+ 1 Case t17 To 118 ot jl0 =jlO I End Select End If *End If End If End If q Trim$(Str$(Int(Rnd.* 4) 1)) End If End If Mid$(oldcodet. position. 1) I( Mid$(oldcodeq, position, 1) Mid$(oldcode.
position. 1) 0g q Mid$(code.. position, 1) Mid$(codet. position. 1) =g Mid$(codeq, position, 1) =q codelength Len(code) 8161 coded Nfl For j 1 To codelength coded coded Mid$(codet.j. 1) Mid$(codeq, 1) 8& Mid$(code,j, 1) Cbr$(126) Nextj text 1 Text -coded asseniblel list substitutes END SUB SUB poifitmut 'POINT MUTATION ROUTINE codelength Len(code) mil 11 mi "0" 'Set location of point mutation position Int(1 codelength Rnd) a: text8.Text Str$(position) 'Routine to mutate primary code IffRnd Then mi3 ="3 s =Trim$(Str$(Int(1 4 Rnd))) Mid$(code. position, 1) =s End If 'Routine to mutate secondary code If Rnd .67 Then mil 111 'calculate probability values from selection panel values 'B162 lot vi v2 +v3 +v~4 v5 v7 +v8 +v9+ vlO 11 =I +vl 12 v v2 03=1Q 1 t4 t6 t4 v4 17 6 1 t8 =t6 09 t8 16 4.00110i 18 I' 0 6 0 1 2 1 1 0 1 113 012 +1I 114= 112 v'8 0 G1=14 1 116 =114 v9 t17=t16 1 t18 116 If tc tcd 0 Then hyd 1 Else End If If Rnd hyd Then q Trirn$(Str$(Intl( 4 *Rnd))) j hyd jhyd I .:.Else If (Rnd) ng 100 Then g 111 j12 =j12 1 Else If (Rnd) pg/ 100 Then g .0po j13 =j13 1 Else If (Rnd) og /100 Then 9=101 614 =j14 I 8163 If (Rnd) sg /100 Then g
P.S$,
=j15 I Else 'Assignment of string values for substituents 'start of primary code generating loop 'generation of random number Rn 1 Int(tot (Rnd(1))) generation of code sequence Select Case Rn Case I To v1 9Abol ji =jl 1 Case t I To t2 j2 =j2+ I Caset03Tot4' g j3 =j3 +1I Case05To t6 j4 =j4 1 Case t0 To t8 =j5 1 Case t9 To 0lO g 4.g 1 j6 =j6 1 Case tl I Tot02 g foil" j7 =j7 1 Case t1B) To tl4 8 11 j8 =jS I Case t15 To 016 g =J" B 164 j9 =j9+ 1 Case t 17 To t18 9 1111 jlO =jlO I End Select End If End If End If End If End If g~ 9* *4 6~ 4 .4 t 'e.g 0.
4C t~ 0S 4 I we.
S
*0 0 4.
4 d
I*
0 4, 005 Mid$(codet, position, 1) g End If 'Routine for tertiary code If Rnd Then mi2 "2" q. Triln$(Str$(Int(Rnd 4) 1)) Mid$(codeq, position, 1) q End If 'Assemble code codelength =Len(code) text45.Text =mil rni2 mi3 Mid$(oldcodet. Position, 1) Mid$(oldcodeq. position. 1) Mid$(oldcode, position, 1) MidS(codet, position, 1) Mid$(codeq. position. 1) Mid$(code. position, 1) END SUB SUB proxini 'Subroutine for calculating proximity betwxeen receptor and ligand t0 Timer prox 0 For j =I To fzmt dipc =dipmoj) If Ahs(dipc) .7 Then radc radius(j) margin Int(radc proxsense x2c =xmoj) B3 165 y2c =ymaj) z2c =((zmaj) zmm) 1000) mindiff 'bounds calculation xupper =min(maxx centerx, Int(x2c margin)) xlower max(minx centerx, lnt(x2c margin)) )-tpper min(maxy centery, Int(y2c m-argin)) ylower max(miny centery, Int(Ny2c margin)) zupper min(maxz 1 minz, Int(z2c margin)) ziower max(1, Int(z2c margin)) For xmg xtower To xupper For y-nig =ylower To yupper If zmat(xmg, ymg) 0 Then For zing ziower To zupper If z3mat(xmg, ymg, zing) 0 Then distc dist3d(xmg, ymg, zing, x2c, y2c, z2c) a a a *d 0 0 0#0 .0 *0 t 0000 00 ~0 0 so 0* 0 06 If distc radc proxsense Then prox prox 1 End If End If Next zmg End If Next yNmg Next Xing End If Next j END SUB SUB pur I) 8 166 'Subroutine for pyridine construction If rnolecule(ik, 6) 0 Then molecule(ik, 6) 1 nreplace Else If molecule(ik, 7) 0 Then rnolecule(ik, 7) 1 nreplace Else If molecule(ik, 8) 0 Then nolecule(ik, 8) 1 nreplace En If End If End If SO C END SUB SUB 'Subroutine for pyridine construction If molecule(ik, 7) 0 Then molectile~ik, 7) 1 nreplace Else *If rnolecule(ik, 8) 0 Then me. molecule(ik, 8) I nreplace Else If rnolecule(ik. 5) 0 Then rnolecule(ik. 5) 1 nreplace End If End If End If END SUB SUB 'Subrouti ne for pyridi no cnm~tn,!CtiOn1 If molecule(ik,. 6) =0 Then molecule(ik, 6)=I nreplace B3 167 Else If rnolecule(ik, 5) =0 Then molecule(jk, 5) I nreplace Else If nmolecule(ik. 8) 0 Then rnolecule(ik, 8) 1 nreplace' End If End If End If END SUB SUB pur4 'Subroutine for pyridine construction 640 If molecule(ik, 6) =0 Then nreplace Else If niolecule(ik, 7) =0 Then '0:0 molecule(ik, 7) 1 0a nreplace Else If molecule(ik, 5) =0 Then roiccule(ik, 5) 1 nreplace End If End If 00 End If 0 END SUB SUB rings0 'Subroutine for adding ring sequences to ligand codes ringcount ringcount I text26.Text ringcount circ lnt(Rnd 6) qq =-if Pp =-if B 168 tot vI v2 +v3 v4 +v5 +v6 +v7 v9 vI t2=vI +v2 03 Q 1 W4=Q2+ 03 t4 1 t6 4 v'4 0 t6 1 t8 t 6 t9t8 I 110 t8 v6 M1 tl2+ I t 14 =112 A8 =15t14+ I U6 01t4 +v9 S t17=16 I Fork= I To6+ circ If tc td 0 Then hyd 1 Else hyd =(hscroll9.Value /100) End If If Rnd hyd Then If Rnd (%Ng 100) Then q =Trirn$(Str$(Int(1 4 *Rnd))) Else =1 flv q Trirn(Str$(int( I 4 *Rnd))) INS= w's 1 End If jhyd =jhyd 1 Else If (Rnd) ng /100 Then j12 =j12 I Else If (Rnd) pg 100 Then g "P" 0 M -1 B 169 j13 =j13 1 Else If (Rnd) og 100 Then 9 10 o j14 =jl4 1 Else If (Rnd) s- 100 Then g= =j15 1 Else 'Assignment of string values for substituents 'start of primary code generating loop 5:5 'generation of random number S. Rn 1 Int(tot (Rnd(1))) 'generation of code sequence Select Case Rn Case I To v1 jil =jI 1 Case t I To tQ j2 =j2 1 Case t0 To t4 j3 =j3+ I Case t5 To t6 g .c1 j4 =j4 1 Case tU To t8 g 1r =j5 I Case t9 To t g .1 g i j6 =j6 1 B 170 0000 0 0000 0
S
S. 0 0 0 S@ 0 0 gee.
*500 S S 0* 0 0000
SO
S. S 00 0*S 005 0
S
S.
@0 *0
*SS
0 Case tl I To 112 g 11 j7 =j7 1 Case t13 To t14 g 11 j8 =j8 1 Case 115 To t16 g T j9 =j9 1 Case 117 To 018 jl0 =jlO 1 End Select End If End If End If End If q Trim$(Str$(Int(Rnd 1)) End If gg gg g qq qq q Next k randring 1 Int(Rnd 8) rring =I Int(Rnd 3) Select Case randring Case 1 ring Mid$(C431413431413431I", rring, 6 circ) Case 2 ring =Mid$("4134314134314 rring, 6 circ) Case 3 ring 32132132132132", rring. 6 circ) Case 4 ring 123123123123 123", rring, 6 circ) Case ring =Mid$('42141242141242 P. rring. 6 circ) Case 6 ring Mid$("412421412421412". rring. 6 circ) B 171 00 ew 0* C 00 0 e 00 0 ge.
00 Case 7 ring Ivid$("432423432423432", rring, 6 circ) Case 8 ring =Mid$("423432423432423', rring. 6 circ) End Select s =ring g gg q qq END SUB SUB sequencernut 'SEQUENCE MUTATION ROUTINE startfrag 1 Int(Rnd Len(code)) lenfrag 1 Int(Rnd (Len(code) startfrag)) text67.Text Str$(startfrag) codefrag 1 Mid$(code. startfrag. lenfrag) codefrag2 Mid$(codeq, startfrag. lenfrag) codefrag3 Mid$(codet, startfrag. lenfrag) text63.Text codefrag I codefrag2 codefrag3 If Rnd pinv Then nils "inv flux ert End If.
If Rnd pdup Then in2s ='dup fduplicate End If if Rnd pdel Then in3s 'del fdelete Else frplace End If If Rnd pins Then m4s "ins finsert End If text66.Text is m2s ni3s ni4s B 172 0C S 0ee C 0O CS
S
C
C S CS 0*
C
C S C. S
C.
C
*.S
C
S*C S
CC
C
C.
C
CC.
0 END SUB SUB singtest0 'ROUTINE FOR TESTING A LIGAND AGAINST A SINGLE VIRTUAL RECEPTOR 'loading target 'prepare for display picture4 Cs picture4. Scale -7) fzmnitest atomcount lInumber Istart loop to read in v'alues from file for eacti atom For 1 To atomcount \omtest(i) 1.54 molccule(i, 2) yomitest(i) 1.54 rnolccule(i, 3) zomtest(i) 1.54 rnolectile(i, 4) radiusltest(i) dradius(molectile(i, 9)) cradiusltest(i) clradius(niolecule(i, 9)) diprnltest(i) =dipoles(molecule(i. 9)) colrnmtest(i) =colord(niolecule(i. 9)) 'divide positional coordinates by 100 and store Next For i I To hanumber xomtest(i atomicount) 1.54 subsx(i. 1) yomtest(i atomcouint) =1.54 subsy(i. 1) zomitest(i atomcount) 1.54 subsz(i. 1) radiuis I test(i atoicoumt) =dradiius(subt(i)) cradius I test(i atomcount) clradiuis(subt(i)) dipmltest(i atomUcoun11) =dipoles(subt(i)) colrmtest(i atomcount) colord(subt(i)) 'divide posit ionl coordinates bv 100 aind ctore Next Istore grey color code B 173 gcol RGB(50, 50, 'start loop to calculate collision matrix values For i 1 To fzmnmtest zp zomtest(i) Np xomtest(i) yp onmtest(i) rp =radiusltest(i) sp =cradiusltest(i) coimn colrmtest(i) 'draw atoms using radius and collision radius *049 picture4. Circle (xp, yp), rp, QBColor(colm) 'picture2. Circle (xp, yp), rp, gcol 'calculation of collision matrix sp =sp Istart loop to calculate collision points For j Int(xp sp) to Int(xp sp 1) To lnt(xp sp 1) For k =Into-p sp) To Int(yp sp 1) 'calculate distance fromn atom center dist Sqr((xp j) A 2 (yp k) A1 2) 'if distance is less than radius, then set collision 'height matrix component to radius If fdist rp Then 'draw collision point picture4.Circle .2 Else 'if distance is less than collision radius (but greater than radius) Iset collision matrix component to radius/2 If dist sp Then 'draw point pictiire- PSet (j k) End If End If B 174 Next k Next j Next i Close 1 'draw grid on target frame picture4t.Line picture4.Line (20, 0) 'TEST PRIMARY ROUTINE maxcombiscore 0 sumcombi =0 'initialise best score, bestscore and bcstcode CREATE 3-D REPRESENTATION OF CODE 'Read in codes from code storage array *0 'Code index is codei 'load next code into h for processing 'C ode is stored in h nin decoder to create receptor decodes TESTS ON TARGETS freport current target freinitialize random number counter and target coordinates for each test series randcount 0 'Start targ et in original position for each test series ofef nuinber of atomTs ind store in, f7111 (also used in fe-qter1) fzmt =fzmimtest For ti 1 To fzmmtest B 175 'read in original target coordinates preserved in xom, yom and zom xrn(ti) =xomtest(ti) ym(ti) =yorntest(ti) zm(ti) zomtest(ti) radius(ti) radius ltest(ti) cradius(ti) cradiusltest(ti) dipm(ti) dipmlItest(ti) Next ti 'start loop for test series For testi 1 To testnumber text58.Text testi 'run test tester 1 Next testi 6.6 6 96 6 9 669 @6 .6 9 0 6 66*6 6* 66 69e 6 6666 @699 66 t6 4 6609 66 *6 6 6 666 6 6~~6 6 9 6* 6 6 06 0 966 6 'record maximum score for this code and clear maxscore for next cycle text42.Text =sumcombi text57.Text maxcombiscore inainscore =(((Abs(maxconibiscore maxtarget)) maxtarget) ((Abs(surnconibi suintarget))/ sumtargct)) /2 text73.Text mainscore END SUB SUB sreplace 'Subroutine for replacing carbon atomn with sulfur .Nc nolecule(ik, 2) yc= molecule(ik. 3) zc =inolecule(ik, 4) picture l.Circle (xc. yc). RGB(255. 255. 0) picturc2. Circle (xc. yc), RGB(255, 255, 0) subscount(15)
I
molecule(ik, 9) 21 skelcol(ik) =14 END SUB FUNCTION strinv (fs As String) As String 'Subroutine for inverting a character string R176 outs Ifs Len(fs) For i Ifs To 1 Step -I Outs =outs Mid$(fs, i1, 1) Next striniv outs END FUNCTION SUB subl Select Case state Case I A 9.c7dex*s yli xc deix sf zh 4.dez*s yh dely S Ahzc +delz sf xab =xaa-+1 yab Naa zab =zaa Case 2 Al xc delx s *yi =yc +del sf Azh zc delz sf xab =xaa 1 y ab aa zab zaa Case 4 xh xc del)' s xh xc deix s B3 177 Ah zc delz sf .xab xaa I vab 3aa zab zaa End Select If Occupy(xab, yab. zab) 0 Then *a a *0 0 0 Scount scount 1 subsx(scouint. 1) -xh subs)-(scount, 1) yhi subsz(scount, 1) zhi subsX(SCOunt, 2) =xc subsy(scount, 2) =yc subu~scount, 2) zc occupy(xab. yab, zab) stype(subst) SUbt(scount) stype(subst) subsr(scounh) sf subsc(scount) =scolor(subst) subscount(subst) subscount(subst) 1 picture1. Circle (xh. yh), subsr(scount), QBColor(scolor(subst)) If subst 5 Then End If If subst 7 Then cvan 1 End If If subst =9 Then thiol I End If If subst =6 Then arnilI End If If subst =8 Then nitrol B 178 End If End If END SUB SUB sub 12 Select Case state Case 1 xh xc yi=Yc dely* sf :4 z zc delz *sf Case 2 xh =xc yh yc dely *sf Azh zc delz *sf Case 3 0xh =xc *yh =yc+ dcly sf zh zc delz *sf Case 4 a xh =xc yh =vc dely *sf zh= zc delz sf End Select scount scount 1 subsx(scount, 1) A subsy(scount. 1) yh subsz(scount, 1) zh sliihsx(scoiint, 2) N:c subsv(scount, 2) )-yc subsz(scount, 2) =.zc subt(scount) stype(subst) niolecule(ik, 9) =9 13179 subsr(scount) .6 *f subsc(scount) =scolor(subst) subscount(subst) =subscount(subst) I picturel.Line (xc, yc)-(xh, 3yh) picture 1.Circle (xli, yh), subsr(scount), QBColor(scolor(subst)) END SUB SUB sub 13 Select Case state Case I Ah xc delx *sf 3- y c -dely sf A =zc -delz sf Case 2 Ax= xc deix *sf yhi yc dely *sf A zhzc dlz sf Case 3 Ah xc deix sf yh yh c -dely sf A zc dclz *f J 50Case 4 .xhi xc deix *sf vh yc dcly sf zh =zc delz *sf End Select SWoUM SCOunt I subsx(scount, 1) =xli subsy(scotint. 1) )h subsz(scount, 1) zhi subsx(scount. 2) =.xc subsv(scount. 2) 3-c 7-P7 B 180 subsz(scount, 2) zc subt(scount) stype(subst) rnolecule(ik, 9) 9 subsr(scount) .6 sf subsc(scount) scolor(subst) subscount(subst) =subscount(subst) 1 picturel.Line (xc yc)-(xh, 3,h) piccurel.Circle (xh, yh), subsr(scount), QBColor(scolor(subst)) END SUB SUB subl14( Select Case state zh =SO+dez*s Case 2 Ah xc dcl. sf yc dely' s zh =zc delz sf *h =Os-dex*s Case24 Axh xc dlx *f h Nc dely *f A zc delz *sf En Selctdl B 8 scount scount 1 subsx(scount, 1) Ah subsy(scount, 1) yh SUbsz(scount 1) zh subsx(scount, 2) xc subsy(scount, 2) yc subsZ(SCOuint, 2) z subt(scount) =stype(subst) rnolecule(ik, 9) 9 subsr(scount) sf subsc(scount) scolor(subst) stibscount(subst) subscount(subst)
I
pictureliLine (xc, yc)-(xh, yh) picture I Circle (xh, yhl), subsr(scotint), QBColor(scolor(subst)) END SUB SUB sub2 Select Case state Case 1 xh =hxc +delx sf yh yc dcly sf A zc delz *sf xab =xaa+ I yab yaa 0...zab =zaa 0 so. Case 2 xh =xc dclx sf yh yc dely *sf zh= zc delz *f xab xaa I yab =yaa zab =zaa Case 3 xh xc deix s VII yc del), s
I
B182 Ah zc delz *sf .xab =xaa 1 yab yaa zab =zaa Case 4 xhi xc delx *f yhi yc dely *f A =zc -delz sf 0 xab =xaa-1I 000yab 3aa zab =zaa ~:.End Select If occupy (xab, yab, zab) =0 Then scount scount I subsx(scount, 1) =xh subsy(scount, 1) vi subsz(scount 1) =zh subs.N(scount, 2) =xc subsy(scouiit, 2) yc subsz(scount, 2) zc *occup,(.xab. vab. zab) =stype(subst) subt(scount) =stvype(subst) subsr(scount) s *0*subsc(scount) =scolor(subst) 00subscount(subst) =subscount(subst)
I
picturelILine (xc, y-c)-(xli. vii) picture I. Circle yhi). subsr(scount). QBColor(scolor(subst)) If subst 5 Then hyd 1 End If If subst =7 Then cyan2) End If B 183 If subst 9 Then thioll End If If subst 6 Then arni2 End If If subst 8 Then nitro2 0604 End If 0000 0 End If .END SUB SUB sub23) Select Case state Case I xh ,c deix s yhi Nvc dely s ~A zzc -delz *sf Case 2 xh =xc deix s yh =Nc+ ey*s zhi ze delz s *h =*S+dex*s .:.Case 4 xh xc dex *f Nyh =yc dely *f 13 184 zh zc delz sf End Select scoulit scount I subsx(scount. 1) xh Subsy(scount, 1) yh subsz(scount. 1) zh subsx(scount, 2) xc subsy(scotint,. 2) vc subsz(scount, 2) zc stlbt(scomit) =stype(subst) molecule(ik, 9) 9 *qS.
9 9 S. 9e
S
S S SOq* S. S S subsr(scount) .6 sf subsc(scount) scolor(subst) subscount(subst) =subscount(subst)
I
picturel.Line (xc. yc)-(xh, %yh) picturel.Circle yh). subsr(scount), QBColor(scolor(subst)) END SUB SUB sub24 Select Case state 9..
S S 9* S 5* 9. 9 '@5 0 5S 5 0 *5
S
595 0 Case I xh =xc dclx *f yh ve +±deiv sf Al zc delzi *sf Case 2 Ah xc dclx *sf Nxc deW sf Ah zc delz *sf Case 3 Axh xc dclx *sf vh yc dely *sf B 185 Ah zc delz sf Case 4 xh xc deix sf yh yc dely *sf Azh zc delz *f End Select scount =scount 1 subsx(scount, 1) =xli Subsy(scount, 1) yh subsz(scount, 1) Ah subsx(scount, 2) xc subsy~scourit. 2) yc ~*subsz(scount., 2) zc subt(scotint) =stype(subst) S. molecule(jk, 9) =9 .2:':subsr(scount) s subsc(scount) =scolor(subst) subscount(subst) subscount(subst) 1 picturel.Line (xc. vc)-(xl,'vh) picture 1.Circle (xli. yh). subsr(scount) QBColor(scolor(subst)) END SUB V. SUB3 sub3 Select Case state Case I xh =xc -h =vc del2v sf zh zc delz *f xab =xaa yab yaa 1 zab zaa Case 2 xh c B186 yh N'c del2y sf 7-h zc delz sf xab xaa yab yaa 1 zab zaa Case 3 xh xc vii yc del2y *sf Ah zc delz *sf xab xaa yab =yaa 1 zab =zaa Case 4 A zc-dlz*s xah =vc+ ely s vab Nvaa I zab zaa so., End Select If occtipy(xab. vab. zab) =0 Then scount scount 1 stbsx(scount. 1) xh subsy(scount, 1) yh subsz(scount. 1) =zh subsx(scount, 2) xc subsy(scotrnt. 2) 3-c subsz(scount. 2) 2c occupv(.xab.. yab. zab) stype(subst) subt(scount) stype(subst) subsr(scount) 6 sf III~(SO11) scolor(subst) subscotint(subst) subscount(subst) 1 picturel.Line (xc, vc)-(xh, vh) picture 1.Circle (xh, Yh), subsr(scount), QBColor(scolor(subst)) B 187 If subst 5 Then hyd 1 End If If subst 7 Then cyan3 End If If subst 9 Then thioll1 End If If subst =6 Then a End If EN SUB End I End =If ,-5e5v s SetCase stt B 188 xli =xc yh yc del2y sf zh zc delz sf Case 4 xh =xc yhi vc del2y sf zh =zc delz sf End Select 9 S p *Oe 9* 0S 9 99,5 @9 S. p 0 *bOe scount scount I subsx(scount, 1) xh subsy(scount, 1) yh subsz(scount, 1) Ah subsx(scount.' 2) xc subsv(scount. 2) yc subsz(scount, 2) zc subt(SCOuint) =stype(subst) niolecule(ik, 9) =9 subsr(scount) .6 sf subsc(scount) scolor(subst) subscount(subst) =subscount(subst) I 0 S 09 p S PS p
S.
0@
S..
S. p 0 9* 0 9 9-
S
.00 0 picture 1 Line (xc. yh) picturel1.Circle (xh. yvh), subsr(scount). QBColor(scolor(subst)) END SUB SUB sub4 0) Select Case state Case 1 xh xc Nvh y Zh1 zc sf .xab xaa vab yaa zab =zaa I B 189 Case 2 xh xc yh yc A zc sr xab xaa yab 3aa zab =zaa I Case 3 xNh xc yh vc 004
S
0000 0 0 egg 60 00 0 0 go's Ug Oe 0 OOg* 0 OOg* Ah zc sf xab =xaa yab vaa zab zaa Case 4 xh xC A-h yc 'gee 0e 00 Soog 00 0* *0 0 00.
0 go. 0 0 0* 0 0 4.
0 e.g Ah ze sf xab =xaa yab =,vaa zab zaa End Select If occupy(mab. yab. zab) 0 Then scount scolint 1 subsx(scount, 1) xh SUbsy(scount., 1) yh subsz(scount. 1) =zh suibsN(scount. 2) xc subsy(scount, 2) yc subsz(scount. 2) z OCCupvf(Nab. yab. zab) stype(subst) subt(scount) stypc(subst) subsr(scount) .6 s subsc(scount) scolor(subst) B3 190 subscount(subst) =subscount(subst)
I
picturel.Line (xc, yc)-(xh, vh) picture 1.Circle (xh, yh). subsr(scount), QBColor(scolor(subst)) If subst 5 Then hvd2 End If If subst 7 Then cNvan4 End If If subst 9 Then thiol12 End If *If subst =6 Then 0 ami4 End If If subst =8 Then *e nitro4 *End If Os End If END SUB SUB3 substitutes0 'LIGAND SUBSTITUTION CONSTRUCTION
ROUTINE
'PART 2 of ligand code translation 'builds substituted carbon skeleton 'Values for the OCCUPY(ij.k) matrix '0 1nocclipied 'I1 Alkyl Hydrogen '2 H)ydroxv Hydrogen "I Thiol Hvdrogen '4 Amine Hydrogen Flourine B 191 '6 Chlorine '7 Broni ine '8 Alkyl Carbon '9 Alkenyl Carbon 110 Hydroxy Oxygen 'I I =Nitro Oxygen '12 =Keto Oxygen '13 Ether Pran Oxygen '14 =Amino Nitrogen Cv*ano Nitrogen '16 =Nitro Nitrogen '17 =Pyrrole Nitrogen '18 =PFyrido Nitrogen '19 =Thiol Sulfur Thione Sufur '21 =Sulphide Sulfur 'Values for substituents 'a=1=hydrogen *0 'b=2=flourine 'c3=chlofine 'd=4=brorninc 'e=5=hNvdroxvl group 'f=6=amine 0 g=7=cvano *age h8=nitro 'k=9=tliiot I Oketone 'j1l 1=thione 'n=1 2=pyrrole 0 p=1 3pyridine a a I 0=14'=ether/pyvran s= I sulfide/thiophene 0e list3.Clear *Erase subscount Ers us Erase subsx Erase subsr' Erase subsc sscale(O) .701 sscale(1) .701 sscale(2) .883 sscale(3) 1.
I
13 192 sscale(4) 1.25 =.929 sscale(6) .961 sscale(7) .891 sscale(S) .961 sscale(9) 1.1 sscale(I0) .8 sscale(1 1) 8 sscale(16) .701 scolor(0) 12 scolor(I) 12 scolor(2) scolor(3) 2 scolor(4) I1I scolor(6) 9 sees scolor(7) 0 go scoor(8) =9 0:6 scolor(9) 14 go scolor(IO) =13 scolor() 14 5scolor(16) =12 stype(0) I stype(1) 1 stype(4) stype(i) 6 1 stype(6) 74 stype(7) stvpc(6) 16 goV St*pe(7) 19 Sstype(8) 12 ~:.stype(9 19 stvpe(12) 12 stv-pc(113) stype(14) 13 21 stvpe(16) I a delx dely .43 dclz .3 del2y .864 rcarb .6 scount 0 B 193 For i 1 To atorncount ik= picturej IForeColor QBColor(9) state rnolecule(i, 1) xc niolecule(i, 2) yc rnolecule(i, 3) zc molecule(i, 4) atype molecule(i, 9) xaa rcx(i) vaa rc%-(i) zaa rcz(i) 'Routine for destauration (requires two empty valences) If molecule(i, 5) 0 Then subst =molecule(i, 11) sf sscale(subst) If stibst 16 Then ketolI End If End If If molecule(i, 6) =0 Then subst molecule(i. 12) sf= sscale(subst) if subst 16 Then keto2 End If End If If rnolecule(i.. 7) 0 Then subst molecule(i. 13) sf sscale(subst) If subst 16 Thpx 1 keto3 End If End If 83194 If molecule(i, 8) =0 Then subst =molecule(i, 14) sf sscale(subst) If subst 16 Then keto4 End If End If 'Routine for adding Osp3 oxygens to skeleton If molecule(i, 5) =0 Then subst molecule(i, 11) sf sscale(subst) If subst =14 Then ox, :End If End If If molecule(i, 6) 0 Then subst ntolecule(i, 12) 9::e sf sscale(subst) *If Jsubst =14 Then End If End If 'If molecule(i. 7) =0 Then subst =molecule(i. 13) sf sscale(subst) If subst 14 Then oxN3 End If End If If molecule(i, 8) =0 Then sUbst =.Molecule(i, 14) sf =sscale(subst) If subst 14 Then oxy4 End If End If 'Routine for adding Nsp2 nitrogens to skeleton If molecule(i, 5) 0 Then subst molectile(i, 11) sf sscale(subst) ~*If subst 13 Then purl End If End If If molecule(i, 6) 0 Then *subst nolecule(i, 12) 4 sf =sscale(subst) If subst 13 Then pur2 End If End If If molecule(i. 7) =0 Then subst molecule(i, 13) sf sscale(subst) If subst 13 Then pur3 End If End If 8195 B 196 If niolecule(i, 8) =0 Then subst nlolecule(i, 14) sf sscale(subst) If subst 13 Then pur4 End If End If 'Routine for adding Ssp3 sulfurs to skeleton If molecule(i, 5) =0 Then s* subst molecule(i. 11) o sf sscale(subst) ,*If subst 15 Then SullI 'JeEnd If End If If niolecule(i. 6) 0 Then 09VOsubst nlolectile(i. 12) sf sscale(subst) If subst 15 Then suI2 End If 0 End If so, If rnotecule(i, 7) =0 Then subst rnolecule(i. 13) sf sscale(subst) If subst =15 Then suI3 End If End If.
B 197 If rnolecule(i, 8) =0 Then subst molecule(i, 14) sf =sscale(subst) If subst 15 Then sul4 End If End If 'Routinie for adding Nsp3 nitrogens to skeleton If niolectile(i, 5) 0 Then subst =molecule(i, 11) sf sasoubt Iffsubst 12 Then 0 nreplace End If End If If rnolecule(i, 6) 0 Then subst rnolecule(i, 12) sf sscale(subst) If sibst 12 Then nrepiac e E0 I End If End If B 198 End If If rnolecule(i, 8) =0 Then subst molecule(i, 14) sf sscale(subst) If subst 12 Then nreplace End If End If 555
S
5 0 005 5 CS 55 5 SeeS 0 5 e*
OS..
0 5555 Se..
S 05 5 5555 S S Oe S 0@ See
S
555
S
@5 Se S .5
S
See
S
'Routine for adding ketones (requires two empty valences) If molecule(i, 5) 0 Then subst =niolecule(i, 11) sf =sscale(subst) If subst 10 Then ketolI End If End If If niolecule(i, 6) =0 Then subst molecule(i, 12) sf sscale(subst) If subst 10 Then keto2 End If End If If rnolecule(i. 7) 0 Then subst =rnolecule(i.' 13) sf =sscale(subst) If subst 10 Then keto3 End If End If If molecule(i. 8) 0 Then B 199 subst =molecule(i, 14) sf =sscale(subst) If subst =10 Then keto4 End If End If 'Routine for adding thiones If molecule(i, 5) =0 Then subst nimolecule(i. 11) sf sscale(subst) If subst =11IThen thiol *En If S End If If molecule(i, 6) 0 Then subsi rolecule(i. 12) sf =sscale(subst) If subst I I Then thio2 End If End If If rnolecule(i. 7) 0 Then subst molecule(i, 13) sf sscale(subst) fsubst I11 Then End If If molecule(i, 8)0 Then subst molecule(i, 14) sf sscale(subst) If subst =I I Then B 200 thio4 End If End If 'Routine for adding single valence substituents If rnolecule(i, 5) 0 Then subst molecule(i, 11) sf sscale(subst) If subst 10 Then sub I End If End If If 1lnolecule(i, 6) 0 Then subst molecule(i, 12) 0* If subst 10 Then sub2 End If End If If rnoleculc(i. 7) =0 Then subst molecule(i. 13) sf sscale(subst) If subst 10 Then sub' End If ,*End If If molecule(i, 8) 0 Then subst molecule(i, 14) sf sscale(subst) If subst 10 Then sub-I End It End If Next B 201 hnumber scount picture 1.ForcColor =QBColor(0) For m I To atoimeount Istr Trim$(Str$(m)) Str$(Int(154 rnolecule(ni 100) Str$(Int(154* molecule(m, 100) Str$(Int(154 niolecule(m. /100) Str$(niolecule(m, 9)) Iist3.Addltcm Istr Next m For m I To hnumber Iist3.Addltem Trim$(StrS(m)) StrS(Int(1 54 subsx(m. /100) Str$(Int(I 54* *se*subsy(m, 100) Str$(Int(154 *subsz(m. 100) Str$(subt(m)) Next m 'Formula builder htx "H Str$(subscount(O) subscount( 1) subscount( 16)) If subscount(2) 0 Then ftx= F &Trim$(Str$(subscount(2))) End If If subscount(3) 0 Then ctx CI Trim$(Str$(subscount(3))) End If *If subscount(4) 0 Then btx Br Trim$(Str$(subscount(4))) End If If subscount(5) 0 Then otx OH End If If subscount(6) 0 Then nix N112N Trim$(Str$(subscount(6))) End If If subscount(7) 0 Then ytx Trirn$(Str$(stzbscotlnt(7))) 0:0 End If If subscount(8) 0 Then ttx N02 Trim$(Str$(subscount(8))) End If If subscount(9) 0 Then stx SH Trim$(Str$(subscotint(9))) End If 11 subscount(I0) 0 Then ktx End If If subscount( 11) 0 Then Y-tx S= Trim$(Str$(subscollnt(1 B202 EndIf.
If subscount( 12) 0 Then hnI Trim$(Str$(subscount(l2))) End If If subscount(13) 0 Then hn2 [N2= Trim$(Str$(subscount(13))) End If If subscount(14) 0 Then ho Trim$(Str$(Subscount(14))) poio End If If subscount(1 5) 0 Then hs Trin$(Str$(subscount(l5))) "il" End If heteroc% cle subscount(1 2) subscount(1 3) subscount(1 4) subscount(I 'Formiula display chemnform Str$(atomcount heterocycle) hnl hn2 ho hs htx ftx ctx btx otx ntx ytx ttx ktx stx text29.Text chemnform END SUB SUB3 suil 0 'Subroutine for adding sulphide If molecule(ik. 6) 0 Then niolecule(ik. 6) 1 sreplace 6@ Else If molecule(ik. 7) 0 Then molecule(ik. 7) 1 sreplace Else If rnolecule(ik. 8) 0 Then S Sbmolecuile(ik.. 8) I sreplace End If End If END SUB SUB sul2 'Subroutine for adding sulphidle
I
B203 If molecule(ik, 7 0 Then sreplace Else If molecule(ik. 8) 0 Then molecule(ik, 8)=I sreplace Else If niolecule(ik, 5) =0 Then molecule(ik, 5) 1 sreplace End If End If End If END SUB *SUB su130 S.:.'Subroutine for adding sulphidle If moleculc(ik. 6) 0 Then niolecule(ik, 6) =I sreplace Else If rnolecule(ik, 5) =0 Then molecule(ik, 5) I sreplace *Else If molecule(ik, 8) 0 Then molecule(ik, 8) =1 sreplace End If End If *.End If END SUB SUB su14 'Subroutine for adding sulphide If moleculc(ik.. 6) 0 Th1eni molecule(ik. 6) 1 sreplace
I
13 204 If molecule(ik 7) 0 Then molecule(ik, 7) 1 sreplace Else If molecule(ik, 5) 0 Then molecule(ik, 5) 1 sreplace End If End If End If END SUB SUB tester 1 *s 0 00049 9449 *6 @4 OS .4 9 0~s 900 0 4 4.
9 0 9 4** 0 'AFFINITY TESTING ROUTINE 'Erase target coordinate vectors to start cycle 'thesc vectors store updated target locations Erase tanj Erase tark Erase tarz 'Set target count to zero for start of each cycle tarcount 0 'Set up picture to display target picture4.Cls picture3.Cls picture' .BackColor =RGB(O. 0. 0) picture3.Scalc 15)-(15. 'Draw franic picture3.Line 15.' RGB(235. 255. 255) picture3.Line 15). RGB(255. 255, 255) 'Set color scale cfac 255 (maxz minz) ,Draw height nmalrix For i maxv centers' To minv centerv Step -I For j nm centerx- To maxx centerx 8 205 ac cfac zmataj, i) If ac 0 Then coir RGB(120, ac, ac) picture3.Line 0 .25, i .25)-oj .25, i coir. BF End If Nextji Next 'Save picture properties oldstyle picture3.FilIStvje oldcolor =picture3.FillColor 'set picture values to draw charge sites picture' FiII Style 0 'Draw charge sites For ii =ITo cl If zrnat(xcz(ii). ycz(ii)) =zcz(ii) Then picture3.FillColor colz *Else *picture3.FillColor QBColor(2) colz QBColor(2) End If picture3.Circle (xcz(ii), ycz(ii)). 1, colz C. -Next ii For ii I To cineg gtx zmt(xczneg(ii). yczneg(ii)) If gtx zczneg(ii) Then picturej.FilIColor QBColor(12) colz =QBColor(12) Else
(RAN
8 206 picture3.FillColor =QBColor(4) colz Ql3Color(4) End If picture3.Circle (xczneg(ii), yczneg(ii)), 1, colz Next ii 'reset picture values picture3.FillStvyle =oldstyle picture3. Fill Color oldcolor 'Set random numbers for angle changes: Note-series stored in randarrav 'Same series used for each test series 'Get random change for z *0rz =6 lnt(randarravy(randcount) 0 'advance counter randcount randcount randcount 1 'Calculate anl rrz =(rz pi 'Get random change for v, r v 6 nt(randarray(randcounIt) a 'advance counter randcount randcount I 'Calculate angle *n =s rv(rv/ 6) *pi 'Get random value for x rx 6 Int(randarray(randcount) 'Advance counter randcount randpount I 'calculate angle rrx (rx/6)*pi/30
A
N~T
13207 'Random y translation xtrans transval Int(randarrav(randcount) *(transNval *2 1)) randcount =randcount I 'set z rotation 'loop to calculate transformed coordinates of centers For i I To fzmt 'Calculate length to centers w length(xmI(i), ym(i)) e~g 'Transformation logic for 3-d rotations 'Set z rotation Select Case xm(i) Case 0 *If vm(i) >0 Then th eta =pi/2 Else theta 3 *pi 2 End If Case Is 0 If xm(i) 0 Then theta at I(ynm(i) xni(i)) *Else theta xm(i)) End If Case Is< 0 If ym(i) 0 Then tht t(mS)/x~) :El theta at(m(i) xm(i)) End If End Select m(i) Nv* Sin(theta rr-z) xm(i) Nv Cos(theta rrz) Next 'Set y rotation For i 1 To fzmt w= length(xm(i), zm(i))
A
B3 208 Select Case xm(i) Case 0 If zm(i) 0 Then theta pi /2 Else theta =3 *pi 2 End If Case Is 0 If zni(i) 0 Then theta atl(zm(i) xm(i)) Else theta at3(zrn(i) xrn(i)) End If Case Is 0 If zrn(i) 0 Then theta at2(zrn(i) xm(i)) Else theta at4(zrn(i) xm(i)) End If eeEnd Select zm(i) =w Sin(theta rry) xrn(i) wv Cos(theta rry) 00 0: Next i 'Set x rotation For i I To fzmt 0. w length(ym(i). zrn(i)) *0 Select Case ynl(i) *0 Case 0 0 If zrn(i) 0 Then C: theta pi /2 Else 00,0 66theta =3 *pi 2 End If .:.CaseIs 0 If zrn(i) 0 Then theta at I (zni(i) vrn(i)) Else theta at3(zm(i) rn(i)) End If Case Is 0 If 7M(i) Then theta at2(zm(i) Nrn(i)) Else theta =at4(zm(i) ym(i)) End If End Select 77i L-0/ 77~~T 8 209 zm(i) wv Sin(theta rrx) ym(i) wv Cos(theta rrx\) Next gcol =RGB(1 50, 150, 150) picture4.Cls 'load target coordinates and data For i 1 To fzint zp zm(i) xp xm(i) +I xtrans vp vm(i) rp 0isi rp radius(i) draw transformed target 'picture4. Circle (xp, yp). sp, gcol @000picture4.Circle (xp. rp, gcol 'Set spacing value sp, sp 'Create target surface matrix 000 'These calculations center the target 'use into to round values to nearest coordinate point For 0n~p-s)T ltN p+1 V. Forjk Int(yp sp) To Int(yp sp 1) 'Calculate height of target surface *dist ^2 ^2) 'Simplify target surface If dist rp, Then 'if point is within 1 radius of center set height to z value minus radius 'Draw target stufPce picture4.Circle .2 'Load target surface into Storage vectors 'Increment counter for storage vector B 210 tarcount tarcount 1 'Redimension storage vectors, preserving current data ReDimn Preserve tarj(tarcount) As Integer tarj(tarcount) =j ReDini Preserve tark(tarcount) As Integer tark(tarcount) k ReDirn Preserve tarz(tarcount) As Double tarz(tarcount) zp rp Else If dist sp Then 'if point is within I radius I set height to z value one half radius 000 'draw target surface picture4.PSet k) 'Store data in vectors 0 0 *00:0* tarcount =tarcount
I
0000 ReDi mPreserve taki(tarcount) As Integer tarj(tarcount) =j ReDirn Preserve tark(tarcount) As Integer tark(tarcount) k ReDim Preserve tarz(tarcount) As Double tarz(tarcount) =zp (rp /2) End If End If :0 Next k Nextji Next a Soo 0 'Start contact calculations 'Part 1: 'Determine point of minimum separation zmm 100000 'Set initial minimum separation mindiff 100000 'Load target height values 17ef5'- ow-A B 211 For ti 1 To tarcount xtxt tarj(ti) )txt =tark(ti) ztxt tarz(ti) 'get target surface minimum to normalise target surface If zmm ztxt Then 'find minimum value of z for substrate and store in zmm zmm1 ztxt End If Next ti 0'Load target height vectors For ti 1 To tarcount Xtx =Sai~i vtxt tarj(ti) ztxt =tark(ti) 'Calculate target height matrix 'Draw target surface o *:.'check that points are within receptor matrix *0 If (xtxt (maxx centerx)) And (ytxt (maxy center.)) Then If (.Ntxt (minx centerx)) And (ytxt (miny centerv)) Then picture3.Circle (xtxt. y-txt). RGB(255, 255. 0) *'Get height value of receptor surface at position xtxt. %txt from zmat *.zrec zmat(xtxt, )ytxt) *:.'check that thcre is a receptor uinder the substrate 'if not, skip calculation If zrec 0 Then 'Calculate difference in receptor and target heights '(ztxt-zmim) is the normalized value of the substrate '(maxz+l-minz) is the maximum value of the zmat matrix (all of it!) 'adding these values ensures that all the values of the substrate are above the receptor
M
B 212 'ALTERNATIVE LINE difT (ztxt zmm) (1000) zrec 'transx (ztxt zmm) maxz I minz 'duff the separation between the substrate and the receptor 'duff =transx zrec 'Track minimal difference If mindiff duff Then niindiff duff xlow =xtxt 3'lOW ytxt End If.
End If End If so.. End If Next ti 'Loop 'if the mindiff value has not changed theni thc substrate 'has missed the receptor, in which case don't continue 00.0 'calculations If mind iff 100000 Then picttire.Circle (xlow, ylow). 1. RGB(125. 255, 0) 0 'Calculate score 'the following section calculates the separation between the receptor and substrate charge sites score =.0 sumndist 0 ncnt 0 'calculation for positive charge sites For i 1 To ci F'orj 1 To fzii'- 'Multiply by -1Ito make negative dipoles attracted to positive charge sites dipc -1 dipmoj)
M
I
M
B 213 000 0 *000 0 000 0 *0 *0 0 0 *000 00 00 0 000.
0 0004 0049 00 40 0 000w 00 00 0 00 0 000 0 00 0 0 @0 00 0 00 0 000 0 'only do calculation if there is a dipole moment If dipc 0 Then 'get receptor charge coordinates XlIc xcz(i) v Ic ycZi) Zlc =zcz(i) 'get substrate site locations x2c xnio) y'2c ymoj) 'calculate the collision height of the substrate 'Alternative z2c =((zmoj) zmm) 1000) mindiff 'z2c zmm) maxz 1 minz) mindiff 'calculate distance between charge sites distc dist3d(x I c, ylIc, z Ic, x2c, y2c. z2c) 'calculate approximate value of electrostatic energy scorec dipc (distc coeff) 'sum to obtain updated score score score scorec sumadist sumdist distc ncnt ncnt 1 End If Next j Next 'calculation for positive charge sites For i= I To clneg For j I To fzmt I'll 'Multiply by +1 to make negative dipoles repelled by positive charge sites dipc dipmoj) 'only do calculation if there is a dipole moment B214 If dipc 0 Then Iget receptor charge coordinates xlc xczneg(i) %-Ic y-czneg(i) zlIc =zczneg(i) 'get substrate site locations x2c =xmoj) y2c ymo~) I'calculate the collision height of the substrate 'Alternative z2c (zinj) zmm) 1000) mindiff V z2c =((zmoj) z mm) maxz 1 minz) muindiff ~''calculate distance betwveen charge sites *distc =dist')d(.xlc, ylc, zlc, N2c, y2c, z2c) 'calculate approximate value of electrostatic energy, scored dipc (distc A coefl) 'sumn to obtain updated score score score scorec suindist sumidist distc ncnt ncnt 1 ~'*End If Nextji Next A sophisticated (and very proximity detector proxim 'Display results 'Calculate proximity score as proportion of receptor points B 215 'within proximity margin proxscore prox Len~h) 'calculate combined score as product combiscore lnt(proxscore ((prox 10000) score) *1000000)/1000 'Accumulate combiscores for this test series sumcombi =surncombi combiscore 'Track maximum affinity scores If combiscore maxcombiscore Then maxcombiscore =combiscore 'text42.Text =maxcombiscore If maxcombiscore nixscore Then mxscore maxcombiscore ruxtest transtest mxtarget transtarget End If End If End If END SUB SUB TextlO Change0 'display of current Nz angle, updated by rotation control END SUB SUB Text3 Change 'display of current x angle, updated by rotationcotl B 216 END SUB SUB thio I) 'Subroutine for adding thiones If molecule(ik, 6) =0 Then molecule~ik, 6) 1 sub 12 Else If rnolecule(ik.' 7) =0 Then rnolecule(ik, 7) 1 sub13 Else If rnolecuile(ik, 8) =0 Then molecule(ik. 8)=1 sub 14 End If End If os.. End If END SUB SUB thio2 *o 'Subroutine for adding thiones If molecule(ik. 7) 0 Then molecule(ik, 7) I sub23 Else If inolecule(ik. 8) 0 Then molecule(ik. 8) 1 00 sub24 o Else If moleciile(ik. 5) 0 Then molecule(ik. 5) I o4o. End If End If.
End If END SUB SUB 'Subroutine for adding thiones If inolecule(ik. 6) 0 Then molecule(ik. 6) 1 sub23 Else If molecule(ik, 5) 0 Then B 217 molecule(ik, 5) 1 sub 13 Else If molecule(ik. 8) 0 Then molecule(ik, 8) 1 sub34 End If End If End If END SUB SUB thio4 'Subroutine for adding thiones If molecule(ik, 6) 0 Then moleculefik, 6) I sub4 Else sees es If inolecule(ik, 7) 0 Then molecule(ik, 7) I Else *0 If niolecule(ik, 5) 0 Then *see molecule(ik. 5) I Seeg End I End If End If END SUB SUB thiol 'Subroutine for adding thiol group .*scount =scount+ I *subSN(SCOUnt. 2) subsx(scount 1. 1) *subsy(scount.' 2) subsy(scount 1. 1) subsz(scount. 2) =subsz(scount 1. 1) subsx(scount, 1) subsx(scount 1. 1) subsy(scount, 1) subsv(scount 1. 1) Select Case state Case 1 ,1 subsz(scount. 1) subsz(scount 1. 1) .87 Case 2 subsz(scount, 1) subsz(scount 1. 1) .87 R441) -r 07- 8 218 Case 3 subsz(scount, 1) subsz(scount 1, 1) .87 Case 4 subsz(scount, 1) subsz(scount 1, 1) .87 End Select subsr(scount) .4206 subsc(scount) =12 0 00 00 subt(scount) 3 picturelI.Line (subsx(scount, subsy(scount, -(subs x(scoun t, subs .(scount, QBColor(13) picturel.Circle (subsx(scount. subsy(scount, subsr(scount). QBColor(12) END SUB SUB 'Subroutine for adding thiol group scount scount 1 subsx(scount, 2) =subsx(scount 1, 1) subsN (scount. 2) subsv(scount 1 1) subsz(scount. 2) =subsz(scount 1, 1) subs\(scount. 1) subsx(scount 1. 1) 0 00 0 5004
SO
00 0 @0 050 0 505 50 0 00 S 0 05 000 0 Select Case state Case I subsv(scount. 1) subsy(scount 1. 1) .76 subsz(scount, 1) =subsz(scount 1, 1) .43 Case 2 subsy(scount.
subsz(scount.
Case 3 subsy(scount.
subsz(scount, 1) =subsy(scount 1. 1) .76 1) subsz(scount 1. 1) .43 1) =subsy*(scount 1. 1) .76 1) =subsz(scount 1, 1) 43 Case 4 SLubS%(SC0LHIn -us~san 1. 1) j76 s ubsz(scount. 1) =subsz(scount 1. 1) .43 End Select B3219 stibsr(scount).= .4206 subsc(scount) 12 subt(scount) 3 picturel.line (subsx(scount, subsy(scount. 1))-(subsx(scount. subsv(scount. QBColor(13) picturel.Circle (subsxk(scount, subsy(scotint. subsr(scount), QBColor(12) END SUB log.
APPENDIX C Cl Contents of file robodat.bas used by receptor generation and molecular assembly programs 0 j1 '0 '0 .0 ,0 ,0 1 ,0 '0 .0 .1 '0 '1,10 10 ,0 .1 ,0 .0 .0,1 .0 '0 ,0 .0 ,0 '0 '0 '1 '0 .1 10,1-1 1.00,1 '0-11 j,-1 00000 0 0 01 .1.,0,0,1.0,1.2 ,1 ,12 .9,11.13,7,17,6 .22 .18 .24,4.3,5 .16 .14 .20 ,23 .19 .10 .21 8 .4,6,7,23,1 ,21 .9,10,14,16,11,12,8,17,13,19,15,18,24 .22,3,5,2,3,1 ,15 .14.16,10,8,24 5,22,6 ,4,7,18,2,17,9,12,21 .19,23,11 .20,13,5,24,22.1,23,2,3,14,8,9,12,1316101811 .15,19,17,6,.7,21,4

Claims (34)

1. A computer-based method of designing chemical structures having a preselected functional characteristic, comprising the steps of: producing a physical model of a simulated receptor phenotype encoded in a linear character sequence, and providing a set of target molecules sharing at least one quantifiable functional characteristic; for each target molecule; calculating an affinity between the receptor and the target molecule in each of a plurality of orientations using an effective affinity calculation; (ii) calculating a sum affinity by summing the calculated affinities; (iii) identifying a maximal affinity; using the calculated sum and maximal affinities to: calculate a maximal affinity correlation coefficient between the maximal affinities and the quantifiable functional characteristic; (ii) calculate a sum affinity correlation coefficient between the sum affinities and the quantifiable functional characteristic; using the maximal correlation coefficient and sum correlation coefficient to calculate a fitness coefficient; altering the structure of the receptor and repeating steps through until a population of receptors having a preselected fitness coefficient are obtained; providing a physical model of a chemical structure encoded in a molecular linear character sequence, calculating an affinity between the chemical structure and each receptor in a plurality of orientations using said A MEIi~NT effective affinity calculation, using the calculated affinities to calculate an affinity fitness score; altering the chemical structure to produce a variant of the chemical structure and repeating step and retaining and further altering those variants of the chemical structure whose affinity score approaches a preselected affinity score.
2. The method according to claim 1 wherein the linear character sequence encoding for said receptor phenotype is produced by generating a receptor linear character sequence which codes for spatial occupancy and charge, and wherein the step of producing a physical model of a chemical structure comprises generating said molecular linear character sequence which codes for spatial occupancy and charge.
3. The method according to claim 2 wherein said effective affinity calculation comyises two measures, the first being a proximity measure wherein the proportion of uncharged portions on said simulated receptors being sufficiently close to non-polar regions on said molecular structure to generate effective London dispersion forces is estimated, and the second being the summed strengths of charge-dipole electrostatic force interactions generated between charged portions of said simulated receptor and dipoles present in said molecular structure.
4. The method according to claim 2 wherein said step of calculating the affinity fitness score includes calculating a sum and maximal affinity between the molecular structure and each receptor, the fitness score being calculated as: AMENDED SHfET E {Icalculated maximal affinity carget maximal affinity target maximal affinity}and wherein said preselected fitness score is substantially zero. The method according to claim 2 wherein said step of calculating the affinity fitness score includes calculating a sum and maximal affinity between the molecular structure and each receptor, the fitness score being calculated as: S{ (!calculated maximal affinity-target maximal affinity 2 x target maximal affinity) (calculated sum affinity- target sum affinityl/2 x target sum affinity)}, and wherein said preselected fitness score is substantially zero.
6. The method according to claim 2 wherein said sum affinity correlation coefficient is rsA, said maximal affinity correlation coefficient is r, 2 and wherein said fitness coefficient is F=(r 2 x rs,2) 0 5 and wherein said preselected fitness coefficient is substantially unity.
7. The method according to claim 2 wherein said sum affinity correlation coefficient is rsA-,2, said maximal affinity correlation coefficient is r. 2 and wherein said fitness coefficient is F=(r, 2 X (1-rsA 2 05 ,and wherein said preselected fitness coefficient is substantially unity
8. The method according to claim 2 wherein said molecular linear character sequences comprise a plurality of sequential character triplets, a first character of said triplet being randomly selected from a first character set specifying position and identity of an occupying atom in a molecular skeleton of said molecular structure, a second character of said triplet being randomly selected from a second character set specifying the identity of a substituent group attached to said occupying atom, and a AlMEN2ED third character of said triplet being randomly selected from a third character set specifying the location of said substituent on the atom specified by said first character of the triplet.
9. The method according to claim 8 wherein the molecular linear character sequence is decoded using an effective molecular assembly algorithm which sequentially translates each triplet from said molecular linear sequence and thereafter fills unfilled positions on said molecular skeleton with hydrogen atoms. The method according to claim 9 wherein the step of altering said molecular structure includes at least one of the following steps: i) mutating said molecular genotype by randomly interchanging at least one of said first, second and third characters of at least one triplet from the associated character sets, ii) deletion wherein a triplet from molecular genotype is deleted, iii) duplication wherein a triplet in the molecular genotyp s duplicated, iv) inversion wherein the sequential order of one or more triplets in the molecular genotype is reversed, and v) insertion wherein a triplet from the molecular genotype is inserted at a different position in the molecular genotype.
11. The method according to claim 10 wherein the step of mutating said molecular genotypes includes recombining randomly selected pairs of said retained mutated molecular genotypes whereby corresponding characters in said molecular linear sequences are interchanged.
12. The method according to claim 2 wherein each character in the receptor linear character sequence specifies one of either a spatial turning instruction and a charged site with no turn. Sh~i
13. The method according to claim 12 wherein said receptor phenotype comprises at least one linear polymer provided with a plurality of subunits, one of said subunits being a first subunit in said at least one linear polymer.
14. The method according to claim 13 wherein said receptor linear character sequence is decoded using an effective receptor assembly algorithm in which turning instructions applied to each subunit subsequent to said first subunit are made relative to an initial position of said first subunit. The method according to claim 14 wherein said characters specifying spatial turning instructions code for no turn, right turn, left turn, up turn, down turn, and wherein characters specifying charge sites code for positively charged site with no turn, and negatively charged site with no turn.
16. The method according to tim 14 wherein said subunits are substantially spherical having a Van der Waals radii substantially equal to the Van der Waals radius of hydrogen.
17. The method according to claim 15 wherein the step of altering said receptor genotype includes at least one of the following steps: i) deletion wherein a character from the receptor genotype is deleted, ii) duplication wherein a character in the receptor genotype is duplicated, iii) inversion wherein the sequential order of one or more characters in the receptor genotype is reversed, and iv) insertion wherein a character from the receptor genotype is inserted at a different position in the genotype.
18. The method according to claim 17 wherein the step of mutating said receptor genotypes includes recombining randomly selected pairs of said retained mutated receptor genotypes whereby corresponding characters in said receptor linear sequences are interchanged.
19. A method of screening chemical structures for preselected functional characteristics, comprising: a) producing a simulated receptor genotype by generating a receptor linear character sequence which codes for spatial occupancy and charge; b) decoding the genotype to produce a receptor phenotype, providing at least one target molecule exhibiting a selected functional characteristic, calculating an affinity between the receptor and each target molecule in a plurality of orientations using an effective affinity calculation, calculating a sum and maximal affinity between each target molecule and receptor, calculating a sum affinity correlation coefficient for sum affinity versus said S functional characteristic of the target molecule and a maximal affinity correlation coefficient 15 for maximal affinity versus said functional characteristic, and calculating a fitness coefficient dependent on said sum and maximal affinity correlation coefficients; tsc) mutating the receptor genotype and repeating step b) and retaining and mutating those receptors exhibiting increased fitness coefficients until a population of receptors with S" preselected fitness coefficients are obtained; thereafter 20 d) calculating an affinity between a chemical structure being screened and each receptor in a plurality of orientations using said effective affinity calculation, calculating an affinity fitness score which includes calculating a sum and maximal affinity between the compound and each receptor and comparing at least one of said sum and The method according to claim 27 wherein the step of mutating said receptor genotype includes at least one of the following steps: i) deletion wherein a character from the receptor genotype is deleted, ii) duplication wherein a character in the receptor genotype is duplicated, iii) inversion wherein the sequential order of one or more characters in the receptor genotype is reversed, and iv) insertion wherein a character from the receptor genotype is inserted at a different position in the genotype.
31. The method according to claim 30 wherein the step of mutating said receptor genotypes includes recombining randomly selected pairs of said retained mutated receptor genotypes whereby corresponding characters in said receptor linear sequences are interchanged.
32. A method of designing simulated receptors mimicking biological receptors exhibiting selective affinity for compounds with similar functional characteristics, comprising the steps of: ra) producing a simulated receptor genotype by generating a receptor linear character 15 sequence which codes for spatial occupancy and charge; S b) decoding the genotype to produce a receptor phenotype, providing a set of target molecules sharing similar functional characteristics, calculating an affinity between the S*- receptor and each target molecule in a plurality of orientations using an effective affinity calculation, calculating a sum and maximal affinity between each target molecule and 20 receptor, calculating a sum affinity correlation coefficient for sum affinity versus a functional characteristic for each target molecule and a maximal affinity correlation coefficient for maximal affinity versus said functional characteristic for each target molecule, and calculating a fitness coefficient dependent on said sum and 83 maximal affinity correlation coefficients for each target molecule; and c) mutating the genotype and repeating step b) and retaining and mutating those receptors exhibiting increased fitness coefficients until a population of receptors with preseiected fitness coefficients are obtained.
33. The method according to claim 32 wherein each character in the receptor linear character sequence soecifies one of either a spatial turning instruction and a charged site with no turn.
34. The method according to claim 33 wherein said receptor phenotype comprises a plurality of linear polymers provided with a plurality of subunits, each linear polymer being coded for by a corresponding linear character sequence, one of said subunits being a first subunit in said at least one linear polymer. The method according t&claim 34 wherein said receptor linear character sequence is decoded using an effective receptor assembly algorithm in which turning instructions applied to each subunit subsequent to said first subunit are made relative to an initial position of said first subunit.
36. The method according to claim 35 wherein said characters specifying spatial turning instructions code for no turn, right turn, left turn, up turn, down turn, and wherein characters specifying charge sites code for positively charged site with no turn, and negatively charged site with no turn.
37. The method according to claim 36 wherein said subunits are substantially spherical having a Van der Waals I AMENCL f radii substantially equal to the Van der Waals radius of hydrogen.
38. The method according to claim 35 wherein the step of mutating said receptor genotype includes at least one of the following steps: i) deletion wherein a character from the receptor genotype is deleted, ii) duplication wherein a character in the receptor genotype is duplicated, iii) inversion wherein the sequential order of one or more characters in the receptor genotype is reversed, and iv) insertion wherein a character from the receptor genotype is inserted at a different position in the genotype.
39. The method according to claim 38 wherein the step of mutating said receptor genotypes includes recombining randomly selected pairs of said retained mutated receptor genotypes whereby corresponding characters in said receptor linear sequences are interchanged. The method according tbclaim 33 wherein said effective affinity calculation comprises two measures, the first being a proximity measure wherein a proportion of uncharged portions on said simulated receptors being sufficiently close to non-polar regions on said molecular structure to generate effective London dispersion forces is estimated, and the second being the summed strengths of charge-dipole electrostatic force interactions generated between charged portions of said simulated receptor and dipoles present in said molecular structure.
41. The method according to claim 40 wherein said sum affinity correlation coefficient is r, 2 said maximal affinity correlation coefficient is r, 2 and wherein said fitness coefficient is F=(rSA 2 x r, 2 )05, and wherein said preselected fitness coefficient is substantially unity.
42. The method according to claim 40 wherein said sum affinity correlation coefficient is SA -MA said maximal affinity correlation coefficient is rMA 2 and wherein said fitness coefficient is F=(rmA 2 x (1l-rSA MA2))O'. and wherein said preselected fitness coefficient is substantially unity.
43. A computer-based method of designing chemical structures having a preselected functional characteristic, comprising the steps of: providing a physical model of a receptor and a set of target molecules, the target molecules sharing at least one quantifiable functional characteristic; for each target molecule; calculating an affinity between the receptor and the target molecule in each of a plurality of orientations using an effective affinity calculation; (ii) calculating a sum affinity by summing the calculated affinities; (iii) identifying a maximal affinity; using the calculated sum and maximal affinities to: 15 calculate a maximal affinity correlation coefficient between the maximal affinities and the quantifiable functional characteristic; (ii) calculate a sum affinity correlation coefficient between the sum affinities and the quantifiable functional characteristic; using the maximal correlation coefficient and sum correlation coefficient to calculate a fitness coefficient; altering the structure of the receptor and repeating steps through until a population of receptors having a preselected fitness coefficient are obtained; S.. Sq S Sq S S S C S S AMENDEO providing a physical model of a chemical structure, calculating an affinity between the chemical structure and each receptor in a plurality of orientations using said effective affinity calculation, using calculated affinities to calculate an affinity fitness score; altering the chemical strucutre to produce a variant of the chemical structure and repeating step and retaining and further altering those variants of the chemical structure whose affinity score approaches a preselected affinity score.
44. The method according to claim 43 wehrein the step of providing a physical model of a receptor comprises generating a receptor linear character sequence which codes for spatial occupancy and charge, and wherein the step of producing a physical model of a chemical structure comprises generating a linear character sequence which codes for spatial occupancy and charge. The method according to claim 44 wherein said linear character sequences for said chemical structure comprises a plurality of sequential character triplets, a first character of said triplet being randomly selected from a first character set specifying position and identity of an occupying atom in a molecular skeleton of said chemical structure, a second character of said triplet being randomly selected from a second character set specifying the identity of a substituent group attached to said occupying atom, and a third character of said triplet being randomly selected from a third character set specifying the location of said substituent on the atom specified by said first character of the triplet. AME DiI
46. The method according to claim 45 wherein the chemical structure linear character sequence is decoded using an effective molecular assembly algorithm which sequentially translates each triplet from said molecular linear sequence and thereafter fills unfilled positions on said molecular skeleton with hydrogen atoms.
47. A method of encoding a chemical structure comprising atomic elements, the method comprising providing a linear character sequence which codes for spatial occupancy, relative atomic position, bond type and charge for each atom to define a unique three dimensional conformation of said chemical structure.
48. The method according to claim 47 wherein said linear character sequence for said chemical structure comprises a plurality of sequential character triplets, a first character of said triplet being selected from a first character set specifying position and identity of an occupying atom in a molecular skel n of said chemical structure, a second character of said triplet being selected from a second character set specifying the identity of a substituent group attached to said occupying atom, and a third character of said triplet being selected from a third character set specifying the location of said substituent on the atom specified by said first character of the triplet.
49. The method according to claim 45 wherein the linear character sequence is decoded using an effective molecular assembly algorithm which sequentially translates each triplet from said linear character sequence and thereafter fills unfilled positions on said molecular skeleton with preselected atoms. The method according to claim 49 including the step of storing said linear character sequence in a storage means accessible by a computer.
51. The method according to claim 19 wherein said functional characteristic is biological toxicity.
52. The method according to claim 19 wherein said functional characteristic is catalytic activity.
AU49350/96A 1996-03-22 Computational method for designing chemical structures having common functional characteristics Ceased AU712188C (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA1996/000166 WO1997036252A1 (en) 1996-03-22 1996-03-22 Computational method for designing chemical structures having common functional characteristics

Publications (3)

Publication Number Publication Date
AU4935096A AU4935096A (en) 1997-10-17
AU712188B2 true AU712188B2 (en) 1999-10-28
AU712188C AU712188C (en) 2000-09-28

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995001606A1 (en) * 1993-06-30 1995-01-12 Daylight Chemical Information Systems, Inc. Method and apparatus for designing molecules with desired properties by evolving successive populations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995001606A1 (en) * 1993-06-30 1995-01-12 Daylight Chemical Information Systems, Inc. Method and apparatus for designing molecules with desired properties by evolving successive populations

Also Published As

Publication number Publication date
JP2000507940A (en) 2000-06-27
AU4935096A (en) 1997-10-17
EA001095B1 (en) 2000-10-30
EP0888591A1 (en) 1999-01-07
WO1997036252A1 (en) 1997-10-02
EA199800843A1 (en) 1999-02-25

Similar Documents

Publication Publication Date Title
Huang et al. LASP: Fast global potential energy surface exploration
Shmulevich et al. Control of stationary behavior in probabilistic Boolean networks by means of structural intervention
Blanco Molecular silverware. I. General solutions to excluded volume constrained problems
Dytrych et al. Efficacy of the SU (3) scheme for ab initio large-scale calculations beyond the lightest nuclei
Fromer et al. Computer-aided multi-objective optimization in small molecule discovery
US5699268A (en) Computational method for designing chemical structures having common functional characteristics
Huizinga et al. Evolving neural networks that are both modular and regular: Hyperneat plus the connection cost technique
Lu et al. A chaotic non-dominated sorting genetic algorithm for the multi-objective automatic test task scheduling problem
US6219622B1 (en) Computational method for designing chemical structures having common functional characteristics
WO2006065950A2 (en) Modeling biological effects of molecules using molecular property models
Torsti et al. MIKA: Multigrid‐based program package for electronic structure calculations
WO2020194281A1 (en) Configurational energy calculation and crystal structure prediction
van Kampen et al. Lethalization, penalty and repair functions for constraint handling in the genetic algorithm methodology
Meinecke et al. Excluded volume effects in on‐and off‐lattice reaction–diffusion models
AU712188B2 (en) Computational method for designing chemical structures having common functional characteristics
Gordon et al. Bias and scalability in evolutionary development
Bajaj et al. A dynamic data structure for flexible molecular maintenance and informatics
Jammula et al. Distributed memory partitioning of high-throughput sequencing datasets for enabling parallel genomics analyses
CN114913922A (en) DNA sequence assembling method
Meadows et al. A genetic algorithm-based protocol for docking ensembles of small ligands using experimental restraints
Mann et al. Classifying proteinlike sequences in arbitrary lattice protein models using LatPack
Chen et al. Boundary element methods for dielectric cavity construction and integration
Sitmukhambetov et al. Development and implementation of a metaphase DNA model for ionizing radiation induced DNA damage calculation
Khuri Genetic Algorithms
LeDuc et al. Computational models of molecular self-organization in cellular environments

Legal Events

Date Code Title Description
DA2 Applications for amendment section 104
DA3 Amendments made section 104

Free format text: THE NATURE OF THE AMENDMENT IS AS WAS NOTIFIED IN THE OFFICIAL JOURNAL DATED 20000203

MK14 Patent ceased section 143(a) (annual fees not paid) or expired