Developing evidence-based treatment formulations
Patent Information
- Application Number
- PCT/IB2025/052293
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-04
- Filing Date
- 2025-03-03
- Publication Date
- 2025-10-02
AI Technical Summary
Developing evidence-based, disease-specific and patient-specific treatment formulations using nutrients as pharmaceutical agents is challenging due to the difficulty of transforming and applying vast bodies of evidence into practical treatment formulations.
A system and method that utilizes an evidence data structure to encode findings of scientific studies, relating studied diseases and nutrient doses, and develops treatment formulations by comparing nutrient quantities to studied doses, using a processor to generate customized formulations based on patient-specific data and nutritional recipes.
Enables the creation of individualized, evidence-based treatment formulations that deliver active pharmaceutical agents in therapeutic doses, tailored to specific diseases and patients, improving treatment outcomes and compliance with reimbursement criteria.
Smart Images

Figure IB2025052293_02102025_PF_FP_ABST
Abstract
Description
DEVELOPING EVIDENCE-B ASED TREATMENT FORMULATIONSFIELD OF THE DISCLOSURE
[0001] The disclosure relates generally to systems, methods and devices for developing treatment formulations, and more specifically to systems, methods and devices for developing customized treatment formulations.CROSS REFERENCE TO RELATED APPLICATIONS
[0002] This application claims benefit of priority to US provisional application [ ] filed [] and PCT application [ ] filed [], the contents of which are incorporated by reference herein in the entirety.BACKGROUND
[0003] Evidence- based medicine (EBM) is an approach to medical practice that emphasizes the use of evidence from well-designed and conducted research to support proposed treatments to achieve clinical goals. Evidence based treatments are desirable for many reasons. First, they have been shown to lead to better outcomes, reduced morbidity and increased survival rates. Further, evidence for a proposed treatment is frequently a pre-requisite for reimbursement by an insurer.
[0004] There is a growing demand for the use of nutrients as pharmaceutical agents to treat various diseases. However, developing evidence-based, disease-specific, patient-specific treatment formulations wherein the pharmaceutical agents are nutrients, is a challenging task. The problem is not absence of evidence. The problem is the difficulty of transforming and applying a vast body of evidence to a practice of developing the treatment formulations.SUMMARY
[0005] The disclosure provides technology for developing evidence-based treatment formulations. A first aspect is demonstrated by an example implementation in which an evidence data structure is configured to encode findings of scientific studies in an evidence data structure. The evidence data structure is configured to structurally relate respective studies to corresponding studied diseases and corresponding studied doses of studied nutrients investigated to treat the corresponding studied diseases. In response to receiving an identifier of a disease in a patient corresponding to a first studied disease encoded in the evidence data structure, the disclosed technology can develop one or more treatment formulations for the patient by comparing a quantity of a nutrient contained in selected formulation ingredients to a studied dose of a studied nutrient investigated to treat the first studied disease encoded in the evidence data structure.
[0006] Details of one or more example implementations of the systems, devices, apparatus, methods and products provided by the disclosure are set forth in the accompanying drawings and the detailed description below. Additional examples, variations, features, objects, and advantages not explicitly described below will nonetheless be apparent from reading the description with reference to the accompanying drawings and the appended claims.DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 is a block diagram illustrating an example system for developing treatment formulations according to the disclosure;
[0008] FIG. 2A is a block diagram illustrating a cooperative arrangement of the patient data structure component and the evidence data component in an example implementation of the system illustrated in FIG. 1 ;
[0009] FIG. 2B is a block diagram illustrating a cooperative arrangement of the evidence data structure component and the patient data structure component in an example implementation of the system illustrated in FIG. 1 ;
[0010] FIG. 3 is a block diagram illustrating a formulation subsystem in an example implementation of the system illustrated in FIG. 1 ;
[0011] FIG. 4 is a flowchart of an example method for developing treatment formulations according to the disclosure;
[0012] FIG. 5 is a flowchart of an example method for generating candidate treatment formulations in the method illustrated in FIG. 4;
[0013] FIG. 6 is a block diagram of a cooperative arrangement of components in an example implementation of the system of FIG. 1;
[0014] FIG. 7 is a block diagram of an example substance database in an example implementation of the system illustrated in FIG. 1 ;
[0015] FIG. 8 is a block diagram of a cooperative structural and functional arrangement of components in an example implementation of the system of FIG. 1; and
[0016] FIG. 9 is pictorial diagram illustrating an example genetic operation according to the disclosure.DETAILED DESCRIPTION
[0017] In the context of this specification the term 'treatment formulation' refers to a specified combination of substances (or ingredients) that contains a specified quantity (or quantities) of an active pharmaceutical agent (or agents). A treatment formulation developed by the disclosure specifies a combination of ingredients (or substances) that are suitable in their specified combination for administration to a patient in a single administration event to treatand / or prevent a disease of the patient. A 'treatment plan' comprises a set of treatment formulations and may also include a proposed administration schedule. A treatment plan is developed by developing a set of treatment formulations, i.e., more than one treatment formulation. A treatment plan may specify one or more treatment formulations for each administration event in an administration schedule.
[0018] As described in detail herein, the disclosure provides technology for developing individualized, evidence-based treatment formulations whose ingredients deliver active pharmaceutical agents in doses that have been shown to have a therapeutic and / or preventative effect on a specific pathological process, disease or medical condition for which the formulation is developed. For purposes of this specification the term 'disease' refers to a pathological state or process characterized by a particular set of signs and symptoms that may occur in various parts of a human body, including those involving the brain such as depression and anxiety. A disease is identified by a healthcare professional as being present, or as potentially becoming present in a specific patient's body based on evidence such as the individual's symptoms, medical history, physical examination, diagnostic tests, etc. Accordingly, the term 'treatment formulation' in the context of this specification includes formulations developed to prevent a disease from developing in a patient, as well as formulations developed to treat a disease that is already present in a patient, e.g., a disease with which a patient has been diagnosed.
[0019] The treatment formulations developed using the systems, devices and methods disclosed herein specify ingredients containing specific quantities (doses) of active pharmaceutical agents to be administered in accordance with a plan to treat and / or prevent specific diseases. In an example implementation, system 100 develops treatment formulations in which the active agents are nutrients. In a pharmaceutical context and in the context of thisspecification, a nutrient is considered an 'active pharmaceutical agent' (medicinal agent) when it is administered as a medication for the purpose of treating and / or preventing a specific disease.FIG. 1
[0020] FIG. 1 is a block diagram of a system 100 according to the disclosure. System 100 includes a processor 1000, a memory system 1500, a user interface subsystem 1650, a network interface 1717 and a database system 6000. Processor 1000 comprises at least one central processing unit (CPU) and may comprise more than one processor structure or integrated circuit. Processor 1000 may be implemented as one or more separate processor structures. Processor 1000 is configured by processor-executable instructions stored in instruction memory 1510 to interact with structural components of system 100 via wired and / or wireless communication interconnections which may be implemented as bus architecture, e.g., communications bus 1100 to transfer data and commands or instructions between the components of system 100.
[0021] Memory system 1500 can include an execution or 'working' memory 1520, an instruction memory 1510 and a memory configured to integrate database system 6000. Working memory 1520 can temporarily store intermediate results of operations, methods and / or functions performed by processor 1000 as it executes instructions stored in instruction memory 1510. Instruction memory 1510 and working memory 1520 can be implemented by any combination of volatile and / or non-volatile memory devices. In an example implementation, working memory 1520 may comprise a Random Access Memory (RAM) or other volatile memory medium structured to contain data objects produced by processor 1000 in accordance with instructions stored in instruction memory 1510.
[0022] Volatile memory devices include any type of memory device that requires application of power to maintain stored data. Examples of suitable volatile memory devicesinclude random access memory (RAM) devices, cache memory devices and other memory devices requiring power to maintain stored data. Non-volatile memory can include any type of memory device that retains data after removal of power. Examples of suitable non-volatile memory devices include magnetic and optical storage devices, flash drives, read only memory (ROM) and the like.
[0023] Memory system 1500 includes one or more non-transitory, computer readable storage media. For example, instruction memory 1510 can be implemented as a non-transitory, computer readable storage medium. Non-transitory computer-readable storage media can include one or more volatile memory devices and one or more non-volatile memory devices.
[0024] Instruction memory 1510 is equipped with processor-executable instructions which, when executed by processor 1000 cause processor 1000 to perform the methods, functions and processes described herein. In some applications the processor executable instructions can be stored using a non-volatile memory and loaded into volatile memory for execution by processor 1000. In an example implementation, processor executable instructions that configure processor 1000 to perform the methods, functions and processes described herein can be provided as source code, e.g., in a source code file stored in a memory.
[0025] In some example implementations, instructions for performing the special machine functions can be provided as object code, e.g., in an executable file stored in a memory. Object code can comprise the machine code output of a compiler, interpreter, assembler or the like that has translated higher-level programming or assembly languages into the machine code. The machine code can be executed directly by processor 1000. Examples of programming languages suitable for encoding the processes, methods and functions disclosed herein include object-oriented programming languages such as Python and C++. For example, processor 1000can be configured to execute a Python interpreter to translate Python scripts into bytecode instructions. The byte code can be converted by processor 1000 into machine code that can be executed directly by processor 1000.
[0026] In some implementations processor executable instructions implementing compilers, interpreters, assemblers, etc., can also be stored in memory system 1500 of system 100 and executed by processor 1000 to produce the machine code, i.e., processor-executable instructions, which when executed by processor 1000, cause processor 1000 to perform the methods, functions and processes described herein. Processor 1000 can load byte code provided by a Python interpreter, along with its associated data, into working memory 1520 of memory system 1500.
[0027] Although the examples herein are described in the context of a Python implementation, the disclosure is not limited to Python implementations. Many other application programming languages, including C++ can be suitable for implementing the disclosed examples. C++ supports object-oriented programming paradigms for creating classes and objects to represent entities such as 'templates' and other objects described herein. Unlike Python code, C++ code is typically compiled into machine code before execution to confer an advantage of higher performance and efficiency compared to Python implementations in some practical applications. Accordingly, implementations within the scope of the disclosure include C++ implementations.
[0028] System 100 can include one or more practitioner portals, patient portals, researcher portals 1600 and other specialized web-based interfaces including graphical user interfaces (GUI) 1650. Portals 1600 are configured to cooperate with GUI 1650 to provide user- personalized access to selected applications, tools, and data based on a user's role within thesystem. Portals 1600 may also be configured to authenticate and authorize users, display information and provide account management functions.
[0029] GUI 1650 can be configured as an interface between a practitioner and components of database system 6000. In particular in the context of the present disclosure, GUI 1650 can be configured to receive a request from a physician or health care practitioner to develop one or more treatment formulations for a particular patient in accordance with the teachings provided herein.
[0030] Components of system 100 may be coupled to a communication network such as the world wide web via network interface 1717, which in various embodiments can incorporate any combination of devices including modems, access points, network interface cards, LAN or WAN interfaces, wireless or optical interfaces and the like, along with any associated transmission protocols, as may be appropriate in various practical implementations.
[0031] Database system 6000 comprises a formulation subsystem 5000, a substance database 3000, a patient database 4000 and an evidence database 2000. In some implementations formulation subsystem 5000, substance database 3000, patient database 4000 and evidence database 2000 comprise a database cluster managed by database server (not shown). In that implementation each database can include its own schema, tables, functions, and other database objects.
[0032] In a relational database implementation, database system 6000 includes data structures such as tables defined by rows and columns configured to implement the structural relationships defined herein. In non-relational database implementations, database system 6000 may implement the disclosed structural relationships using other structured formats such as documents, key-value pairs, graphs, and the like.
[0033] In an example implementation, database system 6000 is implemented as a PostgreSQL relational database system. PostgreSQL is an open-source relational database management system (RDBMS) that supports a structured query language (SQL) for handling large volumes of data and complex queries.
[0034] Database system 6000 can further include one or more metadata files configured to store table column names (schema) in accordance with the particular structural arrangements disclosed herein, as well as data types, constraints, and indexes. The database server can map logical data table structures to physical storage cell arrangements that implement the table data structures comprising database system 6000.
[0035] The database server can further manage the allocation, organization, and retrieval of the data stored in database system 6000. In PostgreSQL implementations, the database server can provide core database server functions including querying, parsing and transaction management. While the examples described herein are implemented using a PostgreSQL database system, the disclosure is not limited to implementation using a PostgreSQL relational database, or to implementation using a relational database.
[0036] In some example implementations, system 100 is implemented as a secure, webbased system comprising, e.g., an Amazon Web Service (AWS). However, the disclosure is not limited to implementation as a web-based system, or to any particular web-based system or service. In some example implementations, the databases of database system 6000 can be configured to comply with the HIPPA act.FIG 2A
[0037] FIG. 2A is a block diagram illustrating a cooperative arrangement of patient data structure 4000 and evidence data structure 2000 in an example implementation. The exampleimplementations illustrated in the figures are simplified to highlight their salient features and to facilitate detailed description thereof.Evidence Data Structure 2000
[0038] In the context of the disclosure, an evidence-based treatment formulation is a treatment formulation for which there is medical and / or other scientific evidence demonstrating a relationship between the quantity (dose) of an active pharmaceutical agent in the formulation, and a therapeutic effect and / or a preventative effect on the particular disease the formulation is intended to treat. In an example implementation, the disclosure provides systems, devices and methods for developing treatment formulations based on structural and functional relationships between evidence data structure 2000, patient data structure 4000 and / or substance database 3000. While the examples herein are described in terms of evidence for administration of medicinal nutrients, the disclosure is not limited to any particular type of medicinal or pharmaceutical agent or substance. The systems, devices and methods described herein are applicable to developing treatment formulations consisting of a wide range of substances containing a wide variety of medicinal agents.
[0039] In an example implementation, parameters and conclusions of published scientific and medical studies 2500 demonstrating therapeutic relationships between studied nutrients at studied doses to studied diseases, are encoded in evidence data structure 2000. Evidence data structure 2000 is configured to structurally relate the parameters. Study parameters may include studied nutrients (N), studied diseases (Dx), studied doses (D) of the studied nutrients (N), observed responses and the like. Any or all of the foregoing types of research parameters, as well as recommendations and comments reflecting clinical experience of clinicians analyzing the studies can be encoded and structurally related in evidence data structure 2000.
[0040] For example, evidence data structure 2000 can be configured to encode study - observed relationships between studied dosages of a studied nutrient such as cholecalciferol (Vit. D3) and corresponding study-observed effects on a studied disease such as Congestive Heart Failure (CHF). In some example implementations, evidence data structure 2000 can be configured to encode more complex relationships such as dose-response curves by structural relationships of parameters such as effective concentration (EC50), maximum response (E max), Hill slope (nH), and baseline response (E min). In another example, for studied diseases such as diabetes, evidence data structure 2000 can be configured to encode published research studies demonstrating correlations between different dosage levels of a studied nutrient and changes in measured HbAlc levels over time.
[0041] Evidence data structure 2000 can also be configured to encode graphical data representing, e.g., specific HbAlc measurements taken at regular intervals (e.g., every 3 months). Processor 1000 can be configured to analyze the encoded data, including the graphical data, to extrapolate study conclusions as to how much and how quickly particular effects such as reductions in HbAlc levels, were produced based on different dosages of a studied nutrient (or nutrients), and conclusions as to whether higher dosages lead to faster or more substantial reductions in HbAlc compared to lower dosages.
[0042] In some implementations system 100 includes a neural network (not shown) configured to use the results of these analyses to predict outcomes or measure the success of treatment formulations or treatment plans developed by system 100 and administered to one or more patients, based on particular dosages delivered and measured patient responses.
[0043] In some implementations evidence data structure 2000 is configured in accordance with a schema that includes a citation to a study as a parameter of the study. In someimplementations, evidence data structure 2000 is configured to structurally relate a study citation to one or more data segments containing text summarizing aspects of one of or more studies, nutritionist notes and / or other pertinent data related to the encoded studies and their findings.Patient Data Structure 4000
[0044] Patient data structure 4000 is configured to model patients by structurally relating patient parameters in accordance with a patient schema. Examples of structurally related patient parameters include patient identifiers (Pt) and disease or medical condition indicators Dx. In some implementations, parameters include one or more of: patient demographic data, e.g., name, sex, age; and patient physiological data. Various implementations can include parameters representing any medically or statistically relevant measurement or other aspect of a patient or the patient's environment.
[0045] In the example of FIG. 2A, schema 4010 defines a structural relationship between patient identifiers (Pt )patient names (N) and patient diseases (Dx). Each patient record, e.g., 4012 is an instance of schema 4010 corresponding to a unique specific patient. For example, record 4012 structurally relates patient identifier 10679 to that patient's name and the patient's medical condition 30 in accordance with schema 4010. In general, patient data structure 4000 models a patient by parameters representing specific attributes and characteristics of the patient. Example attributes and characteristics of a patient include medical diagnoses, vital signs, laboratory test results, symptoms, lifestyle factors such as exercise habits, anthropometric aspects of the patient such as body weight, height, Body Mass Index (BMI), body composition and so on.
[0046] For example, system 100 can receive a patient identifier 10679 input to system 100 by a user, e.g., the patient's physician via GUI 1602. In response to receiving patientidentifier 10679, processor 1000 provides disease identifier, e.g., Dx 30 in accordance with the structural mapping defined by patient data structure 4000.
[0047] Processor 1000 is configured to map a Dx parameter value appearing an instance of patient data structure 4000 to a corresponding Dx parameter value appearing in an instance of evidence data structure 2000. Accordingly, processor 1000 is further configured to map the disease identifier Dx 20 to one or more particular studied nutrients and doses thereof encoded in evidence data structure 2000. For example, evidence data structure 2000 is shown to incorporate two records, 2012 and 2014 encoding scientific and medical studies demonstrating therapeutic effects of nutrient 10 at 1200 mcg and nutrient 12 at 50 mcg, respectively, on disease Dx 30.
[0048] In one example implementation patient model 4000 is configured as a predictive model that predicts how the modeled patient will respond to administration of a therapeutic nutrient, and how the response might change as the treatment progresses. The predicted responses can be used to adjust the specified doses, the dosage administration schedule (treatment plan schedule), and / or other aspects of the treatment plan to improve the predicted response.
[0049] In addition, actual patient response to a treatment can sampled and recorded over time by obtaining measurements of patient parameters, e.g., laboratory test results, weight, etc. The measurements can be obtained by wireless communication with various patient-worn or patient utilized devices, or by taking the measurements during a patient visit. The patient parameter values encoded in patient data structure 4000 can be dynamically updated with current measured values as the planned treatment progresses. In that context, patient data structure 4000 comprises a dynamic model of a patient's evolving health state. Likewise, treatment plans can belikewise dynamically updated to adjust specified dosages, nutrients and administration schedules in accordance with changes in a patient's state as modeled by patient data structure 4000.
[0050] In an example use, system 100 receives a patient identifier and a request to develop a treatment plan to treat a disease of the patient corresponding to the received patient identifier. For example, a health care practitioner such as the patient's physician can operate GUI 1652 to make the request. GUI 1652 is configured to structure the user's input data to reflect the structural relationships defined by the corresponding data structures of system 100, including patient data structure 4000.
[0051] As noted above, in an example implementation patient data structure 4000 is configured to structurally relate respective patient identifiers to corresponding respective identifiers of a patient diseases, e.g., diseases with which the respective patients have been diagnosed. In response to receiving the patient identifier provided by GUI 1651, processor 1000 maps the received patient identifier to a corresponding patient disease identifier (or identifiers) based on the structural relationships encoded in patient data structure 4000. Processor 1000 is configured to map the patient disease identifier Dx to a corresponding, e.g., matching, studied disease identifier (or identifiers) based on the structural relationships encoded in evidence data structure 2000.
[0052] As discussed in detail above with respect to FIG. 2A and 2B, evidence data structure 2000 is configured to structurally relate respective disease identifiers Dx to corresponding respective studies and study parameter values, and to a corresponding studied doses of the corresponding studied nutrients. In an example implementation, processor 1000 stores the corresponding studied nutrients and quantities (or doses) thereof in memory system1500. These data can be retrieved as an input to the candidate evaluation process described below.FIG. 2B
[0053] FIG. 2B is a block diagram illustrating a cooperative structural and functional arrangement of patient data structure 4000 and evidence data structure 2000 in an example implementation. Evidence data structure 2000 is shown to be configured to encode studies in which treatment effective dosages are expressed in terms of dosage ranges. For example, a study may find treatment effective studied dosages of a studied nutrient fall within a range between a minimum effective dosage Rmin, and a maximum effective dosage Rmax.
[0054] In some implementations evidence data structure 2000 is configured to encode Rmin and Rmax dosage values as percentages of a Recommended Intake (RI) level and an Upper Limit (UL) respectively. Such implementations may include a Daily Recommended Intake (DRI) calculator 1010, which is publicly available from the USDA.
[0055] It should be noted the reference intake and upper limits are nutrient quantities recommended for generally healthy individuals in a population to maintain their health. In some cases, these recommended intake levels are adjusted in accordance with general characteristics defining cohorts of the general population. In other words, the particular values of RI and UL recommended for any given nutrient for a particular individual may depend on the individual's general physiological attributes. These may include age, sex, height, weight, activity level, BMI and so forth. The recommended intakes levels determined by DRI calculator 1010 are not intended as dosage recommendations for administration of nutrients to treat diseases. Further, while the recommendations are supported by evidence of a benefit when used to maintaingeneral health, they are not based on the kind of evidence that would support a plan to administer any particular nutrient in any quantity as a treatment for any disease.
[0056] In the example of FIG. 2B evidence data structure 2000 is configured to structurally relate a study to a studied nutrient N, a studied disease Dx, a minimum dosage Rmin of the studied nutrient to achieve a therapeutic effect on the studied disease Dx, and a maximum dosage Rmax of the studied nutrient. In a first instance (record) of this schema, results of a study xx are encoded in evidence data structure 2000 as follows: the studied nutrient was N10. The studied disease was Dx 20. The minimum therapeutic dose of nutrient N10 was RI+10%, i.e., 10% more than the recommended intake RI. . The maximum therapeutic dose of nutrient N10 was 90%UL, i.e., 10% less than the upper limit UL.
[0057] In the example of FIG. 2B processor 1000 is configured to provide DRI calculator 1010 with an indication of a particular studied nutrient e.g., nutrient 10, encoded in evidence data structure 2000 and structurally related therein to a corresponding disease, e.g., Dx 20. DRI calculator 1010 computes recommended an upper limit intake levels based on the provided nutrient identifier. Processor 1000 is configured to transform Rmin and Rmax to target (DT) dosages rminand rmaxbased on the recommended intake RI and an upper limit (UL) values provided by Daily Recommended Intake (DRI) calculator 1010.
[0058] Processor 1000 receives a patient identifier and maps the patient identifier to a corresponding patient record of patient data structure 4000. Processor 1000 provides to DRI calculator 1010, one or more patient parameters structurally related by patient data structure 4000 to the received patient identifier 10679. In the example, processor 1000 provides DRI calculator 1010 with sex, age, height, weight and activity level as parameters of the patient corresponding to the received patient identifier 10679. DRI calculator 1010 calculates RI andUL values, e.g., 900 mcg and 3000 mcg respectively, based on the received patient parameters. It is important to note these are patient-specific RI and UL intake values in that they are based particular attributes of a particular patient. Nonetheless, the RI and UL levels by themselves are not treatment dosages, i.e., they are not evidence-based doses to be administered in accordance with a treatment plan to treat a disease Dx of any patient.
[0059] Processor 1000 is configured to provide the patient specific RI and UL values output by DRI calculator 1010 to an input of a mapping function 1011 executed by processor 1000. Processor 1000 is further configured to provide the Rmin and Rmax values encoded in evidence data structure 2000 and structurally related to studied disease Dx 30 and studied nutrient N. Note studied disease Dx 30 in evidence data structure 2000 matches patient disease Dx 30 corresponding to patient 10679 in patient data structure 4000.
[0060] Processor 1000 maps the evidence based, DRI referenced values of Rmin and Rmax at the input of function 1011 to target dosages rmaxand rminrespectively at the output of function 1011 based on the RI and UL values input to function 1011 from DRI calculator 1010.
[0061] In an example implementation of FIG. 2B, function 1011 maps Rmax to rmaxand Rmin to rminby the following respective mapping functions:(1) rmax=Rmax (UL-RI) + RI(2) rmin=Rmin (UL-RI) + RI
[0062] In the simplified example of FIG. 2B, evidence data structure 2000 is shown to provide a minimum dosage of RI+10% and a maximum dosage of 90% UL based on a study xx of nutrient N: 10 to treat disease Dx:20. Based on the attributes of patient 10679, DRI calculator 1010 provided an RI of 900 mcg and a UL of 3000 mcg in accordance with general guidance. Function 1011 applied Rmin and Rmax to the RI and UL provided by DRI calculator 1010, andprovided the result rmin1110 mcg and rmax2790 mcg at a function 1011 output. In the example of FIG. 2B processor 1000 is configured to store output values rmaxand rminfor patient 10679 in patient data structure 4000, where it can be accessed or provided to other components to perform the methods, processes and functions described below. These values may also be periodically adjusted and updated values stored in patient data structure 4000.
[0063] In view of HIPPA requirements regarding safeguarding personally identifiable information, system 100 is advantageously configured such that Rmin and Rmax at the output of evidence data structure 2000 can be provided without reference to a patient identifier of patient data structure 4000. Likewise, DRI calculator 1010 does not require a patient identifier to perform its calculations. Function 1011 likewise is capable of performing its functions in the absence of a patient identifier.FIG. 3
[0064] As used herein, the term 'treatment formulation' refers to a specified combination of ingredients in specified amounts. One of more of the ingredients contains medicinal agents. The treatment formulation is to be administered during a single administration occasion to deliver a single dose of the medicinal agent.
[0065] In some example implementations, system 100 is configured to develop a set of treatment formulations comprising a treatment plan. The treatment formulations comprising the treatment plan are to be administered in accordance with an administration schedule defined by the treatment plan for the purpose of delivering one or more specific pharmaceutical agents in specified doses to treat a disease in a patient, i.e., to change the patient's biological state in a way that alleviates, controls or reverses one or more pathological states, diseases or processesunderlying a disease. A treatment plan can be configured to extend over days, weeks, months or in some cases years.
[0066] The example implementations described herein, treatment formulations are not limited to any particular types of substances as formulation ingredients, or to any particular type of pharmaceutical or medicinal agent contained in those substances. Without limiting the scope of the disclosure, in one example implementation system 100 develops food-based treatment formulations, i.e., treatment formulations whose formulation ingredients are food substances and wherein the medicinal agents are nutrients to be delivered to the patient via the food substances. Developing food-based treatment formulations and treatment plans is especially challenging, as will be appreciated from the description that follows.
[0067] The optimal medium for delivering nutrients to the human body is food. Food substances are consumed as meals or components thereof. Individuals vary widely as to types of food substances they are willing to consume. And, there is a limit to the quantity (total calories) a human can consume in one treatment administration event (i.e., one meal). Further, not all food substances are compatible in all combinations. Thus, developing a treatment formulation is not simply a matter of selecting and combining food ingredients to achieve a specified quantity of a medical nutrient.
[0068] FIG. 3 is a block diagram illustrating a cooperative structural arrangement of components of formulation subsystem 5000 according to an example implementation. As described in more detail below, formulation subsystem 5000 is configured to provide a solution to the problem described above, i.e., ingredient compatibility and quantity feasibility when developing food-based treatment formulations. To address these problems, the disclosure provides formulation templates (FT) derived from recipes. Recipes are specifications forproducing meal components, e.g., dishes. Recipes specify quantities and ingredients intentionally selected for their compatibility in their recipe-specified combinations. This 'compatibility' attribute of recipes would be desirable in treatment formulations.
[0069] However, the goal of a dish specification (recipe) is typically to produce a combination of ingredients that characterizes the dish by particular culinary attributes such as flavor profile, texture, aroma, etc. In contrast, the ultimate goal of treatment formulation is to specify a combination of ingredients that delivers a specified dose (or doses) of a specific medical nutrient (or nutrients) as active pharmaceutical agents administered to treat a disease. The primary role of the food ingredients in a treatment formulation is to deliver the specified medical nutrients in their specified doses.
[0070] For that reason, the formulation templates (FT) provided herein are not recipes, per se. Rather, they are abstractions of recipes. The abstractions confer the benefits of ingredient compatibility and quantity practicality without restricting the FT to specific ingredient selections and quantities. As a recipe abstraction, a treatment formulation is a tool that guides processor 1000 to select compatible ingredients and feasible quantities in a process that relies on flexibility of ingredient choice to develop food-based-treatment formulations and treatment plans.
[0071] As shown in FIG. 3 formulation subsystem 5000 comprises a formulation template (FT) data structure 5100 a formulation ingredient template (FIT) data structure 5200, and a formulation ingredient (FI) data structure 5300.FT Data Structure 5100
[0072] In an example implementation formulation template data structure 5100 is configured to store recipe metadata corresponding to recipes. Recipe metadata can be downloaded or manually entered in FT data structure 5100. For example, recipe metadata ispublicly available from a website 'nutrition.gov' maintained by the United States Department of Agriculture (USDA). This public website contains a collections of nutritional recipes provided by the USDA and Cooperative Extensions.
[0073] Formulation template data structure 5100 includes column headers 5110 configured to represent a recipe by a set of structurally related recipe metadata items. For example, formulation template data structure 5100 is configured to structurally relate an FT template identifier to a cook method (CM), cook time, preparation instructions, yield and ingredient list. However, this example is not limiting. In an example implementation, formulation templates of formulation template data structure are classified by treatment administration occasion, e.g., breakfast, lunch or dinner. In that case, each FT can be associated with a class indicator or 'tag' that signifies the administration occasion to which the FT applies. For example a FT named 'eggs benedict' might be associated with a 'breakfast' 'tag', either as an item included in its data structure, or by a 'connector' data structure that relates FTs to tags.
[0074] In various implementations, processor 1000 is configured to classify formulation templates by other common features. These include classification of an FT by a particular meal component for which the FT is suited, e.g., main dish, side dish, beverage, etc. There is no limitation on the number or type of tags that can be associated with any given meal template, for example, in one implementation a formulation template can be associated with a tag that indicates whether, or how many times a formulation can be 're-used' in a process that generates treatment formulations to comprise a treatment plan. In other words once processor 1000 has selected a formulation template to generate a candidate formulation for meal component of a treatment plan, a 're-use' tag indicating 'no reuse' would exclude that formulation template frombeing applied a second time to generate another candidate formulation for the same treatment plan.
[0075] In some implementations, processor 1000 is configured to search the formulation templates of FT 5100 based on one or more tags. For example, processor 1000 can search the formulation templates to identify all formulation templates associated with a 'breakfast' tag, or all formulation templates associated with both a 'breakfast' tag and a 'main dish' tag.
[0076] In the simplified example of FIG. 3 formulation template data structure 5100 incorporates two example formulation templates (FT) identified as 1 and 2. In the example of FIG. 3, FT 1 is shown to encode recipe metadata including name, 'Atlantic Salmon'; cook method (CM), 'pan seared' (PS).FIT Data Structure 5200
[0077] FIT data structure 5200 is configured to incorporate a formulation ingredient template (FIT) for each ingredient in a recipe ingredient list of each formulation template in FT data structure 5100. A formulation ingredient template (FIT) is an abstract, or generic ingredient representation that encompasses more than one specific ingredient. For example, a formulation template, e.g., FT1 may include recipe name metadata, where the recipe name is Atlantic Salmon'. The ingredient list of FT1 might specify: Atlantic salmon, iodized salt, grapeseed oil.
[0078] FIT data structure 5200 includes an FIT entry for each ingredient of FT1. FIT 1-1 represents the ingredient 'Atlantic salmon' by a more abstract or generic name 'salmon'. FIT 1-2 represents the iodized salt ingredient as 'salt'; and FIT 1-3 represents the grapeseed oil ingredient as 'oil'.
[0079] In an example machine learning (ML) implementation, processor 1000 is trained to classify recipe ingredient metadata in a large number of recipes to produce the formulationingredient templates of FIT data structure 5200. For example, processor 1000 can be trained to evaluate a database of recipes to recognize common patterns or features in recipe ingredients that would identify particular ingredients as variants or species of a more general class or genus. In that case, processor 1000 creates an FIT in FIT data structure 5200 and enters the general class (or genus) name as the FIT name. Processor 1000 enters each of the species or members of the class as ingredients in formulation ingredient (FI) data structure 5300.FI Data Structure 5300
[0080] FI data structure 5300 is configured to connect each of the formulation ingredient templates (FIT) of FIT data structure 5200 to one or more specific formulation ingredients (FI) in FI data structure 5300. Each specific formulation ingredient is a different instance of an FIT. For example, as shown in FI data structure 5300, there are two different specific ingredient entries corresponding to the abstract ingredient 'salmon' corresponding to FIT 1-1 of FIT data structure 5200. The first entry is Sockeye Salmon (ingredient id 744). The second entry is Atlantic salmon (ingredient id 745). Likewise, there are two different ingredient entries for FIT 1-2 ('salt'): iodized salt 846 and plain salt 847, and two entries for FIT 1-2 ('oil'): corn oil (ingredient id 971) and olive oil (ingredient id 972).
[0081] In the simplified example of FIG. 3 each FT corresponds to only 3 FIT. Each FIT corresponds to only 2 FI. In this configuration the number of unique ingredient combinations that can possibly be produced from any given one of the FTs of FT data structure 5100 is 8. Table 1 illustrates the 8 possible unique combinations. While each combination differs from the others in at least one ingredient, the ingredients in every combination will be generally compatible in combination in a formulation, the quantities will be reasonable in terms of typical human consumption.
[0082] TABLE 1
[0083] The set of all eight possible formulations defines a solution space in which each possible formulation may or may not be a solution to the problem of specifying a 'treatment' formulation, i.e., a formulation that will deliver a specific dose of a specific therapeutic nutrient. In other words, the solution space does not necessarily contain combination that could be administered as a treatment for disease. This is the case whether or not the recipe from which combination is derived is a 'healthy' recipe.
[0084] For example, the USDA recipe database can serve as source of recipes from which the FTs and FIT s are derived. These recipes may include 'healthy' ingredients which may in combination in a formulation provide a given nutrient in an amount between an RI and UL.However, the USDA explicitly states: "The materials found on this website are not intended to be used for the diagnosis or treatment of a health problem." In contrast, the formulations developed by system 100 are intended to be used for the diagnosis, treatment, and / or management of a health problem. For that reason, the formulations in the solution space are merely 'candidate' treatment formulations or 'candidate formulations' that have something in common. That is each formulation will contain compatible ingredients in feasible quantities.
[0085] In an example implementation, processor 1000 is configured to perform an optimization process to find the best candidate within the solution space. The "best" candidate is defined by an objective function, which evaluates how 'fit' each candidate solution is. For example, an objection function can measure an error or loss. In that case the objective of the optimization process is to find a minimum.
[0086] In a simple direct evaluation approach, processor 1000 can be configured to measure a total quantity vcof a medical nutrient of interest provided by each candidate formulation, and calculate a difference between the measured quantity vcand a target dose r derived from a dose encoded in evidence data structure 2000. In that case the objective function could be expressed as:
[0087] (3) min ƒ(c) = |vc— r|
[0088] After examining all of the candidates in the solution space, a 'best' candidate is one whose measured quantity vcis closer to the target dose r, than that of other candidates in the solution space. In applications in which the solution space is eight candidates, this direct approach might be a reasonable choice.
[0089] In practice FT data structure 5100 can incorporate any number of recipes having any number of recipe ingredients. The number of FITs corresponding to an FT will be thenumber of recipe ingredients in the recipe ingredient list stored in FT data structure 5100. There is no limitation on the number of recipe ingredients that can correspond to a single FIT. The number of unique combinations of ingredients that could possibly be produced in a more complex implementation is virtually limitless. Further, in many practical implementations, system 100 is configured to develop treatment plans. A treatment plan comprises a set of treatment formulations. In that case the solution space could be virtually limitless. The direct approach described above would be impractical with such large solution spaces.FIG. 4
[0090] FIG. 4 is a flowchart of an optimization process 1700 for finding the best candidate solution in a solution space. Rather than evaluating every candidate formulation in a large solution space to identify the best formulation, process 1700 develops a candidate formulation from a small subset of the candidate formulations in the solution space. In a typical practical application, process 1700 would be much faster than the approach that measures every candidate solution in a solution space.
[0091] For example, consider a practical application in which the solution space S encompasses 10° candidate formulations (possible solutions) and the time to evaluate one candidate is 1 millisecond. In that case direct evaluation of each candidate formulation would take approximately 106x 1 millisecond = 1000 seconds (about 16.7 minutes). In the 'development' approach processor 1000 selects a subset of the candidates in the solution space, e.g., 100 of the 106candidate formulations. These initial candidates define an initial population P = 100.
[0092] Assume the development process as tested, has been shown to generate at least one solution after 100 iterations (generations). A production process evaluating 100 candidatesover 100 generations would require 100 x 100 = 10,000 evaluations. If each evaluation still takes approximately 1 millisecond, the total time to develop a solution candidate is approximately 10,000 milliseconds, i.e., approximately 10 seconds. In this example, the development approach would be much faster than the direct evaluation approach.
[0093] FIG. 4 is a flowchart of an optimization process 1700 that seeks to find a 'best' candidate solution in a solution space using a genetic algorithm rather than the direct approach described above.
[0094] The process starts at block 1704 wherein processor 1000 generates an initial population. An initial population can comprise one or more candidate treatment plans selected from the solution space wherein each candidate treatment plan comprises a set of candidate treatment formulations.
[0095] At 1706 processor 1000 measures one of the candidates in the initial population generated at block 1704. For example, a candidate treatment plan can be represented by an aggregation of the ingredients in the lists of all the formulation candidates in the plan. Processor 1000 can determine the quantity of nutrient N in each ingredient in the aggregation and sum those quantities. The sum is a measure the quantity of nutrient N provided by the initial candidate treatment plan.
[0096] At 1708, processor 1000 applies a function to evaluate fitness of the initial candidate treatment plan based on the sum determined at block 1706. This 'fitness' function determines a difference between the total quantity of nutrient N provided by the treatment plan, and a target dose DT of nutrient N derived from evidence data structure 2000. In some implementations the fitness function can be an error function. The output of the fitness function is a 'fitness score' that represents the extent to which the quantity of nutrient N delivered by thecandidate treatment plan deviates from the target dose. Processor 1000 assigns the fitness score to the candidate and proceeds to block 1708.
[0097] At 1708 processor 1000 determines whether to exit the optimization or continue through another iteration of blocks 1712, 1706 and 1707. If the decision is made to exit, the candidate treatment plan is stored in its last-modified state along with its assigned fitness score.
[0098] If the decision at block 1708 is to continue, processor 1000 proceeds to block1712. At block 1712 processor 1000 modifies the candidate treatment plan to improve its fitness score in the next iteration of blocks 1706 and 1707. In an example implementation processor 1000 may perform the 'modify' function at block 1712 by replacing the candidate evaluated at block 1707 with one of the remaining candidate treatment plans in the initial population generated at block 1704. Processor 1000 can then iterate through blocks 1706, 1707, 1708 and 1712 by replacing the candidate treatment plan at block 1712 until a 'best' candidate treatment plan is identified. The 'best' candidate treatment plan is a candidate treatment plan in the initial population that has highest of all fitness scores determined at block 1707.
[0099] Having identified the 'best' candidate treatment plan in the initial population, processor 1000 can perform subsequent iterations of the optimization by adjusting the best candidate instead of replacing it with a different candidate. In an example implementation processor 1000 adjusts the best candidate by performing one or more genetic operations at block 1708 as described in detail below with respect to FIG. 10.[000100] After adjusting the candidate at block 1712, processor 1000 proceeds to block 1706 and iterates through blocks 1706, 1707, 1708 and 1712 until processor 1000 determines an exit condition has been met at block 1708. In that case processor 1000 exits the optimization.FIG. 5[000101] FIG. 5 is a flowchart illustrating an example method 1800 for generating an initial candidate as part of block 1704 of method 1700. Method 1800 is described below in an example implementation in which the initial candidate is a candidate treatment plan. A treatment plan defines a total number of food-based formulations to be administered to a patient, wherein each treatment formulation corresponds to a component of a meal. For a treatment plan specifying three meals per day for seven days, wherein each meal is to have two meal components, processor 1000 generates a candidate treatment plan by generating 42 candidate formulations. [000102] At 1804 processor 1000 selects formulation templates (FT) from formulation template data structure 5100 (illustrated in FIG. 3). However, processor 1000 need not necessarily select 42 different formulation templates FT to produce 42 different unique candidate formulations. In the simplified example shown in Table 1 above, a single formulation template potentially generates eight different unique candidate formulations. Two different, unique formulation templates could generate 64 different unique candidate formulations.[000103] As described above with reference to FIG. 3, in one example implementation formulation templates are classified by common characteristics, e.g., by administration occasion breakfast, lunch or dinner. In that case, processor 1000 performs block 1804 by randomly selecting, e.g., two formulation templates from each class, e.g., two for breakfast, two for lunch dinner and two for dinner each day of the candidate treatment plan. For example, processor 1000 selects a first FT associated with 'main dish' component tag and a 'dinner' administration occasion tag, for every dinner meal to be included in a treatment plan.[000104] As discussed above with respect to the simplified example of FIG. 3, each formulation template of FT data structure 5100 corresponds to three formulation ingredienttemplates (FIT). Accordingly, selection of, e.g., 3 different FTs from FT data structure 5100 will result in automatic selection of 9 different FIT.[000105] At block 1806, processor 1000 selects, for each FIT one of the formulation ingredients (FI) corresponding to the FIT in FI data structure 5300 (illustrated in FIG. 3). Once processor 1000 has assigned an ingredient to each of the FITs associated with the randomly selected FTs, the resulting set of ingredients represents a candidate treatment plan.[000106] At block 1810 processor 1000 determines whether the generated candidate treatment plan is the last candidate treatment plan to be generated. If not, processor 1000 returns to block 1804 and performs blocks 1804, 1808 and 1810. This cycle repeats until the exit condition is met at block 1810, i.e., a predetermined number of candidate treatment plans has been generated.FIG. 6[000107] FIG. 6 is a block diagram illustrating an example cooperative arrangement of patient data structure 4000, evidence data structure 2000, formulation subsystem 5000, processor 1000, and substance database 3000. In the example of FIG. 6, processor 1000 is shown to be configured to receive a signal conveying a 'generate' command, i.e., an instruction to processor 1000 to perform the methods described in the examples of FIG. 4 and 5. To perform the methods, processor 1000 executes processor executable instructions stored, e.g., in instruction memory 1510.[000108] For each of the corresponding FITs above, processor 1000 can identify corresponding ingredient entries in formulation ingredient (FI) data structure 5300. For example, in a case in which processor 1000 selects FT 1 from FT data structure 5100, processor 1000 can identify FITs 1-1, 1-2 and 1-3 of FIT data structure 5200 (shown in detail in FIG. 3)[000109] Processor 1000 selects one of the ingredient entries for each FIT, thereby specifying a set of particular ingredients as instance of FT 1. For example, FT 1 includes FITs 1- 1, 1-2 and 103. For FIT 1 processor 1000 selects one of the two ingredients 744, 745 corresponding to FIT 1-1 in FI data structure 5300. For FIT 1-2 processor 1000 selects one of ingredient 846 and 847 of FI data structure 5300, and so forth. This set of specific ingredients (ingredient identifiers) represents a formulation candidate. In the simplified example of FIG. 6, the three ingredients are 745, 846 and 971 (illustrated in FIG. 3).[000110] Once a formulation candidate is generated, its formulation ingredient identifiers can be provided to substance database 3000.FIG. 7[000111] FIG. 7 is a block diagram of an example substance database 3000. In the examples herein, the substances of substance database 3000 are food substances, i.e., food items. Substance database 3000 comprises an ingredient id-to-food item id mapping data structure 3200, a food item metadata structure 3200, a nutrient data structure 3300, and a nutrient-to-food item mapping data structure 3400. Ingredient id-to-food item id mapping data structure 3200 maps ingredient identifiers representing candidate formulations, to food item (substance) identifiers of database 3000.[000112] Substance metadata structure 3100 contains metadata about each food item represented in substance database 3000. In some implementations substance metadata structure 3100 can be implemented by downloading, replicating or connecting to one or more publicly available food databases and incorporating that database into system 100. For example, the USDA National Nutrient Database provides comprehensive nutrient information and nutrient profiles for more than 8000 different foods and food products. EuroFIR provides a database offood composition data including information on nutrient content, food additives, and other food components for thousands of foods and food products.[000113] In the simplified example of FIG. 7, ingredient id-to-food item id mapping data structure 3200 is configured to map ingredient identifier 846 ('iodized salt') as it represents a candidate formulation, to food item identifier 16860 of substance metadata structure 3100. As used herein the term 'food' refers to any substance, including water, consumed by an organism for nutritional support.[000114] For any given food item described in substance database 3000, nutrient-to-food item mapping data structure 3400 contains an entry for each nutrient contained in that food item. As used herein the term 'nutrient' includes essential nutrients and non-essential nutrients.Essential nutrients include vitamins, minerals, proteins (amino acids), essential fatty acids (e.g., Omega-3, Omega-6) and water. Non-essential nutrients include non-essential amino acids, cholesterol, oleic acid, fiber and phytochemicals including flavonoids, carotenoids, and lignans. [000115] Flavonoids are a family of polyphenolic compounds which are widespread in nature (vegetables). Flavonoids include: Flavanols, Flavan-3-ols, Flavones, Flavanones, Isoflavones and Anthocyanins. While examples described herein refer to flavonoids these are merely examples. The disclosure is not limited to flavonoid or to any particular essential or non- essential nutrients. For example, various implementations may include data on content of other types of polyphenols in various food items.[000116] Nutrient data structure 3300 is configured to relate nutrient identifiers to nutrient names and nutrient units of measure. In an example implementation, nutrient data structure 3300 represents all nutrient components of every food item represented in substance metadata structure 3100.FIG. 8[000117] FIG. 8 is a block diagram illustrating a cooperative structural and functional arrangement of GUI 1650, patient data structure 4000, evidence data structure 2000, memory 1500, and processor 1000. In the example of FIG. 8 processor 1000 is shown to be configured to functionally relate the components by an example fitness function 99. Processor 1000 is further shown to be configured to implement condition detector 1900.[000118] For example, processor 1000 may receive a request to generate a treatment plan for a patient via a GUI 1650 of system 100. The request can include a patient identifier Pt. For example, a health care practitioner such as the patient's physician can enter the request. GUI 1650 is configured to structure the user's input data to correspond to the structural relationships defined by the data structures shown in FIG. 8. GUI 1650 can further be configured to instruct processor 1000 to respond to the user's input by performing the functions, methods and / or processes described herein to generate the treatment plan for the patient.[000119] As discussed above with respect to FIG. 2 A and 2B patient data structure 4000 is configured to structurally relate respective patient identifiers to corresponding respective identifiers of a patient diseases, i.e., diseases with which the respective patients have been diagnosed. In response to the patient identifier provided by GUI [], processor 1000 performs a function that maps the received patient identifier to a corresponding patient disease identifier (or identifiers).[000120] In response to receiving the corresponding patient disease identifier (or identifiers) Dx, processor 1000 is configured to perform a function that maps the patient disease identifier (or identifiers) Dx to a matching studied disease identifier (or disease identifiers) encoded in evidence data structure 2000 based on the structural relationships encoded inevidence data structure 2000. Processor 1000 is further configured to perform a mapping function maps the patient disease identifier to one or more studied nutrient N and corresponding studied doses of the studied nutrient N for each encoded studied disease corresponding to patient disease identifier Dx.[000121] As described in the examples above, in some implementations processor 1000 can be configured to adjust the studied dose(s) encoded in evidence data structure 2000 based on intake levels provided by DRI calculator 1010, thereby providing a patient-adjusted target dose DT of the studied nutrient(s) N to fitness function 99 performed by processor 1000.[000122] Processor 1000 is configured to perform method 1700 as shown in FIG. 4. Functional block 1700 shown in FIG. 8 represents blocks 1706, 1707 and 1712 of method 1700. and represented in FIG. 8 as a functional block 1700. In each iteration of these blocks method 1700 provides a candidates measured nutrient quantity (or quantities) 1733 (vc) to functional block 99. Processor 1000 is configured to map the measured quantity (vc) to a fitness score by a fitness function. For example, in a simple implementation the fitness function ƒ(c) can be represented as:(4) ƒ(c) = |vc— r|[000123] wherein c represents a particular medicinal nutrient whose quantity in a substance is measured, and vcrepresents the measured quantity of that medical nutrient in the candidate, . and r is the target dose of the medical nutrient derived from dose parameters encoded in evidence data structure 2000. In some implementations, evidence data structure 2000 encodes studied doses as ranges expressed in terms of RI and UL limits (discussed above with reference to FIG. 2B). In that target dosage is expressed as a target range of doses.[000124] In those cases, the following fitness function could be applied:(5)[000125] wherein a target dosage range is defined by a minimum target dosage rminwhich is derived from a minimum studied dosage Rminencoded in evidence data structure 2000, and a maximum target dosage rmaxwhich is derived from a maximum target dosage Rmaxencoded in evidence data structure 2000, and wherein vcthe measured amount of the nutrient of interest in the candidate.[000126] Regardless of the particular fitness function ƒ(c) applied, the value returned can be assigned to the evaluated candidate as the candidate's fitness score 1744 (S). The goal of 'modify' step 1712 of method 1700 is to modify the candidate such that measured value vcconverges on the target dose r as quickly as possible over time. To measure that aspect of process 1700, the value returned by ƒ(c), e.g., score S is provided to convergence detector 1900 on each iteration of method 1700. Convergence detector 1900 measures the magnitude of the change Δ in S from one iteration through blocks 1706, 1707 and 1712 as the process iterates over time.[000127] These measurements may define a curve with a relatively steep gradient at first. As time progresses the magnitude of Δ from one iteration to the next may begin to decrease, i.e., the gradient of the curve decreases such that only small, or no improvements in the candidate's fitness score are being made from one iteration to the next. In other words, the convergence rate decreases.[000128] Convergence detector 1900 is configured to detect a point at which the gradient (convergence rate) has decreased to virtually zero, signifying a minimum (minima) is detected. In that case convergence detector 1900 sends an 'exit' signal to processor 1000 executing method1700 to indicate its detection of the minima condition. At block 1708 of process 1700 processor 1000 determines an exit condition has been met, whereupon processor 1000 exits process 1700. [000129] In some implementations convergence detector 1900 can be configured to monitor parameters of process 1700 to detect one or more termination conditions being met. Upon detection of an of these exit conditions, detector 1900 can indicate the detection to processor 1000 performing method 1700. that includes a termination condition detector 1900 (see FIG. 9).FIG. 9[000130] FIG. 9 is a pictorial diagram illustrating an example genetic operation for adjusting a candidate treatment plan 9100 in an example implementation in which system 100 specifies food-based formulations. In that case daily occurring meals can be considered treatment administration events that define a treatment schedule. Candidate treatment plan 9100 can specify one or more candidate formulations for each daily-occurring treatment administration event or meal. In the simplified example of FIG. 9 candidate treatment plan 9100 extends over one day during which 4 treatment administration events occur, namely breakfast B, lunch L, dinner D and snack S and specifies seven candidate formulations: C1-1, C1-2, C1-3, C1-4, C1-5, C1-6. C1-7. It will be appreciated the example of FIG. 9 is simplified for purposes of discussion and is not limiting. A treatment plan generated by system 100 may extend over any number of days, weeks, months or even years; may specify any number of treatment formulations. In some implementations set 9100 can comprise a set (or 'population') of candidate treatment plans.[000131] Candidate formulations C1-1, C1-2, C1-3, C1-4, C1-5, C1-6. C1-7 can be generated by processor 1000 carrying out method 1800 as illustrated in FIG. 5. Accordingly, the number of ingredients in any given candidate formulation is determined by the number offormulation ingredient templates (FIT) associated with the formulation template (FT) selected by processor 1000 to generate a candidate formulation. Also as discussed above with respect to FIG. 3, each formulation ingredient template is connected to a set of corresponding specific ingredients, any one of which may be selected by processor 1000 to specify a candidate formulation.[000132] As shown in FIG. 9, two candidate formulations C1-1, C1-2 specify ingredients for two components (or 'dishes') to be administered, or in this case consumed, as a breakfast meal B. For example, C1-1 can specify first component, which may be a main component or 'main dish' such as 'scrambled eggs' for example. In that example, proposed ingredient 1-1-1 of C1-1 might specify a specific type of egg, e.g., 'pasture raised' as an instance of a formulation ingredient template named 'eggs'. Ingredient 1-1-2 might denote a specific variation of salt, e.g., iodized salt, and ingredient 1-1-3 might denote a specific liquid ingredient, e.g., 'skim milk'.[000133] Second component C1-2 could specify a second component (or side dish) for breakfast event B, e.g., toast. In that case, ingredient 1-2-1 might specify a particular type of bread, e.g., 'rye bread'. Ingredient 1-2-2 might denote a specific condiment for the 'toast' component, e.g., 'strawberry jam'. Likewise, two candidate formulations C1-3, C1-4 can specify two components to be administered, or in this case consumed, as lunch meal L, and so on for dinner D and snack S.[000134] As described in detail above, system 100 develops candidate treatment plan 9100 from its initial state into its final state as a treatment plan by iteratively adjusting ingredients of candidate plan 9100 to move an initial quantity of a studied nutrient N to a study-indicated target quantity. In an example implementation processor 1000 is configured to adjust candidate treatment plan 9100 by performing a genetic operation. FIG. 9 illustrates an example of a'crossover' genetic operation. Crossover is an operation by which genes of two individuals (parents) are exchanged or 'crossed' for the purposes of producing offspring whose characteristics increase their 'fitness' with reference to the fitness of the parents. It will be appreciated this is a non-limiting example genetic operation depicted in a simplified form to illustrate how genetic operations are applied in a practice of developing food-based treatment formulations as disclosed herein.[000135] In the example of FIG. 9, set 9100 specifies a candidate treatment plan. In that case, processor 1000 can generate a second treatment plan 9200, i.e., a second set 9200 of candidate formulations C2-1, C2-2, C2-3, C2-4, C1-5, C2-6. C2-7. Second treatment plan 9200 can be generated by carrying out method 1800 (best illustrated in FIG. 5). Here, set 9100 serves as a first parent, and set 9200 as a second parent for the crossover operation. In some implementations set 9100 comprises a population of treatment plans. In those implementations processor 1000 it can be more efficient to generate second set 9200 by cloning first set 9100. [000136] In the example of FIG. 9 each ingredient can correspond to a 'gene'. Each candidate formulation can correspond to a segment. Each treatment plan (set of genes) can correspond to a chromosome string. In this example, the crossover operation is performed on segment (candidate formulation) C1-1 with a breaking point 9101 between gene 1-1-1 and 1-1-2. Candidate formulation C2-1 of set 9200 has a corresponding breaking point 9201 between gene 2-1-1 and gene 2-1-2. A "breaking point" in a genetic crossover operation refers to a specific position or point in the parent chromosome strings where the genetic material is split and then swapped between the two parent chromosomes to create offspring.[000137] As shown in Table 2, the target or studied dose of nutrient N (which may be patient-adjusted) encoded in evidence data structure 2000 is 300 mg. To facilitate the detaileddescription, assume candidate formulations C1-2 to C1-7 of parent 9100 and candidate formulations C2-2 to C2-7 of parent 9200 contain identical quantities of nutrient N, while candidate formulation C1-1 and candidate formulation C2-1 differ in their respective quantities of nutrient N by example amounts shown in Table 2.[000138] TABLE 2[000139] As shown in Table 2, the measured quantity of nutrient N provided by ingredient Il (1-1-1) of candidate C1-1 is 0 mg. Ingredient 12 (1-1-2) contains 50 mg of nutrient N. Ingredient 13 (1-1-3) contains 100 mg of nutrient N. The total quantity Niotai of nutrient N provided by candidate C1-1 is 150 mg. The difference between the target dose and the total quantity of nutrient N provided by treatment plan 9100 is 150 mg. Ideally, the difference between the target dose of a therapeutic nutrient N and the total quantity of the nutrient N provided by a candidate formulation (or candidate treatment plan) would be zero.[000140] The measured quantity of nutrient N provided by ingredient II (2-1-1) of candidate C2-1 is 90 mg. Ingredient 12 (2-1-2) contains 30 mg of nutrient N. Ingredient 13 (2-1- 3) contains 120 mg of nutrient N. The total quantity Niotai of nutrient N provided by candidate C2-1 is 120 mg. The difference between the target dose and the total quantity of nutrient Nprovided by candidate treatment plan 9200 is 180 mg. Candidate treatment formulation C1-1 is adjusted by swapping to decrease the difference between the target dose of therapeutic nutrient N and the total quantity of nutrient N provided by the ingredients of candidate C1-1.[000141] As shown in FIG. 9 gene (ingredient) 1-1-1 of C1-1 of parent 9200 is swapped with gene 2-1-1 of C2-1 of parent 9200 to create child 9300 and child 9400. In the example of FIG. 9, child 9300 is identical to parent 9100 in all respects except one. The first ingredient of C1-1 in child 8300 is ingredient 2-1-1 from parent 9200. As a result of the crossing, the measured quantity of nutrient N provided by ingredient II (2-1-1) of candidate C1-1 in child 9300 is 90 mg. Ingredient 12 (1-1-2) contains 50 mg of nutrient N. Ingredient 13 (1-1-3) contains 100 mg of nutrient N. The total quantity Niotai of nutrient N provided by candidate C1- 1 in child 9300 is 270 mg. The difference between the target dose and the total quantity of nutrient N provided by child 9300 is 60 mg.[000142] In a practical implementation, child 9300 can be understood as a development of parent 9100. In other words, candidate treatment plan 9100 was developed by performing a crossing operation. Before development, the quantity of nutrient N provided by candidate treatment plan 9100 differed from the target dose by 150 mg. After development (into 9300) the quantity of nutrient N provided by candidate treatment plan 9100 differed from the target dose by 60 mg.[000143] Processor 1000 performs this development process as described in detail above with respect to FIG. 4. In each iteration, i.e., each adjustment or operation, the difference between the quantity of nutrient N provided by the candidate treatment plan under development, i.e., candidate 9100, and the target dose encoded in evidence data structure 2000 gets closer tothe 'ideal' of zero difference. In other words, in this implementation candidate 9100 is adjusted to converge the difference toward zero.[000144] In some implementations system 100 includes a neural network (not shown) configured to predict which ingredients (genes) and / or which formulations are more likely than others to lead to improved fitness in a child produced by a crossover operation. In such implementations, processor 1000 is configured to receive a prediction provided by the neural network to guide its selection of crossing points, formulations, genes, etc. for a crossover operation.[000145] In some cases, the initial candidates may be so genetically similar the exchanges of their genes (ingredients) in the modification step do not result in offspring with significantly improved fitness scores. In that case, processor 1000 may perform a mutation operation to introduce a mutant 'parent' candidate for a subsequent crossover operation. For example, processor 1000 may generate a candidate formulation by selecting an ingredient, or a formulation, not found in any of the initial candidate treatment plans, thereby producing a 'mutant' child. The goal of this 'mutation' operation is to increase diversity of the gene pool in the population, making it more likely a child will have a significantly higher fitness score than its parents.[000146] In an example implementation, processor 1000 generates an instance of a 'new' formulation template, i.e., a formulation template that was not used to produce any of the candidate formulations in either the first candidate treatment plan 9100 or the second candidate treatment plan 9200. Processor 1000 can modify a candidate treatment plan by replacing one of its formulations with the formulation produced by the 'new' formulation template, therebyproducing a treatment plan candidate in which one or more ingredients (genes) in that candidate were not present in any member of the initial population of candidate treatment plans.[000147] In any such mutation approach, it is still left to chance whether the new fitness template will in fact produce a mutant candidate that leads to improved fitness scores in offspring candidates produced by subsequent crossover operations. To address that challenge, system 100 may include a second neural network configured to predict which of the formulation templates (FT) not used to produce the initial population would be more likely than others to produce a candidate formulation having ingredients (genes) not found in any members of the initial population, and of those, which would be more likely than others to produce a candidate formulation that significantly improves the chances of offspring with higher fitness scores than offspring produced using other formulation templates.[000148] In these implementations, processor 1000 can receive the predictions from the second neural network and apply the predictions to guide the selection of a fitness template from FT data structure 5100 from which to generate a mutant candidate formulation for subsequent iterations of the crossover operation in the development process.[000149] It should be appreciated that the foregoing description describes example implementations in detail. However, the scope of the appended claims is not intended to be limited to the example implementations or the details thereof unless these are explicitly expressed as limitations in the claims. Many equivalents and suitable alternative within the spirit of the disclosure will be apparent to those of ordinary skill in the art in view of the description. These are intended to remain within the scope of the disclosure.[000150] The present invention may be implemented as a system, one or more devices, and / or one or more methods which may be impressed, embedded, imprinted or otherwise borneby a substrate as computer executable instructions. Together, the computer executable instructions and the substrate can form a computer program product. The substrate of the computer program product may comprise a non-transitory computer readable storage medium (or media) and the computer / processor-executable instructions carried thereupon, when executed by a processor and / or computer, configure the processor and / or computer to perform the special processes, functions and / or methods described in detail herein, and which special functions it could not perform in the absence of such instructions.[000151] The computer readable storage medium can be a non-transitory, tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a head disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as comprising transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire).[000152] Computer executable instructions include machine level (machine code) instructions and may include higher level instructions readable by a computer for translation to machine level instructions for execution by a processor. Computer executable instructions and computer-readable instructions may be downloaded to respective computing / processing devices for storage on a computer readable storage medium via a network, for example, the Internet, a local area network (LAN), a wide area network (WAN) which may be wired or wireless or any combination thereof. A network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers, which may include network adapter cards or network interfaces between the wide area network infrastructure and local area network devices.[000153] Computer executable instructions may include instruction-set-architecture (ISA) instructions, machine instructions, machine operation codes, firmware and micro code. Computer readable instructions may include assembly code instructions, machine dependent instructions, , state-setting data, instructions or scripts corresponding to programming languages, including object-oriented programming languages such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages and combinations thereof such as provided by the Python language. Computer readable instructions may execute as computer-executable instructions entirely on a single computer or device or partly on a single computer or device which may comprise a remote computer or server. In some implementations, electronic circuitry including, for example, programmable logic circuitry (PLC), field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute at least a portion of the computer executable instructions in some implementations.
Claims
CLAIMSWhat is claimed is:
1. A method of developing treatment formulations comprising: encoding scientific studies in an evidence data structure configured to structurally relate respective studies to corresponding studied diseases and corresponding studied doses of studied nutrients; receiving an identifier of a disease of a patient corresponding to a studied disease encoded in the evidence data structure; developing a treatment formulation for the disease of the patient based at least in part on the studied disease encoded in the evidence data structure and a corresponding studied dose of a studied nutrient encoded in the evidence data structure.
2. The method of claim 1 comprising: generating at least a first candidate formulation; determining a first difference between a quantity of the studied nutrient contained in the first candidate formulation, and the studied dose of the studied nutrient encoded in the evidence data structure; and iteratively adjusting the first candidate formulation and determining the first difference to converge the first difference toward zero.
3. The method of claim 2 comprising: adjusting the studied dose of the studied nutrient in accordance with characteristics of the patient to provide a patient-adjusted studied dose of the studied nutrient; anddetermining the first difference by comparing the quantity of the studied nutrient contained in the first candidate formulation, to the patient-adjusted studied dose of the studied nutrient.
4. The method of claim 2 comprising: selecting a first formulation template from a set of formulation templates; and generating the first candidate formulation by selecting formulation ingredients in accordance with the first formulation template.
5. The method of claim 4 comprising: structurally relating the first formulation template to a set of formulation ingredient templates; and selecting the formulation ingredients by generating an instance of each of the formulation ingredient templates.
6. The method of claim 2 comprising: generating a second candidate formulation; adjusting the first candidate formulation by exchanging a first ingredient of the first candidate formulation with a second ingredient of the second candidate formulation.
7. The method of claim 6 comprising:receiving at an output of a neural network, a prediction that the second ingredient of the second candidate formulation is more likely than other ingredients of the second candidate formulation to converge the first difference toward zero; and selecting the second ingredient to exchange with the first ingredient based on the prediction.
8. The method of claim 6 comprising: terminating the iterating in response to detecting a termination event; and subsequent to the terminating, providing the first candidate formulation as adjusted by iteratively adjusting.
9. The method of claim 1 comprising: generating at least a first set of candidate formulations to treat the disease of the patient; determining a first difference between a quantity of the studied nutrient provided by the first set of candidate formulations, and the studied dose of the studied nutrient encoded in the evidence data structure; and iteratively adjusting the first set of candidate formulations to converge the first difference toward zero.
10. The method of claim 9 comprising: generating at least a second set of candidate formulations to treat the disease of the patient;adjusting the first set of candidate formulations by exchanging a second candidate formulation of the second set of candidate formulations with a first candidate formulation of the first set of candidate formulations to converge the first difference toward zero.
11. A system for developing a therapy to improve a state of a patient comprising: an evidence data structure configured to encode parameters of a scientific study by encoding a structural relationship between a studied disease, a studied nutrient and a studied dose of the studied nutrient; a processor; a memory storing processor executable instructions that configure the processor to: develop a treatment formulation to treat a patient disease corresponding to the studied disease by selecting formulation ingredients which, in combination in the treatment formulation, contain the studied dose of the studied nutrient encoded in the evidence data structure, wherein the therapy comprises the treatment formulation.
12. The system of claim 11 wherein the processor is configured to: generate a first candidate formulation; determine a first difference between a quantity of the corresponding nutrient provided by the first candidate formulation, and the studied dose of the nutrient encoded in the evidence data structure; and iteratively adjust the first candidate formulation to converge the first difference toward zero.
13. The system of claim 12 wherein the processor is configured to: adjust the studied dose of the studied nutrient in accordance with characteristics of the patient to provide a patient-adjusted dose of the studied nutrient; and determine a difference between a quantity of the corresponding nutrient provided by the first candidate formulation, and the patient-adjusted dose of the corresponding nutrient.
14. The system of claim 12 comprising: a formulation template data structure incorporating a set of formulation templates; wherein the processor is configured to: select a first formulation template from a set of formulations templates; and generate the first candidate formulation by selecting the formulation ingredients in accordance with the first formulation template.
15. The system of claim 14 comprising: a formulation ingredient template data structure incorporating a set of formulation ingredient templates corresponding to the first formulation template; wherein the processor is configured to: select the formulation ingredients by generating an instance of each of the formulation ingredient templates.
16. The system of claim 15 wherein the processor is configured to: generate a second candidate formulation;adjust the first candidate formulation by exchanging a second ingredient of the second candidate formulation for a first ingredient of the first candidate formulation to minimize the first difference.
17. The system of claim 16 comprising: a neural network configured to provide a prediction that the second ingredient is more likely than other ingredients of the second candidate formulation to minimize the first difference within a predetermined time interval; wherein the processor is configured to: receive the prediction from the neural network; and select the second ingredient based on the prediction.
18. The system of claim 16 wherein the processor is configured to: terminate the iterating in response to detecting a termination condition; and subsequent to terminating, provide the first candidate formulation as adjusted by the iterating.
19. The system of claim 1 1 wherein the processor is configured to: develop a first set of candidate formulations to treat the patient disease; determine a first difference between a quantity of the corresponding nutrient provided by the first set of candidate formulations, and the studied dose of the studied nutrient encoded in the evidence data structure; anditeratively adjust the first set of candidate formulations to produce a terminal set of candidate formulations, wherein a second difference between the terminal set of candidate formulations and the studied dose of the studied nutrient is smaller than the first difference.
20. The system of claim 19 wherein the processor is configured to: generate a second set of candidate formulations; adjust the first set of candidate formulations by exchanging a second formulation of the second set of formulations with a first formulation of the first set of formulations to decrease the first difference.