Skip to content

VoxelMC/dnalg-gleam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A DNA manipulation library written in Gleam.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published