Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... ·...

10
Software Engineering for Molecular Programming Robyn Lutz [email protected] http://www.cs.iastate.edu/~rlutz Department of Computer Science Iowa State University S 2 ERC Research Center Industrial Outreach Workshop July 10, 2014 Robyn Lutz 7/10/14 1

Transcript of Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... ·...

Page 1: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Software Engineering for Molecular Programming

Robyn Lutz

[email protected] http://www.cs.iastate.edu/~rlutz Department of Computer Science

Iowa State University

S2ERC Research Center Industrial Outreach Workshop July 10, 2014

Robyn Lutz 7/10/14 1

Page 2: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

2

How do we build more robust systems?

Software Safety & Reliability

Software Engineering

Requirements

Engineering

NASA

Robyn Lutz 7/10/14

Page 3: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

3

Growth in Critical Systems

Pacemaker & Defibrillator

NASA-Ames Research Center NASA

MRI machine

http://www.terumo.co.th/image/medical2.jpg

http://i.cnn.net/cnn/2004/HEALTH/02/10/ dyslexia.ap/story.dyslexia.ap.jpg

Medical Infusion

Pump

Guidant

Unmanned Helicopter Space Telescope

Robyn Lutz 7/10/14

Page 4: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Molecular programming

Robyn Lutz 7/10/14 4

“Computing with soup Molecular computing: DNA is sometimes called the software of life. Now it is being used to build computers that can run inside cells.” - The Economist, 3/3/2012

Page 5: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Molecular programming (DNA nanotechnology)

Molecular programming creates and programs a wide variety of synthetic nanosystems that autonomously assemble themselves from molecular components. Programming is done by carefully choosing the molecular strands & their concentrations such that they will achieve the desired shape, structure, function or dynamic behavior.

We are interested in the software engineering of these programmed systems.

Robyn Lutz 7/10/14 5

Page 6: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

We borrow ideas from nature...

• Molecular walkers

• Neural networks

Shin, J. S. & Pierce, N. A. J. Am. Chem. Soc. 126, 10834-10835 (2004).

Qian, L., Winfree, E. & Bruck, J. Nature 475, 368-372 (2011).

Robyn Lutz 7/10/14 6

Computing with DNA

Simulate digital signals with DNA logic circuits (AND, OR, NOT): Low (High)concentration/no fluorescence;

Universal “seesaw” gate implements AND, OR by varying concentration of threshold gate (Qian and Winfree, 2011)

Molecular computer: 130 DNA-strand calculates the floor of the Square Root of four-bit binary numbers

(Qian and Winfree, 2011) Science Photo Library/Alamy.

Binary Counter Barish, Schulman, Rothemund, and Winfree, PNAS 2009

Self-assembled DNA box with a controllable lid, E. S. Andersen, et al., 2009.

Molecular Robotics

Seeman (2010): DNA Spider on Origami Track

Molecular robots guided by

prescriptive landscapes, Lund, et al., 2010. Image: Science News, 2010.

Neural network simulation

Many of the applications will be safety-critical

Page 7: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Figure 1. Atomic Force Microscope images of DNA origami pliers: (a) at initiation, DNA pliers are open in the cross form, (b) upon adding SA moleculesto the solution, DNA pliers close to the parallel form, capturing the SA molecules in the pliers’ jaws; (c)at reset via addition of unset strands DNA pliersre-open, releasing SA molecules. Adapted by permission from Macmillan Publishers Ltd: ref. [12], copyright 2011.

embedded in human cells [10], [11].

The contribution of this paper is to suggest a discipline

by which requirements engineering and formal verifica-

tion can be performed on programmable, self-assemblying

nanomachines. We restrict ourselves here to discussing this

in the context of an important, recent development of one

such nanomachine, DNA origami pliers [12]. We investigate

(1) what it means to specify and validate requirements on

programmable DNA self-assemblies and (2) how we can

verify formally that a self-assembly satisfies its require-

ments. While we do not expect an off-the-shelf framework

to suffice in this domain, we take as our starting point the

identification, evaluation, specification and verification of

requirements for DNA origami pliers as a self-assembling,

programmable nanomachine, using van Lamsweerde’s goal-

oriented requirements engineering [13] and themodel check-

ing of the derived requirements using PRISM. We describe

below our use, results and adjustments of the existing

methods to better fit this new domain.

I I . REQUIREMENTS ENGINEERING

The requirements identification and domain understand-

ing for this initial work were largely artifact-driven, based on

reverse engineering requirements for the nanomachines from

papers describing experimental results. Some of us are do-

main experts, who also served as stand-ins for stakeholders.

Wegained additional insights into the domain by visits to the

wet laboratory. In identifying and refining the requirements,

our primary concern was accuracy. The creation of a goal

graph and operational model matured the requirements, led

to many revisions of domain properties and assumptions,

and surfaced additional subgoals. It also provided a way to

structure the variety of unfamiliar information that we had.

The requirements evaluation found inconsistencies in the

vocabulary used due to the interdisciplinary nature of DNA

nanotechnology and lab-specific dialects. The evaluation

also showed that the functional requirements for the pliers

nanomachine were probabilistic. The requirements speci-

fication constructed iterative versions of the goal graphs

that were increasingly precise and accurate. The plan to

formally verify the requirements led to a better informal

representation, as well. We simultaneously built a formal

state machine model in PRISM, and formalized a set of key

requirements in it. Requirements validation and verification

by simulation and model checking helped assure that these

requirements weresatisfied in themodel, asdescribed below.

The nanomachines to be built are complex, asynchronous,

probabilistic, and resource constrained. They have both

functional and nonfunctional requirements. Functional re-

quirements state what the self-assembly shall do. The most

important functional requirements are geometric, i.e., speci-

fying the shape or structure that the assembly shall achieve,

or behavioral, i.e, specifying what the assembled shape shall

do.

DNA or igami pliers. We consider a DNA origami struc-

ture that can detect the presence of a target molecule in a

solution [12]. The pliers are a nanomachine because they

open and close autonomously (i.e., change their shape)

depending upon the presence or absence of a target molecule

(in this case, SA-streptavidin tetramer) in their environment.

They thus can serveas monitors to “diagnose” whether SA is

present. A future such application might be to detect harmful

molecules within human cells. As shown in Fig. 1(a), the

DNA origami structure is programmed to assemble in the

shape of “pliers” in the open position. (Each yellow cross

pointed to by an arrow is an open pliers.) The pliers are

programmed such that, once assembled, they will capture a

particular molecule of interest by closing that molecule in

their jaws, Fig. 1(b). They should then release the molecule

when “unset strands” of DNA are added to the solution.

Observation through an atomic force microscope (AFM) of

the pliers shows whether the molecule of interest is present

in the solution.

There is a key difference between goal modeling for this

domain and for others in that we need to distinguish the

goals for the entire system from the goals for the individual

pliers. The high-level goal is to detect the target molecule.

The assigned agents to achieve this are the pliers. There

are thus a huge number of agents, roughly on the order of

a nanomole 6⇥ 1014 of them. Each of these agents has a

significant probability of failing to achieve its goal.

DNA origami pliers to detect presence of a target molecule

Robyn Lutz 7/10/14 7

Page 8: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Software engineering analysis tells you: Does the DNA system do what you want? • Modeled the behavior of DNA pliers in

solution. • Identified an unexpected failure state. • Verified by model checking that key

properties are satisfied in the model--if the ratio of targets to detectors isn’t too low or too high:

1. Achieve capture when the target molecule (SA) is present 2. Avoid false positives when SA is not present 3. Identified error state (one SA in each jaw) [ICSE’12, RE’12]

States of a DNA origami pliers

Robyn Lutz 7/10/14 8

Page 9: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Robyn Lutz 7/10/14 9

Many envisioned DNA nanosystem applications will be safety-critical (ex. bio-sensors, drug delivery) Problem:

Monitoring for when an expected event occurs in a DNA nanosystem is hard. Monitoring for the absence of an expected event is even harder.

Solution: We’ve designed a robust, molecular watchdog timer & verified that the probabilistic model works as intended. [ASE’14]

recantha.co.uk

A molecular watchdog timer

Page 10: Software Engineering for Molecular Programmings2erc.iastate.edu/wp-content/uploads/rlutz_2014... · Image: Science News, 2010. Neural network simulation Many of the applications will

Q: What good is Software Engineering? A: A better way to make a new programmed system in DNA! • Provides a process for incremental goal refinement/risk

analysis • Identifies missing requirements and incorrect operating

assumptions • Predicts performance • Gives assurance that some failure modes are unlikely • Yields requirements for more robust system • Reduces number of experiments (aka tests & re-work)

needed

Robyn Lutz 7/10/14 10

Wikipedia commons

Thanks!