ECS 289A: Theory of Molecular Computation
Winter 2018
Instructor
Dave Doty
doty@ucdavis.edu
Office: 2069 Academic Surge
Office hours: Tues 2:10-3:00pm
Course objective
To study the fundamental abilities and limits to the engineering of automated (i.e., computational) molecular systems, in a mathematically rigorous way. 
Prerequisites
ECS 120 or equivalent (familiarity with Chapters 1,3,4,7 of Introduction to the Theory of Computation by Sipser).
Prior experience with probability theory is useful; in particular, Chapters 1-2 of Probability in Computing: Randomized Algorithms and Probabilistic Analysis, by Mitzenmacher and Upfal.
Piazza
  The Piazza page
  for the course can be used to ask questions about the course and
  homework.
  Use access code "ecs289a" to enroll.
  Please read this warning about Piazza as well.
Notes
  lecture notes (note that these are not 
  comprehensive since I often take material straight from a paper) 
Homework
There is a Canvas page with the homework posted.
Project
  Project ideas
Lectures
Tuesday and Thursday, 12:10-1:30pm, Olson 144
Algorithmic tile self-assembly
  -  
    Tues, Jan 9, 2018
    
    Introduction to abstract Tile Assembly Model (aTAM)
    
    aTAM video introduction
    
    ISU TAS simulator
    
    pyTAS (newer version, easier to install, fewer features, likely to have more bugs)
   
  
  -  
    Thurs, Jan 11, 2018
    
    tile complexity of assembling squares
    
    O(log n) tile types for assembling an n x n square
    
    paper: The Program-Size Complexity of Self-Assembled Squares
   
  -  
    Tues, Jan 16, 2018
    
    formal definition of the aTAM
   
  
  -  
    Thurs, Jan 18, 2018
    
    Brief introduction to Kolmogorov complexity
    
    Ω(log n / log log n) tile types necessary to assemble an n x n square
    
    O(log n / log log n) tile types sufficient to assemble an n x n square
    
    paper: Running Time and Program Size for Self-assembled Squares
   
  
  -  
    Tues, Jan 23, 2018
    
    simulation of Turing machine with a tile assembly system
    
    assembling scaled-up version of any finite shape from optimal number of tile types
    
    paper: Complexity of Self-Assembled Shapes
   
  -  
    Thurs, Jan 25, 2018
    
     
  
  
Chemical reaction networks
  -  
    Tues, Jan 30, 2018
    
    Introduction to chemical reaction networks (CRNs).
    Examples of stable function computation.
    
    paper (functions):
      
        Deterministic Function Computation with Chemical Reaction Networks
      
   
  -  
    Thurs, Feb 1, 2018
    
    Formal definition of stable function computation.
    
    Examples of stable predicate computation.
    
    Formal definition of stable predicate computation.
    
    paper (predicates):
      
        Computation in Networks of Passively Mobile Finite-State Sensors
      
   
  
  
  -  
    Tues, Feb 6, 2018
    
    Definition of semilinear sets and functions, claim that only they can be stably computed.
    
    Formal definition discrete chemical kinetic model (Gillespie model).
    
    Derivation of expected completion times for some simple CRNs.
    
    paper: 
      
        Exact stochastic simulation of coupled chemical reactions
      
   
  -  
    Thurs, Feb 8, 2018
    
    time complexity analysis of computing functions/predicates with CRNs
    
    Register machines.
    
    Simulation of register machines by CRNs with a large probability of error.
   
  
  -  
    Tues, Feb 13, 2018
    
    Turing-universality: simulation of register machines by CRNs with a small probability of error.
    
    paper:
      
        Computation with Finite Stochastic Chemical Reaction Networks
      
    
    paper:
      
        Fast Computation by Population Protocols With a Leader
      
   
  
  
  
  -  
    Thurs, Feb 15, 2018
    
    Every semilinear set can be stably decided by a CRN.
    
    paper:
      
        Computation in Networks of Passively Mobile Finite-State Sensors
      
   
  
  
  
  -  
    Tues, Feb 20, 2018
    
    Only semilinear sets can be stably decided by a CRN.
    
    paper:
      
        Stably Computable Predicates are Semilinear
      
   
  
  
DNA strand displacement
  
  -  
    Thurs, Feb 22, 2018
    
    Introduction to DNA strand displacement.
    
    
      Visual DSD
    
    (simulation tool)
    
    papers:
    
   
  
  
Thermodynamic binding networks
  -  
    Tues, Feb 27, 2018
    
    Thermodynamic binding networks
    
    Boolean circuits
    
    paper:
      
        Thermodynamic binding networks
      
    
    slides
   
  -  
    Thurs, Mar 1, 2018
    
    Thermodynamic binding networks
    
    Exponential size bound on stable polymers
    
    aTAM counter that is thermodynamically stable
   
  
Experimental self-assembly
  
  
  -  
    Tues, Mar 6, 2018
    
    Introduction to DNA origami.
    
    Design of geometric molecular bonds
    
    papers:
      
      
        Programmable molecular recognition based on the geometry of DNA nanostructures
      
      
      
        Dynamic DNA devices and assemblies formed by shape-complementary, non-base pairing 3D components
      
      
      
        Design of geometric molecular bonds
      
   
  
  -  
    Thurs, Mar 8, 2018
    
    Algorithmic self-assembly with single-stranded tiles.
   
Project presentations
  
  -  
    Tues, Mar 13, 2018
    
    Project presentations
   
  
  
  
  
  -  
    Thurs, Mar 15, 2018
    
    Project presentations