Skip to content
Back to skills

Alterlab Sna

ASecurity

Applies social-network-analysis method discipline to relational data — degree/betweenness/closeness/eigenvector centrality and PageRank, community detection (Louvain and greedy-modularity native in networkx, Leiden via igraph), and inferential network models (ERGM) — choosing the measure that matches the substantive question and the right dependence assumptions, then routing computation to the existing networkx (and igraph/R) tooling. Use when the request mentions social network analysis, cen...

  • 158 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
datapythongobashnodeapi

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add NVlabs/Skill2Env --skill alterlab-sna --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Alterlab Sna?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Alterlab Sna
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nvlabs-alterlab-sna/badge)](https://www.skillsdirectory.com/skills/nvlabs-alterlab-sna)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: alterlab-sna
description: "Applies social-network-analysis method discipline to relational data — degree/betweenness/closeness/eigenvector centrality and PageRank, community detection (Louvain and greedy-modularity native in networkx, Leiden via igraph), and inferential network models (ERGM) — choosing the measure that matches the substantive question and the right dependence assumptions, then routing computation to the existing networkx (and igraph/R) tooling. Use when the request mentions social network analysis, centrality, key players/brokerage, community or cluster detection in a network, ERGM, or modeling ties between nodes. For general graph algorithms and plotting prefer alterlab-networkx; for graph neural networks prefer alterlab-torch-geometric. Part of the AlterLab Academic Skills suite."
license: MIT
allowed-tools: Read Bash(python:*)
compatibility: "Computation routes to networkx>=3.4 (centrality, native Louvain/greedy-modularity). Leiden and very large graphs -> python-igraph>=0.11. ERGM has no mature Python package -> R statnet/ergm via an R bridge (declare it). No API key; runs locally via `uv run python`."
metadata:
    skill-author: AlterLab
    version: "1.0.0"
    depends_on: "alterlab-networkx (computation), alterlab-ssci-design-gate; audited by alterlab-ssci-inference-gate"
---

# Social Network Analysis — Match the Measure to the Question

**Skill type: ANALYSIS MODULE.** SNA treats the **ties** as the data. The discipline is not
running a centrality function — it is choosing the centrality that answers the substantive
question, respecting network dependence (ties are not independent observations), and using an
inferential model (ERGM) when you want to *explain* tie formation rather than describe it.
Computation is handed to `alterlab-networkx`.

## Core Mission

```
THE TIE IS THE UNIT. PICK THE CENTRALITY THAT MATCHES THE QUESTION; TIES ARE NOT IID.
```

## When to Use This Skill

- "Run a social network analysis / compute centrality on my network."
- "Who are the key players / brokers in this network?"
- "Detect communities / clusters in my network."
- "Fit an ERGM to explain why ties form."

### Does NOT Trigger

| The request is really about… | Route to | Why not this skill |
|---|---|---|
| General graph algorithms / plotting / I/O | `alterlab-networkx` | This skill adds SNA method choice; networkx executes. |
| Graph neural networks / node embeddings for prediction | `alterlab-torch-geometric` | Deep learning on graphs, not SNA description/inference. |
| Whether a relational design is appropriate | `alterlab-ssci-design-gate` | Design routing, upstream. |
| Plain tabular statistics | `alterlab-statistical-analysis` | No network structure. |

## Centrality — pick by the substantive claim (verified networkx 3.x)

| Question | Centrality | Call |
|----------|-----------|------|
| Who has the most direct ties? | degree | `nx.degree_centrality(G)` |
| Who bridges otherwise-separate groups? | betweenness (brokerage) | `nx.betweenness_centrality(G)` |
| Who can reach everyone fastest? | closeness | `nx.closeness_centrality(G)` |
| Who is connected to well-connected others? | eigenvector / PageRank | `nx.eigenvector_centrality(G)` / `nx.pagerank(G)` |

Do not report "centrality" generically — name which one and why it matches the claim (a broker
argument needs betweenness, not degree).

## Community detection (verified)

- `nx.community.louvain_communities(G)` — **native** in networkx 3.x (no `python-louvain` needed).
- `nx.community.greedy_modularity_communities(G)` — Clauset-Newman-Moore.
- `nx.community.modularity(G, communities)` — score a partition.
- **Leiden** (Traag et al.) is not in networkx; it guarantees well-connected communities and is the
  recommended improvement over Louvain — route to `python-igraph`
  (`ig.Graph.community_leiden(...)`) or `leidenalg`. Use igraph for large graphs generally.

## Inference: ERGM (no mature Python — use R statnet)

To *explain* tie formation (reciprocity, homophily, triadic closure) rather than describe it, use
an **exponential random graph model**. There is no mature Python ERGM package (pyERGM exists but is
young); the standard is R **`statnet`/`ergm`** via an R bridge:

```r
library(ergm)
model <- ergm(net ~ edges + mutual + nodematch("group") + gwesp(0.5, fixed = TRUE))
summary(model)
```

Declare the R dependency; do not fabricate a Python ERGM API. Full algorithm-selection guidance,
the ERGM term glossary, and the dependence caveat: `references/sna_methods.md`.

## The dependence caveat

Network ties violate the independence assumption of ordinary regression: you cannot regress an
outcome on centrality and read the SE naively, because nodes are linked. Use permutation/QAP tests
for dyadic hypotheses, or ERGM/latent-space models for tie-level inference. Flag this whenever a
network measure is fed into a downstream test.

## Output Template

```
NETWORK:      <directed? weighted? n nodes, m edges; how ties were defined>
MEASURE:      <named centrality/community algorithm + why it matches the question>
RESULT:       <top nodes / partition + modularity; not just a number>
INFERENCE:    <ERGM terms + fit, OR permutation/QAP test> — respect tie dependence
CLAIM SCOPE:  descriptive (structure) vs inferential (tie-formation) — do not conflate
```

## References

- `references/sna_methods.md` — centrality selection, Louvain vs Leiden, ERGM terms + R bridge, QAP/permutation, large-graph tooling.

Part of the AlterLab Academic Skills suite.

Files in this skill

  • SKILL.md5.4 KB
  • evals/evals.json2.8 KB
  • references/sna_methods.md3.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…