dnalg
DNAlg is a DNA sequence manipulation library. This is my implementation in Gleam.
For a more portable version of this project, I will rewrite it in Go whenever I choose to learn Go.
Plans
- Restriction enzyme operations such as
- Simulated digestion
- Counting cut sites
- Silent mutation of cut sites
Usage
To use dnalg
, run it in the command line.
The easiest way to use it is by piping in a DNA sequence and pipe the output to a file.
You can also use the -i flag to specify an input file and the -o flag to specify an output file.
cat input.txt > dnalg [subcommand] > output.txt
The input can be a text file, or in FASTA format. I will look at adding support for .dna
and .gb
files in the future.
Subcommands
silent-mutate
silent-mutate
will silently mutate any restriction sites within the provided DNA sequence.
- Sends the new DNA sequence to stdout.
dnalg silent-mutate [-r|--restriction string]
Roadmap
You can find the roadmap for this project here: ROADMAP.md
Contributing
Running the project
gleam run # Run the project
gleam test # Run the tests
Adding functionality
- Use the built-in
cli/
module to add subcommands to the CLI command (when it is complete); - Add new modules according to the flow outlines in the next section.
Module management
Module structure is as follows:
core/
is for primitives and shared functionality;actions/
are abstractions for core for use in commands;commands/
are primary functions which run via the CLI.
This is done to keep the code clean and avoid circular dependencies.
Try to have modules in actions/
only import from core/
and commands/
only import from core/
or actions/
where possible.
All rights reserved. © 2024, Trevor Fox