cuDDL
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
fasta_parser.hpp File Reference
#include <cuda/std/cstdint>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <thread>
#include <utility>
#include <vector>
#include <cuddl/detail/dna.hpp>
#include <cuddl/detail/fastx_sequence_file.hpp>
#include <cuddl/error.hpp>
Include dependency graph for fasta_parser.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cuddl::detail::fasta_parse_result
 Result of parsing one FASTA/FASTQ file into packed canonical k-mers. More...
 
struct  cuddl::detail::fastx_sequence_span
 One parallel scan span of the combined FASTA sequence stream. More...
 
struct  cuddl::detail::span_result
 One worker's rolling-window state and output. More...
 

Namespaces

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

Functions

constexpr uint64_t cuddl::detail::reverse_complement (uint64_t packed, uint32_t k) noexcept
 Reverse-complements a packed k-mer (2 bits per base) with bit-parallel reversal.
 
std::vector< fastx_sequence_span > cuddl::detail::fastx_split_sequence_spans (std::vector< fastx_sequence_extent > const &extents, uint32_t seed_bases, uint32_t count)
 Splits the combined FASTA sequence stream into count contiguous spans.
 
void cuddl::detail::consume_byte (char ch, uint32_t k, uint64_t mask, span_result &result, uint64_t &window, uint32_t &window_len)
 Feeds one byte of sequence through the DDL rolling-window extraction.
 
Result< fasta_parse_result > cuddl::detail::parse_fasta (std::string const &path, uint32_t k, unsigned threads=std::thread::hardware_concurrency())
 Parses a FASTA/FASTQ file's sequence bases into packed canonical k-mers of length k.