Coder Social home page Coder Social logo

climerlab / fbp Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 39 KB

Frequency Based Pruning (FBP) is a feature selection algorithm based upon maximizing the Youden J statistic. FBP intelligently enumerates through combinations of features, using the frequency of smaller patterns to prune away large regions of the solution space.

License: BSD 3-Clause "New" or "Revised" License

Makefile 5.42% C++ 94.58%
cpp discrete-optimization enumeration feature-selection pruning-optimization

fbp's Introduction

FBP

Frequency Based Pruning (FBP) is a feature selection algorithm based upon maximizing the Youden J statistic. FBP intelligently enumerates through combinations of features, using the frequency of smaller patterns to prune away large regions of the solution space.

Details on FBP 1.0.0 from 2021 IEEE International Conference on Bioinformatics and Biomedicine (BIBM).

FBP 1.1.0 updates how the FBP_worker enumerates the patterns.

To Use

Configure the Makefile with the locaion of open mpi libraries and binary

Compile with the Makefile by navigating to the root directory and entering: make

Update configuration file

Run the program. For an example enter: mpirun -np 4 ./fbp <cfg_file>

Configuration

DATA_FILE - Tab seperated file where the first NUM_CASES columns are cases and the next NUM_CTRLS columns are controls. The row indicate features.

SCRATCH_DIR - Directoty where results are recorded

SOL_POOL_FILE - File File with the best and worst objective values from the solution pool of each pattern size.

RUN_TAG - Run tag appended to output file

RISK - Boolean that indicates if risk patterns (true) or protective patterns (false) should be found.

NUM_CASES - The number of cases in DATA_FILE.

NUM_CTRLS - The number of controls in DATA_FILE.

NUM_EXPRS - The number of features in DATA_FILE.

NUM_HEAD_ROWS - The number of header rows in DATA_FILE.

NUM_HEAD_COLS - The number of header columns in DATA_FILE.

PATTERN_SIZE - The number of marker states in the pattern(s) to be found.

MISSING_SYMBOL - String used to indicate missing data in DATA_FILE.

MAX_PS - Maximum size patterns to find

USE_SOLUTION_POOL - A boolean indicating if all pattens above a threshold should be found (true) or just an optimal solution. If true, the worst objective value for each patter size from SOL_POOL_FILE is used as the lower bound.

HIGH_VALUE - Value in DATA_FILE that indicates high expression.

NORM_VALUE - Value in DATA_FILE that indicates normal expression.

LOW_VALUE - Value in DATA_FILE that indicates low expression.

SET_NA_TRUE - Boolean used to indicate if missing data is treated as both high and low.

Outputs

<run_tag>_runtimes.csv - File containing runtimes for each pattern size

PS#_<Risk/Prot>.log - File containing the selected feature sets of size #.

Notes

Recommend using sync-greedy to generate SOL_POOL_FILE.

Requires Open MPI

DATA_FILE should be tab seperate, the columns represent individuals and the rows represent features

fbp's People

Contributors

kpsmithjr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.