Wednesday, July 15, 2015

Elon Musk's Advice for Entrepreneurs

Without comment, because no one says it better than Elon.

Wednesday, June 3, 2015

Controllable Parameters of Mammalian Cell Culture

Albert Einstein

Einstein famously said:
Insanity [is] doing the same thing over and over again and expecting different results.
Which got me thinking...

Question: Is there such a thing as doing the same thing over and over again and getting different results?

Answer: Biotech Manufacturing

Rob Caren once asked: "How hard can (large-scale) cell culture be? It's ONE unit operation."

He also observed that large-scale chromatography shouldn't be that hard either:
  • Send the pool through that fixed-bed reactor.
  • When the optical density is not zero shut this valve and open that valve.
  • Try not to send product to drain.
On both counts, he's right, but I can only speak to the cell culture side.

When running bioreactors, there are a few parameters that are within your control. These parameters are sometimes called "knobs" because the production team can literally go to the control system and "turn a knob" (or click a few buttons on the SCADA) to change the parameter.

For the bioreactor or fermentor, those knobs are:

pH. The intracellular pH is known to change the activity of enzymes that run the rates of metabolic reactions. Since cells regulate intracellular pH, the best you can do is to control the extracellular pH. In reality, the pH for the process is specified. And if specified well, the specification will come with a target range and a proven acceptable range. At commercial scale, you ought to be able to operate within the proven acceptable range. For more information on pH control in mammalian cultures, see this.

Dissolved oxygen. Maximizing cellular productivity means aerobic metabolism. From university biochemistry, we know that anaerobic metabolism produces far less energy (2 ATP) than aerobic metabolism (38 ATP). We also know from chemistry that the solubility of oxygen in water is quite low (<10 mg/L when temperature > 15 degC). Therefore, it is important that the bioreactor supplies oxygen. Some bioreactors supply air and others supplement with oxygen. While the dissolved oxygen range is typically specified by the process, the air supply, air/oxygen mix, flow rates and sparge-type can be determined by the facility. As previously discussed, dissolved oxygen depends on other parameters such as agitation and temperature and can be changed within the specified range.

Temperature. Temperature control happens with the bioreactor jacket where water is flowed around the outside surface of the bioreactor. When the temperature gets too hot, the control system sends cooler water; and when the temperature of the culture gets too cold, the control system sends hotter water. While temperature is typically specified, there are processes that will intentionally cool the culture to reduce the rate of metabolic reactions and extend culture viability. Also, since temperature is defined in a range, the setpoint is a turnable knob.

Agitation. Agitation is typically not specified by the process, just that the cells must be suspended (i.e. not settled on the bottom of the bioreactor).  In practice agitation rate is determined by power-to-volume calculations and stays constant for the bioreactor, nonetheless, this is a manipulatable parameter when running bioreactors.

Timing of Inoculation. Inoculation density is often specified by the process. But there's no way to "dial down" or "dial up" inoc density in a control system somewhere like you can with pH, dissolved oxygen, temperature and agitation. When cells grow, the cell density naturally increases, so the way to control inoculation density is to time it (i.e. wait vs. not wait).

Timing of feeds. In fed-batch cultures, additional nutrients are added to the culture. The additional nutrients tend to increase the osmolality and the additional volume can help dilute the cellular waste (like ammonium). Not in all processes, but in some processes, the timing of feeds have been shown to impact culture productivity.

Timing of shifts. Some processes are specified with changes in setpoints of the aforementioned parameters (e.g. pH or Temperature). The shift specifications come in the form of: "When the culture duration reaches X hours" or "when the cell density reaches Y x 106," then change the set point up/down.

When building multivariate models, it is crucial that controllable parameters are modeled as factors and here's why:

When your model shows can correlate significant main effects and interactions to some process output (e.g. titer or quality attribute), you can actually step out of theory and prove it in practice.

Friday, March 20, 2015

New Features for ZOOMS 2.2.4 (shipped)

There are a just a couple of usability improvements for ZOOMS 2.2.4.

Remove keywords with click.

Customers were telling us that it is easy to search for a trend by clicking on the various links within the search engine result page (SERP). But it was hard to remove some of the parameters that they didn't want. With ZOOMS 2.2.4, you're able to remove any keyword from the query with a simple click.

Below the search bar, there is a statement indicating that results were found including the timestamp of the search (in case the user has stepped away, they ought to know that the trend may be stale).

Further below the search bar is a list of all the keywords that were recognized by ZOOMS. Units are shown with a unit icon. Parameters are shown with a parameter icon..etc.

As of ZOOMS 2.2.4, these keywords are buttons with an "x" to the right-hand-side. Clicking the button will remove that keyword from the search box (so that you can re-search).

Show Values textbox travels

Another comment we were getting was that the "show values" textarea stayed at the top, and when you had multiple trends found, if you clicked "show values" on a lower trend, you could not see that the values actually populated. With 2.2.4, this issue has been fixed. The textarea "follows" you as you scroll:

This does not require a full re-install, just a single-file to update the changes. Go ahead and send email Zymergi Technical Support and we'll send you the file and instructions.

Tuesday, March 3, 2015

ZOOMS Data Historian Search Engine Configuration

ZOOMS is your search engine for process (trend) data.

Step 1: Go to the home page (using web browser)
Step 2: Input your keywords (hit enter)
Step 3: View the SERP

(SERP is an abbreviation for "Search Engine Results Page.")

This is the way that Google has conditioned the world to find pages of information on the internet and this is the user experience we at Zymergi think ought to be available in the enterprise.

But how do you configure ZOOMS?

It turns out for ZOOMS to work with your system, you need to answer 4 questions:
  1. Where should ZOOMS get time-series data?
  2. Where should ZOOMS look to know about the points (i.e. tags or IO)?
  3. Where should ZOOMS look to find out what units and parameters exist on your system?
  4. Where should ZOOMS look to find "batches" that exist on your system?
In each of the cases, if the answer is, "I don't know," that's perfectly alright.  ZOOMS has an internal database to keep track of all this.

Questions 1 and 2 refer to the time-series data and the point configuration.  You see, ZOOMS is a search engine for trends, and trends are created when you plot values vs. time:

ZOOMS trend example

All this means is that you need some place to put the time-value pairs (OSI calls this the PI Archive); and you need some place to put the tag information (in OSIsoft PI, this is the "point database").  These two databases are responsible for the Y-axis.
Point database and Archive

Customers typically select OSIsoft PI as the time-series data source and the point data source.  That's awesome.  Zymergi is an OSIsoft Partner and frankly, we think they're fantastic.

Question 3 talks about units and parameters.  Units and parameter are the alternative way that people refer to tags.  People think of I/Os as a parameter of some piece of equipment, and so we need a place to store unit/parameter combinations.
batch database to store time-windows

ZOOMS was created back in 2008 (can you believe we're going on 7-years?) and back then, the data store for unit/"alias" data was the PI Module Database. Since then, OSIsoft has moved towards Asset Framework ("AF"), but since AF wasn't ready during ZOOMS development, we created our own metadata storage.  So while any relational database will do, there is a local database that ZOOMS uses.

Question 4 is about time-windows.  Since time-windows is what defines the X-axis of a trend, being able to search by time-windows is of utmost importance.   In batch-processes (such as pharma and biotech companies), batch identification is used to identify time-windows, but if you're a continuous process, you can define batches as work-shifts, days of the week, fiscal metrics...whatever.  It doesn't matter.  What matters is that there is a way of storing time-window information:

ZOOMS trend example

This is why ZOOMS has a local time-window data store.

The key here is that being able to search for trend data depends on 4 data sources and thus the configuration of ZOOMS starts with setting these connection strings.