AI Expert Newsletter
AI - The art and science of making computers do interesting
things that are not in their nature.
December 2005
Just before writing this month's issue, I
happened to tune into a BBC Radio 4
programme about a man who trains birds
to act. He subverts the imprinting instinct that makes them
treat the first moving object seen after hatching as a parent, and
even gets them to fly in formation beind an ultralight aircraft.
I missed the name, but a Web search found
quite a few candidates, such as the
Patuxent
Wildlife Center Crane Migrators.
At about the same time, I was reading a new book entitled
The
Gecko's Foot by
Peter Forbes. It's all about understanding and
imitating biological structures for use in
engineering. Structures like the
exquisitely multi-levelled compliance of the gecko's
foot, which is inspiring a sticky tape
- not Spiderman but Geckoman - and synthetic
gecko hairs for
ultra-mobile robots.
Engineers show as much ingenuity in exploiting
evolution's products as evolution did in inventing them.
That, on a microscopic scale, is the subject of this month's
issue: bacterial and genetic computation, and the
systematic engineering of microbiological systems.
I look at some of the projects built for the
intercollegiate Genetically Engineered Machine
competition or iGEM, including such explicitly computational
systems as a
binary counter developed by the
Eidgenössische Technische Hochschule Zürich which
runs on gene expression
regulated by zinc finger proteins.
If this seems a long way from AI, think how far we've come since
the
first transistor
amplifier or
J-K flip-flop. In fact, the
Zürich team's counter uses
a genetic J-K flip-flop. Other teams are reverse-engineering
E. Coli bacteria, and some are connecting E. Coli
control systems to bits taken from other
organisms. There's
research on programming noisy and unreliable
biological systems, and on new concepts
of biological modularity. It's probably not long before
roboticists test-run their favourite
control paradigms in an E. Coli chassis.
I shan't explain how to build a bacterial
Prolog interpreter - come back in ten years' time for
that. But I shall exhibit some of iGEM's computational
achievements, explain a bit of the background, and
show how biology is becoming computing. Or, as two of
the subject's
researchers write:
we don't fix
radios by shooting randomly at their components; and we don't
build microprocessors from chunks of metal and silicon found
lying about the countryside.
Etch a Sketch® is a toy many will
recall from childhood Christmases. It's a small red plastic case with a grey
screen. Two knobs on the case drag a stylus vertically or horizontally
along the screen's backside,
scraping
off the fine aluminium powder with which it's coated. Shaking the case
recoats the screen and erases your picture; and
when you're 5 and find one in your stocking, it's magic.
Bact a
Sketch is also an erasable drawing screen; but not one to
give the average child. You draw using a UV pen, erase with heat,
and the drawing surface is bacteria.
Bact a Sketch - also known as
BioSketch - was Harvard's
entry for
iGEM,
the intercollegiate
Genetically Engineered Machine competition.
iGEM is an annual event: it
began in 2003 with an MIT course in synthetic genetic systems,
and preparations for 2006 are already
underway. The idea behind it is to take advantage of
the increasing capacity for bulk DNA synthesis,
which is doubling every 18 months in a biochemical version of
Moore's Law.
Competitors have to
design,
build, and characterise genetically encoded machines,
going from idea to design to DNA to cell
in 3 months. Its organisers hope that we'll also
learn a lot about how to engineer biological systems. As
the University of Texas at Austin team
say
in their iGEM wiki page:
This year we have several project plans which,
if they don't self-assemble into green goo and
eat the molecular biology building, should be fairly
amusing. Being at heart a bunch of hackers, we believe
that the greatest contribution to the field will come
from actual experiments and thus we are plowing ahead
with our experiments while modeling our system.
For this feature, I've done a bit of reading on
iGEM and the biological background of its and other projects
in computational biology,
in the hope that I can explain something of their
workings to non-biologists. I'm not a biologist myself,
so can't claim too much professional knowledge, but
I have tried to check the material carefully. Links are
ones that seemed useful, interesting and
authoritative: I won't guarantee that they are always the
best for their topic.
With that caveat, let's continue with another iGEM entry: a
bacterial
edge detector
from the Universities of Texas at Austin and
California in San Francisco.
In image processing,
edge detection locates boundaries between areas
of different light intensity in an image,
possibly indicating the edges of objects.
It's a well-known task; but
most edge detection algorithms do not run on
massively parallel E. Coli.
On the way to their edge-detector, Austin/UCSF
built the world's first bacterial
camera, using a genetically engineered
light-to-pigment-converter which
lead one
expert to say "Die
Amerikaner haben einen wunderschönen, lebenden Lichtsensor entwickelt" -
"the Americans have developed a wonderful living light sensor".
Pictures taken with the camera, including
a portrait of co-adviser Dr. Andy "Escherichia" Ellington,
can be seen on an Austin
photos
page.
The bacterial camera is way too slow to replace
conventional film, but that's not its
purpose. If we can program bacteria to
lay down opaque pigment when stimulated by
light, we should also be able to make them deposit
polymers or metals:
bacterial
microlithography, and note that the
bacterial camera has a resolution of about
100 megapixels per square inch. Also, the stimulus
need not be light: we might program bacteria to
detect
TNT
from buried landmines,
indicating its presence by synthesising a fluorescent protein.
Or, following the seven-segment display designed by
Davidson College
Synth-Aces, which takes one of its inputs from
a caffeine detector, how about a bacterial probe you could stick into
your morning coffee to see whether the cappuccino
machine has dispensed a sufficient dose to wake you
up for the day -
a caffeine thermometer?
Surveying the Web, I found a
wealth of material about
iGEM. I've already mentioned the iGEM wiki.
Its contents include a list of awards
given at the iGEM Jamboree.
We can all have nightmares about what
the Best Show Must Go Moment might have been like, and
sympathise with whoever had to deliver
the Best Honest Answer. The Best Analogy might well
have helped me write this feature; and
I would like to know how ETH - the Zürich team who I
mentioned in the Introduction -
won the George W. Bush
Geography award, MIT the Least Transportable Visual
Aid, and Oklahoma the Best "Hail Mary" Cloning.
Pennsylvania
State University won
Best New Sport. Their
wiki page says that this arose from the idea
of a "bacterial maze," in which bacteria
would use logic to find their way through a microfabricated labyrinth.
That seemed too difficult, so Penn State linearized the the concept and
added transfer of a signal, naming the result
a bacterial relay race.
Some iGEM projects are written up in Nature's
24th November feature
Synthetic
biology: Designs on life. The feature describes
Berkeley's entry:
a new way for cells to communicate, important
because it would enable us to build complex control
circuits that span groups of cells, instead of relying on the
simple intracellular gene circuits I explain
later on. Bacteria exchange genetic information
by temporarily linking cells and transferring
small rings of DNA called plasmids, a process known as
conjugation. To quote Nature:
The group managed to trigger the
conjugation response with synthetic circuits. But the
bacteria turned out to be so eager to join up that they
did so in huge bunches - and once they did, it was hard to
separate them. "They don't really
conjugate one at a time," said team spokeswoman Melissa Li.
"They can go, but they can't stop."
Where will synthetic biology lead? Milan
Stojanovic, one of the researchers who devised MAYA,
a
Noughts-and-Crosses-playing
automaton based on DNA logic gates, is quoted as saying that
we
might add logic to engineered
cells, programming them with
rules such as
Release a tumor-toxic molecule
IF you detect tumor indicator molecule A
OR tumor indicator molecule B.
Even if we discover that biology is too noisy and unreliable to carry
out long chains of logical calculations, these simple
rules could be used in biological devices which seek and
destroy medical disorders such as tumours.
Incidentally, MAYA's logic gates
work differently from the genetic control
used by most of the iGEM-ers. MAYA's
gates are single molecules which take short strands of DNA as input. These
strands
bind to matching regions on the gates, causing
part of the gate molecule known as a "stem-loop structure"
to change its conformation from a hairpin shape
to something more open. The gates also
contain a catalytic region. In YES gates, for example,
this is blocked by its neighbouring closed stem-loop.
When a DNA strand binds to the loop and opens it,
the loop moves away from the catalytic region, which
can than perform the function
for which evolution designed it. It cuts strands
of RNA to which are attached both a fluorescent region
and a quencher. These separate, causing the fluorescent
region to emit light, hence to be a visible signal of the
gate's output.
The entire system is explained in the Nature
papers cited in my links,
which also tell how the
Noughts and Crosses strategy was encoded in logic and
then implemented in DNA. As
Nature's
Playing to win at DNA computation
says:
The effort required to
assemble such a complex, functional group of molecular
catalysts was extraordinary. Each enzyme had to be designed to
interpret the same set of effectors differently. Effectors that might
form stable secondary structures were excluded using computational methods,
and the multiple deoxyribozymes were all engineered to preclude misfolding.
Effector and enzyme concentrations were then empirically tweaked to differentiate
signal from noise, and any designs that displayed nondigital behavior or
cross-reactivity were further modified or replaced. Ultimately, these arduous
efforts culminated in a tour-de-force implementation that included 23 different
deoxyribozymes operating simultaneously in
9 different wells with 8 different possible oligonucleotide effectors.
What I now want to do is to describe the
bacterial edge detector
in some detail, in order to display
the variety
of abstraction levels with which biological engineers have to
cope. This will lead on to an account
of Biobricks, an
important system for standardised modular
assembly of biological systems (including computational systems).
Let's start at the top level with the edge detection logic.
As I mentioned
earlier,
it was the Universities of Texas at
Austin and California in San Francisco who
entered the edge-detector to iGEM. However, I've
not found an explanation of the logic on their
pages, while ETH
do explain
in a Wiki page how it
might work.
Imagine a "lawn" of light-sensitive bacteria.
If illuminated, a bacterium synthesises protein L;
if in the dark, it synthesises D. The bacteria
are in a moist culture medium, through which L and
D will diffuse. However, we'll assume they
diffuse slowly (or break down rapidly), so don't travel very far.
This means the concentration of L and D will vary across the image,
both being present only near a light-dark
boundary. If we have then engineered the bacteria to
synthesis an opaque pigment when L and
D are both present, the bacteria will "paint" a picture
of the boundaries.
Next, I need go down some levels and
reverse-engineer an E. Coli.
Living in the gut, this bacterium has
no need to sense light. To make it do so,
Austin used a light sensor engineered
by Anselm Levskaya at UCSF's Voigt Lab and
hooked into the back end
of a sensing
mechanism that E. Coli does have
and that I'll now explain.
The E. Coli cell is
double-walled.
The cellular contents or cytoplasm is
enclosed by an inner membrane which
is surrounded by an outer membrane. The space
in between the membranes is called the periplasm ("peri-"
is Greek for "around", as in perimeter
and peripatetic). Of the many proteins
in E. Coli's inner membrane are
two conventionally written as OmpF and
OmpC. These are "porins" or pore proteins:
they have open spaces through which
small molecules such as waste products and nutrients
can diffuse. OmpC has
small pores; OmpF has big pores.
Threaded through the inner membrane are
molecules of a "transmembrane" protein
named EnvZ.
When the end on the outer or periplasmic
side finds itself in a high concentration
of dissolved substances, the protein
changes its electronic structure. As a result,
the end on the inner or cytoplasmic side
of the inner membrane releases a phosphate group,
transferring it to another protein
known as OmpR. This
is one example of a classic type of bacterial control
system, in which stimulation of one protein
adds a phosphate to a second protein,
which may in turn propagate the signal further.
We may, if we want, think of the
first protein as a sensor, and say that it
detects a signal.
In the case of our E. Coli EnvZ-OmpR system, OmpR
that has gained a phosphate can then react with
a control area on the gene for our small-pore protein, OmpC.
This switches on, or "expresses", the gene, causing
synthesis of OmpC to begin. And via another switching
mechanism, the phosphorylated OmpR
turns off the gene for OmpF. The effect is that
E. Coli responds to
a high solute concentration by rebuilding its cell
membrane to have smaller pores.
In general, despite the handicap of not having a nervous
system, bacteria have evolved sophisticated
control systems for regulating their genes and hence
synthesis of proteins, thus adapting to
changes in dissolved chemicals, heat, and all
kinds of other conditions.
Other organisms have
such systems too: cells whose DNA is neatly
packaged into a cell nucleus
(eukaryotes) have
more, and more complex, systems than cells
that, like bacteria
have no nucleus (prokaryotes). However,
bacteria are quite versatile enough, and
provide a rich library of parts and
systems for us to hack.
It's the
E. Coli control system described above
that Austin and UCSF used as an intermediary
between light and pigment production.
Their light sensor was
constructed
by using part of a "phytochrome" taken from the
photosynthetic blue-green algae
Synechocystis.
The phytochrome is a protein. Functionally speaking, it resembles
the EnvZ protein described above,
in that the front end is a sensor, and the
back end passes on a signal
to other control pathways. But
unlike EnvZ, the front end senses light,
and the back end signal doesn't
affect gene activity as EnvZ does.
Solution:
design a new, chimaeric, protein whose front end is
the algae's light sensor, and whose
back end is that of EnvZ. Then
code this up as a gene, and then insert that into
the E. Coli.
In such engineering, there is always a
risk that the final system won't work. For
example, suppose the light-sensitive protein
had ended up in the middle of the cell rather than
in the cell membrane, it wouldnn't have been so effective a light detector.
Or suppose something in the engineered cell had interfered with
an existing control system. You wouldn't want light to shut
down sugar metabolism, for example.
Note also that we're dealing with two entities
here: genes and the proteins they code for. This, plus
the complexities just mentioned, creates
a number of difficulties: difficulties which
synthetic biologists are trying to reduce with
design tools, simulations, and standardised assembly.
We have to know which proteins we want, and if
designing new proteins, we'll probably want to synthesise them
and check they work in our intended environment.
Here, for example, the researchers tested various
possible chimaeras for their sensitivity to
light. These were made by varying the amount of
the algal front-end protein included, because chain
length is known to affect the signalling mechanisms.
Then we have to code the appropriate genes (including their
control regions), and work
out a method of inserting them into the target cell
and its genome. Then, because such methods are never 100% certain,
we must verify experimentally that we now have organisms
containing the new genes; and that they behave as we
want. It's more work than hacking Perl.
It remains to explain how this wonderful
chimaeric light sensor controlled pigment production.
The back end of the sensor, as I've said, is EnvZ. As I've
also said, EnvZ
phosphorylates the OmpR protein, which
affects a control region on the gene for OmpC. Now,
researchers have already designed E. Coli
in which that OmpC control region is fused
to a different gene, one that controls production
of the protein β-galactosidase. And β-galactosidase
reacts with a certain colourless chemical one can
put in the culture medium, producing
an opaque product. Putting all this together, and
skipping lightly over man-months of lab work, we
have our light-to-pigment converter. The logic is simple;
the engineering less so.
I can now exhibit a genetic inverter. That's what
E. Coli's OmpR-OmpF/OmpC system is.
Its input is the protein OmpR and its output
is the protein OmpF. If we could find a gene which
produces a third protein, and that
OmpF switches off, we would have another
inverter.
I don't know whether there are in fact
genes repressed by OmpF - evolution
may have used it as a structural unit
only. However, that doesn't matter, because plenty
of genetic inverters do exist. They work in the
same general way, and can be cascaded together.
One serious problem with the above is that
the inverter output is a different
kind of signal from the input,
making system design more complicated.
This is something that
Biobricks
tries to solve.
If we can make an inverter, we should be able to make a NOR gate, just
by giving our genes more than one control region, so that they can
be switched off by any one of several inputs. This is what
ETH
did for their binary counter. They used a family of "zinc finger" proteins
as signals, and designed genes which had several control regions,
each sensitive to a different protein. Then they built a J-K flip-flop
by combining NOR gates.
It's worth saying that these control regions
are an extremely important concept in biology - so important that
Francis Jacob and Jacques Monod won a Nobel prize for uncovering
their function. There's a nice explanation in
MIT's Biology
Hypertextbook. Essentially, it's a roadblock system.
Molecules of RNA polymerase land on a "promoter region" (labelled
P in the hypertextbook diagrams), latch on to the DNA, and run down
the following gene
initiating the synthesis of protein until they hit a terminator.
However, there may be a "repressor binding site" (labelled O in the hypertextbook)
between the promoter and
the gene to be transcribed. This site can be empty, or it can
have a repressor protein bound to it. In the latter case, the repressor
blocks the RNA polymerase from getting past, hence also blocking the synthesis
of whatever protein the gene encodes. I like to think of the repressor
as a wrestler or security guard, and the RNA polymerase as a little man who
tries to get past and copy the information on the DNA. He can do so if there's no guard; but also -
as the hypertextbook page goes on to explain -
if the guard's girlfriend has turned up and become so intimate
that guard and girl have rolled off the DNA, leaving the repressor seat empty.
On the page
Notes on Tom Knight's Talk of
the iGEM wiki, there's the following quote:
initial tremendous frustation in biology. every experiment turned into two
experiments. first, there was the experiment that you wanted to do. second, there was
the experiment that you had to do in order to do the experiment that you
wanted to do? e.g., will this restricition enzyme work with this DNA, or, is it not
methylated, or something else, or something else. Basically, there are too many things to worry about. think about LEGOS.
everything is designed to go together. even the flowers snap together.
"Even the flowers snap together". Replace
"experiment" by "function", and the
experience becomes one familiar to every
programmer. We've developed
tools to solve the problem: standard libraries;
functions whose internal workings are hidden so that
the caller need know only the inputs and outputs;
mutually replaceable modules that you can swap without
damaging the code using them;
abstraction hierarchies. It's
such intellectual tools that
Knight is applying to biology.
He describes how
in his paper Idempotent
Vector Design for Standard Assembly of
Biobricks.
"Vector" has its customary
meaning, a method of carrying DNA into
a cell and incorporating it into the cell's genome.
"Idempotent" is a mathematical term for an
operator whose effect is the same no matter
how many times it's applied. In Knight's
paper, Biobricks's standardised assembly technique
is idempotent because if we use it to
join biological parts A and B into compound part AB,
then we can use the same technique to join
AB with a third part C; and so on, as many times
as needed.
This works as follows. As well as the
chromosome containing their main genetic
material, bacteria have evolved a mechanism
for transferring supplementary genetic information
between cells. This consists plasmids - the small rings
of DNA I mentioned
earlier. Genes for
antibiotic resistance are transferred via
plasmids; and plasmids were the
information carriers in Berkeley's
project on Addressable
Bacterial Communication.
There are specific patterns of DNA that,
if occurring in a plasmid, the bacterial cell will recognise
and insert into its genome.
We can subvert this mechanism to insert
engineered DNA into the bacterium,
inducing it to synthesise insulin, say,
or spider silk. It's a standard
technique in genetic engineering.
Suppose now that we have one plasmid containing
DNA sequence A and another containing B, and we
want to make a component plasmid that will
insert AB.
Because plasmids are rings, if we want to
combine their contents, we need to
cut the relevant DNA sequences out
of each, splice them together, and
then reclose the result into a ring,
making sure it still contains the
"natural" sequences by which the
bacterium recognises it. The cutting is
done with
restriction enzymes:
naturally occuring proteins that cut DNA at
specific patterns or "restriction sites".
Biobricks components are plasmids equipped with standard
"connectors": standard restriction sites
that can be relied on regardless of the component. As long as you
cut and join as just described, you'll have another
plasmid with the same "connectors", which can therefore be
used as a component in its own right.
Even with a standard means of joining components, the
components' functions can vary widely. An op-amp
may have the same pin layout as a set of logic gates, but
that doesn't mean one chip can be substituted for the other.
As well as standardised assembly, synthetic biologists
need to develop abstraction hierarchies, so that we
only think about components in as much detail as we need;
and modular implementations of components, so that the
physical embodiment of an abstraction doesn't "leak".
I've already explained how we can build inverters and more
complicated components; this gives us a high level of abstraction
at which to think while avoiding details of implementation. Biobricks
has its own specific systems-devices-parts-DNA
hierarchy; my
links point at others, amongst them
a Biological Network Layer Model based on the
Open Systems
Interconnection Reference Model.
How do we design genetic components so that implementation
details are reliably hidden? In the section
on
inverters, NOR gates and binary counters,
I mentioned the problems associated with using different
proteins as signals in different parts of a circuit.
Biobricks's answer to this is a shift of viewpoint -
think not of proteins as the signal carriers, but
of RNA polymerase. This entails rearranging
the inverter design so that RNA polymerase coming in
expresses a gene which codes for a repressor protein
which acts on a repressor site just "downstream" of
the gene, at the inverter's output. The notion is
explained at the end of the Biobricks
abstraction hierarchy page, where
we learn that PoPS - Polymerase Per Second - may one
day become as important as FLoating point
Operations Per Second and Logical Inferences
Per Second.
Comics fans may prefer the depiction in Drew Endy and Chuck Wadey's
ADVENTURES IN SYNTHETIC BIOLOGY
comic strip. Follow the adventures of Bacteria Buddy, Device Dude, and System Sally as they
solve the problem of protein signal proliferation
and make Bacteria Buddy smile.
When someone talks about "a system built from
a large number of unreliable components of
limited life", I think of my plumbing.
Or British Rail. Biological computing
systems would qualify too, and researchers are
working on programming and understanding collective
behaviour in single cells and in systems
of communicating cells. I've linked
to a few relevant pages. It's worth remembering
the patterns that Nature manages to
program: zebra stripes, compound eyes, brains,
gecko foot hairs.
There is a huge difference between
biological and silicon computing. As Jonathan
Goler says in a
paper
on the BioJADE design tool,
electronic signals are localised to wires:
biological ones are not. They exist in solution, they
diffuse, and they will turn up far from where you
want them. They are noisy, may be slow, and (at least in bulk)
are not at all digital and sharp. ETH modelled the dynamics of
their gene circuits using
ordinary
differential equations.
A problem of a completely different kind, discussed at the
end of Goler's paper, is security. I don't want
to give anyone ideas, so will just note that there are many things to which
we're not immune. Some people believe
complete openness about synthetic biology will ensure maximum
knowledge and experience is available to reputable
researchers who must counter threats. Others disagree.
Let me finish.
According to Yuri Lazebnik as explained by Sharon Begley in the
Wall Street Journal,
this is how a team of biologists would fix a radio:
First, they'd secure a large grant to purchase hundreds of identical working radios.
After describing and classifying scores of components (metal squares, shiny
circles with three legs, etc.), they'd shoot the radios with .22s.
Examining the corpses, the biologists would pick out those that no longer work.
They'd find one radio in which a .22 knocked out a wire and triumphantly declare
they had discovered the Key Component (KC) whose presence is required for normal operation.
But a rival lab would discover a radio in which the .22 left the Key Component
intact but demolished a completely different Crucial Part (CP), silencing the radio.
Moreover, the rivals would demonstrate that the KC isn't so "key" after all; radios can work fine without it.
A clever post-doc then goes on to find a switch which determines
whether it's KC or CP that the radio currently requires. But the biologists still can't fix the radio,
and they haven't really understood it. They lack the intellectual tools -
the equivalent of circuit diagrams and formal languages. Computing and AI
can help provide these. Then, as
Drew Endy writes
in Foundations
for engineering biology:
The refining of
natural parts to produce engineered biological parts may be similar
to nature’s use of negative selection against promiscuous, deleterious
molecular interactions within specific cell types, and is analogous to
the processing of physical materials in other engineering disciplines.
For comparison, microprocessors and other electronic systems are
not built directly from chunks of metal and silicon found lying about
the countryside.
We shall one day be able to engineer biological computing systems from
scratch, without having to rummage around inside intestinal
bacteria for
our components.
From Etch a Sketch to Bact a Sketch at iGEM
www.eecs.harvard.edu/~rad/igem05/ -
The Harvard team's page for iGEM 2005. Describes
their Biowire and Bact a sketch projects, and links to
more info, including their
wiki and a Harvard Gazette feature.
karma.med.harvard.edu/w/images/7/7c/FinalFinalPresentation_2005-11-05.ppt -
Harvard's Power Point presentation, diagramming the
biological implementatation of
BioWire and Bact a sketch (a.k.a BioSketch). Includes some
info on experimental design, and a picture of
Bact a sketch in a nifty blue case.
www.etch-a-
sketch.com/ -
Etch A Sketch®.
www
.howstuffworks.com/question317.htm -
How does an Etch-a-Sketch work?, at
HowStuffWorks.
parts2.mit.edu/wiki/index.php/Main_Page -
Main page for the iGEM wiki.
web.mit.edu/endy/www/igem/iGEM.supplement.pdf -
Backgound to iGEM 2003 and 2004 and their research
context, including Amorphous Computing, the increasing improvements
in DNA synthesis,
biological modularisation, and how the Biobricks
abstraction hierarchy
is implemented. By Drew Endy, MIT.
parts2.mit.edu/wiki/index.php/UT_Austin -
University of Texas at Austin wiki page for iGEM,
from which I took the "at heart a bunch of
hackers" quote.
www.wired.com/wired/archive/13.01/mit.html -
Life, Reinvented, by
Oliver MortonPage, Wired, January 2005.
"Proper engineering, by contrast [with DNA bashing], means designing what you want to
make, analyzing the design to be sure it will work, and then building it
from the ground up. And that's what synthetic biology is about: specifying
every bit of DNA that goes into an organism to determine its form and function
in a controlled, predictable way, like etching a microprocessor or building a bridge.
The goal, as Endy puts it, is nothing less than to 'reimplement life in a manner of our choosing.'".
E. Coli edge detectors
www.ftd.de/rd/31875.html -
Produktion im Dunkeln, by
Constanze Böttcher, Financial Times
Deutschland, from where I took the "wonderful
living light-sensor" quote.
www.utexas.edu/opa/media/photos.php -
Austin download page, with some of the bacterial photos.
www.nature.com/nature/journal/v438/n7067/full/nature04405.html -
Synthetic biology: Engineering Escherichia coli to see light,
by Anselm Levskaya,
Aaron Chevalier,
Jeffrey Tabor, Zachary Simpson,
Laura Lavery, Matthew Levy, Eric Davidson,
Alexander Scouras,
Andrew Ellington,
Edward Marcotte and Christopher Voigt.
Nature438, 441-442 (24 November 2005). Explains how
the engineered light sensor works.
N.B.
I've linked to several Nature pages,
but they may not be universally accessible.
Testing them during my final check, I wasn't able to access
them from home - it seems Nature charges for them.
www.rand.org/publications/MR/MR1608/MR1608.appr.pdf -
BIOLOGICAL SYSTEMS (PAPER I), by
Robert Burlage, University of Wisconsin.
RAND report on Microbial Mine Detection.
parts2.mit.edu/wiki/index.php/Davidson -
Davidson College Synth-Aces wiki page for iGEM,
with the 7-segment chemical display.
parts2.mit.edu/wiki/index.php/Jamboree and
parts2.mit.edu/wiki/index.php/IGEM_2005_Awards -
iGEM Jamboree and Awards.
parts2.mit.edu/wiki/index.php?title=Penn_StateProjectDes -
Penn State wiki page for iGEM,
with the bacterial relay race.
parts.mit.edu/wiki/index.php/Berkeley -
Berkeley wiki page,
with Addressable Bacterial Communication.
www.nature.com/nature/journal/v438/n7067/full/438417a.html -
Synthetic
biology: Designs on life,
by Erika Check,
Nature438, 417-418 (24 November 2005). Shortish
feature on iGEM.
Silicomimetic Noughts and Crosses with DNA
www.nature.com/nbt/journal/v21/n9/full/nbt862.html -
A deoxyribozyme-based molecular automaton by
Milan Stojanovic and Darko Stefanovic.
Nature Biotechnology 21, 1069 - 1074 (2003).
www.trnmag.com/Stories/2003/082703/DNA_plays_tic-tac-toe_082703.html -
DNA plays tic-tac-toe, by Kimberly Patch.
Technology Research News, August 27/September
3, 2003.
www.nature.com/nbt/journal/v21/n9/full/nbt0903-1013.html -
Playing to win at DNA computation by
Jeffrey Tabor and Andrew Ellington.
Nature Biotechnology 21, 1013 - 1015 (2003). A
short account of the work, with a diagram showing
moves on the game board and corresponding states of
the logic gates.
www.nature.com/nbt/journal/v23/n11/full/nbt1105-1374.html -
Boolean calculations made easy (for ribozymes),
by Adam A Margolin & Milan N Stojanovic. Online copy of
Nature Biotechnology 23, 1374 - 1376 (2005).
www.ra.informatik.uni-stuttgart.de/~ghermanv/Lehre/Seminar/material/Presentation10/report.pdf -
Logic Gates made with DNA, by
Maria Belen Canadas Ruiz-Perez,
University of Stuttgart.
A paper for
an Innovative Computer Architectures and Concepts Seminar,
2002. A detailed account of the physics and
chemistry behind MAYA-style DNA logic
gates, with diagrams of the molecules
and processes involved.
E. Coli edge detectors (2)
parts2.mit.edu/wiki/index.php/Edge_Detection -
ETH Edge Detection wiki page,
with their ideas on its implementation.
Self-defence in the gut: a bacterial control system
www.bio.davidson.edu/Courses/Molbio/MolStudents/spring2005/Champaloux/first.html -
Function and Structure of OmpF Porin, by
Paul Champaloux, Davidson College. Includes nice
diagrams of E. Coli's cell membranes and of the
pore protein OmpF.
nmr.uhnres.utoronto.ca/ikura/1008/calcium/EnvZ/envz.html -
E. coli Histidine Kinase EnvZ, by
Mitsu Ikura,
Department of Medical Biophysics, University of
Toronto. How EnvZ regulates pore size.
pub.ucsf.edu/magazine/200305/gross.html -
Carol Gross: Feeling the Heat, by Mike Mason,
in UCSF Magazine, 2003. The complicated genetic
control systems that E. Coli uses to defend
itself against heat and stress, related to what I've
talked about here.
web.mit.edu/esgbio/www/cb/prok_euk.html -
Characteristics of Prokaryotes and Eukaryotes.
Similarities and differences between these two
fundamental types of cell, from the MIT Biology
Hypertextbook.
Genetic inverters, NOR gates and binary counters
parts2.mit.edu/wiki/index.php/ETH_Zurich -
ETH's main wiki page, with
details of their genetic counter.
The Operon Model
web.mit.edu/esgbio/www/pge/lac.html -
The Lac Operon. MIT Biology
Hypertextbook page for the Operon Model.
Biobricks: standardised modular engineering of biological systems
parts2.mit.edu/wiki/index.php/Notes_on_Tom_Knight's_talk -
Notes on Tom Knight's talk wiki page,
including the
"Every experiment turned into two experiments" quote.
dspace.mit.edu/bitstream/1721.1/21168/1/biobricks.pdf -
Idempotent Vector Design for Standard Assembly of
Biobricks,
by Tom Knight,
MIT Artifcial Intelligence Laboratory.
Link appears to have died.
parts.mit.edu/ -
MIT Registry of Standard
Biological Parts. There's a nice user interface on the
parts pages, which enables you to display them in a
number of different ways.
austin.che.name/docs/bbpp.pdf -
BioBricks++: Simplifying Assembly of Standard DNA
Components, by Austin Che. There's also
Austin's poster BioBricks++: Simplifying
Assembly of Standard DNA Components Mindless
Module Manipulation by Monkeys, austin.che.name/docs/bbpp_poster.pdf.
Abstraction hierarchies and modularity
parts2.mit.edu/r/parts/htdocs/Abstr
actionHierarchy/index.cgi -
Abstraction Hierarchy. Describes the design and
implementation of the BioBricks abstraction hierarchy,
using an inverter as example.
openwetware.org/wiki/BioBricks_abstraction_hierarchy -
OpenWetWare discussion on the
Biobricks abstraction hierarchy - the proper
distinction between part, device, and system.
openwetware.org/wiki/Network_Layer_Model -
OpenWetWare page on a biological
network layer model based on OSI, the
Open Systems Interconnection Reference Model.
openwetware.org/wiki/Dedicated_systems -
OpenWetWare on
biological virtual machines and dedicated systems:
decoupling the function of an engineered biological system from the function of its chassis.
Wet, wet, wet
www.livescience.com/technology/050428_bacteria_computer.html -
Scientists Make Bacteria Behave Like Computers,
by Robert Roy Britt, LiveScience, April 2005.
Short popular feature, with pictures of
programmed bacterial patterns.
web.mit.edu/jakebeal/www/Talks/AC-language-overview.pdf -
Amorphous Computing's
Programming Languages, by
Jacob Beal,
2005. Slideshow presentation on methods and
notations for amorphous computing.
www.eecs.harvard.edu/~rad/ -
Radhika Nagpal, Harvard. Page on Radhika's interests:
programming and understanding robust collective behavior
in biological systems.
dspace-demo.mit.edu/bitstream/1721.2/3328/2/AITR-2004-003.pdf -
BioJADE: A Design and Simulation Tool for Synthetic Biological Systems,
by Jonathan Goler, 2004.
Link appears to have died.
ra.csail.mit.edu/cjt/ProcIEEE-Jan-00.pdf -
An Interactive Learning Environment
for VLSI Design, by
Jonathan Allen and Christopher Terman. The original
Java design toolkit JADE.
How the biologist should comprehend the radio
www.cipic.ucdavis.edu/~dmrocke/papers/Can%20a%20Biologist%20Fix%20a%20Radio.pdf -
Can a biologist fix a radio? Or, what I
learned while studying apoptosis, Yuri Lazebnik.
Compares how a biologist would, and should,
think about systems.
www.mindfully.org/GE/2003/Systems-Biology21feb03.htm -
Biologists' New Approach:
Do Not Shoot the Radio, by
Sharon Begley, Wall Street Journal, 21 February 2003.
www.bio.davidson.edu/courses/synthetic/papers/Synthetic_Foundations.pdf -
Foundations for engineering biology,
by Drew Endy, 2005.
ADVENTURES IN SYNTHETIC BIOLOGY
openwetware.org/wiki/Adventures -
ADVENTURES IN SYNTHETIC BIOLOGY,
STARRING: Bacteria Buddy, Device Dude, and System Sally.
OpenWetWare wiki page linking to various implementations
of the comic.
openwetware.org/wiki/Endy:Writing:CCfGDScript -
Drew Endy's script and references for the above.
openwetware.org/wiki/Endy:Writing:CCfGDThoughts -
How the comic was designed: finding good visual analogies.
See also
openwetware.org/wiki/Adventure_Background and
openwetware.org/wiki/Endy:Writing:CCfGDAdvice.
Comics fans will appreciate the
references to Scott McCloud,
www.scottmccloud.com/.
Other
www.princeton.edu/~rweiss/papers/weiss-bridge-2004.pdf -
Challenges and opportunities in Programming Living Cells,
by Ron Weiss.
Online copy of
The Bridge, Winter 2003.
www.ee.princeton.edu/people/Weiss.php -
Ron Weiss's page. "In my research group, we are exploring
mechanisms for harnessing various organisms as computational
substrates and micron-scale robots, and extending their behavior by
embedding biochemical logic circuitry that precisely controls intra- and
inter-cellular processes. This engineering effort of constructing reliable
in-vivo logic circuitry with predictable behavior enables a wide range of
programmed applications. The application areas include drug and biomaterial
manufacturing, programmed therapeutics, embedded intelligence in
materials, environmental sensing and effecting, and nanoscale fabrication.
www.dnahack.com/ -
DNA Hack. "The website for Amateur Genetic Engineering".
syntheticbiology.org/ -
The Synthetic Biology site. "Synthetic Biology refers to
A) the design and construction of new biological parts, devices, and systems.
B) the re-design of existing, natural biological systems for useful purposes."
openwetware.org/wiki/Main_Page -
OpenWetWare.
"OpenWetWare is an effort to promote the sharing of information,
know-how, and wisdom among researchers and groups who are working in
biology & biological engineering. OWW provides a place for labs, individuals, and
groups to organize their own information and collaborate with others easily and efficiently."
www.blueheronbio.com/index.html -
Blue Heron Bio, the company who made many
of the iGEM components. You can
paste your DNA spec into a form and order
it,
say the interesting notes at
interconnected.org/notes/2005/03/etcon/tue_dna.txt.
openwetware.org/wiki/Flourless_chocolate_cake -
Synthesis anyone can do:
Drew Endy's recipe for flourless chocolate cake.
Links used in this month's introduction
www.kare11.com/news/news_article.aspx?storyid=72171
- The Patuxent Whooping Crane Migrators, a feature by
Mark Daly, KARE 11 News.
books.guardian.co.uk/reviews/scienceandnature/0,6121,1640650,00.html
- Guardian review of The Gecko's Foot,
by Georgina Ferry.
www.me.cmu.edu/faculty1/sitti/nano/projects/geckohair/ -
Gecko Hair Manufacture, CMU NanoRobotics Lab.
www.pbs.org/transistor/album1/addlbios/aylesworth.html -
Recreating the First Transistor, at PBS.org.
The spookiest moment came when he realised he was doing more than creating
little computers. Once he started the process and
switched on the genetic sequences which could
compound and duplicate the biologic DNA segments,
the cells began to function as autonomous units.
They began to "think" for themselves and
develop more complex "brains".
His first E. Coli mutations
had had the learning capacity
of planarian worms; he had run them through
simple T-mazes, giving sugar rewards.
They had soon outperformed planaria.
The bacteria - lowly prokaryotes - were doing
better than multicellular eukaryotes!
And within months, he had them running more complex
mazes - allowing for scale adjustments - comparable
to those of mice.
...
There, very clearly, were the roughly circular
lymphocytes in which he had invested two years of
his life. They were busy transferring
genetic material to each other through
long, straw-shaped tubes rather like bacterial
pili. Some of the characteristics picked up
during the E. Coli experiments
had stayed with the lymphocytes, just how
he wasn't sure. The mature lymphocytes were
not reproducing by themselves, but they were
busily engaged in an orgy of genetic
exchange.
Every lymphocyte in the sample he was watching
had the potential intellectual capacity of
a rhesus monkey.
From Blood Music,
by Greg Bear. Published
as a short story in 1983; expanded to a novel in 1985.
Coincidentally, given my main feature,
reader Dr. Erach A. Irani sent me a proposal,
developed in collaboration with Dr. Surendra. B. Khadkikar,
for creating computational
bacterial collectives.
The idea is to drive them up the evolutionary
curve by equipping them with carbon nanotubes
or other nanoparticles.
Many will know that
buckyballs,
or buckminsterfullerenes, are
hollow football-shaped
balls composed of 60 carbon atoms linked to form an icosahedron
truncated at the vertices, with chemical
bonding similar to that of graphite.
Carbon atoms can bond into nanotubes as well as nanoballs,
a fact discovered in 1991 by
Sumio Iijima
of NEC Labs
when investigating buckyball synthesis.
Nanotubes can be very small in diameter, only
a few nanometers long, yet up to a millimeter long.
They are also extremely strong.
Erach and Surendra propose to use either these,
or the gold nanoparticles developed by
Dr. Murali Sastry - Google
"gold nanoparticles Murali Sastry" for copious
references on the latter.
The first stage is to breed bacteria in culture
media containing high concentrations of
nanotubes (or other nanoparticles). Many bacteria will doubtless die,
cell membranes pierced Sebastian-like with a forest of nanotube
arrows. Hopefully though, a few will survive
long enough to undergo fission, or at least to
contribute plasmids to neighbouring bacteria;
evolution will then amplify whatever mechanisms were responsible
for their tolerance. It is possible that some might
even come to depend on the nanotubes.
In the next stage, we induce the bacteria to
form colonies, self-organising collectives
containing bacterial "specialists". Each
collective is a blob having specialist
"defensive" bacteria on the outside. We do this
by adding buckyballs to the culture
medium and
mechanically agitating it, in the hope that the
nanotube-rich bacteria will first evolve to defend
themselves against the buckyballs,
deflecting these with the nanotubes; and
then to aggregate and act as symbiotes
organised into colonies. The nanotube-equipped bacteria
will hopefully be on the
outside.
As What being in
a biofilm means to bacteria
explains,
many bacteria do form colonies when
under environmental stress, and colonies can also form between
bacteria of different species.
The plaque on our teeth
is such a colony.
Although not essential to the project,
Erach and Surendra speculate that bacteria in a collective
might evolve to
signal one another via the nanotubes. If a
nanotube inside one bacterium is near a protein
which (for example) gains or loses a phosphate group,
the protein may transfer charge to or
from the nanotube.
Should that
nanotube be touching one in another
bacterium, the latter will also be affected, and could in turn
affect biomolecules in its "owner". Such interactions do exist, as
Charge
Transfer from Adsorbed
Proteins describes, and they're already being
investigated for biosensing: see, for example,
Carbon
Nanotube Transistors for Biosensing Applications.
If they turn out to benefit the collectives in any way,
evolution will probably exploit them.
It's an extreme example of what
Yoram Gerchman and Ron Weiss
talk about in
Teaching
bacteria a new language, namely the
development of novel cell-to-cell signalling methods that
we can then use in biological programming.
Finally, we subject the collectives to increasing
amounts of stress from chemicals and other insults.
Erach and Surendra hope that this will evolve increasingly
complex signalling behaviour, both within
collectives and between them.
If a sufficiently versatile repertoire of
signalling methods evolves, we can then
"program" the colonies by sending
the right signals. This would require the kind of amorphous
computing techniques that I linked to in my
main feature.
It may also be possible, regardless of the signalling
method, to apply regular signal pulses to the collectives
and evolve them to exploit the benefits of synchronous,
rather than asynchronous, signalling.
One possible
application is programming the collectives to
seek and destroy cancerous tumours,
possibly by attacking them with the nanotubes.
www.labs.nec.co.jp/Eng/innovative/E1/01.html -
The discovery of carbon nanotubes - Guided by
serendipity, NEC Laboratories. The discoverer of
nanotubes, Sumio Iijima,
on their history and future.
www.pa.msu.edu/cmp/csc/nanotube.html -
The Nanotube Site at Michigan State University
Department of Condensed Matter Physics.
www.erc.montana.edu/CBEssentials-SW/bf-basics-99/bbasics-bfcharact.htm -
What being in a biofilm means to bacteria,
introductory page from the Center for Biofilm Engineering. The page
shows a cartoon: one bacterium to another,
I just can't go with the flow anymore. I've been thinking about joining a biofilm.
www.thejcdp.com/issue003/overman/08over.htm -
Biofilm: A New View of Plaque. Short page with
diagrams of dental plaque, including
bacterium-bacterium signalling.
star.tau.ac.il/~inon/baccyber0.html -
On The Origin of Collectives - Bacterial Evolution,
Bacterial Cybernetics Group,
Tel Aviv University. Growth and
pattern formation in
bacterial colonies. The page has
some stunning photos, for which
see also the Gallery
at
star.tau.ac.il/~inon/pictures/pictures.html.
Last updated 2000.
These links and the one below may be dead - I couldn't access them
during my final check, although fragments survive in
Google's cache.
star.tau.ac.il/~inon/wisdom1/preprint.html -
Bacterial Wisdom, Gödel's Theorem
and Creative Genomic Webs
by Eshel Ben-Jacob,
School of Physics and Astronomy,
Tel-Aviv University. Online copy of
a paper published in
Physica A, 248:57-76, 1998.
www.physics.ucla.edu/research/biophysics/pubs/pdf/pub_03.pdf -
Charge
Transfer from Adsorbed
Proteins, by K. Bradley, M. Briman, A. Star and G. Gruner;
Department of Physics at UCLA, and Nanomix Inc., 2003.
www.physics.ucla.edu/research/biophysics/pubs/pdf/conf_paper_01.pdf -
Carbon Nanotube Transistors for Biosensing Applications,
by G. Gruner, Department of Physics at UCLA, and Nanomix Inc.
www.princeton.edu/~rweiss/papers/weiss-pnas-2004.pdf -
Teaching bacteria a new language,
by Yoram Gerchman and Ron Weiss,
Departments of Electrical Engineering and Molecular Biology, Princeton.
PNAS, February 24 2004. Vol. 101, No. 8.
The engineering of novel cell-to-cell signalling mechanisms.
www.geocities.com/erach27/ConsciousMachinePage.html -
Conciousness, conscious bacteria, Gödel's
theorem, and the Turing Machine, by
Erach Irani.
"Genetic Programming. Don't worry yet. This still usually just
means programming using the genetic algorithm."
[Not Any More - Ed.]
Glossary entry
for "GP", Stammtisch Beau Fleuve!,
www.plexoft.com/SBF/index.html.
"Evolution is so notorious for producing quirks that the
existence of quirks is a good test for separating evolved
systems from rationally designed systems."
Mark Turner,
The Literary Mind, 1996.
"It is possible that the designs of
natural biological systems are not optimized by evolution for the
purposes of human understanding and engineering."
Foundations for engineering biology,
Drew Endy,
www.bio.davidson.edu/courses/synthetic/papers/Synthetic_Foundations.pdf.
"The goal of the GA-IDS project is to determine whether
it is possible to evolve visualizations of computer network
and computer systems data that make intrusions or anomalies
easier for network or system administrators to detect than existing
visualization schemes. Instead of starting with a preconceived
visualization model, we start with a language for expressing
visualizations and then use genetic
programming to produce increasingly refined visualizations
based on user feedback."
GA-IDS: Genetic Art For Intrusion Detection,
ga-ids.cs.northwestern.edu/.
"The adaptation described below is a classic example of
intricate design in evolution. One wonders how it could have
arisen through random bit flips, as every component of the
code must be in place in order for the algorithm to function.
Yet the code includes a classic mix of apparent intelligent
design, and the chaotic hand of evolution. The optimization
technique is a very clever one invented by humans, yet it is
implemented in a mixed up but functional style that no
human would use (unless perhaps very intoxicated)."
Thomas Ray
writing about his Tierra artificial-life system. Quote taken
from an abstract at
www.talkorigins.org/faqs/tierra.html;
Tierra and related software at
www.his.atr.jp/~ray/tierra/.
"I shall edit this email slowly, so that you can read it when drunk."
King Arthur: [about the inscription on the rock] What does it say, Brother Maynard?
Brother Maynard: It reads, "Here may be found the last words of Joseph of Aramathia. He who is valiant and pure of spirit may find the holy grail in the Castle of Aaauuuggghhh..."
King Arthur: What?
Brother Maynard: "The Castle of Aaaauuuggghhhh"
Sir Bedevere: What is that?
Brother Maynard: He must have died while carving it.
Memorable Quotes from
Monty Python and the Holy Grail,
www.imdb.com/title/tt0071853/quotes.
"The idea of incongruity-resolution has frequently been suggested as an account of many types of joke. However, there is
no precise statement either of this 'theory' nor of its main concepts (incongruity and resolution), and different authors
may disagree on details. We concentrate on two particular variants and attempt to clarify what would be needed to make
these into computational models."
Developing the Incongruity-Resolution Theory,
Graeme Ritchie,
www.csd.abdn.ac.uk/~gritchie/papers/aisb99.pdf.
"More recently the concept of competition among evolving analogies has
been introduced by the exploitation of concurrency of processes, that
is, each tentative analogy is incrementally built by a separate process
which has to compete for resources with other processes which
are attempting to construct alternative analogies."
Analogical Reasoning section, Machine Learning & Knowledge Discovery
Research page, University of Aberdeen,
www.csd.abdn.ac.uk/~pedwards/research/ml_kd.html.
"A PROPOSAL TO CREATE TWO BIODIVERSITY RESERVES: ONE DIGITAL AND ONE ORGANIC."
Thomas Ray,
http://www.his.atr.jp/~ray/pubs/reserves/index.html.
"A processor so small even the bugs are hunchbacked."
Stephen Figgins
on TuxBot Programming with Python,
www.onlamp.com/pub/a/python/2001/03/21/pythonnews.html.
"Unix is like the maritime transit system in an
impoverished country. The ferryboats are dangerous as hell,
offer no protection from the weather and leak like sieves. Every monsoon
season a couple of them capsize and drown all the passengers,
but people still line up for them and crowd aboard."
An analogy of Operating Systems, from Hunzeker,
Paul Vixie,
www.netfunny.com/rhf/jokes/90q3/unixboat.html.
"SegMan is a perceptual substrate that uses computational
vision to 'see' the Microsoft Windows graphical direct-manipulation interface.
SegMan enables other programs to be able to see the graphical interface screen
as a human would see it. This enables programs to interact with Microsoft Windows
as if it were a user sitting at the console instead of relying on low-level
APIs. With SegMan we can create and test more realistic cognitive models of
direct-manipulation interface usage, build AI agents that can reason about
and use the graphical interface, and write scripts and programs that
learn and perform routine tasks in the graphical interface."
Mark O. Riedl and Rob St. Amant,
www.csc.ncsu.edu/faculty/stamant/segman-introduction.html.
"With the built-in Prolog interpreter
in Windows NT (no kidding! it was used for configuration. I don't know if
it's still there) there may be more Prolog systems in use than ever before."
Richard O'Keefe, SWI-Prolog maillist,
gollem.science.uva.nl/SWI-Prolog/mailinglist/archive/old/0501.html.
"Artificial intelligence is not a term generally used at IBM."
Kathleen Keeshen, IBM spokesperson, 1982. Stottler Henke's
Artificial Intelligence Quotations,
www.stottlerhenke.com/ai_general/quotations.htm.
Originally from
The Tumultuous History of the Search for Artificial Intelligence,
Daniel Crevier, 1993.
"Prolog doesn't have assignment statements. This is deeply upsetting
to most programmers. *No* declarative programming language has
achieved popularity."
Richard O'Keefe, ibid.
To iterate is human;
To recurse, divine.
Programmers' saying.
Pojem rekurzie,
neuron-ai.tuke.sk/~krankill/ui/rekurzie.html.
Where recursion begins,
Sense ends.
Student saying.
ibid.
Past newsletters are available at either www.ddj.com
or www.ainewsletter.com.
As ever, interesting links and ideas for future issues are very
welcome.
Until next month,
Jocelyn <popx@j-paine.org>
For questions about the www.ainewsletter.com
site, contact Dennis
Merritt
Copyright ©2005 Amzi! inc., CMP, and Jocelyn Paine. All Rights
Reserved
|