Skip to main content

generate_ucsc_patch_name

Function generate_ucsc_patch_name 

Source
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 suffix is fix for fix-patches and alt for novel-patches

§Arguments

  • genbank_accession - The GenBank accession (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()));