|
cuDDL
|
Host-owned reference sketches and labels, ready for binary storage or GPU upload. More...
Public Member Functions | |
| kmer_blacklist const & | blacklist () const noexcept |
| reference_database_metadata | metadata () const noexcept |
| Compatibility metadata and reference count. | |
| std::span< std::string const > | names () const noexcept |
| Reference labels in reference-ID order. | |
| std::span< uint16_t const > | rows () const noexcept |
| Winner scores in reference-ID order, one bucket row per genome. | |
| template<uint32_t K, size_t BucketCount, typename Layout = default_register_layout> | |
| Result< reference_database< K, BucketCount, Layout > > | upload (cuda::stream_ref stream) const |
| Uploads reference score rows and labels without constructing an index. | |
| Result< void > | save (std::filesystem::path const &path) const |
| Writes a versioned, little-endian, CRC32-checked binary file. | |
Static Public Member Functions | |
| template<uint32_t K, size_t BucketCount, typename Layout = default_register_layout> | |
| static Result< reference_database_file > | build (std::span< std::filesystem::path const > paths, cuda::stream_ref stream, path_build_options options={}) |
| Builds one sketch per plain or gzip/BGZF FASTA/FASTQ file on the GPU. | |
| template<uint32_t K, size_t BucketCount, typename Layout = default_register_layout> | |
| static Result< reference_database_file > | build_from_sequences (std::span< sequence_genome const > genomes, cuda::stream_ref stream, sequence_build_options options={}) |
| Builds one sketch per genome from bases the caller already holds. | |
| template<uint32_t K, size_t BucketCount, typename Layout = default_register_layout> | |
| static Result< reference_database_file > | from_store (device_span< uint32_t const > store, std::span< std::string const > names, cuda::stream_ref stream, kmer_blacklist const &blacklist) |
| Adopts a device store as the host rows this form saves. | |
| static Result< reference_database_file > | load (std::filesystem::path const &path) |
| Reads and validates a binary database without requiring a GPU. | |
Friends | |
| class | reference_index_file |
| struct | detail::reference_file_assembly |
Host-owned reference sketches and labels, ready for binary storage or GPU upload.
One input file is one genome, including all of its FASTA/FASTQ records. Input order defines stable reference IDs; labels preserve the supplied paths. Files store winner-score rows and compatibility metadata. Upload creates row storage, not an index. Build and upload are synchronous. The supplied stream must outlive the uploaded database.
Definition at line 267 of file reference_database_file.cuh.
|
inlinenoexcept |
Definition at line 272 of file reference_database_file.cuh.
|
inlinestatic |
Builds one sketch per plain or gzip/BGZF FASTA/FASTQ file on the GPU.
K-mers never cross record boundaries or ambiguous bases. FASTQ qualities are validated and ignored. Loader threads compact and stage records into a device arena, and one batch kernel encodes every record in it, so the device is fed in large batches rather than slice by slice. Register rows stay on the device for a group of genomes and return to the host once per group. Empty genomes retain their IDs and have zero rows.
Definition at line 299 of file reference_database_file.cuh.
|
inlinestatic |
Builds one sketch per genome from bases the caller already holds.
Each genome supplies its records as spans of consecutive bases with the line breaks already removed, the shape a parsed FASTX record has. The caller keeps every byte alive until this returns, and the build is synchronous like build. Labels come from the genomes' names, and reference IDs follow the order of genomes.
Definition at line 357 of file reference_database_file.cuh.
|
inlinestatic |
Adopts a device store as the host rows this form saves.
A store holds BucketCount registers per reference, the layout a single sketch allocation has. A staged build and the streamed tile builder both write that layout.
names labels one reference each in store order, or is empty for a database without labels. The caller must supply the blacklist used to construct these registers, or an empty blacklist for unfiltered registers.
Definition at line 409 of file reference_database_file.cuh.
|
inlinestatic |
Reads and validates a binary database without requiring a GPU.
Definition at line 550 of file reference_database_file.cuh.
|
inlinenoexcept |
Compatibility metadata and reference count.
Definition at line 277 of file reference_database_file.cuh.
|
inlinenoexcept |
Reference labels in reference-ID order.
Definition at line 281 of file reference_database_file.cuh.
|
inlinenoexcept |
Winner scores in reference-ID order, one bucket row per genome.
Definition at line 285 of file reference_database_file.cuh.
|
inline |
Writes a versioned, little-endian, CRC32-checked binary file.
Writes to an exclusive temporary file in the destination directory, closes it, then atomically replaces the destination. Failure leaves an existing destination intact. This guarantees atomic publication, not durability across power loss.
Definition at line 474 of file reference_database_file.cuh.
|
inline |
Uploads reference score rows and labels without constructing an index.
Definition at line 451 of file reference_database_file.cuh.
|
friend |
Definition at line 645 of file reference_database_file.cuh.
|
friend |
Definition at line 644 of file reference_database_file.cuh.