[Genabel-commits] r667 - in pkg/GenABEL: R man src/GAlib

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Mar 6 20:11:18 CET 2011


Author: yurii
Date: 2011-03-06 20:11:17 +0100 (Sun, 06 Mar 2011)
New Revision: 667

Modified:
   pkg/GenABEL/R/convert.snp.ped.R
   pkg/GenABEL/man/convert.snp.ped.Rd
   pkg/GenABEL/src/GAlib/convert_snp_merlin.cpp
   pkg/GenABEL/src/GAlib/convert_snp_merlin_wslash.cpp
Log:
introduced an option 'mapHasHeaderLine' in convert.snp.ped, addressing feature request [#1317]

Modified: pkg/GenABEL/R/convert.snp.ped.R
===================================================================
--- pkg/GenABEL/R/convert.snp.ped.R	2011-03-04 18:44:15 UTC (rev 666)
+++ pkg/GenABEL/R/convert.snp.ped.R	2011-03-06 19:11:17 UTC (rev 667)
@@ -1,29 +1,40 @@
-"convert.snp.ped" <- function(pedfile,mapfile,outfile,format="premakeped",traits=1,strand="u",bcast=10000000,wslash=F) {
-
+"convert.snp.ped" <- 
+		function(pedfile,mapfile,outfile,format="premakeped",traits=1,
+				strand="u",bcast=10000000,wslash=FALSE,mapHasHeaderLine=FALSE) 
+{
+	
 	alcodes <- alleleID.codes()
-
+	
 	poss <- c("u","+","-","file")
 	intstrand <- which(poss == strand)-1
 	if (length(intstrand)!=1) {cat("strand argument must be one of",poss,"\n");stop();}
-
+	
 # strand == 0 -> unknown ('u')
 # strand == 1 -> plus ('+')
 # strand == 2 -> minus ('-')
 # extendedmap -> five columns (chr,name,pos,strand,coding) expected in map-file
 # passed through intstrand <- 3 !
-
+	
 	posf <- c("premakeped","mach")
 	intfmt <- which(posf == format)-1
 	if (length(intfmt)!=1) {cat("format argument must be one of",posf,"\n");stop();}
-
+	
 # intfmt = 0 -> premakeped, merlin
 # else -> mach
-
+	
 	if (wslash) {
-		.C("convert_snp_merlin_wslash",as.character(pedfile),as.character(mapfile),as.character(outfile),as.integer(intstrand),as.integer(bcast),as.character(alcodes),as.integer(length(alcodes)),as.integer(intfmt),as.integer(traits),PACKAGE="GenABEL")
+		.C("convert_snp_merlin_wslash",as.character(pedfile),as.character(mapfile),
+				as.character(outfile),as.integer(intstrand),as.integer(bcast),
+				as.character(alcodes),as.integer(length(alcodes)),as.integer(intfmt),
+				as.integer(traits),as.integer(mapHasHeaderLine),
+				PACKAGE="GenABEL")
 	} else {
-		.C("convert_snp_merlin",as.character(pedfile),as.character(mapfile),as.character(outfile),as.integer(intstrand),as.integer(bcast),as.character(alcodes),as.integer(length(alcodes)),as.integer(intfmt),as.integer(traits),PACKAGE="GenABEL")
+		.C("convert_snp_merlin",as.character(pedfile),as.character(mapfile),
+				as.character(outfile),as.integer(intstrand),as.integer(bcast),
+				as.character(alcodes),as.integer(length(alcodes)),as.integer(intfmt),
+				as.integer(traits),as.integer(mapHasHeaderLine),
+				PACKAGE="GenABEL")
 	}
-    	return(invisible(0))
+	return(invisible(0))
 }
 

Modified: pkg/GenABEL/man/convert.snp.ped.Rd
===================================================================
--- pkg/GenABEL/man/convert.snp.ped.Rd	2011-03-04 18:44:15 UTC (rev 666)
+++ pkg/GenABEL/man/convert.snp.ped.Rd	2011-03-06 19:11:17 UTC (rev 667)
@@ -6,14 +6,15 @@
 }
 \usage{
 convert.snp.ped(pedfile, mapfile, outfile, format = "premakeped", traits = 1, 
-	strand = "u", bcast = 10000000, wslash=F)
+	strand = "u", bcast = 10000000, wslash=FALSE, mapHasHeaderLine=TRUE)
 }
 \arguments{
   \item{pedfile}{
-	Pre-makeped linkage genotypic data file name
+	Pre-makeped linkage genotypic data file name (no header line)
 	}
   \item{mapfile}{
-	Name of the map file
+	Name of the map file (note that by default header line should be included, 
+	see 'mapHasHeaderLine' to modify that)
 	}
   \item{outfile}{
 	Output data file
@@ -41,6 +42,9 @@
 	wslash=T it is assumed that genotypes are coded with single characters, 
 	separated with slash (no spaces), e.g. "A/G", and not "A/ G" or "A / G".
 	}
+  \item{mapHasHeaderLine}{
+	Whether map-file has a header line
+	}
 }
 \details{
 	Pedfile must be standard pre-makeped/Merlin linkage file, or a Mach file. 
@@ -89,8 +93,9 @@
 
 	Accepted strand coding: +, -, u (unknown)
 
-	Please note that the header line (e.g. "chrom	name	position") SHOULD 
-	be present in your file!
+	Please note that by default the header line (e.g. "chrom	name	position") SHOULD 
+	be present in your file, though you can use 'mapHasHeaderLine' argument to modify 
+	this behavior
 	
 }
 \value{

Modified: pkg/GenABEL/src/GAlib/convert_snp_merlin.cpp
===================================================================
--- pkg/GenABEL/src/GAlib/convert_snp_merlin.cpp	2011-03-04 18:44:15 UTC (rev 666)
+++ pkg/GenABEL/src/GAlib/convert_snp_merlin.cpp	2011-03-06 19:11:17 UTC (rev 667)
@@ -41,7 +41,9 @@
 **/
 
 extern "C" {
-  void convert_snp_merlin (char** pedfilename, char** mapfilename, char** outfilename, int* Strandid, int* bcast, char **allele_codes, int* Ncodes, int *Fmt, int *Tra) {
+  void convert_snp_merlin (char** pedfilename, char** mapfilename, char** outfilename,
+		  int* Strandid, int* bcast, char **allele_codes, int* Ncodes,
+		  int *Fmt, int *Tra, int *MapHasHeaderLine) {
 
     int verbose = *bcast ? 1 : 0;
 
@@ -49,6 +51,7 @@
     int strandid = *Strandid;
     int format = *Fmt;
     int traits = *Tra;
+    int mapHasHeaderLine = *MapHasHeaderLine;
 
     long int linecount=0;
     string data;
@@ -83,7 +86,8 @@
     }    
 
     int mapline=0;
-    getline(mapfile,data);
+// read and ignore header line
+    if (mapHasHeaderLine) getline(mapfile,data);
     if (strandid==3) {
     while (getline(mapfile,data)) {
       istringstream datas (data);

Modified: pkg/GenABEL/src/GAlib/convert_snp_merlin_wslash.cpp
===================================================================
--- pkg/GenABEL/src/GAlib/convert_snp_merlin_wslash.cpp	2011-03-04 18:44:15 UTC (rev 666)
+++ pkg/GenABEL/src/GAlib/convert_snp_merlin_wslash.cpp	2011-03-06 19:11:17 UTC (rev 667)
@@ -40,7 +40,9 @@
 **/
 
 extern "C" {
-  void convert_snp_merlin_wslash (char** pedfilename, char** mapfilename, char** outfilename, int* Strandid, int* bcast, char **allele_codes, int* Ncodes, int *Fmt, int *Tra) {
+  void convert_snp_merlin_wslash (char** pedfilename, char** mapfilename,
+		  char** outfilename, int* Strandid, int* bcast, char **allele_codes,
+		  int* Ncodes, int *Fmt, int *Tra, int *MapHasHeaderLine) {
 
     int verbose = *bcast ? 1 : 0;
 
@@ -48,6 +50,7 @@
     int strandid = *Strandid;
     int format = *Fmt;
     int traits = *Tra;
+    int mapHasHeaderLine = *MapHasHeaderLine;
 
     long int linecount=0;
     string data;
@@ -82,7 +85,8 @@
     }    
 
     int mapline=0;
-    getline(mapfile,data);
+// read and ignore header line
+    if (mapHasHeaderLine) getline(mapfile,data);
     if (strandid==3) {
     while (getline(mapfile,data)) {
       istringstream datas (data);



More information about the Genabel-commits mailing list