2010-10-20 4 views
0

EDIT: J'ai compris. Je ne comprenais pas la notation.Comment utiliser d'autres méthodes de clustering pour clustergram dans la boîte à outils bioinformatique de Matlab

Bonjour,

Espérons que quelqu'un là-bas est familier avec la clustergram dans la boîte à outils de bio-informatique. Je m'intéresse aux aspects graphiques de la fonction (le dendrogramme/heat map), mais je suis actuellement handicapé car il nécessite l'utilisation de la fonction cluster() de Matlab. Je préférerais utiliser mon algorithme personnel pour créer un cluster, puis permettre à Matlab de le visualiser pour moi.

J'ai cherché le code, mais je suis terriblement ignorant de la programmation orientée objet en général, et de la version de Matlab en particulier. Donc tout ce que je sais c'est que la fonction appelle la ligne 'obj = obj.getclusters', mais je n'ai aucune idée de comment l'éditer de telle sorte que j'utilise mon propre algorithme de clustering au lieu de celui de Matlab.

Toute aide est appréciée!

EDIT: Je travaille spécifiquement sur un nouvel algorithme, donc pourquoi je n'ai pas besoin de pdist ou de linkage. Les dendrogrammes sont calculés en dehors de la fonction clustergram. Tout ce que j'utilise pour créer le dendrogramme/heatmap est la fonction clustergram. Vraiment, tout ce que je cherche ici, c'est ce que fait 'obj = obj.getclusters;' faire? Je ne suis pas un programmeur et ne suis vraiment pas familier avec OO. Pour moi, cela ressemble à ce que nous avons magiquement des clusters, car il n'y a pas d'appel de fonction. Ceci est à la ligne 304 de clustergram()

+0

Quel type de données souhaitez-vous utiliser pour la visualisation?Calculez-vous des dendrogrammes en dehors de clustergram? Les paramètres Pdist et Linkage ne suffisent pas? Quelle est votre version de MATLAB, Bioinformatics toolbox? – yuk

+0

Je suis d'accord avec @yuk, nous avons besoin de plus de détails. Aussi, il serait utile si vous postez un exemple de travail simple avec les fonctions que vous utilisez actuellement pour générer un dendrogramme/heatmap ... – Amro

Répondre

0

D'abord, j'ai les versions ultérieures de bio-informatique Boîte à outils (3.4 et versions ultérieures), et pour les versions clustergram.m fichier n'a pas la ligne obj = obj.getclusters;

Rappelez-vous CLUSTERGRAM dans la classe (non fonctionne comme c'était la version plus ancienne). Lorsque vous exécutez clustergram(data,...), vous exécutez la méthode constructeur de cette classe pour créer un objet clustergram. Cet objet est obj variable. Ainsi, lorsque vous exécutez obj = obj.getclusters;, vous exécutez la méthode getclusters dans la classe clustergram, qui met à jour l'objet obj.

Pour obtenir plus de détails quelle méthode getclusters fait look pour une ligne suivante dans les méthodes Bloc:

function obj = getcluster(obj) 

Dans les dernières versions, il est la méthode computeClusters définie comme

function computeClusters(obj) 

Cette méthode calcule les deux dendrogrammes pour les lignes et les colonnes et met à jour l'objet. Vous pouvez directement modifier cette fonction, bien sûr, mais je ne le recommanderais pas. Il est préférable de développer des fonctions séparées pour la métrique de distance et la liaison et d'utiliser ces fonctions pour construire l'objet clustergram.

Si votre algorithme n'utilise pas la distance et la liaison, veuillez expliquer comment il est supposé construire des dendrogrammes. Crée-t-il une matrice de liaison identique à la sortie de la fonction LINKAGE? Sans une telle matrice, je ne pense pas que vous pouvez utiliser clustergram même pour la visualisation seulement. Avez-vous un exemple à quoi devrait ressembler votre clustergram? Peut être vous pouvez utiliser Heatmap classe d'autres fonctions plus simples comme IMAGE ou IMAGESC.

Questions connexes