

**
I am using the following way to get pvalues from fiser exact test.
However, I do need to print for each pair the values "n00, n01, n10, n11".
How can I print that as a table and not a matrix as below along with the
pvalue? Any help will be greatly appreciated
fish < function(y, x) {n00 = sum((1x)*(1y)); n01 = sum((1x)*y);
n10 = sum(x*(1y)); n11 = sum(x*y); a = matrix(c(n00, n01, n10, n11),
nrow = 2); pval = fisher.test(a)$p.value; return(pval);}
chiArray < function(x) { apply(mat1, 1, fish, x); }
sapply(1:nrow(mat2), function(j){chiArray(mat2[j, ]);});
chisq.cna.mut.test < sapply(1:nrow(mat2), function(j){chiArray(mat2[j, ]);});
I want output to be:
name1_mat1 name1_mat2 n00 n01 n10 n11 pvalue
name1_mat1 name2_mat2 n00 n01 n10 n11 pvalue
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Could you provide an example of mat1 and mat2 as well as an example of the
output you would like from them.
Your code is very difficult to follow as written. It will be easier for
readers of the list to interpret if you use carriage returns rather than
semi colons, for example ...
fish < function(x, y) {
n00 = sum((1x)*(1y))
n01 = sum((1x)*y)
n10 = sum(x*(1y))
n11 = sum(x*y)
a = matrix(c(n00, n01, n10, n11), nrow=2)
pval = fisher.test(a)$p.value
return(pval)
}
Jean
On Mon, Jun 24, 2013 at 6:09 AM, Angel Russo < [hidden email]>wrote:
> **
>
> I am using the following way to get pvalues from fiser exact test.
> However, I do need to print for each pair the values "n00, n01, n10, n11".
> How can I print that as a table and not a matrix as below along with the
> pvalue? Any help will be greatly appreciated
>
> fish < function(y, x) {n00 = sum((1x)*(1y)); n01 = sum((1x)*y);
> n10 = sum(x*(1y)); n11 = sum(x*y); a = matrix(c(n00, n01, n10, n11),
> nrow = 2); pval = fisher.test(a)$p.value; return(pval);}
>
> chiArray < function(x) { apply(mat1, 1, fish, x); }
> sapply(1:nrow(mat2), function(j){chiArray(mat2[j, ]);});
> chisq.cna.mut.test < sapply(1:nrow(mat2), function(j){chiArray(mat2[j,
> ]);});
>
> I want output to be:
>
> name1_mat1 name1_mat2 n00 n01 n10 n11 pvalue
>
>
>
> name1_mat1 name2_mat2 n00 n01 n10 n11 pvalue
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide
> http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


When sharing data, use dput() to output the data in a way that RHelp
readers can easily use.
Give this code a try and see if it helps.
Jean
# read in the example data
mat1 < structure(list("GENE SYMBOL" = c("ADCK2", "ADCK3", "ADCK4",
"ADCK5",
"ADRBK1", "ADRBK2", "AKT1", "AKT2", "AKT3", "ALK"), Sample.A1.A0SK.01 =
c(0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A1.A0SO.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A1.A0SP.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04P.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04Q.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04U.01 = c(0L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), Sample.A2.A0CL.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0CM.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0D0.01 = c(0L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L), Sample.A2.A0D2.01 = c(1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0ST.01 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0SX.01 = c(0L,
1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L), Sample.A2.A0T0.01 = c(0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("GENE SYMBOL",
"SampleA1A0SK01", "SampleA1A0SO01", "SampleA1A0SP01",
"SampleA2A04P01", "SampleA2A04Q01", "SampleA2A04U01",
"SampleA2A0CL01", "SampleA2A0CM01", "SampleA2A0D001",
"SampleA2A0D201", "SampleA2A0ST01", "SampleA2A0SX01",
"SampleA2A0T001"), class = "data.frame", row.names = c(NA, 10L))
mat2 < mat1
fish < function(x, y) {
n00 = sum((1x)*(1y))
n01 = sum((1x)*y)
n10 = sum(x*(1y))
n11 = sum(x*y)
a = matrix(c(n00, n01, n10, n11), nrow=2)
pval = fisher.test(a)$p.value
return(c(n00, n01, n10, n11, pval))
}
results < data.frame(matrix(NA, nrow=dim(mat1)[1]*dim(mat2)[1], ncol=7,
dimnames=list(NULL, c("gene1", "gene2", "n00", "n01", "n10", "n11",
"pval"))))
count < 0
for(i in 1:dim(mat1)[1]) {
for(j in 1:dim(mat2)[1]) {
count < count + 1
results[count, "gene1"] < mat1$"GENE SYMBOL"[i]
results[count, "gene2"] < mat2$"GENE SYMBOL"[j]
results[count, 3:7] < fish(mat1[i, 1], mat2[j, 1])
}}
On Mon, Jun 24, 2013 at 10:35 AM, Angel Russo < [hidden email]>wrote:
> Sample data is as follows (for simplicity assume mat1 and mat2 are the
> same matrices). Also attached as an excel file.
>
> I want to get the pairwise interaction fischer test results. Not just the
> pvalues but also want to wrote the n00, n01, n10 and n11 in the file as:
>
>
> ADCK2_mat1 ADCK3_mat2 n00 n01 n10 n11 pvalue
>
>
>
> ADCK2_mat1 ADCK4_mat2 n00 n01 n10 n11 pvalue
>
> GENE SYMBOL SampleA1A0SK01 SampleA1A0SO01 SampleA1A0SP01
> SampleA2A04P01 SampleA2A04Q01 SampleA2A04U01 SampleA2A0CL01
> SampleA2A0CM01 SampleA2A0D001 SampleA2A0D201 SampleA2A0ST01
> SampleA2A0SX01 SampleA2A0T001 ADCK2 0 0 0 0 0 0 0 0 0 1 0 0 0
> ADCK3 0 0 0 0 0 1 0 0 1 0 0 1 0 ADCK4 0 0 0 0 0 0 0 0 0 0 0 1 0 ADCK5 1
> 0 0 0 0 0 0 0 0 0 0 0 1 ADRBK1 0 0 0 0 0 0 0 0 0 0 0 0 0 ADRBK2 0 0 0 0
> 0 1 0 0 0 0 0 0 0 AKT1 0 0 0 0 0 0 0 0 0 0 0 0 0 AKT2 0 0 0 0 0 0 0 0 0
> 0 0 1 0 AKT3 0 0 0 0 0 0 0 0 1 0 0 1 0 ALK 0 0 0 0 0 0 0 0 0 0 0 0 0
>
>
> On Mon, Jun 24, 2013 at 11:03 AM, Adams, Jean < [hidden email]> wrote:
>
>> Could you provide an example of mat1 and mat2 as well as an example of
>> the output you would like from them.
>>
>> Your code is very difficult to follow as written. It will be easier for
>> readers of the list to interpret if you use carriage returns rather than
>> semi colons, for example ...
>>
>> fish < function(x, y) {
>> n00 = sum((1x)*(1y))
>> n01 = sum((1x)*y)
>> n10 = sum(x*(1y))
>> n11 = sum(x*y)
>> a = matrix(c(n00, n01, n10, n11), nrow=2)
>> pval = fisher.test(a)$p.value
>> return(pval)
>> }
>>
>> Jean
>>
>>
>> On Mon, Jun 24, 2013 at 6:09 AM, Angel Russo < [hidden email]>wrote:
>>
>>> **
>>>
>>> I am using the following way to get pvalues from fiser exact test.
>>> However, I do need to print for each pair the values "n00, n01, n10,
>>> n11".
>>> How can I print that as a table and not a matrix as below along with the
>>> pvalue? Any help will be greatly appreciated
>>>
>>> fish < function(y, x) {n00 = sum((1x)*(1y)); n01 = sum((1x)*y);
>>> n10 = sum(x*(1y)); n11 = sum(x*y); a = matrix(c(n00, n01, n10, n11),
>>> nrow = 2); pval = fisher.test(a)$p.value; return(pval);}
>>>
>>> chiArray < function(x) { apply(mat1, 1, fish, x); }
>>> sapply(1:nrow(mat2), function(j){chiArray(mat2[j, ]);});
>>> chisq.cna.mut.test < sapply(1:nrow(mat2), function(j){chiArray(mat2[j,
>>> ]);});
>>>
>>> I want output to be:
>>>
>>> name1_mat1 name1_mat2 n00 n01 n10 n11 pvalue
>>>
>>>
>>>
>>> name1_mat1 name2_mat2 n00 n01 n10 n11 pvalue
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> [hidden email] mailing list
>>> https://stat.ethz.ch/mailman/listinfo/rhelp>>> PLEASE do read the posting guide
>>> http://www.Rproject.org/postingguide.html>>> and provide commented, minimal, selfcontained, reproducible code.
>>>
>>
>>
>
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Awesome! Thanks so much for your help. I am able to get the format I was
looking for.
On Mon, Jun 24, 2013 at 2:50 PM, Adams, Jean < [hidden email]> wrote:
> When sharing data, use dput() to output the data in a way that RHelp
> readers can easily use.
>
> Give this code a try and see if it helps.
>
> Jean
>
>
>
> # read in the example data
> mat1 < structure(list("GENE SYMBOL" = c("ADCK2", "ADCK3", "ADCK4",
> "ADCK5",
> "ADRBK1", "ADRBK2", "AKT1", "AKT2", "AKT3", "ALK"), Sample.A1.A0SK.01 =
> c(0L,
> 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A1.A0SO.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A1.A0SP.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04P.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04Q.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A04U.01 = c(0L,
> 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), Sample.A2.A0CL.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0CM.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0D0.01 = c(0L,
> 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L), Sample.A2.A0D2.01 = c(1L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0ST.01 = c(0L,
> 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sample.A2.A0SX.01 = c(0L,
> 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L), Sample.A2.A0T0.01 = c(0L,
> 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("GENE SYMBOL",
> "SampleA1A0SK01", "SampleA1A0SO01", "SampleA1A0SP01",
> "SampleA2A04P01", "SampleA2A04Q01", "SampleA2A04U01",
> "SampleA2A0CL01", "SampleA2A0CM01", "SampleA2A0D001",
> "SampleA2A0D201", "SampleA2A0ST01", "SampleA2A0SX01",
> "SampleA2A0T001"), class = "data.frame", row.names = c(NA, 10L))
> mat2 < mat1
>
> fish < function(x, y) {
> n00 = sum((1x)*(1y))
> n01 = sum((1x)*y)
> n10 = sum(x*(1y))
> n11 = sum(x*y)
> a = matrix(c(n00, n01, n10, n11), nrow=2)
> pval = fisher.test(a)$p.value
> return(c(n00, n01, n10, n11, pval))
> }
>
> results < data.frame(matrix(NA, nrow=dim(mat1)[1]*dim(mat2)[1], ncol=7,
> dimnames=list(NULL, c("gene1", "gene2", "n00", "n01", "n10", "n11",
> "pval"))))
> count < 0
> for(i in 1:dim(mat1)[1]) {
> for(j in 1:dim(mat2)[1]) {
> count < count + 1
> results[count, "gene1"] < mat1$"GENE SYMBOL"[i]
> results[count, "gene2"] < mat2$"GENE SYMBOL"[j]
> results[count, 3:7] < fish(mat1[i, 1], mat2[j, 1])
> }}
>
>
>
> On Mon, Jun 24, 2013 at 10:35 AM, Angel Russo < [hidden email]>wrote:
>
>> Sample data is as follows (for simplicity assume mat1 and mat2 are the
>> same matrices). Also attached as an excel file.
>>
>> I want to get the pairwise interaction fischer test results. Not just the
>> pvalues but also want to wrote the n00, n01, n10 and n11 in the file as:
>>
>>
>> ADCK2_mat1 ADCK3_mat2 n00 n01 n10 n11 pvalue
>>
>>
>>
>> ADCK2_mat1 ADCK4_mat2 n00 n01 n10 n11 pvalue
>>
>> GENE SYMBOL SampleA1A0SK01 SampleA1A0SO01 SampleA1A0SP01
>> SampleA2A04P01 SampleA2A04Q01 SampleA2A04U01 SampleA2A0CL01
>> SampleA2A0CM01 SampleA2A0D001 SampleA2A0D201 SampleA2A0ST01
>> SampleA2A0SX01 SampleA2A0T001 ADCK2 0 0 0 0 0 0 0 0 0 1 0 0 0
>> ADCK3 0 0 0 0 0 1 0 0 1 0 0 1 0 ADCK4 0 0 0 0 0 0 0 0 0 0 0 1 0 ADCK5 1
>> 0 0 0 0 0 0 0 0 0 0 0 1 ADRBK1 0 0 0 0 0 0 0 0 0 0 0 0 0 ADRBK2 0 0 0 0
>> 0 1 0 0 0 0 0 0 0 AKT1 0 0 0 0 0 0 0 0 0 0 0 0 0 AKT2 0 0 0 0 0 0 0 0 0
>> 0 0 1 0 AKT3 0 0 0 0 0 0 0 0 1 0 0 1 0 ALK 0 0 0 0 0 0 0 0 0 0 0 0 0
>>
>>
>> On Mon, Jun 24, 2013 at 11:03 AM, Adams, Jean < [hidden email]> wrote:
>>
>>> Could you provide an example of mat1 and mat2 as well as an example of
>>> the output you would like from them.
>>>
>>> Your code is very difficult to follow as written. It will be easier for
>>> readers of the list to interpret if you use carriage returns rather than
>>> semi colons, for example ...
>>>
>>> fish < function(x, y) {
>>> n00 = sum((1x)*(1y))
>>> n01 = sum((1x)*y)
>>> n10 = sum(x*(1y))
>>> n11 = sum(x*y)
>>> a = matrix(c(n00, n01, n10, n11), nrow=2)
>>> pval = fisher.test(a)$p.value
>>> return(pval)
>>> }
>>>
>>> Jean
>>>
>>>
>>> On Mon, Jun 24, 2013 at 6:09 AM, Angel Russo < [hidden email]>wrote:
>>>
>>>> **
>>>>
>>>> I am using the following way to get pvalues from fiser exact test.
>>>> However, I do need to print for each pair the values "n00, n01, n10,
>>>> n11".
>>>> How can I print that as a table and not a matrix as below along with the
>>>> pvalue? Any help will be greatly appreciated
>>>>
>>>> fish < function(y, x) {n00 = sum((1x)*(1y)); n01 = sum((1x)*y);
>>>> n10 = sum(x*(1y)); n11 = sum(x*y); a = matrix(c(n00, n01, n10, n11),
>>>> nrow = 2); pval = fisher.test(a)$p.value; return(pval);}
>>>>
>>>> chiArray < function(x) { apply(mat1, 1, fish, x); }
>>>> sapply(1:nrow(mat2), function(j){chiArray(mat2[j, ]);});
>>>> chisq.cna.mut.test < sapply(1:nrow(mat2),
>>>> function(j){chiArray(mat2[j, ]);});
>>>>
>>>> I want output to be:
>>>>
>>>> name1_mat1 name1_mat2 n00 n01 n10 n11 pvalue
>>>>
>>>>
>>>>
>>>> name1_mat1 name2_mat2 n00 n01 n10 n11 pvalue
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> [hidden email] mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/rhelp>>>> PLEASE do read the posting guide
>>>> http://www.Rproject.org/postingguide.html>>>> and provide commented, minimal, selfcontained, reproducible code.
>>>>
>>>
>>>
>>
>
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.

