Hi Rui,

Thanks once again for all the help. I need to ask for one more help from you. I 
have two matrices, with probesets as rows and samples as columns.
The samples in the two matrices are matched (from the same animal but two 
different tissues). I want to create a correlation matrix of sample by sample 
using the probeset expression values. Could you please suggest a way to do that?

Thanks,
Som.


Date: Sat, 12 May 2012 15:20:52 -0700
From: ml-node+s789695n4629656...@n4.nabble.com
To: genome1...@hotmail.com
Subject: RE: Calculating all possible ratios



        Hello,


Nothing wrong with me, maybe your R session has some conflicting objects.

Running the function in the previous post on the first 4 rows and first 6 
columns of your dataset the result was (copy&paste to your session)


result <- structure(c(8.74714923153198, 1.83094400392095, 9.92065138471113, 

1.77145415014708, 1.01515180575001, 0.167175438316099, 0.222321656865252, 

0.155576771874649, 3.09417748158541, 0.469647988505747, 1.29398633565582, 

0.524043736521509, 3.75969597954255, 0.422694576901317, 9.75471698113208, 

0.290397651827521, 4.9035575319622, 1.00105273231888, 1.01093964697178, 

0.26895145631068, 0.114322960947685, 0.546166347992352, 0.100799832714726, 

0.564507977763338, 0.11605516024473, 0.0913055986191245, 0.0224099858208782, 

0.0878243288779063, 0.353735531392494, 0.256505926724138, 0.130433606169248, 

0.295826869963301, 0.42981957664441, 0.230861553382365, 0.983273839877614, 

0.163931791180376, 0.56058921623124, 0.546741314958369, 0.10190254729944, 

0.151825242718447, 0.9850743448771, 5.98173996175908, 4.49798734905118, 

6.4276947512815, 8.61659229879359, 10.9522309159971, 44.6229644227777, 

11.3863665430362, 3.04799485560622, 2.8093121408046, 5.82033416762497, 

3.36839317468124, 3.70358005398494, 2.52844904226946, 43.8765935747068, 

1.86658746243623, 4.83036872336483, 5.98803713273998, 4.54719374273333, 

1.72873786407767, 0.323187666496628, 2.12925430210325, 0.772805687699305, 

1.90823767237023, 2.82697074863659, 3.89854539725884, 7.66673581578674, 

3.38035554418724, 0.328084543240185, 0.35595902124055, 0.1718114409242, 

0.296877457036954, 1.21508737036511, 0.900024246342843, 7.53850076491586, 

0.554147739185128, 1.58476931628683, 2.13149583692219, 0.781259909100518, 

0.513223300970874, 0.265978952936953, 2.36577437858509, 0.102514506769826, 

3.44355401535389, 2.32655759378615, 4.33160041310018, 1.01701068353905, 

6.10009805175427, 0.270009014365446, 0.395499368696959, 0.0227911949977918, 

0.535737017484743, 0.822986086753186, 1.11108117816092, 0.132652370966651, 

1.8045729131197, 1.30424309801742, 2.36826490573261, 0.103635979283374, 

0.926148867313916, 0.203933571388086, 0.998948374760994, 0.989178733859585, 

3.71814309436142, 1.78383738225087, 1.82901853699522, 9.81329737579089, 

6.58652001534723, 0.207023533247665, 0.166999632405824, 0.219915855047535, 

0.578456699988768, 0.631006664328306, 0.469154094827586, 1.27998376513563, 

1.9484696000908, 0.76672822844154, 0.422250060615857, 9.64915859255482, 

1.07974002376127), .Dim = c(4L, 30L), .Dimnames = list(c("S1", 

"S2", "S3", "S4"), c("P1:P2", "P1:P3", "P1:P4", "P1:P5", "P1:P6", 

"P2:P1", "P2:P3", "P2:P4", "P2:P5", "P2:P6", "P3:P1", "P3:P2", 

"P3:P4", "P3:P5", "P3:P6", "P4:P1", "P4:P2", "P4:P3", "P4:P5", 

"P4:P6", "P5:P1", "P5:P2", "P5:P3", "P5:P4", "P5:P6", "P6:P1", 

"P6:P2", "P6:P3", "P6:P4", "P6:P5")))


Rui Barradas



genome1976 wrote
Hi Rui,

Thanks once again. I really appreciate it.

I tried using the code with the following dataset:





 

 

  Sample

  P1

  P2

  P3

  P4

  P5

  P6

  P7

  P8

  P9

  P10

 

 

  S1

  5292.9

  605.1

  5213.9

  1710.6

  1407.8

  1079.4

  1379.6

  9321.4

  6951

  1205.8

 

 

  S2

  104.6

  57.129

  625.69

  222.72

  247.46

  104.49

  330.29

  1863.7

  389.67

  216.29

 

 

  S3

  191.29

  19.282

  860.42

  147.83

  19.61

  189.22

  203.27

  1799

  369.9

  175.73

 

 

  S4

  41.553

  23.457

  267.09

  79.293

  143.09

  154.5

  52.567

  613.54

  408.86

  61.715

 

 

  S5

  671.33

  19.076

  1040.9

  319.04

  50.766

  57.445

  50.005

  1615.5

  1149.1

  163.99

 

 

  S6

  125.9

  22.296

  563.83

  236.36

  112.38

  81.581

  48.406

  2073.6

  388.4

  62.575

 

 

  S7

  78.485

  18.152

  248.18

  156.19

  322.4

  162.01

  38.379

  2786.8

  630.63

  71.163

 

 

  S8

  1355.6

  51.534

  422.51

  134.89

  202.34

  48.368

  69.45

  231.11

  1875.9

  153.18

 

 

  S9

  2167.6

  45.244

  430.73

  262.19

  365.71

  116.49

  65.663

  151.04

  3071.5

  210.55

 

 

  S10

  575.7

  24.699

  170.09

  128.64

  42.58

  31.034

  55.256

  294.67

  448.05

  226.19

 

 

  S11

  234.22

  22.594

  944.54

  118.91

  16.994

  102.67

  199.32

  2300

  192.38

  108.3

 

 

  S12

  193.38

  25.374

  829.88

  74.872

  108.1

  116.49

  175.49

  1248

  340.33

  65.022

 

 

  S13

  60.43

  15.907

  947.23

  49.12

  62.992

  189.11

  27.348

  134.46

  209.66

  67.638

 

 

  S14

  94.563

  23.304

  303.25

  36.745

  220.11

  128.72

  33.242

  135.6

  263.31

  107.4

 

 

  S15

  44.379

  17.794

  768

  26.144

  49.329

  103

  26.782

  290.04

  151.63

  66.928

 

 

  S16

  42.333

  14.671

  224.49

  19.642

  100.96

  82.624

  42.736

  94.781

  182.99

  68.087

 

 

  S17

  528.59

  49.81

  685.29

  24.981

  106.7

  72.219

  114.44

  610.74

  1779.9

  245.57

 


When I run the code, this is what I get :


     probeset1:probeset2 probeset1:probeset3 probeset1:probeset4

[1,]           0.2000000           0.1111111          0.07692308

[2,]           0.3333333           0.2000000          0.14285714

[3,]           0.4285714           0.2727273          0.20000000

[4,]           0.5000000           0.3333333          0.25000000

     probeset1:probeset5 probeset1:probeset6 probeset2:probeset1

[1,]          0.05882353          0.04761905            5.000000

[2,]          0.11111111          0.09090909            3.000000

[3,]          0.15789474          0.13043478            2.333333

[4,]          0.20000000          0.16666667            2.000000

     probeset2:probeset3 probeset2:probeset4 probeset2:probeset5

[1,]           0.5555556           0.3846154           0.2941176

[2,]           0.6000000           0.4285714           0.3333333

[3,]           0.6363636           0.4666667           0.3684211

[4,]           0.6666667           0.5000000           0.4000000

     probeset2:probeset6 probeset3:probeset1 probeset3:probeset2

[1,]           0.2380952            9.000000            1.800000

[2,]           0.2727273            5.000000            1.666667

[3,]           0.3043478            3.666667            1.571429

[4,]           0.3333333            3.000000            1.500000

     probeset3:probeset4 probeset3:probeset5 probeset3:probeset6

[1,]           0.6923077           0.5294118           0.4285714

[2,]           0.7142857           0.5555556           0.4545455

[3,]           0.7333333           0.5789474           0.4782609

[4,]           0.7500000           0.6000000           0.5000000

     probeset4:probeset1 probeset4:probeset2 probeset4:probeset3

[1,]                  13            2.600000            1.444444

[2,]                   7            2.333333            1.400000

[3,]                   5            2.142857            1.363636

[4,]                   4            2.000000            1.333333

     probeset4:probeset5 probeset4:probeset6 probeset5:probeset1

[1,]           0.7647059           0.6190476           17.000000

[2,]           0.7777778           0.6363636            9.000000

[3,]           0.7894737           0.6521739            6.333333

[4,]           0.8000000           0.6666667            5.000000

     probeset5:probeset2 probeset5:probeset3 probeset5:probeset4

[1,]            3.400000            1.888889            1.307692

[2,]            3.000000            1.800000            1.285714

[3,]            2.714286            1.727273            1.266667

[4,]            2.500000            1.666667            1.250000

     probeset5:probeset6 probeset6:probeset1 probeset6:probeset2

[1,]           0.8095238           21.000000            4.200000

[2,]           0.8181818           11.000000            3.666667

[3,]           0.8260870            7.666667            3.285714

[4,]           0.8333333            6.000000            3.000000

     probeset6:probeset3 probeset6:probeset4 probeset6:probeset5

[1,]            2.333333            1.615385            1.235294

[2,]            2.200000            1.571429            1.222222

[3,]            2.090909            1.533333            1.210526

[4,]            2.000000            1.500000            1.200000



As you can see P1:P2 is not 0.2000000 as indicated by the results of the code.


Am I doing something wrong?


Thanks once again.

Som.


Date: Sat, 12 May 2012 14:04:11 -0700

From: [hidden email]
To: [hidden email]
Subject: RE: Calculating all possible ratios




        Hello,



I'm glad it helped. Now to make the result readable. (I had thought of it.)



pairwise.ratios <- function(x, prefix="probeset", char=":"){


        n <- ncol(x)


        cn <- colnames(x)


        if(length(cn) == 0){


                cn <- gsub(" ", "0", formatC(seq.int(n), width=nchar(n)))


                cn <- paste(prefix, cn, sep="")


        }


        cmb <- combn(n, 2)


        r1 <- apply(cmb, 2, function(j) x[, j[1]]/x[, j[2]])


        r2 <- apply(cmb, 2, function(j) x[, j[2]]/x[, j[1]])


        colnames(r1) <- apply(cmb, 2, function(j) paste(cn[j], collapse=char))


        colnames(r2) <- apply(cmb, 2, function(j) paste(cn[rev(j)], 
collapse=char))


        cbind(r1, r2)[, order(c(colnames(r1), colnames(r2)))]


}



m1 <- matrix(1:24, ncol=6)


pairwise.ratios(m1)



Rui Barradas



genome1976 wrote

Thanks so much Rui. I really appreciate all the help.



I implemented the code and it ran fine. I was wondering how I could include the 
probeset ids as probeset1:probeset2 in the final output so that I know which 
ratios are for which probeset pairs.




Thanks so much.


Som.


Date: Sat, 12 May 2012 09:29:54 -0700


From: [hidden email]

To: [hidden email]

Subject: Re: Calculating all possible ratios





        Hello,




If by all possible gene ratios you mean all pairwise column ratios, try 



the following.




# Make up some data



x <- matrix(1:24, ncol=6)




cmb <- combn(ncol(x), 2)



r1 <- apply(cmb, 2, function(j) x[, j[1]]/x[, j[2]])



r2 <- apply(cmb, 2, function(j) x[, j[2]]/x[, j[1]])



cbind(r1, r2)




Note that the dataset must be a numeric only matrix or data.frame.




Hope this helps,




Rui Barradas




Em 12-05-2012 11:00, [hidden email] escreveu:



> Date: Fri, 11 May 2012 12:39:23 -0700 (PDT)



> From: genome1976<[hidden email]>



> To:[hidden email]



> Subject: [R] Calculating all possible ratios



> Message-ID:<[hidden email]>



> Content-Type: text/plain



>



> I have a data matrix with  genes as columns and samples as rows. I want to



> create all possible gene ratios.Is there an elegant and fast way to do it in



> R and write it to a dataframe?



>



> Thanks for any help.



> Som.



>



> --



> View this message in 
> context:http://r.789695.n4.nabble.com/Calculating-all-possible-ratios-tp4627405.html
> Sent from the R help mailing list archive at Nabble.com.



>       [[alternative HTML version deleted]]



>



______________________________________________



[hidden email] mailing list



https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




        


        



        



        


        


                If you reply to this email, your message will be added to the 
discussion below:


                
http://r.789695.n4.nabble.com/Calculating-all-possible-ratios-tp4627405p4629105.html
        


        


                


                To unsubscribe from Calculating all possible ratios, click here.



                NAML




        

        


        


        

        

                If you reply to this email, your message will be added to the 
discussion below:

                
http://r.789695.n4.nabble.com/Calculating-all-possible-ratios-tp4627405p4629513.html
        

        

                

                To unsubscribe from Calculating all possible ratios, click here.


                NAML



        
        

        

        
        
                If you reply to this email, your message will be added to the 
discussion below:
                
http://r.789695.n4.nabble.com/Calculating-all-possible-ratios-tp4627405p4629656.html
        
        
                
                To unsubscribe from Calculating all possible ratios, click here.

                NAML
                                                  

--
View this message in context: 
http://r.789695.n4.nabble.com/Calculating-all-possible-ratios-tp4627405p4629922.html
Sent from the R help mailing list archive at Nabble.com.
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to