rustkmer 0.5.2

High-performance k-mer counting tool in Rust
Documentation
# Wildcard

**Module**: `rustkmer::fuzzy::wildcard`

## Overview

Wildcard expansion for N nucleotides
This module handles the expansion of wildcard characters (N) into all possible
nucleotides (A, T, C, G) with efficient algorithms for combinatorial explosion management.

## API Reference

### Consts

#### NUCLEOTIDES

```rust
const NUCLEOTIDES: [char; 4] = ['A', 'T', 'C', 'G'];
```

Nucleotide bases

### Fns

#### expand_wildcards

```rust
pub fn expand_wildcards(query: &str) -> FuzzyResult<Vec<String>> {
```

Expand wildcards (N) in a query string to all possible combinations

# Arguments
* `query` - Query string possibly containing 'N' wildcards

# Returns
Vector of all concrete sequences without wildcards

# Examples
```
use rustkmer::fuzzy::wildcard::expand_wildcards;

let variants = expand_wildcards("ATGCGATGCTAGCN").unwrap();
assert_eq!(variants.len(), 4);
assert!(variants.contains(&"ATGCGATGCTAGCA".to_string()));
assert!(variants.contains(&"ATGCGATGCTAGCT".to_string()));
assert!(variants.contains(&"ATGCGATGCTAGCC".to_string()));
assert!(variants.contains(&"ATGCGATGCTAGCG".to_string()));
```

#### expand_wildcards_iterative

```rust
pub fn expand_wildcards_iterative(query: &str) -> FuzzyResult<Vec<String>> {
```

Expand wildcards using an iterative approach (memory efficient)

This method generates variants iteratively to avoid deep recursion
for queries with many wildcards.

#### count_wildcards

```rust
pub fn count_wildcards(query: &str) -> usize {
```

Count the number of wildcards in a query

#### estimate_wildcard_variants

```rust
pub fn estimate_wildcard_variants(query: &str) -> usize {
```

Estimate the number of variants that would be generated

#### would_exceed_wildcard_limit

```rust
pub fn would_exceed_wildcard_limit(query: &str, max_variants: usize) -> bool {
```

Check if a query would exceed variant limits

#### validate_wildcard_query

```rust
pub fn validate_wildcard_query(query: &str, max_variants: Option<usize>) -> FuzzyResult<()> {
```

Validate wildcard query parameters

#### remove_duplicate_variants

```rust
pub fn remove_duplicate_variants(variants: &mut Vec<String>) {
```

Remove duplicate variants (maintain order)

---

*Source: [`wildcard.rs`](../../../fuzzy/wildcard.rs)*