cuDDL
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
reference_database_file.cuh File Reference
#include <algorithm>
#include <bit>
#include <cctype>
#include <cerrno>
#include <condition_variable>
#include <cstdio>
#include <cstdlib>
#include <exception>
#include <filesystem>
#include <fstream>
#include <limits>
#include <mutex>
#include <optional>
#include <span>
#include <string>
#include <system_error>
#include <thread>
#include <vector>
#include <fcntl.h>
#include <libdeflate.h>
#include <unistd.h>
#include <cub/device/device_reduce.cuh>
#include <cuda/iterator>
#include <cuda/std/functional>
#include <cuddl/detail/database_staging.cuh>
#include <cuddl/detail/sequence_encode.cuh>
#include <cuddl/fastx.hpp>
#include <cuddl/reference_database.cuh>
#include <cuddl/sketch.cuh>

Go to the source code of this file.

Classes

struct  cuddl::detail::database_file_reader
 
struct  cuddl::detail::database_file_writer
 
struct  cuddl::path_build_options
 Knobs for a build the caller feeds with FASTA/FASTQ paths. More...
 
struct  cuddl::sequence_build_options
 Knobs for a build the caller feeds with bases it already holds. More...
 
class  cuddl::reference_database_file
 Host-owned reference sketches and labels, ready for binary storage or GPU upload. More...
 

Namespaces

namespace  cuddl
 Batch operations over contiguous device rows.
 
namespace  cuddl::detail
 

Typedefs

using cuddl::transfer_mode = detail::transfer_mode
 How a build gets its sequence bytes to the device.
 
using cuddl::decompression_backend = detail::decompression_backend
 Selects decompression independently of host transfers.
 
using cuddl::sequence_record = detail::sequence_record
 One record of a genome the caller already holds: bases only.
 
using cuddl::sequence_genome = detail::sequence_genome
 One genome as its records, in order. No records keeps the genome's ID with a zero row.
 

Functions

template<typename T >
T cuddl::detail::database_file_little_endian (T value)
 
template<typename IO >
Result< void > cuddl::detail::database_file_metadata (IO &io, reference_database_metadata &metadata, uint32_t &blacklist_count)
 
unsigned cuddl::default_parser_workers ()
 Loaders a path build runs unless the caller asks for another count.
 
Result< std::vector< std::filesystem::path > > cuddl::genome_paths (std::filesystem::path const &directory)
 The FASTA/FASTQ files under directory, searched recursively and sorted by path, which is the order that numbers reference IDs.
 
Result< std::vector< std::filesystem::path > > cuddl::list_genomes (std::filesystem::path const &input)
 Paths from a directory (see genome_paths) or from a text file with one path per line, in the file's order.
 
template<uint32_t K, size_t BucketCount, typename Layout = default_register_layout>
Result< cuda::device_buffer< uint32_t > > cuddl::build_sketch_store (std::span< std::filesystem::path const > paths, cuda::stream_ref stream, path_build_options options={})
 Sketches one genome per plain or gzip/BGZF FASTA/FASTQ file into a device store.