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 void * setupIso(
int dimNumber,
33 const int* isotopeNumbers,
34 const int* atomCounts,
35 const double* isotopeMasses,
36 const double* isotopeProbabilities);
38 void * isoFromFasta(
const char* fasta,
bool use_nominal_masses,
bool add_water);
40 double getLightestPeakMassIso(
void* iso);
41 double getHeaviestPeakMassIso(
void* iso);
42 double getMonoisotopicPeakMassIso(
void* iso);
43 double getModeLProbIso(
void* iso);
44 double getModeMassIso(
void* iso);
45 double getTheoreticalAverageMassIso(
void* iso);
46 double getIsoVariance(
void* iso);
47 double getIsoStddev(
void* iso);
48 double* getMarginalLogSizeEstimates(
void* iso,
double target_total_prob);
51 void deleteIso(
void* iso);
53 #define ISOSPEC_C_FN_HEADER(generatorType, dataType, method)\
54 dataType method##generatorType(void* generator);
56 #define ISOSPEC_C_FN_HEADER_GET_CONF_SIGNATURE(generatorType)\
57 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 void* setupIsoThresholdGenerator(
void* iso,
76 bool reorder_marginals);
77 ISOSPEC_C_FN_HEADERS(IsoThresholdGenerator)
81 void* setupIsoLayeredGenerator(
void* iso,
84 bool reorder_marginals,
86 ISOSPEC_C_FN_HEADERS(IsoLayeredGenerator)
89 void* setupIsoOrderedGenerator(
void* iso,
92 ISOSPEC_C_FN_HEADERS(IsoOrderedGenerator)
94 void* setupIsoStochasticGenerator(
void* iso,
98 ISOSPEC_C_FN_HEADERS(IsoStochasticGenerator)
101 void* setupThresholdFixedEnvelope(
void* iso,
106 void* setupTotalProbFixedEnvelope(
void* iso,
107 double taget_coverage,
111 void* setupStochasticFixedEnvelope(
void* iso,
117 void* setupBinnedFixedEnvelope(
void* iso,
118 double target_total_prob,
122 void freeReleasedArray(
void* array);
124 void* setupFixedEnvelope(
double* masses,
double* probs,
size_t size,
bool mass_sorted,
bool prob_sorted,
double total_prob);
125 void deleteFixedEnvelope(
void* tabulator,
bool releaseEverything);
127 const double* massesFixedEnvelope(
void* tabulator);
128 const double* probsFixedEnvelope(
void* tabulator);
129 const int* confsFixedEnvelope(
void* tabulator);
130 size_t confs_noFixedEnvelope(
void* tabulator);
132 double empiricAverageMass(
void* tabulator);
133 double empiricVariance(
void* tabulator);
134 double empiricStddev(
void* tabulator);
136 double wassersteinDistance(
void* tabulator1,
void* tabulator2);
137 double orientedWassersteinDistance(
void* tabulator1,
void* tabulator2);
138 void* addEnvelopes(
void* tabulator1,
void* tabulator2);
139 void* convolveEnvelopes(
void* tabulator1,
void* tabulator2);
141 double getTotalProbOfEnvelope(
void* envelope);
142 void scaleEnvelope(
void* envelope,
double factor);
143 void normalizeEnvelope(
void* envelope);
144 void* binnedEnvelope(
void* envelope,
double width,
double middle);
145 void* linearCombination(
void*
const *
const envelopes,
const double* intensities,
size_t count);
147 void sortEnvelopeByMass(
void* envelope);
148 void sortEnvelopeByProb(
void* envelope);
150 void parse_fasta_c(
const char* fasta,
int atomCounts[6]);