21#define ISOSPEC_ALGO_LAYERED 0
22#define ISOSPEC_ALGO_ORDERED 1
23#define ISOSPEC_ALGO_THRESHOLD_ABSOLUTE 2
24#define ISOSPEC_ALGO_THRESHOLD_RELATIVE 3
25#define ISOSPEC_ALGO_LAYERED_ESTIMATE 4
34ISOSPEC_C_API
void * setupIso(
int dimNumber,
35 const int* isotopeNumbers,
36 const int* atomCounts,
37 const double* isotopeMasses,
38 const double* isotopeProbabilities);
40ISOSPEC_C_API
void * isoFromFasta(
const char* fasta,
bool use_nominal_masses,
bool add_water);
42ISOSPEC_C_API
double getLightestPeakMassIso(
void* iso);
43ISOSPEC_C_API
double getHeaviestPeakMassIso(
void* iso);
44ISOSPEC_C_API
double getMonoisotopicPeakMassIso(
void* iso);
45ISOSPEC_C_API
double getModeLProbIso(
void* iso);
46ISOSPEC_C_API
double getModeMassIso(
void* iso);
47ISOSPEC_C_API
double getTheoreticalAverageMassIso(
void* iso);
48ISOSPEC_C_API
double getIsoVariance(
void* iso);
49ISOSPEC_C_API
double getIsoStddev(
void* iso);
50ISOSPEC_C_API
double* getMarginalLogSizeEstimates(
void* iso,
double target_total_prob);
53ISOSPEC_C_API
void deleteIso(
void* iso);
57ISOSPEC_C_API
void* setupIsoThresholdGenerator(
void* iso,
62 bool reorder_marginals);
63ISOSPEC_C_API
double massIsoThresholdGenerator(
void* generator);
64ISOSPEC_C_API
double lprobIsoThresholdGenerator(
void* generator);
65ISOSPEC_C_API
double probIsoThresholdGenerator(
void* generator);
66ISOSPEC_C_API
void get_conf_signatureIsoThresholdGenerator(
void* generator,
int* space);
67ISOSPEC_C_API
bool advanceToNextConfigurationIsoThresholdGenerator(
void* generator);
68ISOSPEC_C_API
void deleteIsoThresholdGenerator(
void* generator);
72ISOSPEC_C_API
void* setupIsoLayeredGenerator(
void* iso,
75 bool reorder_marginals,
77ISOSPEC_C_API
double massIsoLayeredGenerator(
void* generator);
78ISOSPEC_C_API
double lprobIsoLayeredGenerator(
void* generator);
79ISOSPEC_C_API
double probIsoLayeredGenerator(
void* generator);
80ISOSPEC_C_API
void get_conf_signatureIsoLayeredGenerator(
void* generator,
int* space);
81ISOSPEC_C_API
bool advanceToNextConfigurationIsoLayeredGenerator(
void* generator);
82ISOSPEC_C_API
void deleteIsoLayeredGenerator(
void* generator);
85ISOSPEC_C_API
void* setupIsoOrderedGenerator(
void* iso,
88ISOSPEC_C_API
double massIsoOrderedGenerator(
void* generator);
89ISOSPEC_C_API
double lprobIsoOrderedGenerator(
void* generator);
90ISOSPEC_C_API
double probIsoOrderedGenerator(
void* generator);
91ISOSPEC_C_API
void get_conf_signatureIsoOrderedGenerator(
void* generator,
int* space);
92ISOSPEC_C_API
bool advanceToNextConfigurationIsoOrderedGenerator(
void* generator);
93ISOSPEC_C_API
void deleteIsoOrderedGenerator(
void* generator);
96ISOSPEC_C_API
void* setupIsoStochasticGenerator(
void* iso,
100ISOSPEC_C_API
double massIsoStochasticGenerator(
void* generator);
101ISOSPEC_C_API
double lprobIsoStochasticGenerator(
void* generator);
102ISOSPEC_C_API
double probIsoStochasticGenerator(
void* generator);
103ISOSPEC_C_API
void get_conf_signatureIsoStochasticGenerator(
void* generator,
int* space);
104ISOSPEC_C_API
bool advanceToNextConfigurationIsoStochasticGenerator(
void* generator);
105ISOSPEC_C_API
void deleteIsoStochasticGenerator(
void* generator);
107ISOSPEC_C_API
void* setupThresholdFixedEnvelope(
void* iso,
112ISOSPEC_C_API
void* setupTotalProbFixedEnvelope(
void* iso,
113 double taget_coverage,
117ISOSPEC_C_API
void* setupStochasticFixedEnvelope(
void* iso,
123ISOSPEC_C_API
void* setupBinnedFixedEnvelope(
void* iso,
124 double target_total_prob,
128ISOSPEC_C_API
void freeReleasedArray(
void* array);
130ISOSPEC_C_API
void array_add(
double* array,
size_t N,
double what);
131ISOSPEC_C_API
void array_mul(
double* array,
size_t N,
double what);
132ISOSPEC_C_API
void array_fma(
double* array,
size_t N,
double mul,
double add);
134ISOSPEC_C_API
void* setupFixedEnvelope(
double* masses,
double* probs,
size_t size,
bool mass_sorted,
bool prob_sorted,
double total_prob);
135ISOSPEC_C_API
void* copyFixedEnvelope(
void* other);
136ISOSPEC_C_API
void deleteFixedEnvelope(
void* tabulator,
bool releaseEverything);
138ISOSPEC_C_API
const double* massesFixedEnvelope(
void* tabulator);
139ISOSPEC_C_API
const double* probsFixedEnvelope(
void* tabulator);
140ISOSPEC_C_API
const int* confsFixedEnvelope(
void* tabulator);
141ISOSPEC_C_API
size_t confs_noFixedEnvelope(
void* tabulator);
143ISOSPEC_C_API
double empiricAverageMass(
void* tabulator);
144ISOSPEC_C_API
double empiricVariance(
void* tabulator);
145ISOSPEC_C_API
double empiricStddev(
void* tabulator);
147ISOSPEC_C_API
double wassersteinDistance(
void* tabulator1,
void* tabulator2);
148ISOSPEC_C_API
double orientedWassersteinDistance(
void* tabulator1,
void* tabulator2);
149ISOSPEC_C_API
double abyssalWassersteinDistance(
void* tabulator1,
void* tabulator2,
double abyss_depth,
double other_scale);
158ISOSPEC_C_API
struct ws_match_res wassersteinMatch(void* tabulator1,
void* tabulator2,
double flow_dist,
double other_scale);
160ISOSPEC_C_API
void* addEnvelopes(
void* tabulator1,
void* tabulator2);
161ISOSPEC_C_API
void* convolveEnvelopes(
void* tabulator1,
void* tabulator2);
163ISOSPEC_C_API
double getTotalProbOfEnvelope(
void* envelope);
164ISOSPEC_C_API
void scaleEnvelope(
void* envelope,
double factor);
165ISOSPEC_C_API
void normalizeEnvelope(
void* envelope);
166ISOSPEC_C_API
void shiftMassEnvelope(
void* envelope,
double d_mass);
167ISOSPEC_C_API
void resampleEnvelope(
void* envelope,
size_t ionic_current,
double beta_bias);
168ISOSPEC_C_API
void* binnedEnvelope(
void* envelope,
double width,
double middle);
169ISOSPEC_C_API
void* linearCombination(
void*
const *
const envelopes,
const double* intensities,
size_t count);
171ISOSPEC_C_API
void sortEnvelopeByMass(
void* envelope);
172ISOSPEC_C_API
void sortEnvelopeByProb(
void* envelope);
174ISOSPEC_C_API
void parse_fasta_c(
const char* fasta,
int atomCounts[6]);