2011-03-16 4 views
4

J'essaye d'assigner l'appartenance de sous-groupe dans 4 ensembles de données d'expression génique de cancer indépendants, la formation sur chaque ensemble de données tour à tour, puis tester l'assignation (métagène) dans les trois autres, plus les tests sur la cohorte de formation elle-même. Cela produit des appartenances de groupe pour chaque échantillon, pour chaque comparaison et vous pouvez avoir une idée de la stabilité de l'échantillon (est-ce qu'un cluster d'échantillons donné dans le même cluster à chaque fois?) Le problème est que les étiquettes de groupe peuvent différer comparaison, donc comparer avec des étiquettes de groupe ne fonctionne pas. Afin d'évaluer la stabilité de l'échantillon, je pense avoir besoin, pour chaque échantillon, de cataloguer les membres de son sous-groupe, mais je n'ai pas été en mesure de conceptualiser précisément comment je devrais le faire.R - vérifier la cohérence de l'assignation de groupe, les étiquettes de groupe avec des noms différents

Pour ce que cela vaut, le code ci-dessous devrait démontrer le problème un peu plus clairement que je l'ai décrit ci-dessus.

Merci pour votre lecture, et toute aide est appréciée!

## Here we have 12 samples (A-L), all of which have congruent assignments, except sample K. 
## From the two group assignments, we can see that group 1 has become group 4 in class2, 
## group 2 has become group 1 etc. etc. 

## How do we assess cluster membership with these differing subgroup labels? 

class1<-c(1,2,3,4,1,2,3,4,1,2,3,4) 
class2<-c(4,1,2,3,4,1,2,3,4,1,3,3) 

names(class1)<-LETTERS[1:12] 
names(class2)<-LETTERS[1:12] 

Répondre

4

Essayez matchClasses à e1071, ou quelques-unes des méthodes dans le paquet seriation pourrait aider. Cependant, vous avez besoin du tableau complet des classifications.

+0

C'est exactement ce que je cherchais. Merci beaucoup! – EdS

3

Bonne question. Merci d'avoir posé la question si clairement. Je travaille sur le regroupement en ce moment, et j'ai parqué cette question pour la résoudre plus tard.

Voici une manière graphique de résoudre le problème.

library(ggplot2) 
# Create dummy data 
# In the first instance, there is perfect transposition between A and D 
d <- data.frame(
    clust1 = LETTERS[rep(1:4, 3)], 
    clust2 = LETTERS[rep(c(4,1,2,3), 3)] 
) 
ggplot(d, aes(x=clust1, y=clust2)) + geom_point(stat="sum", aes(size=..n..)) 

Perfect transposition - all bubbles same size

# Now modify data so that there is a single instance of imperfect matching 
d$clust2[1] <- "A" 
ggplot(d, aes(x=clust1, y=clust2)) + geom_point(stat="sum", aes(size=..n..)) 

Imperfect transposition - bubbles different sizes

+0

Merci pour la réponse rapide! Cette approche permet une visualisation facile de la correspondance des clusters, bien que je pense que la suggestion de Hadley sera plus utile si je souhaite assigner ces groupes par programme. Je voudrais upvote si j'avais une réputation suffisante! – EdS

Questions connexes