diff mrcanavar-0.34/mrcanavar.c @ 0:86522a0b5f59 default tip

Uploaded source code for mrCaNaVaR
author calkan
date Tue, 21 Feb 2012 10:44:13 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mrcanavar-0.34/mrcanavar.c	Tue Feb 21 10:44:13 2012 -0500
@@ -0,0 +1,185 @@
+#include "mrcanavar.h"
+
+
+
+int main(int argc, char **argv){
+
+  int i;
+  
+  char gzSAM;
+  
+  char *indirSAM;
+  char *depthFile;
+  char *out_prefix;
+
+
+  init_globals();
+
+  gzSAM      = 0;
+  indirSAM   = NULL;
+  depthFile  = NULL;
+  out_prefix = NULL;
+
+
+  for (i=1; i<argc; i++){
+
+
+    /* modes */
+    if (!strcmp(argv[i], "--prep"))
+      set_runmode(PREP);
+    else if (!strcmp(argv[i], "--read"))
+      set_runmode(READSAM);
+    else if (!strcmp(argv[i], "--call"))
+      set_runmode(CALL);
+    
+
+    /* compulsory parameters for all modes */
+    else if (!strcmp(argv[i], "-conf"))
+      set_str(&GENOME_CONF, argv[i+1]);
+
+    /* compulsory parameters for the PREP mode */
+    else if (!strcmp(argv[i], "-fasta"))
+      set_str(&GENOME_FASTA, argv[i+1]);
+    else if (!strcmp(argv[i], "-gaps"))
+      set_str(&GENOME_GAPS, argv[i+1]);
+
+    /* optional parameters for the PREP mode */
+    else if (!strcmp(argv[i], "-lw_size"))
+      LW_SIZE = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "-sw_size"))
+      SW_SIZE = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "-cw_size"))
+      CW_SIZE = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "-lw_slide"))
+      LW_SLIDE = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "-sw_slide"))
+      SW_SLIDE = atoi(argv[i+1]);
+
+
+    /* compulsory parameters for both READ and CALL modes */
+    else if (!strcmp(argv[i], "-depth"))
+      set_str(&depthFile, argv[i+1]);
+
+    /* compulsory parameters for the READ mode */
+
+    else if (!strcmp(argv[i], "-samdir"))
+      set_str(&indirSAM, argv[i+1]);
+
+    
+    /* optional parameters for the SAM mode */
+    else if (!strcmp(argv[i], "--gz"))
+      gzSAM = 1;
+
+
+    /* compulsory parameters for the CALL mode */
+    else if (!strcmp(argv[i], "-o"))
+      set_str(&out_prefix, argv[i+1]);
+
+    /* optional parameters for the CALL mode */
+    else if (!strcmp(argv[i], "-cont_win"))
+      CONT_WINDOW = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "-cut_win"))
+      CUT_WINDOW = atoi(argv[i+1]);
+    else if (!strcmp(argv[i], "--xx"))
+      set_gender(FEMALE);
+    else if (!strcmp(argv[i], "--xy"))
+      set_gender(MALE);
+    else if (!strcmp(argv[i], "--multgc"))
+      MULTGC = 1;
+    
+
+
+
+    /* generic stuff */
+    else if (!strcmp(argv[i], "-v")){
+      fprintf (stdout, "\nmrCaNaVaR version %s.\nLast update: %s.\n\n", VERSION, LAST_UPDATE);
+      return 0;
+    }
+    else if (!strcmp(argv[i], "-h")){
+      printHelp(argv[0]);
+      return 0;
+    }
+    else if (!strcmp(argv[i], "--verbose"))
+      VERBOSE = 1;
+    else if (!strcmp(argv[i], "--disable-sam-check"))
+      CHECKSAM = 0;  
+  }
+
+
+  switch(RUNMODE){
+  case NONE:
+    print_error("Select mode: --prep, ---read, or --call\n");
+    break;
+  case PREP:
+    fprintf(stdout, "Mode: Prepare genome...\n");
+    prep_genome();
+    break;
+  case READSAM:
+    fprintf(stdout, "Mode: Read SAM ...\n");
+    read_depth(indirSAM, depthFile, gzSAM);
+    break;    
+  case CALL:
+    fprintf(stdout, "Mode: Call copy numbers ...\n");
+    call_cnv(depthFile, out_prefix);
+    break;
+  default:
+    break;
+  }
+
+  return 0;
+
+}
+
+
+void printHelp(char *binfile){
+
+  fprintf (stdout, "\nmrCaNaVaR version %s\nLast update: %s\n\n", VERSION, LAST_UPDATE);
+  fprintf (stdout, "%s --<mode>  [options] \n\n", binfile);
+
+  fprintf (stdout, "========            RUN MODES            ========\n\n");
+
+  fprintf (stdout, "\t--prep                  : Prepare reference genome configuration file.\n");
+  fprintf (stdout, "\t--read                  : Read mapping information from SAM files.\n");
+  fprintf (stdout, "\t--call                  : Call CNVs and predict copy numbers.\n\n");
+
+  fprintf (stdout, "======== PREP MODE COMPULSORY PARAMETERS ========\n\n");
+  fprintf (stdout, "\t-fasta <fasta_file>     : FASTA file for the reference genome.\n");
+  fprintf (stdout, "\t-gaps  <gaps_file>      : Gap coordinates of the reference genome in BED format.\n");
+  fprintf (stdout, "\t-conf  <config_file>    : Reference configuration file (output).\n\n");
+  fprintf (stdout, "========  PREP MODE OPTIONAL PARAMETERS  ========\n\n");
+  fprintf (stdout, "\t-lw_size   <lw_size>    : Long window span size. Default is 5000.\n");
+  fprintf (stdout, "\t-lw_slide  <lw_slide>   : Long window slide size. Default is 1000.\n");
+  fprintf (stdout, "\t-sw_size   <sw_size>    : Short window span size. Default is 1000.\n");
+  fprintf (stdout, "\t-sw_slide  <sw_slide>   : Short window slide size. Default is 1000.\n");
+  fprintf (stdout, "\t-cw_size   <cw_size>    : Copy number window size. Default is 1000.\n\n");
+
+  fprintf (stdout, "======== READ MODE COMPULSORY PARAMETERS ========\n\n");
+  fprintf (stdout, "\t-conf   <config_file>   : Reference configuration file (input).\n");
+  fprintf (stdout, "\t-samdir <sam_dir>       : Directory that contains SAM files for mapping information.\n");
+  fprintf (stdout, "\t-depth  <depth_file>    : Read depth file (output).\n\n");
+  fprintf (stdout, "========  READ MODE OPTIONAL PARAMETERS  ========\n\n");
+  fprintf (stdout, "\t--gz                    : Indicates that the SAM files are compressed in gzip format.\n\n");
+
+  fprintf (stdout, "======== CALL MODE COMPULSORY PARAMETERS ========\n\n");
+  fprintf (stdout, "\t-conf   <config_file>   : Reference configuration file (input).\n");
+  fprintf (stdout, "\t-depth  <depth_file>    : Read depth file (input).\n");
+  fprintf (stdout, "\t-o      <out_prefix>    : Prefix for the output file names.\n\n");
+
+
+  fprintf (stdout, "========  CALL MODE OPTIONAL PARAMETERS  ========\n\n");
+  fprintf (stdout, "\t--xx                    : Set gender of the sequenced sample as female. Mammalian genomes only. Default is autodetect.\n");
+  fprintf (stdout, "\t--xy                    : Set gender of the sequenced sample as male. Mammalian genomes only. Default is autodetect.\n");
+  fprintf (stdout, "\t--multgc                : Perform multiplicative GC correction. Default is additive.\n");
+  fprintf (stdout, "\t--verbose               : Verbose output.\n");
+  
+
+  /*
+
+  fprintf (stdout, "========       NOT IMPLEMENTED YET       ========\n\n");
+  fprintf (stdout, "\t-cont_win <cwin_number> : Contiguous window number to look for high/low depth windows. Default is 7.\n");
+  fprintf (stdout, "\t-cut_win  <cwin_cutoff> : Window number cutoff. Default is 6.\n\n");
+
+
+  */
+  
+}