Sleipnir
tools/Distancer/Distancer.cpp
00001 /*****************************************************************************
00002 * This file is provided under the Creative Commons Attribution 3.0 license.
00003 *
00004 * You are free to share, copy, distribute, transmit, or adapt this work
00005 * PROVIDED THAT you attribute the work to the authors listed below.
00006 * For more information, please see the following web page:
00007 * http://creativecommons.org/licenses/by/3.0/
00008 *
00009 * This file is a component of the Sleipnir library for functional genomics,
00010 * authored by:
00011 * Curtis Huttenhower (chuttenh@princeton.edu)
00012 * Mark Schroeder
00013 * Maria D. Chikina
00014 * Olga G. Troyanskaya (ogt@princeton.edu, primary contact)
00015 *
00016 * If you use this library, the included executable tools, or any related
00017 * code in your work, please cite the following publication:
00018 * Curtis Huttenhower, Mark Schroeder, Maria D. Chikina, and
00019 * Olga G. Troyanskaya.
00020 * "The Sleipnir library for computational functional genomics"
00021 *****************************************************************************/
00022 #include "stdafx.h"
00023 #include "cmdline.h"
00024 
00025 int main( int iArgs, char** aszArgs ) {
00026     gengetopt_args_info sArgs;
00027     CPCL                PCL;
00028     CDat                Dat;
00029     int                 iRet;
00030 
00031     if( cmdline_parser( iArgs, aszArgs, &sArgs ) ) {
00032         cmdline_parser_print_help( );
00033         return 1; }
00034     CMeta Meta( sArgs.verbosity_arg );
00035 
00036     IMeasure::EMap eM = IMeasure::EMapCenter;
00037     
00038     if(!!sArgs.centering_flag == false)
00039         eM = IMeasure::EMapNone;
00040         
00041 
00042     if( iRet = CPCL::Distance( sArgs.input_arg, sArgs.skip_arg,sArgs.weights_arg, sArgs.distance_arg, !!sArgs.normalize_flag,
00043         !!sArgs.zscore_flag, !!sArgs.autocorrelate_flag, sArgs.genes_arg, sArgs.cutoff_given ?
00044         (float)sArgs.cutoff_arg : CMeta::GetNaN( ), sArgs.limit_arg, PCL, Dat, 
00045         eM,
00046         !!sArgs.freqweight_flag, sArgs.alpha_arg, sArgs.threads_arg) ) {
00047         cmdline_parser_print_help( );
00048         return iRet; }
00049     if( sArgs.flip_flag )
00050         Dat.Invert( );
00051 
00052     Dat.Save( sArgs.output_arg );
00053 
00054     return 0; }