GithubHelp home page GithubHelp logo

an00brektn / oops Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jacobashw/oops

0.0 0.0 0.0 55 KB

Oriented Optimal Pot Solver for DNA Self-Assembly.

License: GNU General Public License v3.0

Python 100.00%

oops's Introduction

Overview

This repository contains computational tools for flexible tile models in DNA self-assembly. The current tools provided are the OOPS and the SRPS, detailed more in their respective sections.

This software was developed as part of Summer@ICERM 2023 (https://icerm.brown.edu/summerug/2023/). This codebase is the implementation of the algorithms outlined in (TODO: link paper once on archive).

Setup

This code runs on Python 3. You can download the latest release here: https://www.python.org/downloads/ This codebase uses the python packages networkx, numpy, matplotlib, and gurobipy. You can install these packages by running the follow commands.

  pip install networkx
  pip install numpy
  pip install matplotlib
  pip install gurobipy

This code also uses the gurobi optimizer to solve mixed-integer programming problems. To use this optimizer, you will need to download and activate gurobi. Gurobi is free for academic use, and you can follow the instructions here to download and activate gurobi: https://www.gurobi.com/features/academic-named-user-license/

OOPS

Oriented Optimal Pot Solver for DNA Self-Assembly. Given a target graph, the OOPS aims to compute the optimal (least tiles and bond-edge types) pot capable of realizing the graph, under various sets of restrictions. Currently OOPS is capable of computing pots for graphs in Scenario 1 and Scenario 2.

Usage

There is an included command-line interface, which is by default enabled. This will allow you to specify a scenario and a graph to run on by executing the code and following text prompts.

The reccomended way to use OOPS (if you have some coding experience) is to use a code editor to modify the parameters listed in the beginning of OOPS.py. This allows you to use all of the tools networkx provides to build target graphs: https://networkx.org/documentation/stable/tutorial.html

SRPS

Subgraph Realization Problem Solver. Given a pot, the SRPS aims to compute the smallest size graph the pot can produce. This is useful for helping verify pots in Scenario 2 and Scenario 3.

Usage

Currently, the only way to use the SRPS is to use a code editor to modify the 'pot' parameter listed at the beginning.

oops's People

Contributors

rhit-ashworjs avatar jacobashw avatar faustonavarro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.