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,
Non-Uniform 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 327-345, 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" space-separated 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.