Sunday, January 27, 2013

Building an Analog Integrator

January 27, 2013 10:22 pm

Something I've been wanting to do for a while was is to build a simple analog integrator. Here is my first attempt. I bread-boarded the circuit first to get it working then make it more permanent and stable by soldering the components onto a vero board. The picture below shows the result:


The three cables coming into the top left of the board are the +12, 0 and -12 volt power lines. The two cables coming out from the right-hand edge of the circuit board are the input and output lines (from the top) respectively. The input is fed from a function generator and the output fed to an oscilloscope. The figure below shows the result of the feeding a 50 Hz sine wave. Integration results in a cosine wave on the output. Note the two decoupling capacitors in the top left corner that despike the power lines. These are 0.1 microF capacitors.



A final test shows the result of feeding in a square wave with the resulting triangle wave as output.



In the circuit I used a LF356 as the op amp which has a JFET input stage resulting in a very high input impedance and is typically used for precision high speed integrators. It is also quite cheap at about a dollar or less. The 1 megohm resistor across the integrator capacitor is there to avoid any unnecessary integration as a result of slight biases in the inputs when the input is supposed to be at zero.

There are a number of improvements that could be made to this circuit. The first is that any voltage bias as the inputs when both are set to zero should be removed by placing a potentiometer across the +voltage rail and the pot adjusted as appropriate. The second improvement is to add a reset button (mechanical or electronic) across the integrating capacity to reset the circuit when necessary.




 




Thursday, December 20, 2012

Self-Publishing: A Personal Experience

December 20, 2012 1:52 pm

As some of you may know, a year ago I published my book 'Enzyme Kinetics for Systems Biology' and I am about to release the second edition. Next year the hope is to publish another title. Self-publishing my own book has been something I've wanted to do for many years and I thought I'd share some of the experiences and rational for my decision.

Although it has been possible to self-publish almost since the beginning of the written work, recent developments have made it much easier, credible and worthwhile to do. A combination of the internet, print on demand and sophisticated writing tools has made self-publishing an intellectually rewarding and sometimes a highly profitable adventure.

The first question is ask is why didn't I just go with a traditional publisher and I've been asked often enough? The main reason for self-publishing is control, these include things like:

Style of the book and text
Book size
Book price
Ability to offer discounts
Choose between Black/White or Color or have both
Design your own book cover
Publish however I like, free pdf, print or kindle version etc.
The royalties are much much better

These reasons are all well and good but there are also a couple of more subtle reasons which really made a difference to me, these include:

1. The first is that all figures and text in the book remain my property. In a traditional publishing model, the publishers get copyright which means I cannot reuse the figures or text anywhere else. The first edition has 97 figures. I created each one so I am not inclined to simply hand over copyright to an organization that contributed nothing to their creation.

2. Once in the hands of the publisher, the publisher will decide how many copies will be printed (i.e sold) and whether there will be a second edition or not. If the book goes out of print, I cannot take control back and you'll never see the book published again.

3. Once published it is not possible to update the book with revisions. For example, there will no doubt be some typographical errors in the text. A traditional publisher will not release a new revision with corrections or minor updates.

I have discussed these issues with a number of publishers especially with respect to holding copyright and the ability to create revisions but they they were not interested in changing.

In the next blog I will talk more about the mechanics of self-publishing.

Wednesday, December 5, 2012

LaTeX and Chemistry

Originally Posted on  by hsauro

I recently had the need to draw some chemical equation in a LaTeX document. In the past I’ve used ChemDraw and loaded the image into my document as a png file. Last time I used ChemDraw was on my old computer and I didn’t have it on my new machine. So rather than download a copy and remind myself how to use it, I decided to see what was going on in the LaTeX community with respect to chemistry support. The answer is a lot. What I found was a number of new packages. One particular package, chemfig, written by Christian Tellechea, caught my attention. One needs to read the documentation before using this package but its mode of operation is fairly straightforward. Other related tools can be found at Clemens Niederberger

For those who are curious, chemfig is built on tikz, an excellent general-purpose drawing package. The main command in chemfig is:

   \chemfig{atom1 bond type[angle,coeff,tikz code]atom2}

Atoms can continue to be added to the list. A very simple example is:

\setatomsep{2em}
\chemfig{CH_3-CH_2-COOH}

\setatomsep just set the bond length which I made a little longer compared to the default. Or expressed in a different way using the angle option:

\chemfig{H-C(-[2]H)(-[6]H)-C(-[2]H)(-[6]H)-C(-[7]H)=[1]O}


For my purpose I need to draw a transaminase reaction, for this, I used the following code:

\setatomsep{1.8em}
\schemestart
\chemname{\chemfig{[6]COO^{-}-[6]CH(-[0]NH_3^{+})%
-[6]CH_2-[6]CH_2-[6]COO^{-}}}{glutamate}
\+{0pt,0pt,-48pt}
\chemname{\chemfig{[6]COO^{-}-[6]C(=[0]O)-[6]CH_3}}{pyruvate}
\arrow
\chemname{\chemfig{[6]COO^{-}-[6]C(=[0]O)-[6]CH_2-[6]CH_2%
-[6]COO^{-}}}{$\alpha$-ketoglutarate}
\+{0pt,0pt,-48pt}
\chemname{\chemfig{[6]COO^{-}-[6]CH(-[0]{NH_3^{+}})%
-[6]CH_3}}{alanine}
\schemestop

which yielded:



It could probably be tuned up a bit, for example, the molecules are a bit close to the `addition' symbols. One thing I couldn’t get working very well was coloring atoms and groups of atoms.

If you use MiKTeX on windows all you have to do is include the following line at the start of your document:

\usepackage{chemfig}

and MiTeX will automatically download the package. Further details of the package including the fairly long manual can be found at CTAN.

Tuesday, November 20, 2012

Why is C++ so popular?

November 20, 2012 3:03 pm

I've never quite understand the attraction of C++ given its (growing) complexity and the many ways to get into trouble. Here is another reason, its verbosity. The following is a fragment of code from an open source library which will remain nameless. The purpose of this code is to read an XML file and validate using a schema.

In C++:

try
{
   xml_schema::properties props; // to store information on the XSD for validation purposes
   props.schema_location ("http://myurl.org/libX/pd/0.1", "../resources/X.xsd");

   auto_ptr myXobject ( libX::pd_0_1::X_ (Xmlfile, 0, props) );
   // [..] do something with myXobject
}
   // validation errors result in an exception being thrown
   catch (const xml_schema::exception& e)
{
   cerr << "X-ML parsing error: " << e << endl;
}

The equivalent in Java is:

MyObj obj = ObjUtil.readFromFile(Xmlfile, "../resources/X.xsd");

and the equivalent in C:

MyObj* obj = readFromFile (Xmlfile, "../resources/X.xsd", &error);
if (!error) {
   // [..] do something with obj
   free (obj);
} else
   printf ("%s", getLastError());

Tuesday, October 2, 2012

Misconceptions in Metabolism II

Originally Posted on  by hsauro

A week ago I wrote about some misconceptions in metabolism that arose from a trip to a systems biology workshop in Holland. This week I discovered that Nature is perpetrating similar misconceptions in their News and Views section.

I came across the News and Views article: “Cancer Metabolism: When more is less” by Lei Jiang & Ralph J. DeBerardinis. They review a recent paper in Nature Chemical Biology by Anastasiou et al. which showed that increases in Pyruvate Kinase levels may depress metabolites concentrations upstream of the enzyme step. Not a surprising conclusion if one understands basic enzyme kinetics. The original paper was ok though it seemed to over emphasize the structural aspects of the story compared to the system implications which were perhaps more interesting.

The News and Views article however went rogue on us, and perpetrated in fine form the misleading notion of bottlenecks in metabolic pathways, something I thought had been laid to rest 40 years ago with the publication of the seminal works by Kacser and Burns and Heinrich and Rapoport. The term bottleneck is a very imprecise word to use for something which is actually far more subtle. What really annoyed me was Nature’s use of the figure shown below. The figure is nicely drawn but it overly simplifies a much more complex situation. More dangerous however is it gives the impression that metabolism can be regulated at single steps which in general is quite wrong. Nature has done a great disservice to the scientific community with this article. Molecular Biologists have enough difficulties most of the time understanding complex systems without giving them tempting simplistic stories and pretty pictures. Being published Nature unfortunately gives the story an unwarranted air of authority which it does not deserve.


Wednesday, September 26, 2012

Misconceptions in Metabolism II

October 2, 2012 8:58 am

A week ago I wrote about some misconceptions about metabolism that arose from a trip to a systems biology workshop in Holland. This week I discovered that Nature is perpetrating similar misconceptions in their News and Views section.

I came across the News and Views article: "Cancer Metabolism: When more is less" by Lei Jiang & Ralph J. DeBerardinis. They review a recent paper in Nature Chemical Biology by Anastasiou et al. which showed that increases in Pyruvate Kinase levels may depress metabolites concentrations upstream of the enzyme step. Not a surprising conclusion if one understands basic enzyme kinetics. The original paper was ok though it seemed to overemphasize the structural aspects of the story compared to the system implications which were perhaps more interesting.

The News and Views article however went rogue on us and perpetrated in fine form the misleading notion of bottlenecks in metabolic pathways, something I thought had been laid to rest 40 years ago with the publication of the seminal works by Kacser and Burns and Heinrich and Rapoport. The term bottleneck is a very imprecise word to use for something which is actually far more subtle. What really annoyed me was Nature's use of the figure shown below. The figure is nicely drawn but it overly simplifies a much more complex situation. More dangerous however is it gives the impression that metabolism can be regulated at single steps which in general is quite wrong. Nature has done a great disservice to the scientific community with this article. Molecular Biologists have enough difficulties most of the time understanding complex systems without giving them tempting simplistic stories and pretty pictures. Being published Nature, unfortunately, gives the story an unwarranted air of authority that it does not deserve.


From "Cancer metabolism: When more is less", Nature 489, 511–512 (27 September 2012) doi:10.1038/489511a by Lei Jiang & Ralph J. DeBerardinis

Sunday, September 23, 2012

Ludicrous as it may sound

August 23, 2012 2:13 pm

I was reminded the other day of an interesting quote from a 2000 FEBS paper which starts with:

"How highly would one rate an economic analysis of a factory that ignored the consumer demand for its products? Ludicrous as it may sound, this is precisely what most metabolic studies of the past century have been doing."

FEBS Lett. 2000 Jun 30;476(1-2):47-51.Regulating the cellular economy of supply and demand. Hofmeyr JS, Cornish-Bowden A.

Wednesday, September 19, 2012

The Delphi Color Palette

September 19, 2012 7:30 pm

This is the Delphi color palette, both 'normal' and 'web' colors. The 'normal' colors start with red and end with black. The 'web' colors start at Moccasin. 

See http://docwiki.embarcadero.com/RADStudio/en/Colors_in_VCL) for more information.







Tuesday, September 4, 2012

Misconceptions in Metabolism I

 September 26, 2012 10:27 pm

I'm currently at the ISGSB meeting (International Study group for Systems Biology - formally BTK) in Holland. This is a group that values both theoretical analysis and experimentation in biochemical network analysis. It's an interesting group of people that I have literally followed for a couple of decades. A new researcher in the field of metabolism gave an interesting but false statement in their talk that requires some clarification.

The statement was this, (using their terminology).If a particular step in a metabolic pathway is rate-limiting then the substrate to that reaction step is also rate-limiting. True or false? First of all, what did they mean by the terms rate-limiting? If a biochemical step is rate-limiting it means that increasing the enzyme activity will increase the steady-state flux through the pathway, in MCA (metabolic control analysis) this is measured using the flux control coefficient.  A rate-limiting substrate is similarly defined where if the substrate concentration is increased the reaction rate of the step increases (note, not the flux but the reaction rate associated with the substrate). We measure the rate limitingness of a substrate using its elasticity coefficient.

One of the well-known results from MCA is the connectivity theorem, which states that the magnitude of a flux control coefficient is inversely proportional to the substrate elasticity of the same step. This is easy to understand. If we were to increase the activity of a biochemical step that has a high flux control coefficient, the flux through the pathway will increase. If we look at this more closely, when we increase the enzyme activity this must result in a higher consumption of substrate which in turn will trend to decrease the substrate concentration. If the substrate happened to have a high elasticity, this drop in substrate would tend to cancel out any increase in reaction rate brought about by increasing the enzyme activity. That is, a biochemical step that has a high flux control coefficient must necessarily have a low elasticity.

We, therefore, conclude that the original premise was false. For a biochemical step that is rate-limiting, the substrate for that reaction step will NOT be rate-limiting.

Monday, July 30, 2012

Did Venter Create Life?

June 30, 2012 9:05 pm

Perhaps a bit late but the topic of whether Venter actually created new life came up again in a recent workshop I was at, the conclusion:

No

So what did he do? By analogy what he did was akin to someone taking the Koran written in Arabic or an ancient Archimedean text written in Greek and creating an exact copy. Beautifully executed but the copiest had no idea what the text said. Venter is the modern version of a dedicated medieval monk.

Sunday, June 10, 2012

Visualizing Software Development

 June 10, 2012 5:55 pm

We maintain a piece of software called roadRunner which is a backend simulator used in a variety of software tools. It was originally written in C# by Bergmann and Sauro but this year we decided to rewrite it in C/C++ to broaden its appeal. Totte Karlsson is doing the rewrite which is now close to completion. In the process he used gource to record all the changes that happened in the form of a video as the software was redeveloped. Here is the video he made and some selected still shots.