... | ... |
@@ -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() |