pub fn generate_ucsc_patch_name(
genbank_accession: &str,
chromosome: &str,
patch_type: PatchType,
) -> Option<String>Expand description
Generate a UCSC-style name for a patch contig.
This function implements the UCSC naming convention for fix-patches and novel-patches:
- Format:
chr{chromosome}_{accession}v{version}_{suffix} - Where
suffixisfixfor fix-patches andaltfor novel-patches
§Arguments
genbank_accession- TheGenBankaccession (e.g., “KN196472.1”)chromosome- The assigned chromosome (e.g., “1”, “X”, “Y”)patch_type- Whether this is a fix-patch or novel-patch
§Returns
The generated UCSC-style name, or None if the accession format is invalid.
§Examples
use ref_solver::parsing::ncbi_report::{generate_ucsc_patch_name, PatchType};
// Fix-patch example
let name = generate_ucsc_patch_name("KN196472.1", "1", PatchType::Fix);
assert_eq!(name, Some("chr1_KN196472v1_fix".to_string()));
// Novel-patch (alt) example
let name = generate_ucsc_patch_name("KQ458382.1", "1", PatchType::Novel);
assert_eq!(name, Some("chr1_KQ458382v1_alt".to_string()));
// Y chromosome fix-patch
let name = generate_ucsc_patch_name("KN196487.1", "Y", PatchType::Fix);
assert_eq!(name, Some("chrY_KN196487v1_fix".to_string()));