ROC
Receiver Operator Characteristic
ROC
is a FORTRAN90 program which
computes the Receiver
Operator Characteristic ("ROC") for a sequence analsysis program.
The program can also produce generic plot files of the percentages
of the negative and positive results as the score threshhold is varied.
These files can be converted into PostScript files by calling
PLOT_TO_PS.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
ROC is available in
a FORTRAN90 version.
Source Code:
-
roc.f90, the source code;
-
roc.sh, commands to compile the source code;
Examples and Tests:
ROC needs a search result file to analyze. Four "generic" files
are included, which are tiny examples of "fake data" that make it
easier to understand. Four other search result files of real data
will show you how complicated it can be to extract the information
we need. Search result files you may copy include:
Along with a search result file, ROC needs a file that lists the "good"
items, that is, the items that do belong to the class of interest.
(This file may include many extra names that don't show up in the
search list.) "Good" files you may copy include:
Sample run #1:
Sample run #2:
Sample run #3:
Sample run #4:
List of Routines:
-
MAIN is the main program for ROC.
-
ANALYSIS carries out the ROC analysis.
-
ANALYSIS_PARAMS_GET gets the ROC analysis parameters.
-
ANALYSIS_PARAMS_PRINT prints the analysis parameters.
-
ANALYSIS_POST does some post-analysis tasks.
-
ANALYSIS_PRE carries out some pre-analysis tasks.
-
ANALYSIS_PRINT prints the analysis.
-
CH_CAP capitalizes a single character.
-
CH_EQI is a case insensitive comparison of two characters for equality.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
CHVEC_PERMUTE permutes a character vector in place.
-
CHVEC_REVERSE reverses the elements of a character vector.
-
DATA_COUNT counts the positive and negative data.
-
DATA_COUNT_PRINT prints the data counts.
-
DATA_GET retrieves the identifiers, scores, and good identifiers.
-
DATA_PARAMS_GET gets the data parameters.
-
DATA_PARAMS_PRINT prints the data parameters.
-
DATA_PRINT prints the data.
-
DATA_SELECT selects the data to be analyzed.
-
DIGIT_TO_CH returns the character representation of a decimal digit.
-
FILE_ADVANCE_TO_STRING searches ahead in a text file for a string.
-
GET_UNIT returns a free FORTRAN unit number.
-
GOOD_FILE_READ reads a "good" ID file.
-
GOOD_GET retrieves the good identifiers.
-
GOOD_PRINT prints the good identifiers.
-
I4_SWAP swaps two I4's.
-
I4_TO_S_LEFT converts an I4 to a left-justified string.
-
I4VEC_CUM computes the cumulutive sum of the entries of an I4VEC.
-
I4VEC_INDICATOR sets an I4VEC to the indicator vector.
-
I4VEC_PERMUTE permutes an I4VEC in place.
-
I4VEC_REVERSE reverses the elements of an I4VEC.
-
I4VEC_NEGATIVE_INDEX indexes negative integer vector entries.
-
I4VEC_POSITIVE_INDEX indexes positive integer vector entries.
-
LGTI = STRNG1 is lexically greater than STRNG2.
-
LLEI = STRNG1 is lexically less than or equal to STRNG2.
-
LLTI = STRNG1 is lexically less than STRNG2.
-
PARAMS_DEFAULT sets the parameters to default values.
-
PERM_CHECK checks that a vector represents a permutation.
-
PN_GRAPH_FILE_WRITE creates a positive/negative graphics file of the results.
-
PN_ROC_INT computes the ROC integral.
-
PNS_DATA_SET sets the data for a positive/negative/score graph.
-
PNS_GRAPH_FILE_WRITE creates a positive/negative/score graphics file of the r
-
R8_SWAP swaps two R8's.
-
R8_TO_S_LEFT writes an R8 into a left justified string.
-
R8VEC_BIN computes bins based on a given real vector.
-
R8VEC_MINMAX returns the minimum and maximum values in a real vector.
-
R8VEC_ORDER_TYPE determines if an R8VEC is (non)strictly ascending/descending.
-
R8VEC_PERMUTE permutes an R8VEC in place.
-
R8VEC_REVERSE reverses the elements of an R8VEC.
-
R8VEC_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an R8VEC.
-
S_BLANKS_DELETE replaces consecutive blanks by one blank.
-
S_CAP replaces any lowercase letters by uppercase ones in a string.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
S_GEI = ( S1 is lexically greater than or equal to S2 ).
-
S_GTI = S1 is lexically greater than S2.
-
S_LTI = ( S1 is lexically less than S2 ).
-
S_SWAP swaps two strings.
-
S_TO_I4 reads an integer value from a string.
-
S_TO_R8 reads an R8 value from a string.
-
S_WORD_FIND finds the word of a given index in a string.
-
SCORE_BLAST_FILE_READ extracts information from a BLAST search file.
-
SCORE_FASTA_FILE_READ extracts information from a FASTA search file.
-
SCORE_GENERIC_FILE_READ reads a "name, score" file.
-
SCORE_MAXSEGS_FILE_READ extracts information from a MAXSEGS search file.
-
SCORE_PEARSON_FILE_READ extracts information from a PEARSON search file.
-
SORT_HEAP_EXTERNAL externally sorts a list of items into linear order.
-
SVEC_PERMUTE permutes a string vector in place.
-
SVEC_REVERSE reverses the elements of a string vector.
-
SVECI_SEARCH_BINARY_A searches an ascending sorted vector of implicitly capitalized strings.
-
SVECI_SORT_HEAP_A heap sorts a vector of implicitly capitalized strings.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 01 May 2007.