exploratory-data-analysis

Par mkurman · zorai

Effectuer une analyse exploratoire complète de fichiers de données scientifiques couvrant plus de 200 formats de fichiers. Cette skill doit être utilisée lors de l'analyse de tout fichier de données scientifiques afin d'en comprendre la structure, le contenu, la qualité et les caractéristiques. Détecte automatiquement le type de fichier et génère des rapports Markdown détaillés avec une analyse spécifique au format, des métriques de qualité et des recommandations pour les analyses en aval. Couvre la chimie, la bioinformatique, la microscopie, la spectroscopie, la protéomique, la métabolomique et les formats de données scientifiques généraux.

npx skills add https://github.com/mkurman/zorai --skill exploratory-data-analysis

Analyse exploratoire des données

Vue d'ensemble

Réaliser une analyse exploratoire complète des données (EDA) sur des fichiers de données scientifiques dans plusieurs domaines. Cette compétence offre la détection automatique du type de fichier, l'analyse spécifique au format, l'évaluation de la qualité des données et génère des rapports markdown détaillés adaptés à la documentation et à la planification d'analyses ultérieures.

Capacités clés :

  • Détection et analyse automatiques de 200+ formats de fichiers scientifiques
  • Extraction complète de métadonnées spécifiques au format
  • Évaluation de la qualité et de l'intégrité des données
  • Résumés statistiques et distributions
  • Recommandations de visualisation
  • Suggestions d'analyses ultérieures
  • Génération de rapports markdown

Quand utiliser cette compétence

Utilisez cette compétence quand :

  • L'utilisateur fournit le chemin d'un fichier de données scientifiques pour l'analyse
  • L'utilisateur demande « explorer », « analyser » ou « résumer » un fichier de données
  • L'utilisateur veut comprendre la structure et le contenu de données scientifiques
  • L'utilisateur a besoin d'un rapport exhaustif d'un ensemble de données avant l'analyse
  • L'utilisateur veut évaluer la qualité ou l'exhaustivité des données
  • L'utilisateur demande quel type d'analyse convient à un fichier

Catégories de fichiers pris en charge

La compétence dispose d'une couverture complète des formats de fichiers scientifiques organisée en six catégories principales :

1. Formats chimie et moléculaires (60+ extensions)

Fichiers de structure, résultats de chimie computationnelle, trajectoires de dynamique moléculaire et bases de données chimiques.

Les types de fichiers comprennent : .pdb, .cif, .mol, .mol2, .sdf, .xyz, .smi, .gro, .log, .fchk, .cube, .dcd, .xtc, .trr, .prmtop, .psf, et autres.

Fichier de référence : references/chemistry_molecular_formats.md

2. Formats bioinformatique et génomique (50+ extensions)

Données de séquences, alignements, annotations, variantes et données d'expression.

Les types de fichiers comprennent : .fasta, .fastq, .sam, .bam, .vcf, .bed, .gff, .gtf, .bigwig, .h5ad, .loom, .counts, .mtx, et autres.

Fichier de référence : references/bioinformatics_genomics_formats.md

3. Formats microscopie et imagerie (45+ extensions)

Images de microscopie, imagerie médicale, imagerie de lames entières et microscopie électronique.

Les types de fichiers comprennent : .tif, .nd2, .lif, .czi, .ims, .dcm, .nii, .mrc, .dm3, .vsi, .svs, .ome.tiff, et autres.

Fichier de référence : references/microscopy_imaging_formats.md

4. Formats spectroscopie et chimie analytique (35+ extensions)

RMN, spectrométrie de masse, IR/Raman, UV-Vis, rayons X, chromatographie et autres techniques analytiques.

Les types de fichiers comprennent : .fid, .mzML, .mzXML, .raw, .mgf, .spc, .jdx, .xy, .cif (cristallographie), .wdf, et autres.

Fichier de référence : references/spectroscopy_analytical_formats.md

5. Formats protéomique et métabolomique (30+ extensions)

Protéomique spectrométrie de masse, métabolomique, lipidomique et données multi-omiques.

Les types de fichiers comprennent : .mzML, .pepXML, .protXML, .mzid, .mzTab, .sky, .mgf, .msp, .h5ad, et autres.

Fichier de référence : references/proteomics_metabolomics_formats.md

6. Formats généraux de données scientifiques (30+ extensions)

Tableaux, tables, données hiérarchiques, archives compressées et formats scientifiques courants.

Les types de fichiers comprennent : .npy, .npz, .csv, .xlsx, .json, .hdf5, .zarr, .parquet, .mat, .fits, .nc, .xml, et autres.

Fichier de référence : references/general_scientific_formats.md

Flux de travail

Étape 1 : Détection du type de fichier

Quand un utilisateur fournit un chemin de fichier, identifiez d'abord le type de fichier :

  1. Extraire l'extension de fichier
  2. Chercher l'extension dans le fichier de référence approprié
  3. Identifier la catégorie de fichier et la description du format
  4. Charger les informations spécifiques au format

Exemple :

Utilisateur : "Analyser data.fastq"
→ Extension : .fastq
→ Catégorie : bioinformatics_genomics
→ Format : Format FASTQ (données de séquence avec scores de qualité)
→ Référence : references/bioinformatics_genomics_formats.md

Étape 2 : Charger les informations spécifiques au format

En fonction du type de fichier, lisez le fichier de référence correspondant pour comprendre :

  • Données typiques : Quel type de données contient ce format
  • Cas d'usage : Applications courantes pour ce format
  • Bibliothèques Python : Comment lire le fichier en Python
  • Approche EDA : Quelles analyses conviennent pour ce type de données

Recherchez le fichier de référence pour l'extension spécifique (p. ex., cherchez « ### .fastq » dans bioinformatics_genomics_formats.md).

Étape 3 : Effectuer l'analyse des données

Utilisez le script scripts/eda_analyzer.py OU implémentez une analyse personnalisée :

Option A : Utiliser le script analyseur

# Le script effectue automatiquement :
# 1. Détecte le type de fichier
# 2. Charge les informations de référence
# 3. Effectue une analyse spécifique au format
# 4. Génère un rapport markdown

python scripts/eda_analyzer.py <filepath> [output.md]

Option B : Analyse personnalisée dans la conversation En fonction des informations de format du fichier de référence, effectuez l'analyse appropriée :

Pour les données tabulaires (CSV, TSV, Excel) :

  • Charger avec pandas
  • Vérifier les dimensions, types de données
  • Analyser les valeurs manquantes
  • Calculer les statistiques récapitulatives
  • Identifier les valeurs aberrantes
  • Vérifier les doublons

Pour les données de séquence (FASTA, FASTQ) :

  • Compter les séquences
  • Analyser les distributions de longueur
  • Calculer le contenu en GC
  • Évaluer les scores de qualité (FASTQ)

Pour les images (TIFF, ND2, CZI) :

  • Vérifier les dimensions (X, Y, Z, C, T)
  • Analyser la profondeur de bits et la plage de valeurs
  • Extraire les métadonnées (canaux, horodatages, calibrage spatial)
  • Calculer les statistiques d'intensité

Pour les tableaux (NPY, HDF5) :

  • Vérifier la forme et les dimensions
  • Analyser le type de données
  • Calculer les résumés statistiques
  • Vérifier les valeurs manquantes/invalides

Étape 4 : Générer un rapport complet

Créez un rapport markdown avec les sections suivantes :

Sections obligatoires :

  1. Titre et métadonnées

    • Nom et horodatage du fichier
    • Taille et emplacement du fichier
  2. Informations de base

    • Propriétés du fichier
    • Identification du format
  3. Détails du type de fichier

    • Description du format à partir de la référence
    • Contenu des données typiques
    • Cas d'usage courants
    • Bibliothèques Python pour la lecture
  4. Analyse des données

    • Structure et dimensions
    • Résumés statistiques
    • Évaluation de la qualité
    • Caractéristiques des données
  5. Résultats clés

    • Motifs remarquables
    • Problèmes potentiels
    • Métriques de qualité
  6. Recommandations

    • Étapes de prétraitement
    • Analyses appropriées
    • Outils et méthodes
    • Approches de visualisation

Emplacement du modèle

Utilisez assets/report_template.md comme guide pour la structure du rapport.

Étape 5 : Enregistrer le rapport

Enregistrez le rapport markdown avec un nom de fichier descriptif :

  • Motif : {original_filename}_eda_report.md
  • Exemple : experiment_data.fastqexperiment_data_eda_report.md

Références détaillées des formats

Chaque fichier de référence contient des informations complètes pour des dizaines de types de fichiers. Pour trouver des informations sur un format spécifique :

  1. Identifier la catégorie à partir de l'extension
  2. Lire le fichier de référence approprié
  3. Chercher le titre de section correspondant à l'extension (p. ex., « ### .pdb »)
  4. Extraire les informations de format

Structure du fichier de référence

Chaque entrée de format comprend :

  • Description : Ce qu'est le format
  • Données typiques : Ce qu'il contient
  • Cas d'usage : Applications courantes
  • Bibliothèques Python : Comment le lire (avec exemples de code)
  • Approche EDA : Analyses spécifiques à effectuer

Exemple de recherche :

### .pdb - Protein Data Bank
**Description :** Format standard pour les structures 3D des macromolécules biologiques
**Données typiques :** Coordonnées atomiques, informations sur les résidus, structure secondaire
**Cas d'usage :** Analyse de structure protéique, visualisation moléculaire, amarrage
**Bibliothèques Python :**
- `Biopython` : `Bio.PDB`
- `MDAnalysis` : `MDAnalysis.Universe('file.pdb')`
**Approche EDA :**
- Validation de structure (longueurs, angles de liaisons)
- Distribution des facteurs B
- Détection de résidus manquants
- Graphiques de Ramachandran

Bonnes pratiques

Lecture des fichiers de référence

Les fichiers de référence sont volumineux (10 000+ mots chacun). Pour les utiliser efficacement :

  1. Rechercher par extension : Utiliser grep pour trouver le format spécifique

    import re
    with open('references/chemistry_molecular_formats.md', 'r') as f:
        content = f.read()
        pattern = r'### \.pdb[^#]*?(?=###|\Z)'
        match = re.search(pattern, content, re.IGNORECASE | re.DOTALL)
  2. Extraire les sections pertinentes : Ne pas charger les fichiers de référence entiers inutilement dans le contexte

  3. Mettre en cache les informations de format : Si vous analysez plusieurs fichiers du même type, réutilisez les informations de format

Analyse des données

  1. Échantillonner les fichiers volumineux : Pour les fichiers avec des millions d'enregistrements, analyser un échantillon représentatif
  2. Gérer les erreurs correctement : De nombreux formats scientifiques nécessitent des bibliothèques spécifiques ; fournir des instructions d'installation claires
  3. Valider les métadonnées : Vérifier la cohérence des métadonnées (p. ex., dimensions déclarées par rapport aux données réelles)
  4. Considérer la provenance des données : Noter l'instrument, les versions logicielles, les étapes de traitement

Génération de rapports

  1. Être exhaustif : Inclure toutes les informations pertinentes pour l'analyse ultérieure
  2. Être spécifique : Fournir des recommandations concrètes basées sur le type de fichier
  3. Être actionnable : Suggérer des étapes suivantes spécifiques et des outils
  4. Inclure des exemples de code : Montrer comment charger et travailler avec les données

Exemples

Exemple 1 : Analyser un fichier FASTQ

# L'utilisateur fournit : "Analyser reads.fastq"

# 1. Détecter le type de fichier
extension = '.fastq'
category = 'bioinformatics_genomics'

# 2. Lire les informations de référence
# Chercher dans references/bioinformatics_genomics_formats.md pour "### .fastq"

# 3. Effectuer l'analyse
from Bio import SeqIO
sequences = list(SeqIO.parse('reads.fastq', 'fastq'))
# Calculer : nombre de lectures, distribution de longueur, scores de qualité, contenu en GC

# 4. Générer le rapport
# Inclure : description du format, résultats de l'analyse, recommandations d'AQ

# 5. Enregistrer sous : reads_eda_report.md

Exemple 2 : Analyser un ensemble de données CSV

# L'utilisateur fournit : "Explorer experiment_results.csv"

# 1. Détecter : .csv → general_scientific

# 2. Charger la référence pour le format CSV

# 3. Analyser
import pandas as pd
df = pd.read_csv('experiment_results.csv')
# Dimensions, types, valeurs manquantes, statistiques, corrélations

# 4. Générer le rapport avec :
# - Structure des données
# - Motifs de valeurs manquantes
# - Résumés statistiques
# - Matrice de corrélation
# - Résultats de la détection des valeurs aberrantes

# 5. Enregistrer le rapport

Exemple 3 : Analyser des données de microscopie

# L'utilisateur fournit : "Analyser cells.nd2"

# 1. Détecter : .nd2 → microscopy_imaging (format Nikon)

# 2. Lire la référence pour le format ND2
# Apprendre : multi-dimensionnel (XYZCT), nécessite nd2reader

# 3. Analyser
from nd2reader import ND2Reader
with ND2Reader('cells.nd2') as images:
    # Extraire : dimensions, canaux, points temporels, métadonnées
    # Calculer : statistiques d'intensité, informations d'images

# 4. Générer le rapport avec :
# - Dimensions des images (XY, piles Z, temps, canaux)
# - Longueurs d'onde des canaux
# - Taille de pixel et calibrage
# - Recommandations pour l'analyse d'images

# 5. Enregistrer le rapport

Dépannage

Bibliothèques manquantes

De nombreux formats scientifiques nécessitent des bibliothèques spécialisées :

Problème : Erreur d'importation en essayant de lire un fichier

Solution : Fournir des instructions d'installation claires

try:
    from Bio import SeqIO
except ImportError:
    print("Installer Biopython : uv pip install biopython")

Exigences courantes par catégorie :

  • Bioinformatique : biopython, pysam, pyBigWig
  • Chimie : rdkit, mdanalysis, cclib
  • Microscopie : tifffile, nd2reader, aicsimageio, pydicom
  • Spectroscopie : nmrglue, pymzml, pyteomics
  • Général : pandas, numpy, h5py, scipy

Types de fichiers inconnus

Si une extension de fichier ne figure pas dans les références :

  1. Demander à l'utilisateur le format du fichier
  2. Vérifier s'il s'agit d'une variante spécifique au fournisseur
  3. Essayer une analyse générique basée sur la structure du fichier (texte vs binaire)
  4. Fournir des recommandations générales

Fichiers volumineux

Pour les très gros fichiers :

  1. Utiliser des stratégies d'échantillonnage (premiers N enregistrements)
  2. Utiliser l'accès avec adressage mémoire (pour HDF5, NPY)
  3. Traiter par morceaux (pour CSV, FASTQ)
  4. Fournir des estimations basées sur les échantillons

Utilisation du script

Le script scripts/eda_analyzer.py peut être utilisé directement :

# Utilisation basique
python scripts/eda_analyzer.py data.csv

# Spécifier le fichier de sortie
python scripts/eda_analyzer.py data.csv output_report.md

# Le script effectuera :
# 1. Détection automatique du type de fichier
# 2. Chargement des références de format
# 3. Effectuation de l'analyse appropriée
# 4. Génération du rapport markdown

Le script supporte l'analyse automatique pour de nombreux formats courants, mais l'analyse personnalisée dans la conversation offre plus de flexibilité et des informations spécifiques au domaine.

Utilisation avancée

Analyse multi-fichiers

Lors de l'analyse de plusieurs fichiers connexes :

  1. Effectuer une EDA individuelle sur chaque fichier
  2. Créer un rapport de comparaison récapitulatif
  3. Identifier les relations et dépendances
  4. Suggérer les stratégies d'intégration

Contrôle de la qualité

Pour l'évaluation de la qualité des données :

  1. Vérifier la conformité du format
  2. Valider la cohérence des métadonnées
  3. Évaluer l'exhaustivité
  4. Identifier les valeurs aberrantes et les anomalies
  5. Comparer aux plages/distributions attendues

Recommandations de prétraitement

En fonction des caractéristiques des données, recommander :

  1. Stratégies de normalisation
  2. Imputation de valeurs manquantes
  3. Traitement des valeurs aberrantes
  4. Correction de lot
  5. Conversions de format

Ressources

scripts/

  • eda_analyzer.py : Script d'analyse complet qui peut être exécuté directement ou importé

references/

  • chemistry_molecular_formats.md : 60+ formats de fichiers chimie/moléculaires
  • bioinformatics_genomics_formats.md : 50+ formats bioinformatique
  • microscopy_imaging_formats.md : 45+ formats imagerie
  • spectroscopy_analytical_formats.md : 35+ formats spectroscopie
  • proteomics_metabolomics_formats.md : 30+ formats omiques
  • general_scientific_formats.md : 30+ formats généraux

assets/

  • report_template.md : Modèle markdown exhaustif pour les rapports EDA

Skills similaires