use crate::training::{
initialize_metagenome_0, initialize_metagenome_1, initialize_metagenome_10,
initialize_metagenome_11, initialize_metagenome_12, initialize_metagenome_13,
initialize_metagenome_14, initialize_metagenome_15, initialize_metagenome_16,
initialize_metagenome_17, initialize_metagenome_18, initialize_metagenome_19,
initialize_metagenome_2, initialize_metagenome_20, initialize_metagenome_21,
initialize_metagenome_22, initialize_metagenome_23, initialize_metagenome_24,
initialize_metagenome_25, initialize_metagenome_26, initialize_metagenome_27,
initialize_metagenome_28, initialize_metagenome_29, initialize_metagenome_3,
initialize_metagenome_30, initialize_metagenome_31, initialize_metagenome_32,
initialize_metagenome_33, initialize_metagenome_34, initialize_metagenome_35,
initialize_metagenome_36, initialize_metagenome_37, initialize_metagenome_38,
initialize_metagenome_39, initialize_metagenome_4, initialize_metagenome_40,
initialize_metagenome_41, initialize_metagenome_42, initialize_metagenome_43,
initialize_metagenome_44, initialize_metagenome_45, initialize_metagenome_46,
initialize_metagenome_47, initialize_metagenome_48, initialize_metagenome_49,
initialize_metagenome_5, initialize_metagenome_6, initialize_metagenome_7,
initialize_metagenome_8, initialize_metagenome_9,
};
use crate::types::{MetagenomicBin, Training};
static DESCS: [(&[u8], &[u8], f64); 50] = [
(b"Mycoplasma_bovis_PG45\0", b"B\0", 29.31),
(b"Mycoplasma_pneumoniae_M129\0", b"B\0", 40.01),
(b"Mycoplasma_suis_Illinois\0", b"B\0", 31.08),
(b"Aeropyrum_pernix_K1\0", b"A\0", 56.31),
(b"Akkermansia_muciniphila_ATCC_BAA_835\0", b"B\0", 55.76),
(b"Anaplasma_marginale_Maries\0", b"B\0", 49.76),
(b"Anaplasma_phagocytophilum_HZ\0", b"B\0", 41.64),
(b"Archaeoglobus_fulgidus_DSM_4304\0", b"A\0", 48.58),
(b"Bacteroides_fragilis_NCTC_9343\0", b"B\0", 43.19),
(b"Brucella_canis_ATCC_23365\0", b"B\0", 57.21),
(b"Burkholderia_rhizoxinica_HKI_454\0", b"B\0", 59.70),
(b"Candidatus_Amoebophilus_asiaticus_5a2\0", b"B\0", 35.05),
(b"Candidatus_Korarchaeum_cryptofilum_OPF8\0", b"A\0", 49.00),
(b"Catenulispora_acidiphila_DSM_44928\0", b"B\0", 69.77),
(b"Cenarchaeum_symbiosum_B\0", b"A\0", 57.19),
(b"Chlorobium_phaeobacteroides_BS1\0", b"B\0", 48.93),
(b"Chlorobium_tepidum_TLS\0", b"B\0", 56.53),
(b"Desulfotomaculum_acetoxidans_DSM_771\0", b"B\0", 41.55),
(b"Desulfurococcus_kamchatkensis_1221n\0", b"B\0", 45.34),
(b"Erythrobacter_litoralis_HTCC2594\0", b"B\0", 63.07),
(b"Escherichia_coli_UMN026\0", b"B\0", 50.72),
(b"Haloquadratum_walsbyi_DSM_16790\0", b"A\0", 47.86),
(b"Halorubrum_lacusprofundi_ATCC_49239\0", b"A\0", 57.14),
(b"Hyperthermus_butylicus_DSM_5456\0", b"A\0", 53.74),
(b"Ignisphaera_aggregans_DSM_17230\0", b"A\0", 35.69),
(b"Marinobacter_aquaeolei_VT8\0", b"B\0", 57.27),
(b"Methanopyrus_kandleri_AV19\0", b"A\0", 61.16),
(b"Methanosphaerula_palustris_E1_9c\0", b"A\0", 55.35),
(
b"Methanothermobacter_thermautotrophicus_Delta_H\0",
b"B\0",
49.54,
),
(b"Methylacidiphilum_infernorum_V4\0", b"B\0", 45.48),
(b"Mycobacterium_leprae_TN\0", b"B\0", 57.80),
(b"Natrialba_magadii_ATCC_43099\0", b"A\0", 61.42),
(b"Orientia_tsutsugamushi_Boryong\0", b"B\0", 30.53),
(b"Pelotomaculum_thermopropionicum_SI\0", b"B\0", 52.96),
(b"Prochlorococcus_marinus_MIT_9313\0", b"B\0", 50.74),
(b"Pyrobaculum_aerophilum_IM2\0", b"A\0", 51.36),
(b"Ralstonia_solanacearum_PSI07\0", b"B\0", 66.13),
(b"Rhizobium_NGR234\0", b"B\0", 58.49),
(b"Rhodococcus_jostii_RHA1\0", b"B\0", 65.05),
(b"Rickettsia_conorii_Malish_7\0", b"B\0", 32.44),
(b"Rothia_dentocariosa_ATCC_17931\0", b"B\0", 53.69),
(b"Shigella_dysenteriae_Sd197\0", b"B\0", 51.25),
(b"Synechococcus_CC9605\0", b"B\0", 59.22),
(b"Synechococcus_JA_2_3B_a_2_13_\0", b"B\0", 58.45),
(b"Thermoplasma_volcanium_GSS1\0", b"A\0", 39.92),
(b"Treponema_pallidum_Nichols\0", b"B\0", 52.77),
(b"Tropheryma_whipplei_TW08_27\0", b"B\0", 46.31),
(b"Xenorhabdus_nematophila_ATCC_19061\0", b"B\0", 44.15),
(b"Xylella_fastidiosa_Temecula1\0", b"B\0", 51.78),
(b"_Nostoc_azollae__0708\0", b"B\0", 38.45),
];
static INIT_FNS: [unsafe fn(*mut Training); 50] = [
initialize_metagenome_0,
initialize_metagenome_1,
initialize_metagenome_2,
initialize_metagenome_3,
initialize_metagenome_4,
initialize_metagenome_5,
initialize_metagenome_6,
initialize_metagenome_7,
initialize_metagenome_8,
initialize_metagenome_9,
initialize_metagenome_10,
initialize_metagenome_11,
initialize_metagenome_12,
initialize_metagenome_13,
initialize_metagenome_14,
initialize_metagenome_15,
initialize_metagenome_16,
initialize_metagenome_17,
initialize_metagenome_18,
initialize_metagenome_19,
initialize_metagenome_20,
initialize_metagenome_21,
initialize_metagenome_22,
initialize_metagenome_23,
initialize_metagenome_24,
initialize_metagenome_25,
initialize_metagenome_26,
initialize_metagenome_27,
initialize_metagenome_28,
initialize_metagenome_29,
initialize_metagenome_30,
initialize_metagenome_31,
initialize_metagenome_32,
initialize_metagenome_33,
initialize_metagenome_34,
initialize_metagenome_35,
initialize_metagenome_36,
initialize_metagenome_37,
initialize_metagenome_38,
initialize_metagenome_39,
initialize_metagenome_40,
initialize_metagenome_41,
initialize_metagenome_42,
initialize_metagenome_43,
initialize_metagenome_44,
initialize_metagenome_45,
initialize_metagenome_46,
initialize_metagenome_47,
initialize_metagenome_48,
initialize_metagenome_49,
];
pub unsafe fn initialize_metagenomic_bins(meta: *mut MetagenomicBin) {
for i in 0..50 {
let m = &mut *meta.add(i);
INIT_FNS[i](m.tinf);
let name = std::str::from_utf8_unchecked(&DESCS[i].0[..DESCS[i].0.len() - 1]);
let domain = std::str::from_utf8_unchecked(&DESCS[i].1[..DESCS[i].1.len() - 1]);
let s = format!(
"{}|{}|{}|{:.1}|{}|{}\0",
i,
name,
domain,
DESCS[i].2,
(*m.tinf).trans_table,
(*m.tinf).uses_sd
);
std::ptr::copy_nonoverlapping(s.as_ptr(), m.desc.as_mut_ptr() as *mut u8, s.len().min(500));
}
}