19 #define ISOSPEC_ALGO_LAYERED 0
20 #define ISOSPEC_ALGO_ORDERED 1
21 #define ISOSPEC_ALGO_THRESHOLD_ABSOLUTE 2
22 #define ISOSPEC_ALGO_THRESHOLD_RELATIVE 3
23 #define ISOSPEC_ALGO_LAYERED_ESTIMATE 4
32 ISOSPEC_C_API
void * setupIso(
int dimNumber,
33 const int* isotopeNumbers,
34 const int* atomCounts,
35 const double* isotopeMasses,
36 const double* isotopeProbabilities);
38 ISOSPEC_C_API
void * isoFromFasta(
const char* fasta,
bool use_nominal_masses,
bool add_water);
40 ISOSPEC_C_API
double getLightestPeakMassIso(
void* iso);
41 ISOSPEC_C_API
double getHeaviestPeakMassIso(
void* iso);
42 ISOSPEC_C_API
double getMonoisotopicPeakMassIso(
void* iso);
43 ISOSPEC_C_API
double getModeLProbIso(
void* iso);
44 ISOSPEC_C_API
double getModeMassIso(
void* iso);
45 ISOSPEC_C_API
double getTheoreticalAverageMassIso(
void* iso);
46 ISOSPEC_C_API
double getIsoVariance(
void* iso);
47 ISOSPEC_C_API
double getIsoStddev(
void* iso);
48 ISOSPEC_C_API
double* getMarginalLogSizeEstimates(
void* iso,
double target_total_prob);
51 ISOSPEC_C_API
void deleteIso(
void* iso);
53 #define ISOSPEC_C_FN_HEADER(generatorType, dataType, method)\
54 ISOSPEC_C_API dataType method##generatorType(void* generator);
56 #define ISOSPEC_C_FN_HEADER_GET_CONF_SIGNATURE(generatorType)\
57 ISOSPEC_C_API void method##generatorType(void* generator);
59 #define ISOSPEC_C_FN_HEADERS(generatorType)\
60 ISOSPEC_C_FN_HEADER(generatorType, double, mass) \
61 ISOSPEC_C_FN_HEADER(generatorType, double, lprob) \
62 ISOSPEC_C_FN_HEADER(generatorType, double, prob) \
63 ISOSPEC_C_FN_HEADER_GET_CONF_SIGNATURE(generatorType) \
64 ISOSPEC_C_FN_HEADER(generatorType, bool, advanceToNextConfiguration) \
65 ISOSPEC_C_FN_HEADER(generatorType, void, delete)
71 ISOSPEC_C_API
void* setupIsoThresholdGenerator(
void* iso,
76 bool reorder_marginals);
77 ISOSPEC_C_FN_HEADERS(IsoThresholdGenerator)
81 ISOSPEC_C_API
void* setupIsoLayeredGenerator(
void* iso,
84 bool reorder_marginals,
86 ISOSPEC_C_FN_HEADERS(IsoLayeredGenerator)
89 ISOSPEC_C_API
void* setupIsoOrderedGenerator(
void* iso,
92 ISOSPEC_C_FN_HEADERS(IsoOrderedGenerator)
94 ISOSPEC_C_API
void* setupIsoStochasticGenerator(
void* iso,
98 ISOSPEC_C_FN_HEADERS(IsoStochasticGenerator)
101 ISOSPEC_C_API
void* setupThresholdFixedEnvelope(
void* iso,
106 ISOSPEC_C_API
void* setupTotalProbFixedEnvelope(
void* iso,
107 double taget_coverage,
111 ISOSPEC_C_API
void* setupStochasticFixedEnvelope(
void* iso,
117 ISOSPEC_C_API
void* setupBinnedFixedEnvelope(
void* iso,
118 double target_total_prob,
122 ISOSPEC_C_API
void freeReleasedArray(
void* array);
124 ISOSPEC_C_API
void array_add(
double* array,
size_t N,
double what);
125 ISOSPEC_C_API
void array_mul(
double* array,
size_t N,
double what);
126 ISOSPEC_C_API
void array_fma(
double* array,
size_t N,
double mul,
double add);
128 ISOSPEC_C_API
void* setupFixedEnvelope(
double* masses,
double* probs,
size_t size,
bool mass_sorted,
bool prob_sorted,
double total_prob);
129 ISOSPEC_C_API
void* copyFixedEnvelope(
void* other);
130 ISOSPEC_C_API
void deleteFixedEnvelope(
void* tabulator,
bool releaseEverything);
132 ISOSPEC_C_API
const double* massesFixedEnvelope(
void* tabulator);
133 ISOSPEC_C_API
const double* probsFixedEnvelope(
void* tabulator);
134 ISOSPEC_C_API
const int* confsFixedEnvelope(
void* tabulator);
135 ISOSPEC_C_API
size_t confs_noFixedEnvelope(
void* tabulator);
137 ISOSPEC_C_API
double empiricAverageMass(
void* tabulator);
138 ISOSPEC_C_API
double empiricVariance(
void* tabulator);
139 ISOSPEC_C_API
double empiricStddev(
void* tabulator);
141 ISOSPEC_C_API
double wassersteinDistance(
void* tabulator1,
void* tabulator2);
142 ISOSPEC_C_API
double orientedWassersteinDistance(
void* tabulator1,
void* tabulator2);
143 ISOSPEC_C_API
double abyssalWassersteinDistance(
void* tabulator1,
void* tabulator2,
double abyss_depth,
double other_scale);
152 ISOSPEC_C_API
struct ws_match_res wassersteinMatch(void* tabulator1,
void* tabulator2,
double flow_dist,
double other_scale);
154 ISOSPEC_C_API
void* addEnvelopes(
void* tabulator1,
void* tabulator2);
155 ISOSPEC_C_API
void* convolveEnvelopes(
void* tabulator1,
void* tabulator2);
157 ISOSPEC_C_API
double getTotalProbOfEnvelope(
void* envelope);
158 ISOSPEC_C_API
void scaleEnvelope(
void* envelope,
double factor);
159 ISOSPEC_C_API
void normalizeEnvelope(
void* envelope);
160 ISOSPEC_C_API
void shiftMassEnvelope(
void* envelope,
double d_mass);
161 ISOSPEC_C_API
void resampleEnvelope(
void* envelope,
size_t ionic_current,
double beta_bias);
162 ISOSPEC_C_API
void* binnedEnvelope(
void* envelope,
double width,
double middle);
163 ISOSPEC_C_API
void* linearCombination(
void*
const *
const envelopes,
const double* intensities,
size_t count);
165 ISOSPEC_C_API
void sortEnvelopeByMass(
void* envelope);
166 ISOSPEC_C_API
void sortEnvelopeByProb(
void* envelope);
168 ISOSPEC_C_API
void parse_fasta_c(
const char* fasta,
int atomCounts[6]);