alterlab-citation-mgmt

$npx mdskill add AlterLab-IEU/AlterLab-Academic-Skills/alterlab-citation-mgmt

Manages citations by searching databases and generating BibTeX.

  • Searches Google Scholar and PubMed for academic papers.
  • Depends on scholarly, biopython, bibtexparser, crossref-commons, and pylatexenc.
  • Extracts and validates metadata from CrossRef, PubMed, arXiv, and DataCite.
  • Outputs properly formatted BibTeX entries for bibliography building.

SKILL.md

.github/skills/alterlab-citation-mgmtView on GitHub ↗
---
name: alterlab-citation-mgmt
description: Manages citations for academic research — searches Google Scholar and PubMed for papers, extracts accurate metadata, validates citations, and generates properly formatted BibTeX entries. Use when finding papers, verifying citation information, converting DOIs to BibTeX, checking reference accuracy in scientific writing, or building a bibliography. Part of the AlterLab Academic Skills suite.
allowed-tools: Read Write Edit Bash
license: MIT
compatibility: No API key required. Needs network access to Google Scholar and PubMed; helper scripts use the scholarly, biopython, bibtexparser, crossref-commons, and pylatexenc Python packages
metadata:
    skill-author: AlterLab
    version: "1.0.0"
---

# Citation Management

## Overview

Manage citations systematically across the research and writing process: search
academic databases (Google Scholar, PubMed), extract accurate metadata from multiple
sources (CrossRef, PubMed, arXiv, DataCite), validate citation information, and
generate properly formatted BibTeX. Critical for citation accuracy, avoiding reference
errors, and reproducible research. Integrates with the `literature-review` skill.

## When to Use This Skill

Use when:
- Searching for specific papers on Google Scholar or PubMed
- Converting DOIs, PMIDs, or arXiv IDs to properly formatted BibTeX
- Extracting complete metadata (authors, title, journal, year, etc.)
- Validating existing citations for accuracy or checking for duplicates
- Cleaning, sorting, and formatting BibTeX files
- Finding highly cited / seminal papers in a field
- Building a bibliography for a manuscript or thesis

## Core Workflow

Citation management is a five-phase pipeline. Each phase maps to a script (full CLI
in `references/script_cli_reference.md`) and a deep-dive reference.

### Phase 1 — Paper discovery
Search Google Scholar (broad, cross-discipline) and PubMed (biomedical, MeSH-indexed).

```bash
python scripts/search_google_scholar.py "CRISPR gene editing" --limit 50 --output results.json
python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json
```
Operators, MeSH/field tags, complex queries, and high-impact-paper heuristics:
`references/search_strategy_reference.md`, `references/google_scholar_search.md`,
`references/pubmed_search.md`.

### Phase 2 — Metadata extraction
Convert any identifier (DOI, PMID, arXiv ID, URL) to complete metadata. CrossRef is the
primary DOI source; PubMed E-utilities, arXiv, and DataCite cover the rest.

```bash
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2     # quick single DOI
python scripts/extract_metadata.py --pmid 34265844             # any identifier type
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib  # batch
```
Sources and extracted fields: `references/metadata_extraction.md` and the Metadata
Sources section of `references/search_strategy_reference.md`.

### Phase 3 — BibTeX formatting
Generate clean, standardized entries. Common types: `@article`, `@book`,
`@inproceedings`, `@incollection`, `@phdthesis`, `@misc`. Protect title capitalization
with `{}`, use `--` for page ranges, include a DOI for modern publications.

```bash
python scripts/format_bibtex.py references.bib --deduplicate --sort year --descending \
  --output clean_references.bib
```
Entry types, required fields, and formatting rules: `references/bibtex_formatting.md`.

### Phase 4 — Validation
Verify required fields are present, data is consistent, and there are no duplicates.
DOI resolution is network-bound and OFF by default — add `--check-dois` to actually
hit doi.org/CrossRef (slow). `validate_citations.py` reports only; it does not rewrite
the file. To apply fixes (page dashes, author separators, dedup), run `format_bibtex.py`.

```bash
python scripts/validate_citations.py references.bib --check-dois \
  --report validation.json --verbose
```
Validation criteria and report format: `references/citation_validation.md` and the
Validation Checks summary in `references/search_strategy_reference.md`.

### Phase 5 — Integration with writing
Export validated BibTeX into a LaTeX manuscript (`\bibliography{final_references}`).
Pairs with `literature-review` (search/synthesis), `scientific-writing` (manuscript
references), and `venue-templates` (style-specific formatting).

End-to-end worked examples (build a bibliography, convert a DOI list, clean a messy
`.bib`, find seminal papers): `references/example_workflows.md`.

## Best Practices

**Search**: start broad then narrow; use multiple sources; leverage "Cited by" for
seminal papers; document queries and dates.

**Metadata**: prefer DOIs (most reliable, best CrossRef metadata); verify author names,
venue, and year; handle preprints (use the published version when one exists); keep
author-name and journal-abbreviation formatting consistent.

**BibTeX quality**: meaningful citation keys (`FirstAuthor2024keyword`); protect title
capitalization with `{}`; remove redundant fields; validate syntax regularly; organize
per project and merge carefully to avoid duplicates.

**Validation**: validate early and often; fix broken DOIs and missing fields promptly;
manually review critical citations.

## Common Pitfalls

1. **Single-source bias** → search multiple databases.
2. **Accepting metadata blindly** → spot-check against originals.
3. **Ignoring DOI errors** → validate before submission.
4. **Inconsistent formatting** → standardize with `format_bibtex.py`.
5. **Duplicate entries** → use duplicate detection.
6. **Missing required fields** → validate for completeness.
7. **Outdated preprints** → update to the published version.
8. **Special-character issues** → escape or use Unicode in BibTeX.
9. **No final validation** → always run validation as the last check.
10. **Manual BibTeX entry** → always extract from metadata sources.

## Index of Bundled Resources

### References (`references/`)
- `script_cli_reference.md` — full per-script features and CLI usage
- `example_workflows.md` — four end-to-end worked workflows
- `search_strategy_reference.md` — high-impact heuristics, Scholar operators, MeSH/field tags, metadata sources
- `google_scholar_search.md` — complete Google Scholar search guide
- `pubmed_search.md` — PubMed and E-utilities API documentation
- `metadata_extraction.md` — metadata sources and field requirements
- `citation_validation.md` — validation criteria and quality checks
- `bibtex_formatting.md` — BibTeX entry types and formatting rules

### Scripts (`scripts/`)
`search_google_scholar.py`, `search_pubmed.py`, `extract_metadata.py`,
`validate_citations.py`, `format_bibtex.py`, `doi_to_bibtex.py`.

### Assets (`assets/`)
`bibtex_template.bib` (example entries for all types), `citation_checklist.md` (QA checklist).

## External Resources

- Google Scholar: https://scholar.google.com/ · PubMed: https://pubmed.ncbi.nlm.nih.gov/
- CrossRef API: https://api.crossref.org/ · PubMed E-utilities: https://www.ncbi.nlm.nih.gov/books/NBK25501/
- arXiv API: https://arxiv.org/help/api/ · DataCite API: https://api.datacite.org/
- MeSH Browser: https://meshb.nlm.nih.gov/search · DOI Resolver: https://doi.org/

## Dependencies

```bash
# Core
pip install requests bibtexparser biopython
# Optional: Google Scholar access, advanced validation, LaTeX char handling
pip install scholarly selenium crossref-commons pylatexenc
```

## Summary

This skill provides search (Scholar + PubMed), automated metadata extraction (DOI/PMID/
arXiv/URL), citation validation (DOI verification + completeness), BibTeX formatting and
cleaning, and quality assurance — all reproducible through documented search and
extraction methods. Use it to maintain accurate, publication-ready bibliographies.

More from AlterLab-IEU/AlterLab-Academic-Skills

SkillDescription
alterlab-abm-mesaBuilds agent-based models of social systems with Mesa 3 — the current AgentSet API (model.agents.shuffle_do('step'), auto-assigned unique_id, mandatory super().__init__(seed=...)), cell spaces (mesa.discrete_space OrthogonalMooreGrid / classic mesa.space grids), the DataCollector, batch_run parameter sweeps, and SolaraViz — for emergence, segregation, diffusion, opinion dynamics, and cooperation models. It uses the Mesa 3.x API (the old mesa.time schedulers like RandomActivation are removed) and treats the model as a generative theory to be validated, not just run. Use when the request mentions an agent-based model, Mesa, simulating interacting agents, or emergent macro behavior from micro rules. For discrete-event (queueing/process) simulation prefer alterlab-simpy; for reinforcement learning prefer alterlab-stable-baselines3. Part of the AlterLab Academic Skills suite.
alterlab-academic-careerPrepares academic career documents and professional-development materials for faculty and researchers. Use when drafting academic CVs, research statements, teaching philosophies, diversity statements, faculty-position cover letters, tenure dossiers, promotion narratives, academic portfolios, or mentorship statements, and when planning conference-networking strategy, building academic web presence, setting up ORCID profiles, or understanding impact metrics. Part of the AlterLab Academic Skills suite.
alterlab-accreditation-aolScaffolds program-level Assurance-of-Learning (AoL) documentation for AACSB (2020 Standard 5) and ABET (Criterion 3 Student Outcomes, Criterion 4 Continuous Improvement) accreditation — program learning outcomes / competency goals, curriculum-to-outcome mapping matrices, direct- and indirect-assessment plans, rubric design, and closing-the-loop continuous-improvement narratives — and validates the structure of an outcome-mapping matrix with scripts/aol_matrix.py. Use when the user needs AACSB or ABET assurance-of-learning material, a program-learning-outcomes set, a curriculum/outcome map or coverage matrix, a direct/indirect assessment plan, a closing-the-loop report, or accreditation self-study text. For single-course design or course rubrics prefer alterlab-teaching-design; for post-award grant reports prefer alterlab-grant-reporting. Part of the AlterLab Academic Skills suite.
alterlab-adaptyvSubmits and tracks protein-testing experiments on the Adaptyv Bio Foundry cloud lab (wet-lab validation), and optimizes protein sequences before submission with computational tools (NetSolP, SoluProt, SolubleMPNN, ESM). Use when designing proteins that need wet-lab validation - binding/affinity screening, expression testing, thermostability, or fluorescence assays - or when submitting experiments to the Foundry API, browsing the target catalog, tracking experiment status, retrieving results, or pre-screening sequences for solubility/expression. Triggers on "Adaptyv", "Foundry API", "cloud lab", "biolayer interferometry / BLI", "wet-lab validation". Part of the AlterLab Academic Skills suite.
alterlab-aeonRuns time series machine learning with the aeon library — classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search via scikit-learn compatible APIs. Use when working with temporal data, sequential patterns, or time-indexed observations (univariate or multivariate) that need specialized algorithms beyond standard ML approaches. Part of the AlterLab Academic Skills suite.
alterlab-akademik-tesvikComputes the annual Turkish academic-incentive (akademik teşvik) score for Devlet (state) university öğretim elemanı (academic staff) from a classified activity list, applying the verified Akademik Teşvik Ödeneği Yönetmeliği (2018/11834) Faaliyet Hesaplama Tablosu headline puanları (Proje 20, Araştırma 15, Yayın 30, Patent 30, Atıf 30, Tebliğ 20, Ödül 20) with the k (author-count), p (Q1 1/Q2 0.8/Q3 0.5/Q4 0.25), and r (project-role) coefficients via türü puanı = Σ(faaliyet oranları) × headline (MADDE 8/2), then enforcing the per-type headline ceilings, the 100 cap (MADDE 8/3), and the net-30 payment gate (MADDE 10/3) in a deterministic scripts/tesvik_score.py. Use when the user wants to calculate akademik teşvik puanı, check the en az 30 (net-30) threshold, apply TABLO 4 ceilings, or estimate teşvik eligibility; keeps its coefficients separate from doçentlik scoring. For doçentlik point eligibility prefer alterlab-docentlik-eligibility. Part of the AlterLab Academic Skills suite.
alterlab-alpha-vantageAccesses real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API (requires a free API key from alphavantage.co). Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash flow), earnings, options data, market news/sentiment, insider transactions, GDP, CPI, treasury yields, gold/silver/oil prices, Bitcoin/crypto prices, forex exchange rates, or calculating technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands). Part of the AlterLab Academic Skills suite.
alterlab-alphafoldPredict protein 3D structures with AlphaFold2 via ColabFold — MMseqs2-accelerated MSAs, monomer and AlphaFold2-Multimer complex folding, and confidence-based validation (pLDDT, pTM/ipTM, PAE). Use when folding a protein sequence or complex from FASTA, generating a predicted structure with confidence metrics, ranking models, or checking self-consistency of a design. For co-folding a protein WITH a small-molecule ligand or predicting binding affinity prefer alterlab-boltz; for antibody–antigen or one-FASTA multi-entity complexes prefer alterlab-chai; to LOOK UP an already-computed structure prefer alterlab-alphafold-db; for ESM embeddings or inverse folding prefer alterlab-esm. Part of the AlterLab Academic Skills suite.
alterlab-alphafold-dbAccess the AlphaFold DB of 200M+ AI-PREDICTED protein structures — retrieve models by UniProt accession, download PDB/mmCIF files, and analyze prediction confidence metrics (pLDDT, PAE). Use when a UniProt ID needs a computationally predicted 3D structure or when no experimental structure exists, for homology modeling, protein engineering, or structure-based drug discovery; for EXPERIMENTALLY determined structures (X-ray, cryo-EM, NMR) prefer alterlab-pdb, and for protein sequences, annotations, or accession ID mapping prefer alterlab-uniprot instead. Part of the AlterLab Academic Skills suite.
alterlab-anndataBuild, slice, concatenate, read, and write AnnData annotated data matrices (obs, var, X, layers, obsm, uns) — the scverse data STRUCTURE, not an analysis pipeline. Use when creating or wrangling .h5ad/zarr files, managing cell and gene annotations, concatenating batches, or handling layers/obsm/backed-mode; for the QC, normalization, clustering, UMAP, and differential-expression analysis pipeline prefer alterlab-scanpy instead, and for RNA velocity from spliced/unspliced layers prefer alterlab-scvelo instead. Part of the AlterLab Academic Skills suite.