J'essaie de calculer la corrélation de rang de Spearman, où les données (tsv avec le nom et le rang) pour chaque expérience sont stockées dans des fichiers distincts dans un répertoire.Calculer la corrélation de rang de Spearman à partir de données présentes dans tous les fichiers d'un répertoire
Voici le format des fichiers d'entrée:
#header not present
#geneName value
ENSMUSG00000026179.14 14.5648627685587
ENSMUSG00000026179.14 0.652158034413075
ENSMUSG00000026179.14 0.652158034413075
ENSMUSG00000026179.14 1.852158034413075
ENSMUSG00000026176.13 4.13033421794948
ENSMUSG00000026176.13 4.13033421794948
ENSMUSG00000026176.13 15.4344068144428
ENSMUSG00000026176.13 15.4344068144428
ENSMUSG00000026176.13 6.9563523670728
...
Mon problème est que les clés (noms de gènes) sont répétitives, et chaque fichier d'expérience contient jeu différent mais qui se chevauchent des noms de gènes. Ce que je besoin est une intersection de noms de gènes pour chaque paire tout en effectuant la corrélation et la suppression des doublons, probablement quelque chose comme ce code pseudo:
# Find correlation for all possible pairs of input(i.e. files in directory)
files = list_Of_files("directory")
for(i in files) {
for(k in files) {
CommonGenes <- intersect (i,k)
tempi <- removeRepetitive(i, CommonGenes) #Keep the gene with highest value and remove all other repeating genes. Also, keep only common genes.
tempk <- removeRepetitive(k, CommonGenes) #Keep the gene with highest value and remove all other repeating genes. Also, keep only common genes.
correlationArray[] <- spearman(tempi, tempk) #Perform correlation for only the common genes
}
}
En fin de compte, je veux tracer la matrice de corrélation en utilisant corrplot ou qtlcharts.
Votre boucle ne ressemble pas à un code de R. – www
@ycw, je suis désolé. Je travaille généralement avec python, donc je trouve plus facile d'écrire des exemples fictifs au format python "like". Je vais mettre à jour ma question pour refléter cela. – Siddharth