Genomics.IO
1.0.0
See the version list below for details.
dotnet add package Genomics.IO --version 1.0.0
NuGet\Install-Package Genomics.IO -Version 1.0.0
<PackageReference Include="Genomics.IO" Version="1.0.0" />
<PackageVersion Include="Genomics.IO" Version="1.0.0" />
<PackageReference Include="Genomics.IO" />
paket add Genomics.IO --version 1.0.0
#r "nuget: Genomics.IO, 1.0.0"
#:package Genomics.IO@1.0.0
#addin nuget:?package=Genomics.IO&version=1.0.0
#tool nuget:?package=Genomics.IO&version=1.0.0
Genomics — A Modern, High-Performance, Composable Genomics Foundation for .NET
This repository serves two purposes: the original Genomics for Software Engineers course in
Course/, and the Genomics .NET platform it grew into. Course returners → start here.
Genomics is a .NET-native platform for genomic data processing: a strongly typed domain model, streaming parsers for the major sequencing file formats, sequence operations, indexing, algorithms, and composable pipelines: explicit interop with the established bioinformatics ecosystem (samtools, bcftools, minimap2, BWA, GATK) instead of reinventing it.
For .NET engineers, genomic data should feel like a first-class domain, not something you must always hand off to Python, Java, or C++ pipelines. That is what this platform is for.
The Course — the Original Content of This Repo
If you came here for the Genomics for Software Engineers curriculum, it lives on in Course/: the 12-week, hands-on crash course that teaches minimum-viable biology and maximum practical bioinformatics through software analogies, with a printable single-document version (genomics.docx).
The course is more than documentation: it is the learning foundation of this platform. Every concept taught there (coordinates, sequences, file formats, reads, alignments, variants) is being turned into a typed, tested, benchmarked primitive in the codebase. Learn the field in Course/, then follow how it becomes code here.
The Story
This repository grew out of a software engineer's ramp-up: joining a genomics project, finding no material between "PhD-level biology" and "tool docs for people who already know the field," and building a self-study curriculum from first principles: DNA as a data structure, the sequencer as a physical-to-digital converter, alignment as string matching, FASTA and VCF as data contracts.
Repository Layout
| Path | Purpose |
|---|---|
Course/ |
The Genomics for Software Engineers curriculum + printable genomics.docx |
docs/guides/ |
Step-by-step guides: quick start, then each file format (FASTQ, SAM, BAM, BAM indexes, VCF) |
Genomics.Core/ |
Domain foundation: 0-based/1-based genomic coordinates, chromosomes and contigs, loci and regions with interval algebra (distance, intersect, merge, subtract), normalized interval/region sets (union, intersect, subtract, complement) and a settled IntervalTree overlap index — with validation and the shared GenomicsException family every package builds on |
Genomics.Sequences/ |
Typed molecular sequences over a compact Nucleotide primitive: DnaSequence, RnaSequence, ProteinSequence with strict alphabet validation, reverse complement, transcription, translation via the standard genetic code, and content-based equality |
Genomics.Sequencing/ |
The sequencing domain: typed Read objects over DnaSequence + Phred QualityScores, and ReadPair groupings: the model FASTQ files load into |
Genomics.IO/ |
Streaming, async, cancellable file-format readers and writers: FASTA, FASTQ (plain or gzip, auto-detected), VCF (headers, typed INFO/FORMAT, genotypes, gzip input), SAM (typed CIGAR/flags/tags, Alignment, gzip input), and BAM (BGZF block I/O, the binary header and record codecs, SAM⇄BAM round trips, BAI index build/.bai sidecar I/O, virtual-offset random access, and indexed region queries) |
Genomics.Tests/ |
Unit tests: one project, folders per namespace (Core/, Sequences/, IO/, …) |
Genomics.Benchmarks/ |
BenchmarkDotNet suites: throughput, allocations, and scaling curves for each foundation layer as features ship |
License
The platform — all code, tests, benchmarks, and project documentation — is licensed under Apache-2.0. The course materials in Course/ are licensed under MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Genomics.Core (>= 1.0.0)
- Genomics.Sequencing (>= 1.0.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.0)
- System.Memory (>= 4.6.3)
-
net10.0
- Genomics.Core (>= 1.0.0)
- Genomics.Sequencing (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
File-format foundation: streaming FASTA, FASTQ, SAM, VCF, and BAM readers and writers; gzip detection; BGZF block compression; the binary BAM wire format over the shared SAM record model; BAI index construction, serialization, and .bai sidecar I/O; virtual-offset random access and indexed region queries over compressed BAM.