tags:

views:

488

answers:

2

I think this is a completely unique question on Stack Overflow. First some background:

I've been asked to write a new GUI on top of a calculation engine called BRCAPRO (brack-a-pro). BRCAPRO implements a Mendelian computational model based on a piece of software called BayesMendel. BRCAPRO calculation are used by doctors and surgeons specializing in cancer treatment to show patients:

  • The probability of being diagnosed with cancer based on their genetics and family history.
  • The change in life expectancy based on different forms of treatment and/or the age at which these treatments are started.

I've done enough research to know that the BRCAPRO formulas are far too complicated to reasonably implement in my own code.

There is an existing well-known (to cancer doctors) software package called CancerGene: http://www8.utsouthwestern.edu/utsw/cda/dept47829/files/65844.html. This program is very old, runs on Windows 95 and includes calculating engines for several forms of cancer my client does not work with. Ideally my client would like his application to run on the web so that he can share information with other doctors easily.

My task is take the CancerGene application, which is built on the BRCAPRO engine, and:

  1. Duplicate 90% of its functionality
  2. Remove unnecessary functionality
  3. Modify the output of reports
  4. If possible, make it web-based

Now my question:

Does anybody have any idea how to code against BRCAPRO? I have Googled for two days and found no API documentation or development information of any kind. Wikipedia says that the BayesMendel modeling software is written in R, but I don't have any idea what BRCAPRO is written in. I know absolutely nothing about R.

To be clear, I don't need to modify the behavior or calculating engine of BRCAPRO. I just need to know how to feed it input so that it returns numbers to me.

-- Edit to add more information --

I downloaded the CancerGene application in the above link and installed it. There was a small amount of documentation, including the data format that BRCAPRO expects to receive. Without getting into an unnecessary level of detail, BRCAPRO expects matrix-formatted data where each column represents a genetic trait and each row represents a family member. Now I just need to know how to pass this matrix to the BRCAPRO engine once I collect it from my Web/Windows form.

Here's hoping there are a couple of doctor/developers here on Stack Overflow!

KN

+2  A: 

According to this link:

The BRCAPRO model is now included in the R package BayesMendel for carrier probabiity [sic] prediction.

So it looks like you use it from R.

And the documentation for the BayesMendel package at least might get you started. Though it looks like you're going to have to learn R. :)

RobS
Thanks RobS. I've pored over both of those links already in my research.I downloaded the CancerGene software and found documentation for structuring input to BRCAPRO in matrix form. Also, BRCAPRO appears to be an Access database of some kind. I just need to know how to give BRCAPRO my matrix.
Kyle Noland
+1  A: 

I don't think anyone will be able to fit code for a full application into a tiny window, but I'll give you some thoughts, based on how I might approach this:

  1. Install R
  2. Install BayesMendel package -- this includes BRCAPRO routines
  3. Install RPy -- a Python-to-R bridge
  4. Write RPy-based Python code for bringing your data into R, turning it into a data frame, and analyzing the data frame with the BRCAPRO component of BayesMendel
  5. Bridging the analytical output of BayesMendel to a brcaResults class that you write
  6. Wrap accessors to your brcaResults class in a GUI, using any one of many Python GUI frameworks

That's an overview of one way to do this.

The nice thing about this approach is that this should be easy to glue together and keep up-to-date with new BRCAPRO features.

Alex Reynolds