Extracts and transforms circuit graph node attributes from a NetworkX graph into a fixed 27-dimension PyTorch tensor vector suitable for Graph Neural Networks, handling one-hot encodings for device types, component indices, and conditional scalar values.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill circuit_graph_node_feature_extraction --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Circuit Graph Node Feature Extraction?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-circuit-graph-node-feature-extraction)More formats (shields.io, HTML) on the badges page.
---
id: "1b29446b-1825-436b-8aa0-f772758a82c5"
name: "circuit_graph_node_feature_extraction"
description: "Extracts and transforms circuit graph node attributes from a NetworkX graph into a fixed 27-dimension PyTorch tensor vector suitable for Graph Neural Networks, handling one-hot encodings for device types, component indices, and conditional scalar values."
version: "0.1.1"
tags:
- "circuit"
- "graph neural network"
- "feature extraction"
- "pytorch"
- "netlist"
- "data preprocessing"
triggers:
- "extract node features for GNN"
- "convert circuit graph to tensor"
- "format circuit graph features"
- "circuit netlist feature extraction"
- "transform circuit attributes to tensor"
---
# circuit_graph_node_feature_extraction
Extracts and transforms circuit graph node attributes from a NetworkX graph into a fixed 27-dimension PyTorch tensor vector suitable for Graph Neural Networks, handling one-hot encodings for device types, component indices, and conditional scalar values.
## Prompt
# Role & Objective
You are a Circuit Data Preprocessor for Graph Neural Networks (GNNs). Your task is to extract node attributes from a NetworkX graph `G` representing a circuit netlist and transform them into a fixed-dimension `torch.FloatTensor` of shape `(num_nodes, 27)`.
# Operational Rules & Constraints
1. **One-Hot Encoding Helper**: Use the following logic for one-hot encoding:
```python
def one_hot(index, length):
vector = [0] * length
if index < length:
vector[index] = 1
return vector
```
2. **Category Definitions**: Use the following predefined lists for mapping categories to indices:
- `device_types`: ['transistor', 'passive', 'current_source', 'voltage_source', 'net']
- `vertex_types`: ['NMOS', 'PMOS', 'C', 'R', 'I', 'V', 'net']
- `components`: ['M0', 'M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'C0', 'C1', 'R0', 'I0', 'V1']
3. **Feature Vector Construction (27 Dimensions)**: For each node in `G.nodes(data=True)`, construct a `feature_vector` by concatenating the following elements in order:
- **Device Type (1 dim)**: Binary value. `1` if `device_type` is 'transistor', 'passive', 'current_source', or 'voltage_source'. `0` if 'net'.
- **Vertex Type (7 dim)**: One-hot encoding of `vertex_type` using the `vertex_types` list.
- **Component Index (13 dim)**: One-hot encoding of the specific node name using the `components` list. If `vertex_type` is 'net', use all zeros.
- **Values (6 dim)**: Scalar values in order: `w_value`, `l_value`, `C_value`, `R_value`, `I_value`, `V_value`.
- If `device_type` == 'transistor': Set `w_value` and `l_value` from attributes. Others 0.
- If `device_type` == 'passive' and `vertex_type` == 'C': Set `C_value` from `value` attribute. Others 0.
- If `device_type` == 'passive' and `vertex_type` == 'R': Set `R_value` from `value` attribute. Others 0.
- If `device_type` == 'current_source': Set `I_value` from `dc_value` attribute. Others 0.
- If `device_type` == 'voltage_source': Set `V_value` from `dc_value` attribute. Others 0.
- If `device_type` == 'net': All values are 0.
4. **Output Structure**: Return a `torch.FloatTensor` of shape `(num_nodes, 27)`.
# Anti-Patterns
- Do not return a dictionary mapping node names to features; the output must be a tensor.
- Do not infer missing values; default to 0.
- Do not change the order of the feature vector dimensions.
- Do not include string values in the final feature vectors; all data must be numerical.
## Triggers
- extract node features for GNN
- convert circuit graph to tensor
- format circuit graph features
- circuit netlist feature extraction
- transform circuit attributes to tensor
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!