literature-search-biorxiv

Par mkurman · zorai

Parcourez, filtrez et téléchargez des prépublications en sciences de la vie, biologie et médecine depuis bioRxiv et medRxiv. Permet de récupérer les métadonnées d'articles par DOI et de naviguer par plage de dates avec des filtres de catégorie et de mots-clés. Le filtrage par mots-clés étant local, les plages de dates DOIVENT être étroites (1 à 4 semaines) et accompagnées d'une catégorie pour éviter les délais d'expiration.

npx skills add https://github.com/mkurman/zorai --skill literature-search-biorxiv

Recherche de littérature bioRxiv et medRxiv

Prérequis

  1. uv : Lisez la skill uv et suivez ses instructions de configuration pour vous assurer que uv est installé et accessible dans le PATH.
  2. Notification utilisateur : Si le fichier LICENSE_NOTIFICATION.txt n'existe pas déjà dans le répertoire de cette skill, alors (1) notifiez l'utilisateur de manière visible pour qu'il consulte les conditions à https://api.biorxiv.org/ et https://www.biorxiv.org/content/about-biorxiv et pour qu'il vérife toujours la licence des articles récupérés par la skill en cas de restrictions, puis (2) créez le fichier enregistrant le texte de notification et l'horodatage.

Guide de stratégie de recherche (À lire en premier)

Cette skill parcourt une archive de préprints organisée par date. Ce n'est PAS un moteur de recherche par mots-clés. Choisissez votre approche selon ce que vous savez déjà :

  • Un DOI (par exemple, d'une citation) : Utilisez search_by_doi.py. Rapide et fiable.
  • Date approximative + catégorie : Utilisez search_by_dates.py avec une plage de 1 à 4 semaines et --category.
  • Seulement un sujet ou des mots-clés, pas de date : N'utilisez PAS cette skill pour la découverte. Utilisez d'abord une skill de littérature capable de recherche par mots-clés pour trouver les DOIs pertinents, puis revenez ici pour récupérer les métadonnées.

ANTI-PATTERN CRITIQUE — Ne faites PAS ceci : N'essayez pas de rechercher dans des plages de dates larges (mois ou années) avec --keywords en espérant trouver un article spécifique. L'API bioRxiv ne supporte pas la recherche par mots-clés côté serveur. Le script doit télécharger TOUTES les métadonnées pour l'ensemble de la plage de dates et filtrer localement en Python. Les plages larges entraîneront des milliers d'appels API, des timeouts, et votre demande sera bloquée pour abus de l'API. C'est la #1 raison pour laquelle cette skill échoue.

Règles essentielles

  • Utilisez le wrapper : TOUJOURS exécuter les scripts d'aide fournis pour interroger la base de données plutôt que d'accéder directement à la base de données. Les scripts appliquent automatiquement la limite de débit requise de manière progressive.
  • Filtrage local (AVERTISSEMENT CRITIQUE) : Contrairement à arXiv, l'API bioRxiv ne supporte pas la recherche par mots-clés ou auteurs côté serveur. Le filtrage par mots-clés et auteurs est effectué localement par les scripts après téléchargement de toutes les métadonnées pour une plage de dates spécifiée. Vous DEVEZ utiliser des plages de dates étroites (par exemple, 1 à 4 semaines) ET le filtre --category lors d'une recherche avec --keywords ou --author.
  • Abstracts exclus par défaut : Pour économiser l'espace de contexte dans le JSON résultant, les abstracts sont retirés de la sortie par défaut. Si vous effectuez une recherche par --keywords et souhaitez lire les abstracts des articles résultants pour comprendre leur contexte, vous DEVEZ passer le flag --include_abstracts.
  • Redirection de sortie : Les commandes de recherche produisent des tableaux JSON sur la sortie standard. Redirigez toujours la sortie vers un fichier (par exemple, > results.json) et analysez le fichier séparément.
  • Lister les sources : Si cette skill est utilisée, assurez-vous que cela soit mentionné dans la sortie ET listez les URLs de tous les articles qui ont été utilisés pour produire la sortie.

Scripts utilitaires

Tous les outils appliquent des limites de débit inter-processus et réessaient avec backoff en cas d'échec. Pour respecter les conditions d'utilisation, n'écrivez PAS de requêtes curl personnalisées.

Pagination : L'API bioRxiv retourne les résultats par pages de jusqu'à 100 articles. Le script search_by_dates.py récupère automatiquement toutes les pages et rapporte la progression de la pagination sur stderr (par exemple, [Page 2] Fetched 200/543 papers...). La sortie JSON sur stdout contient l'ensemble des résultats filtrés complets sur toutes les pages — aucune pagination manuelle n'est nécessaire.

1. Recherche par dates (search_by_dates.py)

Recherchez des préprints dans une plage de dates explicite, en filtrant optionnellement par catégorie, mots-clés ou auteur.

# Recherche de catégorie large sur une période de 2 semaines
uv run scripts/search_by_dates.py --server biorxiv \
  --start_date 2024-01-01 --end_date 2024-01-14 \
  --category neuroscience > results.json

# Filtrage approfondi par mots-clés utilisant la logique OR et incluant les abstracts
uv run scripts/search_by_dates.py --server medrxiv \
  --start_date 2023-11-01 --end_date 2023-11-30 \
  --category infectious_diseases \
  --keywords "covid" "sars-cov-2" --match_logic OR \
  --include_abstracts > covid_papers.json

# Trouver des articles d'un auteur spécifique dans une fenêtre étroite
uv run scripts/search_by_dates.py \
  --start_date 2024-05-01 --end_date 2024-05-14 \
  --author "Smith" > smith_papers.json

Arguments obligatoires :

  • --start_date : YYYY-MM-DD
  • --end_date : YYYY-MM-DD

Arguments optionnels :

  • --server : biorxiv (défaut) ou medrxiv
  • --category : Une catégorie de sujet valide (voir ci-dessous). Fortement recommandé — réduit considérablement les données que le script doit télécharger et filtrer.
  • --keywords : Liste de chaînes à rechercher dans le titre/résumé.
  • --match_logic : AND (défaut) ou OR pour les mots-clés.
  • --author : Nom d'auteur (correspondance de chaîne insensible à la casse).
  • --include_abstracts : Flag pour inclure les abstracts complets dans la sortie JSON.

2. Récupérer les métadonnées par DOI (search_by_doi.py)

Récupérez les métadonnées JSON détaillées pour un seul article si vous connaissez déjà son DOI. C'est le point d'entrée le plus fiable.

uv run scripts/search_by_doi.py --server biorxiv \
  --doi "10.1101/2023.08.15.551388" \
  --include_abstracts > paper_info.json

Téléchargement de PDFs en texte intégral

Cette skill ne supporte PAS les téléchargements de PDF. Pour télécharger le PDF en texte intégral d'un préprint bioRxiv ou medRxiv, utilisez la skill literature-search-europepmc. D'abord, utilisez le DOI de l'article pour trouver son PMCID via EuropePMC, puis utilisez la récupération de PDF d'EuropePMC pour télécharger le document.

Catégories de sujet valides

Vous pouvez les passer au flag --category dans search_by_dates.py. Le script les validera strictement.

Catégories bioRxiv :

animal_behavior_and_cognition, biochemistry, bioengineering, bioinformatics, biophysics, cancer_biology, cell_biology, clinical_trials, developmental_biology, ecology, epidemiology, evolutionary_biology, genetics, genomics, immunology, microbiology, molecular_biology, neuroscience, paleontology, pathology, pharmacology_and_toxicology, physiology, plant_biology, scientific_communication_and_education, synthetic_biology, systems_biology, zoology

Catégories medRxiv :

addiction_medicine, allergy_and_immunology, anesthesia, cardiovascular_medicine, dentistry_and_oral_medicine, dermatology, emergency_medicine, endocrinology, epidemiology, forensic_medicine, gastroenterology, genetic_and_genomic_medicine, health_informatics, health_economics_and_outcomes_research, health_policy, health_systems_and_quality_improvement, hematology, hiv_aids, infectious_diseases, intensive_care_and_critical_care_medicine, medical_education, medical_ethics, nephrology, neurology, nursing, nutrition, obstetrics_and_gynecology, occupational_and_environmental_health, oncology, ophthalmology, orthopedics, otolaryngology, pain_medicine, palliative_care, pathology, pediatrics, pharmacology_and_therapeutics, primary_care_research, psychiatry_and_clinical_psychology, public_and_global_health, radiology_and_imaging, rehabilitation_medicine_and_physical_therapy, respiratory_medicine, rheumatology, sexual_and_reproductive_health, sports_medicine, surgery, toxicology, transplantation, urology

Skills similaires