Skip to content

mattaq31/Hash-CAD

Repository files navigation

#-CAD and Crisscross Library Packages

Hash-CAD in action

Unified CAD and scripting packages for megastructure design, handle library generation and visualization.

Platform Support License: MIT

Web CI Status Flutter Tests Status GitHub all releases

Hash-CAD in action

Hash-CAD in action

#-CAD

#-CAD provides a graphical interface for designing crisscross megastructures with features including:

  • 2D Grid Design: Intuitive slat placement on square or hexagonal grids
  • Handle Optimization: Evolutionary algorithm for optimal assembly handle sequence selection from a finite library
  • 3D Visualization: Real-time 3D rendering of a design
  • Cargo and Seed Placement: Free-form editing of cargo handle placement
  • Handle Linking: The ability to link handles or generate duplicates to build repeating unit designs
  • Echo Export: Direct export to Echo Liquid Handler command sheets
  • (Experimental) Double-Barrel slats - The ability to design and optimize megastructures using double-barrel 2x16 slats (alongside the standard 1x32 slats)

For comprehensive usage instructions, see the User Guide.

Installation

Desktop Application: Download the latest release for your platform from GitHub Releases.

Platform Download
macOS Hash-CAD-macOS.zip
Windows Hash-CAD-windows.zip
Linux Hash-CAD-linux.tar.gz

Web Application: Simply open the application URL here.

For detailed installation instructions, see the Installation Guide.

TLDR Usage Guide

  1. Create or load a design: Start fresh or import an existing .xlsx design file
  2. Design your slat layout: Place slats on the 2D grid to form your megastructure. Slats must crisscross each other on different layers to produce a valid design.
  3. Optimize handles: Run the evolutionary algorithm to optimize handle sequence selection.
  4. Add cargo and seeds: Place functional elements on your design and select the seed binding position (requires a total of 5x16 handles).
  5. Export: Generate Echo commands or save for Python processing.

See the full User Guide for more details.

Crisscross Python API & Orthogonal Sequence Generation

The crisscross python API can be used to manipulate megastructures programmatically, and its file format is fully compatible with that of #-CAD. The Python interface provides more flexibility and customizability when compared to #-CAD, at the cost of a steeper learning curve.

The bundled orthoseq_generator package helps you find sets of orthogonally binding DNA sequence pairs. The main focus is on selecting sequences based on thermodynamic binding energy, not sequence diversity (as commonly used in barcoding).

Installation

Simply install via pip (requires Python 3.11+):

pip install crisscross_kit

Please check our docs for more details on installation and usage of our joint python libraries for crisscross design and handle library orthogonal sequence generation.

Development & Support

#-CAD was developed in the William Shih Lab at the Dana-Farber Cancer Institute and the Wyss Institute at Harvard University. The following contributed to the codebase:

  • Matthew Aquilina - Lead developer for the project.
  • Florian Katzmeier - Developed handle assignment and handle library orthogonal sequence selection algorithms.
  • Stella (Siyuan) Wang - Developed initial megastructure assembly and hamming distance calculation protocols, and implemented various custom megastructure design systems in the final codebase.
  • Corey Becker - Developed initial prototype GUI using a combined javascript-python server and laid the foundation for the final #-CAD interface.

Experimental validation of #-CAD was carried out by the entire crisscross origami team, which also included:

All the above team members contributed to beta-testing and test-trialling the app during its development!

Development of the evolutionary algorithm was accelerated by the use of Harvard Medical School's O2 High Performance Compute Cluster.

This project was supported by various funding sources:

  • A UK Medical Research Council Precision Medicine Transition Fellowship awarded to Matthew Aquilina (grant number MR/N013166/1)
  • The Dana-Farber Cancer Institute's Claudia Adams Barr Program for Cancer Research
  • A Wyss Institute Northpond Alliance Director's Fund Award awarded to Matthew Aquilina
  • The German Research Foundation (Deutsche Forschungsgemeinschaft, DFG) through the Walter Benjamin Programme (project number 553862611, awarded to Florian Katzmeier)
  • The U.S. Department of Energy, Office of Science, Basic Energy Sciences, Biomolecular Materials Program (Award No. DE-SC0024136)
  • The Carlsberg Foundation (grant CF23-1125, awarded to Minke Nijenhuis)
  • A Sloan foundation grant (grant ID G-2021-16495)
  • The Harvard College Research Program (funding Corey Becker)
  • The Korea-US Collaborative Research Fund (KUCRF) funded by the Ministry of Science and ICT and Ministry of Health & Welfare, Republic of Korea (grant RS-2024-00468463)
  • The Novo Nordisk Foundation (grant NNF23OC0084494)
  • The Wyss Institute's Molecular Robotics Initiative

For more details of everyone's coding contributions, please check the graphs here. Contributions from the open-source community are welcome!

Literature Citation

Coming soon!

Accompanying data and a large set of examples is available at our Zenodo deposition here.

About

Main Repository for #-CAD, a cross-platform design platform for crisscross megastructures.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7