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* setupIsoStrochasticGenerator(
void* iso,
98 ISOSPEC_C_FN_HEADERS(IsoStochasticGenerator)
101 void* setupThresholdFixedEnvelope(
void* iso,
106 void* setupTotalProbFixedEnvelope(
void* iso,
107 double taget_coverage,
111 void freeReleasedArray(
void* array);
113 void* setupFixedEnvelope(
double* masses,
double* probs,
size_t size,
bool mass_sorted,
bool prob_sorted,
double total_prob);
114 void deleteFixedEnvelope(
void* tabulator,
bool releaseEverything);
116 const double* massesFixedEnvelope(
void* tabulator);
117 const double* probsFixedEnvelope(
void* tabulator);
118 const int* confsFixedEnvelope(
void* tabulator);
119 int confs_noFixedEnvelope(
void* tabulator);
121 double empiricAverageMass(
void* tabulator);
122 double empiricVariance(
void* tabulator);
123 double empiricStddev(
void* tabulator);
125 double wassersteinDistance(
void* tabulator1,
void* tabulator2);
126 double orientedWassersteinDistance(
void* tabulator1,
void* tabulator2);
127 void* addEnvelopes(
void* tabulator1,
void* tabulator2);
128 void* convolveEnvelopes(
void* tabulator1,
void* tabulator2);
130 double getTotalProbOfEnvelope(
void* envelope);
131 void scaleEnvelope(
void* envelope,
double factor);
132 void normalizeEnvelope(
void* envelope);
133 void* binnedEnvelope(
void* envelope,
double width,
double middle);
134 void* linearCombination(
void*
const *
const envelopes,
const double* intensities,
size_t count);
136 void sortEnvelopeByMass(
void* envelope);
137 void sortEnvelopeByProb(
void* envelope);
139 void parse_fasta_c(
const char* fasta,
int atomCounts[6]);