US2012116742A1PendingUtilityA1

Method and apparatus for analysis of molecular configurations and combinations

60
Assignee: PRAKASH ADITYOPriority: Oct 14, 2003Filed: Oct 4, 2011Published: May 10, 2012
Est. expiryOct 14, 2023(expired)· nominal 20-yr term from priority
G16B 15/00G16B 50/00G01N 31/00G06G 7/58G01N 37/00G16B 50/30G16B 15/30G16C 20/30
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Method and apparatus for the efficient computation of values for affinity functions for two or more molecular subsets of a molecular configuration, are provided. Either one or both of molecular subsets may be selected from a molecule library. Affinity engines can compute the affinity values, and can be synchronized in order to maximize utilization of processing power available in the affinity engines. A data path allocator can apportion molecular descriptor data to each affinity engine as one or more data blocks according to a data path schedule. Also, new configurations may be generated from one or more input configurations, computation of a plurality of affinity values for a plurality of configurations, and subsequent selection of processed configurations for further analysis.

Claims

exact text as granted — not AI-modified
1 . A method for determining whether a biomolecule is a lead candidate by using a computational system to compute an affinity value for an affinity function between two or more molecular subsets of a particular molecular configuration of a molecular combination, the molecular combination including the biomolecule and a target, the affinity function being composed of a plurality of affinity components, each corresponding to one or more interactions between the two or more molecular subsets, the method comprising:
 assigning to each of the molecular subsets one or more molecular descriptors associated with the particular molecular configuration, wherein each molecular descriptor represents one or more properties or elements of a molecular subset, the molecular descriptors including the position of each of the molecular subsets for the particular molecular configuration;   storing, in a descriptor data storage, the assigned molecular descriptors as molecular descriptor data;   allocating, with a data path allocator implemented with a circuit of the computational system, the molecular descriptor data to a plurality of data paths associated with a plurality of affinity engines implemented with circuits of the computational system, wherein each affinity engine generates results for only one affinity component, wherein each affinity engine is dedicated to performing calculations for the respective affinity component, and wherein at least two of the affinity engines have a different architecture;   for each data path:
 arranging the molecular descriptor data allocated to the respective data path into a plurality of data blocks; and 
 transmitting the data blocks to the respective data path according to a data path schedule that specifies a rate that the data blocks are sent along the respective data path to a respective affinity engine; 
   with each affinity engine:
 for the particular molecular configuration, generating results for the corresponding affinity component, wherein each affinity engine includes one or more processing pipelines; 
   accumulating the affinity component results generated by the plurality of affinity engines to calculate the affinity value for the particular molecular configuration; and   determining whether the biomolecule is a lead candidate based on the affinity value.   
     
     
         2 . The method of  claim 1 , wherein the arrangement of the data blocks for the respective data paths is based on data and bandwidth requirements across the different affinity components, and the rate for a respective data path depends on the data bandwidth associated with the respective data path and on the processing performance of the respective affinity engine. 
     
     
         3 . The method of  claim 2 , wherein different data paths have different data bandwidths. 
     
     
         4 . The method of  claim 2 , wherein the rate of transmitting data blocks is different for at least two data paths, and wherein a size of the data blocks are different for at least two data paths. 
     
     
         5 . The method of  claim 2 , wherein the arrangement of the data blocks and the rate for a first respective data path are based on the formula:
 (N Q ×Q)/A, where N Q  is a number of operations to be processed in a data block for the affinity engine corresponding to the first respective data path, Q is a cost per operation in the corresponding affinity engine, and A is a number of pipelines in the corresponding affinity engine.   
     
     
         6 . The method of  claim 5 , wherein the arrangement of the data blocks and the rate for a second respective data path are based on the formula:
 [(N P ×P)/B], where N P  is a number of operations to be processed in a data block for the affinity engine corresponding to the second respective data path, P is a cost per operation in the corresponding affinity engine, and B is a number of pipelines in the corresponding affinity engine, wherein the ratio between [(N Q ×Q)/A] and [(N P ×P)/B] is unity or very close to unity.   
     
     
         7 . The method of  claim 2 , wherein the arrangement of the data blocks and the data path schedule contribute to a synchronization of the affinity engines. 
     
     
         8 . The method of  claim 7 , wherein a synchronization lag between the affinity engines is at least one of the following: less than or equal to one millisecond, less than or equal to ten clock cycles of the computational system, less than or equal to a largest pipeline stage interval of one of the affinity engines, and less than or equal to a predetermined ratio of a time taken by a slowest pipeline of the affinity engines to completely process a predetermined amount of input data received from the data path allocator. 
     
     
         9 . The method of any one of  claims 1 , wherein the affinity function contains multiple affinity components relating to a same type of interaction between the molecular subsets. 
     
     
         10 . The method of any one of  claims 1 , wherein the affinity function does not contain multiple affinity components relating to a same type of interaction between the molecular subsets. 
     
     
         11 . The method of  claim 10 , wherein each affinity component corresponds to only one type of interaction between the two or more molecular subsets. 
     
     
         12 . The method of  claim 1 , wherein different architectures have different amounts of processing elements. 
     
     
         13 . The method of  claim 1 , wherein the accumulating is performed by:
 a plurality of intermediate accumulators, each dedicated to an affinity engine, to obtain intermediate accumulated values; and   a final accumulator that accumulates the intermediate accumulated values.   
     
     
         14 . The method of  claim 1 , further comprising:
 calculating affinity values for a plurality of additional molecular configurations of the molecular combination, each molecular configuration corresponding to different positions of the molecular subsets of the molecular combination.   
     
     
         15 . The method of  claim 14 , wherein a fitness measure is assigned to each configuration based on a probability distribution or other function dependent on one or more affinity values and configurations are selected stochastically based on the probability or fitness values, the method further comprising:
 calculating affinity values for a plurality of additional molecular combinations of molecular subsets; and   selecting one or more of the molecular configurations based on the calculated affinity values.   
     
     
         16 . The method of  claim 14 , further comprising as part of a feedback cycle:
 constructing new molecular configurations using certain molecular configurations selected based on the calculated affinity values; and   calculating affinity values for the new molecular configurations.   
     
     
         17 . The method of  claim 14 , wherein the system computes an affinity function for multiple configurations in parallel. 
     
     
         18 . The method of  claim 1 , wherein the data blocks are arranged such that data block boundaries coincide with partitions of the molecular combination. 
     
     
         19 . An electronic device for determining whether a biomolecule is a lead candidate by computing an affinity value for an affinity function between two or more molecular subsets of a particular molecular configuration of a molecular combination, the molecular combination including the biomolecule and a target, the affinity function being composed of a plurality of affinity components, each corresponding to one or more interactions between the two or more molecular subsets, the electronic device comprising:
 a configuration data converter for assigning to each of the molecular subsets one or more molecular descriptors associated with the particular molecular configuration, wherein each molecular descriptor represents one or more properties or elements of a molecular subset, the molecular descriptors including the position of each of the molecular subsets for the particular molecular configuration;   a descriptor data storage that is communicably coupled with the configuration data converter and that stores the assigned molecular descriptors as molecular descriptor data;   a plurality of affinity engines that each generate results for only one affinity component, wherein each affinity engine includes one or more processing pipelines, wherein each affinity engine is dedicated to performing calculations for the respective affinity component, and wherein different affinity engines have different architectures;   a plurality of data paths connecting the descriptor data storage to the affinity engines;   a data path allocator that:
 allocates the molecular descriptor data to the plurality of data paths, and for each data path:
 arranges the molecular descriptor data allocated to the respective data path into a plurality of data blocks; and 
 transmits the data blocks to the respective data path according to a data path schedule that specifies a rate that the data blocks are sent along the respective data path to a respective affinity engine; and 
 
   an affinity component accumulator that accumulates the affinity component results generated by the plurality of affinity engines to calculate the affinity value for the particular molecular configuration, the affinity value usable to determine whether the biomolecule is a lead candidate.   
     
     
         20 . A method for determining whether a biomolecule is a lead candidate by using a computational system to compute an affinity value for an affinity function between two or more molecular subsets of a molecular configuration, the molecular combination including the biomolecule and a target, the affinity function being composed of a plurality of affinity components, each corresponding to one or more interactions between the two or more molecular subsets, the method comprising:
 storing, in a descriptor data storage, molecular descriptor data representing the two or more molecular subsets;   allocating, with a data path allocator that is a circuit of the computational system, the molecular descriptor data to a plurality of data paths, wherein each data path is connected with a respective affinity engine that is a circuit of the computational system, and wherein each affinity engine generates results for one or more affinity components of the affinity function;   for each data path:
 partitioning the molecular descriptor data allocated to the respective data path into a plurality of data blocks; and 
 routing the data blocks to the respective data path according to a data path schedule that specifies a size of the data blocks sent along the respective data path to the corresponding affinity engine, 
 wherein the data path schedule takes into account an amount of processing needed for calculating an affinity component for all or part of the molecular descriptor data and the amount of processing power available from each affinity engine so as to reduce a synchronization lag between affinity engines; 
   generating, with the plurality of affinity engines, affinity component results for the molecular configuration using the data blocks received at the affinity engines, wherein each affinity engine includes one or more processing pipelines;   computing the affinity value by accumulating affinity function values based on affinity component results generated by the plurality of affinity engines and received by an affinity component accumulator; and   determining whether a biomolecule is a lead candidate based on the computed affinity value.   
     
     
         21 . The method of  claim 20 , wherein each affinity engine generates results for only one affinity component. 
     
     
         22 . The method of  claim 20 , wherein each affinity component corresponds to a different type of interaction energy between the molecular subsets. 
     
     
         23 . The method of  claim 20 , wherein an affinity component corresponds to a combination of an interaction type, an affinity formulation, and a computation strategy. 
     
     
         24 . The method of  claim 23 , wherein the affinity function contains a first affinity component and a second affinity component relating to a same interaction type, and wherein the first affinity component and the second affinity component differ in either an affinity formulation and/or computation strategy. 
     
     
         25 . An electronic device for determining whether a biomolecule is a lead candidate by using a computational system to compute an affinity value for an affinity function between two or more molecular subsets of a molecular configuration, the molecular combination including the biomolecule and a target, the affinity function being composed of a plurality of affinity components, each corresponding to one or more interactions between the two or more molecular subsets, the electronic device comprising:
 a descriptor data storage configured to molecular descriptor data representing the two or more molecular subsets;   a plurality of affinity engines configured to generate results for one or more affinity components of the affinity function based on the molecular descriptor data, wherein each affinity engine includes one or more processing pipelines;   a plurality of data paths, each respectively connecting the descriptor data storage to one of the affinity engines;   a data path allocator configured to:
 allocate the molecular descriptor data to the plurality of data paths, and for each data path:
 partition the molecular descriptor data allocated to the respective data path into a plurality of data blocks; and 
 route the data blocks to the respective data path according to a data path schedule that specifies a size of the data blocks sent along the respective data path to the corresponding affinity engine, 
 wherein the data path schedule takes into account an amount of processing needed for calculating an affinity component for all or part of the molecular descriptor data and the amount of processing power available from each affinity engine so as to reduce a synchronization lag between affinity engines; and 
 
   an affinity component accumulator that accumulates affinity function values based on affinity component results generated by the plurality of affinity engines to obtain the affinity value, the affinity value usable to determine whether the biomolecule is a lead candidate.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.