Congratulations to the Cheeseheads on their Super Bowl victory. As a fan of that pro-sports desolate wasteland known as Cleveland, and despite a conflicting desire to demonstrate league superiority of the AFC North, I found myself pulling for the team in green (plus I love cheese). Nice to see a bottom seed find their mojo and run the table. It was amusing to watch all the players simultaneously rub the Lombardi Trophy and snap a picture from their phones. More than ever, our phones have become extensions of ourselves. TechCrunch even featured an article titled, “The Super Bowl Apps/Websites So That You Can Pretend You’re Into The Game While Looking At Your Phone.”
Which brings us to the topic of this blog: extensibility. The latest crazy big number Apple has given for the number of iPhone apps is 300,000, double from last year. The number of R packages is now north of 2,000 and growing exponentially. SAS has spent considerable time and effort over the past several years making its business intelligence platform both stable and extensible across its powerful set of vertical applications. Extensibility -- described by Wikipedia as "the inclusion of hooks and mechanisms for expanding/enhancing the system with new capabilities without having to make major changes to the system infrastructure" -- has been a critical factor in the success of these and many other modern software projects.
JMP 9 includes a new extensibility framework of its own: add-ins. This capability has been a very welcome addition in our life sciences efforts, as JMP can be quite useful in multiple scientific areas beyond those covered by JMP Genomics and JMP Clinical. We’ve recently written two add-ins, both of which are growing in popularity. To download add-ins, you'll need a free SAS login.
The Bioassay Add-In fits four- and five-parameter logistic models to nonlinear dose-response data and includes functionality for testing two curves for parallelism. It calls the Nonlinear platform in JMP in the background and includes graphical output like confidence shading, EC50 bars, chemical structure overlays, and clustered heat maps of the fitted curves. Here are a couple of screenshots:
The Method Comparison Add-In implements a series of modules for comparing measurement methods according to Clinical and Laboratory Standards Institute (CLSI) guidelines. It turns out that nearly all of these methods are already available in JMP, but under a different name. For example, Deming regression is the same as orthogonal regression in JMP. One method not available directly in JMP but which has been implemented in JSL (thanks to very helpful interactions with some colleagues from Roche) is Passing-Bablok regression. Modules for Accuracy, Precision, Linearity, and Performance make the necessary connections and produce dynamically linked graphical dashboards as shown below:
Both add-ins borrow some ideas from JMP Genomics and JMP Clinical, including their structure for tabbed reports. Bioassay, Method Comparison and many others add-ins are freely available on the JMP File Exchange.
Programming guru Allan Kelly says, “If I were to attempt to summarise my philosophy of software development in one sentence it would probably be: Software must stay soft, malleable. The discipline of extensibility is the tool which best helps us achieve this.”
Sounds reasonable even to a Browns fan. Alas, I see the Cavaliers have recently broken the NBA record for the longest losing streak. Maybe extensible software can somehow save us. In the meantime, I’m going to watch some ACC hoops and imagine Dick Vitale chanting: “Extensibility, Baby!”