[R] rename and color a list of list of list of values

Karim Mezhoud kmezhoud at gmail.com
Fri Jun 5 23:32:17 CEST 2015


Thanks Sven,

I started with the first function.
The values are not in a list but in df. it is more easy for me

the output is a df:
 Genes    brca_tcga  gbm_tcga   color_brca      color_gbm
name1     v1                    v2            col1                 col2
name2     v3                    v4            col3                 col4
name3    v5                     v6            col5                 col6



attriColorGene <- function(df,colname, color=c(x,y,z)){
Max <- max(df, na.rm=TRUE)
Min <- min(df, na.rm=TRUE)
#"white","yellow", "darkgoldenrod3"
my.colors <- colorRampPalette(c(x,y,z )) #creates a function my.colors
which interpolates n colors between blue, white and red
color.df <- data.frame(colname=seq(Min,Max,1), paste("col_", colname,
sep="")=my.colors(Max- Min)) #generates 2001 colors from the color ramp
df.with.color <- merge(df, color.df, by=colname)
return(df.with.color)
}

for(i in 2:length(colnames(df)) ){
  colname <- colnames[i]
  attriColorGene(df,colname, color=c(x,y,z))
}


could you describe me the structure of the output of
magic_colour, list_child , list_parent?

Thanks
Karim



On Fri, Jun 5, 2015 at 6:12 PM, Sven E. Templer <sven.templer at gmail.com>
wrote:

> Hi Karim,
>
> you should learn ?Map to iterate along the list and supply mutliple list
> arguments (there is also parallel:::mcMap for multicore).
> The magic of the color code generation you figure out yourself, I guess...
>
>
> Here 'i' intends to be the value, 'n' the name, e.g.
>
> # returns color by character/numeric value:
> magic_colour <- function (x) { ... }
>
> # returns child
> list_child <- function (i, n) { list(name=n, colour=magic_colour(i)) }
>
> # returns parent
> list_parent <- function (i, n) { list(name=n, children=Map(list_child, i,
> names(i)), colour=magic_colour(n)) }
>
> # get grandparent
> grandparent <- Map(list_parent, expBefore, names(expBefore))
>
>
> Hope this helps!
>
> Best, S.
>
>
> On 5 June 2015 at 18:31, Karim Mezhoud <kmezhoud at gmail.com> wrote:
>
>> Hi all,
>> I have a list like this
>>
>> expBefore <-
>>
>> list(HM450=list(brac_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03),
>>
>>
>> gbm_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03)
>>                 ),
>>
>>
>> HM27=list(brac_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03),
>>
>>
>> gbm_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03)
>>      )
>>      )
>>
>>
>> and I would convert it to
>>
>> expAfter <-list(
>>   list(
>>     name="HM450",
>>     children=list(
>>       list(name="brca_tcga",
>>            children=list(
>>              list(name="ATM", colour="110000"),
>>              list(name="ATR", colour="330000"),
>>              list(name="BRCA1", colour="550000"),
>>              list(name="BRCA2", colour="770000"),
>>              list(name="CHEK1", colour="990000"),
>>              list(name="CHEK2", colour="bb0000")
>>
>>            ), colour="aa0000" # brca_tcga
>>            ),
>>         list(name="gbm_tcga",
>>             children=list(
>>               list(name="ATM", colour="001100"),
>>               list(name="ATR", colour="003300"),
>>               list(name="BRCA1", colour="005500"),
>>               list(name="BRCA2", colour="007700"),
>>               list(name="CHEK1", colour="009900"),
>>               list(name="CHEK2", colour="00bb00")
>>             ), colour="345345" # gbm_tcga
>>             )
>>
>>            ), colour="ffa500" # HM450
>>   ),
>>   list(
>>     name="HM27",
>>     children=list(
>>       list(name="brca_tcga",
>>            children=list(
>>              list(name="ATM", colour="110000"),
>>              list(name="ATR", colour="330000"),
>>              list(name="BRCA1", colour="550000"),
>>              list(name="BRCA2", colour="770000"),
>>              list(name="CHEK1", colour="990000"),
>>              list(name="CHEK2", colour="bb0000")
>>
>>            ), colour="aa0000" ##brca_tcga
>>            ),
>>       list(name="gbm_tcga",
>>            children=list(
>>              list(name="ATM", colour="001100"),
>>              list(name="ATR", colour="003300"),
>>              list(name="BRCA1", colour="005500"),
>>              list(name="BRCA2", colour="007700"),
>>              list(name="CHEK1", colour="009900"),
>>              list(name="CHEK2", colour="00bb00")
>>            ), colour="345345") #gbm_tcga
>>
>>     ), colour="ff00ff"  #HM27
>>   )
>>
>> );
>> any suggestion?
>> Thanks
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list