2009-11-24 3 views
2

Je suis en train de normaliser une grande quantité de fichiers CEL Affymetrix en utilisant R. Cependant, certains d'entre eux semblent être tronqués, donc en les lisant je reçois l'erreurévaluation rapide des fichiers CEL Affymetrix corrompu

Cel file xxx does not seem to have the correct dimensions 

Et la normalisation s'arrête. Supprimer manuellement les fichiers corrompus et redémarrer à chaque fois prendra très longtemps. Savez-vous s'il existe un moyen rapide (en R ou avec un outil) de détecter les fichiers corrompus?

PS Je suis 99,99% sûr que je suis normalisant ensemble de la CEL même plate-forme, il est vraiment juste les fichiers tronqués :-)

Répondre

4

Une suggestion simple:

Pouvez-vous utiliser un bloc autour TryCatch votre read.table (ou quelle commande de lecture que vous utilisez)? Ensuite, sautez simplement un fichier si vous obtenez ce message d'erreur. Vous pouvez également compiler une liste de fichiers corrompus dans le bloc de capture (je recommande de le faire afin que vous suiviez les fichiers corrompus pour référence future lors de l'exécution d'un gros processus par lots comme celui-ci). Voici le pseudo code:

corrupted.files <- data.frame() 
for(i in 1:nrow(files)) { 
    x <- tryCatch(read.table(file=files[i]), error = function(e) 
     if(e=="something") { corrupted.files <- rbind(corrupted.files, files[i]) } 
     else { stop(e) }, 
     finally=print(paste("finished with", files[i], "at", Sys.time()))) 
    if(nrow(x)) # do something with the uncorrupted data    
} 
+0

Pas mal merci :-) Cela fonctionne pour enlever les fichiers corrompus. (Pour les lire, j'utilise une fonction ReadAffy spécifique de BioConductor, mais ça va). J'ai encore besoin de quelque chose pour vérifier le nom de la plate-forme, mais c'est quelque chose pour un forum de bioconducteur peut-être. –