///|
pub fn normalize_sequence(sequence : String) -> String {
let mut normalized = ""
for i = 0; i < sequence.length(); i = i + 1 {
let c = sequence[i]
if c == ' ' || c == '\t' || c == '\n' || c == '\r' {
continue
}
if c == 'a' {
normalized = normalized + "A"
} else if c == 'c' {
normalized = normalized + "C"
} else if c == 'g' {
normalized = normalized + "G"
} else if c == 't' {
normalized = normalized + "T"
} else if c == 'u' {
normalized = normalized + "U"
} else {
normalized = normalized + c.to_int().unsafe_to_char().to_string()
}
}
normalized
}
///|
pub fn gc_ratio_percent(sequence : String) -> Int {
let normalized = normalize_sequence(sequence)
if normalized.length() == 0 {
return 0
}
let mut gc = 0
for i = 0; i < normalized.length(); i = i + 1 {
let c = normalized[i]
if c == 'G' || c == 'C' {
gc = gc + 1
}
}
gc * 100 / normalized.length()
}