Clinical Decisions Support Systems I: Known Unknowns

1.  Rheingold: Interactive Interactions

Who among us has not had a client or a friend that was currently on a bouillabaisse of 3-4 pharmaceuticals and perhaps 5-6 (or more) dietary supplements?  Ever wonder what exactly was going in there? Perhaps a nifty little app I recently coded might be just what the doctor orders.

Rheingold can help identify possible drug/nutrient/food interactions by virtue of its ability to crawl a dataset of their known effects on cytochrome function. It then displays the results in network fashion.

Originally built for my genomic tool Opus23, where the cytochrome status of the particular loaded client is also figured into the outcomes. This open-source version still affords the attentive clinician the opportunity to provide some degree of due diligence, either when attempting to sort out a confusing plethora of ingested agents on initial presentation, or to help tailor a de novo intervention with the full confidence that one’s protocol is not inherently self-defeating.

As with most bioinformatic apps, the user interface, executables and analytics are always invited to the Big Ball, whilst the data has to stay at home and wash the floors. However, try and do something computational without data: Can’t be done. In the case of Rheingold, I was confronted with a similar dilemma as when I began to build microbiome analytic apps. There are no existing comprehensive datasets either – for both cytochrome interactions and commensal bacteria. So, in both cases, development began with building a robust database. Beyond that there was some simple combinatorics and a variety of depiction tricks to make the output look ‘pretty,’ since we are, by design, a species with special skills at recognizing patterns.

Well, let’s take Rheingold out for a test drive, shall we?

2. Running Rheingold

Fire up your browser (my apps seem to prefer Chrome, Safari and Opera; the more recent incarnations of Firefox seem to drop links to information popups. By the way, iPads also don’t allow modal popups. In both cases the app will work, but you’ll lose access to the ability to drill down and get smarter.)

Point your browser to the main directory for the apps linked to this column:

 At the main screen, verify to Datapunk that you are indeed a human by sliding the green box to the middle of the range track.

Having demonstrated your humanity, fire-up Rheingold by going up to the top menu bar and clicking:

Open-Source Tools ->AI/ML->Rheingold (Drug Interactions)

That should take you to a screen that looks like this:

Congratulations! You are now ready to run Rheingold. You can cross-reference up to ten agents (an ‘agent’ in Rheingold is either a drug, food, xenobiotic, or nutraceutical). Just type a few letters of the agent you’re interested in including in your query and if it’s in the database, Rheingold will auto-complete the entry for you.

For a quick demonstration, type in ‘Hypericum’ and let Rheingold auto-complete it for you. Then type in ‘Propranolol’. Click the blue ‘Run Rheingold’ button.

3. Examining Rheingold’s Output

After the squirrel on the treadmill finishes with its calculations, the following screen should appear.

Rheingold’s output is displayed in two parts, the first is the network of cytochrome interacts that associated with the query cluster. We can see here that Hypericum (St. John’s Wort) is a strong inducer of several cytochromes, all of which have as one of their substrate’s propranolol. Thus, one could easily conjecture that Hypericum usage will be associated with excessively rapid clearance of propranolol. Not good!

Any node in the network is clickable and should fire up an informative popup. If the network is too busy, you can move things around with your mouse.

The bottom half of the screen (you may have to scroll down to see it) is a table that lists other possible interactions that might result from the query. It’s a smart table so you can filter by the search box and sort by clicking on the column titles. Jeez! Hypericum messes with a lot of things!

3. Closing Thoughts

We’ve all been guilty of employing an uninformed version of polypharmacy in our careers at one time or another. Whether it is from ignorance and lack of information (‘Sorry Doc. I forgot to tell you that I’ve been taking tetracycline for my acne for the last 15 years.’) or other reasons, we might be surprised at just how many interactions can insert themselves into even the simplest protocol. Hopefully, Rheingold can help you to ‘look before you leap’ into your next series of prescriptions.

4. An Easter Egg

Since I’m writing this column a few days before Easter, why not include a little something extra?

Rhythmus is very powerful prescriptive AI tool included in Opus23. It calculates loss or gain of specific molecular function as a consequence of the client’s genomic data, infers the appropriate action and finally recommends a selection of high-value agents. A tiny ‘app within the app’ is Rhythmus Logo, a simple tool that creates network pharmacology from user-supplied molecular targets.

To run Rhythmus, go up to the top menu bar and click:

Open-Source Tools ->AI/ML->Rhythmus (polypharmacy)

You will be greeted by this screen:

Using Rhythmus is easy, just plunk in a few genes/molecules you are interested in tweaking, tell Rhythmus what action (up-regulate/down-regulate) you’d like to investigate, and push the blue ‘Run Rhythmus’ button. 

Let’s tell Rhythmuso that we want to investigate down-regulating some catecholamine targets (COMT, MAOA) and up-regulate the anti-inflammatory target SOD1. We enter the gene symbols and allow Rhythmus to autocomplete them for us. Then we set that action for each and away we go:

The French philosopher Voltaire once described a bore as ‘someone who told you everything.’  In this case Rhythmus is telling us way-too-much; especially everything about SOD1 – and making for a very untidy display.

Let’s go back and fix it. Click the ‘Go Back’ link at the top of the page. It will take you back to the form. Now, next to SOD1, tick the box labeled ‘Intersections only’ and hit the ‘Run Rhythmus’ button.

Much better. Rhythmus now only shows nodes for SOD1 that intersect the other genes; in this case Berberine, Passiflora and Curcumin. By the way, notice how Rhodiola intersects both COMT and MAOA.

As with most of my apps, most things fire up a cool information popup.

5. Closing Thoughts

I recently read of the launch of a new program at Harvard Medical School, entitled ‘Computationally Assisted Medicine.’ Its goal is to help medical students become more comfortable with handling data dynamically. This is long overdue. To this day we still tax our students with droll memorization that is frankly medieval, while depending on the intergeneration conveyance of information, which while important, cannot be cleansed of its own counterfactuals.

As we move towards a more precise, inter-individualized medicine, we can only expect that exceptions will, more and more, continue to be the rule. To find and harness these exceptions, we need information technology such as bioinformatics. And bioinformatics needs doctors who can code as artists. Let’s hope the schools begin to realize this.

Leave A Reply

Your email address will not be published. Required fields are marked *