{"id":15729669,"url":"https://github.com/dangreco/jean","last_synced_at":"2025-04-14T04:54:56.878Z","repository":{"id":64072625,"uuid":"572268389","full_name":"dangreco/jean","owner":"dangreco","description":"Computational biology utility library for Rust featuring sequence alignment, genome annotation, and I/O of biological files","archived":false,"fork":false,"pushed_at":"2022-12-01T22:42:00.000Z","size":2054,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T10:07:53.847Z","etag":null,"topics":["bioinformatics","biology","computational-biology","dna","genes","genetics","protein","rna"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dangreco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-29T22:48:21.000Z","updated_at":"2025-03-21T16:20:39.000Z","dependencies_parsed_at":"2023-01-14T20:45:23.972Z","dependency_job_id":null,"html_url":"https://github.com/dangreco/jean","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangreco%2Fjean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangreco%2Fjean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangreco%2Fjean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangreco%2Fjean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dangreco","download_url":"https://codeload.github.com/dangreco/jean/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248824691,"owners_count":21167343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","biology","computational-biology","dna","genes","genetics","protein","rna"],"created_at":"2024-10-03T23:40:27.723Z","updated_at":"2025-04-14T04:54:56.849Z","avatar_url":"https://github.com/dangreco.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# jean\n\njean is a computational biology library written in Rust. It offers\ncomputational biology primitives such as sequences (DNA, RNA, and Protein), bases, amino acids, and codons. Optional features extend the \nabilities of jean, such as `io` which allows for reading/writing from/to common biological file formats (e.g. FASTA, GFF3) and `alignment` which allows for aligning sequences. \n\n## Getting Started\n\nAdd `jean` and any needed features to your Rust project:\n\n```sh\n$ cargo add jean # --features io,...\n```\n\n## Feature Matrix\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eFeature\u003c/th\u003e\n      \u003cth\u003eUse\u003c/th\u003e\n      \u003cth\u003eLinks\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003eio\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eI/O of common biological file formats (e.g. FASTA, GFF3)\u003c/td\u003e\n      \u003ctd\u003e\n        (\u003ca href=\"\"\u003eDocumentation\u003c/a\u003e)\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003emacros\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eMacros for creating sequences\u003c/td\u003e\n      \u003ctd\u003e\n        (\u003ca href=\"\"\u003eDocumentation\u003c/a\u003e)\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ealignment\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eSequence alignment tools\u003c/td\u003e\n      \u003ctd\u003e\n        (\u003ca href=\"\"\u003eDocumentation\u003c/a\u003e)\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003eblosum\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eBLOSUM substitution matrices\u003c/td\u003e\n      \u003ctd\u003e\n        (\u003ca href=\"\"\u003eDocumentation\u003c/a\u003e)\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Examples\n\n### DNA Sequence Alignment\n```rust\n#[macro_use]\nextern crate jean;\n\nuse jean::{alignment::global::NeedlemanWunsch, blosum::NUC_4_2, dna::Dna};\n\nfn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n  let seq1: Dna = dna!(\"AGACTAGTTAC\");\n  let seq2: Dna = dna!(\"CGAGACGT\");\n\n  let alignment = NeedlemanWunsch::new()\n    .matrix(\u0026NUC_4_2)\n    .gap_penalty(|k| -2 * k)\n    .align(\u0026seq1, \u0026seq2)?;\n\n  assert_eq!(alignment.score, 16);\n  assert_eq!(alignment.a, dna!(\"--AGACTAGTTAC\"));\n  assert_eq!(alignment.b, dna!(\"CGAGAC--G-T--\"));\n\n  Ok(())\n}\n```\n\n### DNA -\u003e RNA -\u003e Protein\n```rust\n#[macro_use]\nextern crate jean;\n\nuse jean::{cut::Cut, dna::Dna, prelude::*, protein::Protein, rna::Rna};\n\nfn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n  let cut = Cut::read_file(\"homo_sapien.cut\")?;\n\n  /* DNA -\u003e RNA -\u003e Protein */\n  let d: Dna = dna!(\"AGGCTGGGCACC\");\n  let r: Rna = d.transcribe();\n  let p: Protein = r.translate(\u0026cut);\n\n  assert_eq!(p, protein!(\"RLGT\"));\n\n  /* ...and back again */\n  let r_ = p.rev_translate(\u0026cut);\n  let d_ = r_.rev_transcribe();\n\n  assert_eq!(d, d_);\n\n  Ok(())\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangreco%2Fjean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdangreco%2Fjean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangreco%2Fjean/lists"}