Browse code

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@48480 bc3139a8-67e5-0310-9ffc-ced21a209358

unknown authored on 28/07/2010 02:03:14
Showing 4 changed files

... ...
@@ -536,3 +536,6 @@ function (which expects ff objects and supports parallel processing)
536 536
 
537 537
 2010-07-25 M. Ritchie committed version 1.7.6
538 538
 ** fixed bug introduced in 1.7.4 by addition of tryCatch() into readIdatFiles().  Thanks to Nolwenn Le Meur for pointing this out.
539
+
540
+2010--7-28 M. Ritchie committed version 1.7.7
541
+** added omni express 12 as one of the chip options for Illumina.  Also added a check for copy number probes (this chip doesn't have any).
... ...
@@ -1,8 +1,8 @@
1 1
 Package: crlmm
2 2
 Type: Package
3 3
 Title: Genotype Calling (CRLMM) and Copy Number Analysis tool for Affymetrix SNP 5.0 and 6.0 and Illumina arrays.
4
-Version: 1.7.6
5
-Date: 2010-07-25
4
+Version: 1.7.7
5
+Date: 2010-07-28
6 6
 Author: Rafael A Irizarry, Benilton S Carvalho <carvalho@bclab.org>, Robert Scharpf <rscharpf@jhsph.edu>, Matt Ritchie <mritchie@wehi.edu.au>
7 7
 Maintainer: Benilton S Carvalho <carvalho@bclab.org>, Robert Scharpf <rscharpf@jhsph.edu>, Matt Ritchie <mritchie@wehi.EDU.AU>
8 8
 Description: Faster implementation of CRLMM specific to SNP 5.0 and 6.0 arrays, as well as a copy number tool specific to 5.0, 6.0, and Illumina platforms
... ...
@@ -632,7 +632,8 @@ RGtoXY = function(RG, chipType, verbose=TRUE) {
632 632
                "human370quadv3c",        # 370CNV quad
633 633
                "human550v3b",            # 550K
634 634
                "human1mduov3b",          # 1M Duo
635
-               "humanomni1quadv1b")      # Omni1 quad
635
+               "humanomni1quadv1b",      # Omni1 quad
636
+               "humanomniexpress12v1b") # Omni express 12
636 637
   if(missing(chipType)){
637 638
 	  chipType = match.arg(annotation(RG), chipList)
638 639
   } else chipType = match.arg(chipType, chipList)
... ...
@@ -738,7 +739,8 @@ RGtoXY2 = function(RG, chipType, verbose=TRUE) {
738 739
                "human370quadv3c",        # 370CNV quad
739 740
                "human550v3b",            # 550K
740 741
                "human1mduov3b",          # 1M Duo
741
-               "humanomni1quadv1b")      # Omni1 quad
742
+               "humanomni1quadv1b",      # Omni1 quad
743
+	       "humanomniexpress12v1b")  # Omni express 12
742 744
   if(missing(chipType)){
743 745
 	  chipType = match.arg(annotation(RG), chipList)
744 746
   } else chipType = match.arg(chipType, chipList)
... ...
@@ -950,25 +952,27 @@ preprocessInfinium2 <- function(XY, mixtureSampleSize=10^5,
950 952
   # separate out copy number probes
951 953
   npIndex = getVarInEnv("npProbesFid")
952 954
   nprobes = length(npIndex)
953
-  narrays = ncol(XY)
954
-  A <- matrix(as.integer(exprs(channel(XY, "X"))[npIndex,]), nprobes, narrays)
955
-  B <- matrix(as.integer(exprs(channel(XY, "Y"))[npIndex,]), nprobes, narrays)
955
+  if(length(nprobes)>0) {
956
+    narrays = ncol(XY)
957
+    A <- matrix(as.integer(exprs(channel(XY, "X"))[npIndex,]), nprobes, narrays)
958
+    B <- matrix(as.integer(exprs(channel(XY, "Y"))[npIndex,]), nprobes, narrays)
956 959
 
957
-  # new lines below - useful to keep track of zeroed out probes
958
-  zero <- matrix(as.integer(exprs(channel(XY, "zero"))[npIndex,]), nprobes, narrays) 
960
+    # new lines below - useful to keep track of zeroed out probes
961
+    zero <- matrix(as.integer(exprs(channel(XY, "zero"))[npIndex,]), nprobes, narrays) 
959 962
 
960
-  colnames(A) <- colnames(B) <- colnames(zero) <- sns
961
-  rownames(A) <- rownames(B) <- rownames(zero) <- names(npIndex)
963
+    colnames(A) <- colnames(B) <- colnames(zero) <- sns
964
+    rownames(A) <- rownames(B) <- rownames(zero) <- names(npIndex)
962 965
   
963
-  cnAB = list(A=A, B=B, zero=zero, sns=sns, gns=names(npIndex), cdfName=cdfName)
964
-  if(save.it & !missing(cnFile)) {
965
-    t0 <- proc.time() 
966
-    save(cnAB, file=cnFile) 
967
-    t0 <- proc.time()-t0
968
-    if(verbose) message("Used ", round(t0[3],1), " seconds to save ", cnFile, ".")
966
+    cnAB = list(A=A, B=B, zero=zero, sns=sns, gns=names(npIndex), cdfName=cdfName)
967
+    if(save.it & !missing(cnFile)) {
968
+      t0 <- proc.time() 
969
+      save(cnAB, file=cnFile) 
970
+      t0 <- proc.time()-t0
971
+      if(verbose) message("Used ", round(t0[3],1), " seconds to save ", cnFile, ".")
972
+    }
973
+    rm(cnAB, B, zero)
969 974
   }
970
-  rm(cnAB, B, zero)
971
-  
975
+
972 976
   # next process snp probes
973 977
   snpIndex = getVarInEnv("snpProbesFid")
974 978
   nprobes <- length(snpIndex)
... ...
@@ -1090,22 +1094,24 @@ preprocessInfinium2v2 <- function(XY, mixtureSampleSize=10^5,
1090 1094
     # separate out copy number probes
1091 1095
     npIndex = getVarInEnv("npProbesFid")
1092 1096
     nprobes = length(npIndex)
1093
-    A <- matrix(as.integer(exprs(channel(XY, "X"))[npIndex,]), nprobes, narrays)
1094
-    B <- matrix(as.integer(exprs(channel(XY, "Y"))[npIndex,]), nprobes, narrays)
1097
+    if(length(nprobes)>0) {
1098
+      A <- matrix(as.integer(exprs(channel(XY, "X"))[npIndex,]), nprobes, narrays)
1099
+      B <- matrix(as.integer(exprs(channel(XY, "Y"))[npIndex,]), nprobes, narrays)
1095 1100
 
1096
-    # new lines below - useful to keep track of zeroed out probes
1097
-    zero <- matrix(as.integer(exprs(channel(XY, "zero"))[npIndex,]), nprobes, narrays) 
1101
+      # new lines below - useful to keep track of zeroed out probes
1102
+      zero <- matrix(as.integer(exprs(channel(XY, "zero"))[npIndex,]), nprobes, narrays) 
1098 1103
 
1099
-    colnames(A) <- colnames(B) <- colnames(zero) <- sns
1100
-    rownames(A) <- rownames(B) <- rownames(zero) <- names(npIndex)
1104
+      colnames(A) <- colnames(B) <- colnames(zero) <- sns
1105
+      rownames(A) <- rownames(B) <- rownames(zero) <- names(npIndex)
1101 1106
   
1102
-    cnAB = list(A=A, B=B, zero=zero, sns=sns, gns=names(npIndex), cdfName=cdfName)
1107
+      cnAB = list(A=A, B=B, zero=zero, sns=sns, gns=names(npIndex), cdfName=cdfName)
1103 1108
     
1104
-    t0 <- proc.time() 
1105
-    save(cnAB, file=cnFile) 
1106
-    t0 <- proc.time()-t0
1107
-    if(verbose) message("Used ", round(t0[3],1), " seconds to save ", cnFile, ".")
1108
-     rm(cnAB, B, zero)
1109
+      t0 <- proc.time() 
1110
+      save(cnAB, file=cnFile) 
1111
+      t0 <- proc.time()-t0
1112
+      if(verbose) message("Used ", round(t0[3],1), " seconds to save ", cnFile, ".")
1113
+       rm(cnAB, B, zero)
1114
+    }
1109 1115
   }
1110 1116
   
1111 1117
   # next process snp probes
... ...
@@ -165,7 +165,8 @@ validCdfNames <- function(){
165 165
 	  "human610quadv1b",
166 166
 	  "human660quadv1a",
167 167
 	  "human1mduov3b",
168
-	  "humanomni1quadv1b")
168
+	  "humanomni1quadv1b",
169
+          "humanomniexpress12v1b")
169 170
 }
170 171
 isValidCdfName <- function(cdfName){
171 172
 	chipList <- validCdfNames()