Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Api #9

Closed
wants to merge 25 commits into from
Closed

Api #9

wants to merge 25 commits into from

Conversation

Koeng101
Copy link
Owner

@Koeng101 Koeng101 commented Dec 10, 2023

API adds an OpenAPI interface to DnaDesign. This allows other programs to work with DnaDesign.

In particular, we have a focus on supporting an embedded lua environment and python interactivity.

A massive change is, now, the output of parsers is now defined directly in the OpenAPI spec, rather than in their respective parser files.

@Koeng101
Copy link
Owner Author

I think a connect.build API might be better here, with autogenerated JSON schema using https://github.com/chrusty/protoc-gen-jsonschema

Would allow stream outputs, which I think is quite useful, and better typing. Better to get this right at the beginning, than have to change it later.

@Koeng101
Copy link
Owner Author

I think a connect.build API might be better here, with autogenerated JSON schema using https://github.com/chrusty/protoc-gen-jsonschema

Would allow stream outputs, which I think is quite useful, and better typing. Better to get this right at the beginning, than have to change it later.

I've changed my mind on this, I think. You don't get the beautiful API docs with gRPC like you could get with OpenAPI using things like scalar. I think this is actually more important than things like streaming - streaming is nice, but it doesn't necessarily help people use the things built. OpenAPI docs would help with building.

@Koeng101
Copy link
Owner Author

Koeng101 commented Dec 20, 2023

I want the following functionality to be exposed:

Parsers

  1. Parse and write Fasta
  2. Parse and write Genbank
  3. Parse and write Fastq
  4. Parse and write Slow5
  5. Parse and write Pileup
    6. [ ] Get and parse Uniprot

CDS

  1. Fix CDS
  2. Optimize CDS
  3. Translate CDS

PCR

  • PCR
  • Simple PCR
  • Design primers
  • Calculate primer tm
  • DeBruijn Barcodes

Cloning

  • Ligation
  • Restriction Digest
  • GoldenGate
  • Fragment

Folding

  • Fold (Zuker)
  • Fold (LinearFold)
  • MFE calculation

Basic utils

  • Reverse complement
  • Seqhash Protein/RNA/DNA
  • Seqhash fragment
  • Random DNA
  • Random RNA
  • Random Protein
  • IsPalindromic

Codon tables

  • New codon table
  • Add codon table
  • Compromise codon table
  • Get default codon tables

@Koeng101
Copy link
Owner Author

In addition, we should have a single lua example file with how to use each and every function, all of which are runnable examples. Questions of whether to include each into the final context should be included.

Not only will the examples in one place be a nice way to document how to use the interface, we can parse it to ask an LLM whether or not the example should be passed into a system that writes code to execute a user's request.

@Koeng101 Koeng101 mentioned this pull request Dec 25, 2023
@Koeng101
Copy link
Owner Author

Koeng101 commented Aug 4, 2024

I'm closing this because WASM sounds like it could work much better.

@Koeng101 Koeng101 closed this Aug 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant