MIXTURE
Dirichlet Mixture Simulation
MIXTURE
is a FORTRAN90 program which
simulates a process
governed by a Dirichlet Mixture probability density function (PDF).
Each realization of the process
involves choosing one of a specified set of Dirichlet PDF's, with
given weight, and then sampling that PDF.
The current code is pretty rough, and simply does a simulation.
An improved version would involve using the simulation to test procedures
for estimating the number of Dirichlet densities in the mixture, and
their parameters, using a Bayesian approach.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
MIXTURE is available in
a FORTRAN90 version.
Related Data and Programs:
ASA266,
a FORTRAN90 library which
evaluates various properties of a Dirichlet distribution.
References:

Carl Branden, John Tooze,
Introduction to Protein Structure,
Second Edition,
Garland Publishing, 1999,
ISBN: 0815323050,
LC: QP551.B7635.

Luc Devroye,
NonUniform Random Variate Generation,
Springer, 1986,
ISBN: 0387963057,
LC: QA274.D48.

William Kennedy, James Gentle,
Statistical Computing,
Marcel Dekker, 1980,
ISBN: 0824768981,
LC: QA276.4.K46.

Kimmen Sjoelander, Kevin Karplus, Michael Brown, Richard Hughey, Anders Krogh,
Siara Mian, David Haussler,
Dirichlet Mixtures: a method for improved detection of weak but significant
protein sequence homology,
Computer Applications in the Biosciences,
Volume 12, Number 4, pages 327345, 1996.
Source Code:
Examples and Tests:
List of Routines:

MAIN is the main program for the mixture simulation.

AMINO_PRINT prints the amino acid parameters.

BINOMIAL_SAMPLE samples the Binomial PDF.

CH_CAP capitalizes a single character.

CH_EQI is a case insensitive comparison of two characters for equality.

CH_NEXT "reads" spaceseparated characters from a string, one at a time.

CH_TO_AMINO_NAME converts a character to an amino acid name.

CH_TO_DIGIT returns the integer value of a base 10 digit.

COMP_PARAM_PRINT prints the parameters for the mixture components.

COMP_STATS_PRINT prints the mean and variance for the mixture components.

DISCRETE_CDF_INV inverts the Discrete CDF.

DISCRETE_SAMPLE samples the Discrete PDF.

FAVOR_RATIO_COMPUTE computes the ratio by which a component density favors an amino acid.

FAVOR_RATIO_PRINT prints the favor ratios.

GAMMA_LOG calculates the natural logarithm of GAMMA ( X ) for positive X.

I4_NEXT "reads" integers from a string, one at a time.

MIXTURE_PRINT prints the Dirichlet mixture parameters.

MIXTURE_READ reads the Dirichlet mixture parameters from a file.

MULTINOMIAL_PDF computes a Multinomial PDF.

MULTINOMIAL_SAMPLE samples the Multinomial PDF.

OBSERVE repeatedly observes the process and updates the parameter estimates.

R4_NEXT "reads" real numbers from a string, one at a time.

R4_RANDOM returns a random real in a given range.

R4ROW_MEAN returns the means of rows of a real array.

RR4OW_VARIANCE returns the variances of the rows of a real array.

S_BEGIN is TRUE if one string matches the beginning of the other.

S_EQI is a case insensitive comparison of two strings for equality.

S_TO_I4 reads an integer value from a string.

S_TO_R4 reads a real number from a string.

SAMPLE_ANALYZE analyzes the samples from the Dirichlet mixture PDF.

SAMPLE_PROJECT computes the projection of a sample onto the mixture components.

SAMPLE_PROJECT computes the projection of a sample onto the mixture components.

TIMESTAMP prints the current YMDHMS date as a time stamp.

WEIGHT_INIT initializes the estimated weights.

WEIGHT_UPDATE updates the estimated weights.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 20 October 2007.