Pytdc
K-DenseCommunityCreated by K-Dense Inc.
- Skill
- Tool integration
- Science and research
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
PyTDC is a tool-integration skill for the Therapeutics Data Commons (TDC) library. It enables researchers to discover therapeutic ML tasks, load curated datasets, apply task-specific data splits, and utilize standardized evaluators and molecular oracles. The skill emphasizes a metadata-first approach, requiring explicit user approval before performing network-intensive operations like downloading datasets, model checkpoints, or benchmark archives. It includes bundled scripts for safe metadata discovery, data loading, and bounded molecular scoring, ensuring reproducibility and controlled resource usage in scientific workflows.
What it does
- Discovers therapeutic ML tasks, datasets, and benchmark groups via metadata queries.
- Loads datasets with task-appropriate splitting methods like scaffold or cold-split.
- Provides standardized evaluator metrics for model performance assessment.
- Supports bounded molecular-oracle scoring for drug-likeness and synthetic accessibility.
- Enables benchmark group evaluation with support for leaderboard-style aggregation.
- Facilitates safe, isolated execution of data-intensive tasks with explicit approval.
When to use it
- When working with therapeutic ML datasets or benchmarks from the Therapeutics Data Commons.
- When you need to perform task-aware data splitting for molecular or biological data.
- When evaluating generative models using standardized molecular oracles or metrics.
- When you require a reproducible environment for scientific data access and model evaluation.
Advantages
- Promotes reproducibility through pinned dependencies and explicit versioning.
- Prevents accidental large-scale downloads by separating metadata discovery from data execution.
- Provides standardized, domain-specific evaluation metrics for therapeutic tasks.
- Includes safe, bounded CLI tools for common research operations.
- Supports complex splitting strategies tailored to molecular and drug-discovery data.
Usage examples
- “List the available ADME datasets in PyTDC.”
- The agent executes a metadata-only discovery script to return a list of ADME-related datasets without downloading any data.
- “Load the Caco2_Wang dataset and apply a scaffold split.”
- The agent prepares a plan to load the dataset and perform a scaffold split, requiring user confirmation before the actual download and processing occur.
- “Calculate the QED score for the SMILES string CCO.”
- The agent uses the local QED oracle to compute the drug-likeness score for the provided molecule.
- “Evaluate my model predictions against the admet_group benchmark.”
- The agent validates the prediction format against the benchmark requirements and, upon approval, performs the evaluation using the official TDC metrics.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/k-dense-ai/pytdc/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip pytdc.zip -d .agents/skills
Documentation by K-Dense Inc.
PyTDC (Therapeutics Data Commons)
Use the official PyTDC distribution (import tdc) to discover therapeutic ML
tasks, load approved datasets, apply task-appropriate splits, evaluate predictions,
and work with curated benchmark groups. Prefer package metadata over copied dataset
lists, and plan network/storage effects before constructing any loader.
Verified snapshot
Research date: 2026-10-01
PyPI stable: PyTDC 1.1.15, released 2025-03-31
Package/source repository:
mims-harvard/TDCCode license: MIT
PyPI supplies only a source distribution and declares no
Requires-PythonThe dependency graph makes CPython 3.11 the reproducible target used here:
cellxgene-census==1.15.0excludes Python 3.12, and PyTDC's constrained RDKit release has no CPython 3.13 wheelPyTDC imports deprecated
pkg_resourcesat runtime. Setuptools 82 removed that module; pin the verified compatibility release setuptools 80.9.0.tdc.readthedocs.iostill identifies itself as TDC 0.4.1; use it as API cross-reference, not as release-version evidenceUpstream publishes no GitHub tags/releases or maintained changelog. Treat undocumented migration claims as uncertainty and verify against the installed 1.1.15 source/metadata.
See references/sources.md for dated evidence and known documentation conflicts.
Installation
Use an isolated CPython 3.11 environment and pin the reviewed snapshot:
uv venv --python 3.11 .venv-pytdc
uv pip install --dry-run --python .venv-pytdc/bin/python \
"setuptools==80.9.0" "PyTDC==1.1.15"
uv pip install --python .venv-pytdc/bin/python \
"setuptools==80.9.0" "PyTDC==1.1.15"The current macOS ARM64 test resolution installed 128 packages, including large
scientific/ML dependencies, so the environment itself can transfer and occupy
hundreds of megabytes before any dataset is downloaded. Review the dry run and
available disk first. The direct pins identify the reviewed API snapshot; generate
a platform-specific uv.lock in the user's project when every transitive version
must also be frozen.
For an ephemeral command:
uv run --no-project --isolated --python 3.11 \
--with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind tasksTo check for a newer release, inspect the PyPI release history at
https://pypi.org/project/pytdc/. Before changing the pin, compare its source
distribution, dependencies, official repository, task registries, and smoke tests;
do not silently substitute the separate pytdc-nextml package.
Non-negotiable data and network policy
Discover first. Reading
tdc.metadataor usingscripts/discover_metadata.pydoes not instantiate a loader or download data.Plan second. Record the exact task/dataset, official task page, license, expected size, cache directory, split, metric, and reproducibility seed.
Confirm the authorized scope before downloading. Loader constructors fetch missing data. Some datasets and benchmark-group archives are large; model-backed oracles can fetch checkpoints; remote/docking oracles can transmit molecular structures.
Execute within that scope. In bundled CLIs,
--executeacknowledges execution and--downloadis additionally required for MolGen corpora or supported oracle checkpoints.Keep outputs bounded. Emit counts, schema, and small previews rather than full datasets, sequences, prediction arrays, or molecule corpora.
Cache and cost behavior
Ordinary loaders default to
path="./data"and save files beneath that path. The bundled scripts instead default to explicit.pytdc-*directories.Core downloads use Harvard Dataverse file endpoints when a local filename is absent. Newer resource classes may use other upstream services.
admet_group(path=...)and other benchmark-group constructors download and extract the group archive when<path>/<group>is absent.Download-backed
Oracle(...)construction uses./oracleinternally. The bundled oracle CLI changes into a safe runtime directory before approved calls.PyTDC 1.1.15 does not provide a universal cache quota, eviction policy, or dataset-wide checksum manifest. Use
scripts/cache_audit.pyand manage disk retention explicitly.Network transfer, local storage, decompression, parsing, feature generation, docking, and external service calls can all incur time or monetary cost.
The PyTDC code is MIT. Dataset/task licenses are heterogeneous: official task pages include per-dataset terms ranging from Creative Commons licenses to non-commercial restrictions or “Not Specified.” Verify the exact dataset's page and original source terms before download, redistribution, publication, or commercial use. Cite both TDC and the original dataset.
Start with metadata-only discovery
From this skill directory:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind datasets --task ADME --limit 50
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind benchmarks --limit 50
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind evaluators --limit 100The package API is also metadata-only:
from tdc.utils import retrieve_dataset_names, retrieve_benchmark_names
adme_names = retrieve_dataset_names("ADME")
admet_benchmarks = retrieve_benchmark_names("admet_group")Use exact returned names. PyTDC performs fuzzy matching internally, but explicit matching avoids silently selecting the wrong dataset/oracle.
Dataset workflow
Plan a split without downloading:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/load_and_split_data.py \
--task ADME --dataset Caco2_Wang --method scaffold \
--seed 42 --data-dir .pytdc-dataAfter the user approves the dataset, license, transfer, and storage:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/load_and_split_data.py \
--task ADME --dataset Caco2_Wang --method scaffold \
--seed 42 --data-dir .pytdc-data --executeVerified public import patterns include:
from tdc.single_pred import ADME, Tox
from tdc.multi_pred import DDI, DTI
from tdc.generation import MolGen, Reaction, RetroSynConstructors perform data access, so do not run them before approval:
data = ADME(name="Caco2_Wang", path=".pytdc-data")
frame = data.get_data(format="df")
split = data.get_split(
method="scaffold",
seed=42,
frac=[0.7, 0.1, 0.2],
)
# split keys are: train, valid, testFor multi-label data, discover retrieve_label_name_list("tox21") and supply
--label-name NR-AR (or the selected exact target) to the loader helper.
Read references/datasets.md before choosing a task or
dataset. The PrimeKG resource has a different artifact and a lossy to_nx()
conversion; inspect the resource caveat there before building a graph.
Split selection without overclaiming leakage control
random: default for loaders; default seed 42 and fractions 0.7/0.1/0.2.scaffold: documented generic support for molecule-based ADME, Tox, and HTS. PyTDC groups RDKit Bemis–Murcko scaffold strings (chirality disabled), but that does not prove absence of analog, duplicate, label, temporal, or provenance leakage.cold_split: multi-instance API. Pass exact dataframe columns, for examplemethod="cold_split", column_name=["Drug", "Target"]. Multi-column splitting can discard cross-partition rows and need not preserve requested row fractions.combination: built-in DrugSyn combination split.time: pair-loader API requiringtime_column; the verified built-in case isBindingDB_Patentwith itsYearcolumn. The API spelling istime, nottemporal.
Do not use undocumented cold_drug_target, temporal, or stratified=True
examples. For every split, record PyTDC version, parameters, row counts, and exact
entity overlap audits. PyTDC 1.1.15's random splitter uses the supplied seed for
test sampling but a fixed random_state=1 for validation sampling; do not describe
all partitions as independently varying with the seed.
Detailed semantics and caveats are in references/utilities.md.
Evaluators
Use exact names from the installed evaluator registry:
from tdc import Evaluator
mae = Evaluator(name="MAE")(y_true, y_pred)
auroc = Evaluator(name="ROC-AUC")(y_true_binary, predicted_scores)
pcc = Evaluator(name="PCC")(y_true, y_pred)PCC is the registered Pearson-correlation name; Pearson is not. Multi-class
registry names are micro-f1, macro-f1, and kappa. Thresholded binary metrics
default to 0.5. PR@K and RP@K also default to 0.5 through Evaluator; pass
threshold=0.9 explicitly for a target of 90%. pr-auc is average precision.
kl_divergence is a higher-is-better transformed similarity score; FCD direction
depends on its backend in this release (see the utilities reference). Metric direction and input shape are metric-specific; use the
official task/benchmark metric rather than choosing from task type alone.
Benchmark groups
Use specialized classes. Top-level from tdc import BenchmarkGroup is retained
only as a deprecated compatibility path in 1.1.15.
from tdc.benchmark_group import admet_group
# Run only after approval: construction may download the group archive.
group = admet_group(path=".pytdc-benchmarks")
benchmark = group.get("Caco2_Wang")
train_val = benchmark["train_val"]
test = benchmark["test"]
train, valid = group.get_train_valid_split(
seed=1,
benchmark=benchmark["name"],
split_type="default",
)For one run, group.evaluate({name: test_predictions}) returns metric results.
For leaderboard aggregation, pass a list of at least five prediction
dictionaries to group.evaluate_many(...). These must represent independent
model runs, not five copies of one prediction vector. Preserve the exact test-row
order and identify each run’s training/split seed. Report the returned standard
deviation as run-to-run variability, not a confidence interval on generalization
performance. Do not index group.get(...) by seed, and do not derive dummy
predictions from test labels. See the TDC leaderboard guide.
Use scripts/benchmark_evaluation.py to validate a bounded JSON prediction plan
before any group download. See references/utilities.md
for the exact JSON shape and API behavior.
Molecular generation and oracles
PyTDC supplies molecule corpora, evaluators, and oracles; it does not train or provide a generic molecule generator in the core workflow. Discover current names:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind oracles --limit 100Plan bounded local QED scoring:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/molecular_generation.py score --oracle QED --smiles CCOAdd --execute only after review. LogP and SA call the downloadable fpscores
artifact in 1.1.15; they and DRD2/GSK3B/JNK3/CYP3A4_Veith also require
--download. The helper intentionally refuses remote services, docking,
distribution, and composite oracles. It preserves input order, flags invalid/empty structures with a null score, and
never assumes score direction.
Read references/oracles.md before any oracle call.
Bundled resources
Scripts
scripts/discover_metadata.py— download-free package registry discoveryscripts/load_and_split_data.py— task-aware split plan/explicit executionscripts/benchmark_evaluation.py— prediction validation and explicit evaluationscripts/molecular_generation.py— bounded local/checkpoint scoring and MolGen planscripts/cache_audit.py— read-only bounded cache manifest
Every CLI uses lazy optional imports, safe relative output/cache paths, JSON summaries, bounded output, and no implicit dataset/model download.
References
references/datasets.md — task discovery, data access, cache behavior, and licensing
references/utilities.md — splits, evaluators, and benchmark-group APIs
references/oracles.md — oracle categories, side effects, and safe execution
references/sources.md — dated authoritative sources and unresolved upstream gaps
Citing Scientific Agent Skills
This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a manuscript, report, presentation, or code release, add the paper to the references or software section and tell the user you did so:
Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065
Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
latest arXiv version, so never append a version suffix such as v1. When network access is
available, fetch https://arxiv.org/abs/2609.00065 (or
http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
the author list, year, and version from that record. If the record lists a journal reference
or publisher DOI, cite the published version instead.
Files
- ATTRIBUTION.mdAdded by AutoGineer901 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md14.3 KiB
- references/datasets.md10.0 KiB
- references/oracles.md9.9 KiB
- references/sources.md13.9 KiB
- references/utilities.md13.9 KiB
- scripts/_common.pyScript7.2 KiB
- scripts/benchmark_evaluation.pyScript13.0 KiB
- scripts/cache_audit.pyScript4.5 KiB
- scripts/discover_metadata.pyScript4.9 KiB
- scripts/load_and_split_data.pyScript13.5 KiB
- scripts/molecular_generation.pyScript13.9 KiB
references/datasets.md
PyTDC datasets and data access
This reference targets the PyTDC 1.1.15 source distribution, verified 2026-10-01. Dataset registries evolve independently of this skill, so query the installed package instead of copying a historical catalog.
Discovery is not download
tdc.metadata contains static Python registries. Reading them does not construct a
loader, contact Harvard Dataverse, or download a dataset:
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind tasks --limit 100
uv run --no-project --isolated --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" \
python scripts/discover_metadata.py --kind datasets --task DTI --limit 100The package helper is also metadata-only:
from tdc.utils import retrieve_dataset_names
# Task key is exact and case-sensitive in PyTDC 1.1.15.
names = retrieve_dataset_names("ADME")retrieve_dataset_names returns normalized package identifiers, usually lowercase.
Pass an exact returned name to scripts. Although constructors support fuzzy
matching, fuzzy selection can hide a typo or select an unintended resource.
Public task imports in 1.1.15
These names come from the stable source distribution's public __init__.py files,
not from older prose catalogs.
Single-instance prediction
from tdc.single_pred import (
ADME,
CRISPROutcome,
Develop,
Epitope,
HTS,
Paratope,
QM,
Tox,
Yields,
)Multi-instance prediction
from tdc.multi_pred import (
AntibodyAff,
Catalyst,
DDI,
DrugRes,
DrugSyn,
DTI,
GDA,
MTI,
PeptideMHC,
PPI,
PerturbOutcome,
ProteinPeptide,
TCREpitopeBinding,
TrialOutcome,
)Some new task classes and resource APIs do not share the ordinary
download-to-DataFrame contract. Confirm that a task appears both in public imports
and metadata.dataset_names before using the generic loader CLI.
Generation
from tdc.generation import MolGen, Reaction, RetroSyn, SBDDThe 1.1.15 registry exposes ordinary MolGen corpora under MolGen, paired reaction
data under Reaction/RetroSyn, and structure-based resources under the lowercase
sbdd key. The bundled generic loader supports the verified ordinary
MolGen/Reaction/RetroSyn paths; use specialized upstream documentation for SBDD.
What causes a download
Ordinary constructor calls immediately invoke a load wrapper:
from tdc.single_pred import ADME
# Potential network and disk write if the exact local file is absent.
data = ADME(name="caco2_wang", path=".pytdc-data")For core datasets, PyTDC 1.1.15:
normalizes the requested name against the task registry;
checks for a task-specific filename beneath
path;if absent, requests a Harvard Dataverse file endpoint;
streams the response to that path;
parses the local tab/CSV/XLSX/pickle/JSON/H5AD/archive format.
Many datasets are associated with the Harvard Dataverse collection https://doi.org/10.7910/DVN/21LKWG. Newer resources may instead use CELLxGENE, Hugging Face, or task-specific APIs; inspect the resource class before approval.
The core contract is a public HTTPS GET to
https://dataverse.harvard.edu/api/access/datafile/{numeric_file_id}. The release
registries supply file IDs; there is no request body, pagination, or API key in
this public-file path. The response is the file bytes (possibly after redirects),
not JSON. Restricted provider files would need a separate access workflow; the
core helper has no credential interface.
In 1.1.15 dataverse_download sets neither a timeout nor raise_for_status, writes
directly to the final filename, and verifies no checksum. HTTP error bodies or
interrupted transfers can therefore leave a cache file that future calls accept.
Check status/size/checksum against public file metadata when available and inspect
a suspect file before reusing it. Initial Python-HTTP metadata probes received 403; bounded curl probes then
returned public metadata for the three example datasets, three supported benchmark
groups, MOSES and PrimeKG. Separate 512-byte range responses confirmed the Caco2
and grouped PrimeKG headers. No full hosted dataset or archive was downloaded.
PyTDC checks for expected filenames, not a complete content-addressed cache with documented checksums. An interrupted or stale local file may therefore need manual review. Never delete or redownload a user's cache without confirmation.
Cache locations
Ordinary loader default:
./dataMolGen/Reaction/RetroSyndefault:./dataGeneric
BenchmarkGroupdefault:./data, then a normalized group subdirectoryDownload-backed oracle default:
./oracleBundled dataset CLI default:
.pytdc-dataBundled benchmark CLI default:
.pytdc-benchmarksBundled MolGen CLI default:
.pytdc-molgenBundled oracle runtime default:
.pytdc-oracles(upstream createsoracle/inside it for acknowledged checkpoints)
All bundled CLIs require relative paths inside the current workspace. They do not
overwrite JSON outputs unless --force is supplied.
Audit an existing directory without network access:
python scripts/cache_audit.py --cache-dir .pytdc-data --largest 20The audit reports regular-file counts, total bytes, extensions, bounded largest files, errors, and skipped symbolic links. It does not hash, modify, or upload data.
Approval gate
Before constructing any loader, present:
exact package version, task, and dataset registry name;
official TDC task/dataset page and original data source;
dataset-specific license/terms and required citations;
published row/record count or archive size when available;
proposed relative cache path and available local disk;
likely network transfer and decompressed footprint;
split method, fractions, seed, and rationale;
any sensitive/proprietary inputs that must not leave the environment.
Use the user-authorized scope for downloads; ask only when the intended dataset,
transfer, or disclosure is outside that scope. The
bundled scripts make planning the default and reserve construction for --execute;
MolGen additionally requires --download.
Data license is not the code license
The mims-harvard/TDC codebase and this skill are MIT-licensed. That does not grant
a blanket MIT license for hosted data.
Official task pages show dataset-specific entries. As of the verification date, examples include Creative Commons licenses, “Not Specified” entries, and non-commercial terms (for example, clinical-trial outcome data). Treat the exact page and original provider terms as authoritative for:
commercial use;
redistribution or derivative datasets;
attribution and citation;
patient/clinical restrictions;
access tokens or API terms;
geographic or institutional restrictions.
If the TDC page says “Not Specified,” do not infer permission from its nearby Creative Commons link. Trace the original source and ask the user to resolve the license before reuse.
Returned data
For ordinary prediction loaders:
frame = data.get_data(format="df")
mapping = data.get_data(format="dict")Supported formats and columns are loader-specific. Common prediction frames use
entity identifiers/representations plus Y, but do not hard-code Drug, Target,
or identifier columns before inspecting frame.columns.
Some loaders also expose format="DeepPurpose". Do not assume PyG, DGL, or
arbitrary graph formats are valid get_data formats; representation conversion is
a separate, dependency-heavy workflow.
For multi-label datasets, constructors can require label_name. Discover labels
without loading the main dataset:
from tdc.utils import retrieve_label_name_list
labels = retrieve_label_name_list("tox21")Label meaning may require a separate mapping file and therefore can trigger its own download. Do not call it during a metadata-only plan.
Dataset and split provenance
Record at minimum:
{
"package": "PyTDC",
"version": "1.1.15",
"task": "ADME",
"dataset": "caco2_wang",
"cache_path": ".pytdc-data",
"split_method": "scaffold",
"split_seed": 42,
"split_fractions": [0.7, 0.1, 0.2],
"license_reviewed": true,
"source_page": "https://tdcommons.ai/single_pred_tasks/adme"
}Also record the downloaded filename, byte size, retrieval date, row count, columns,
target transformation, duplicate handling, missing-value handling, and split
overlap audits. Do not claim a split is leakage-free solely because it is named
scaffold or cold_split.
Stable verified examples
These are used only as API checks; run package discovery before use:
ADME→caco2_wang(official ADME page)DTI→davisandbindingdb_patent(official DTI/benchmark sources)MolGen→moses(official molecule-generation page)
Names such as PairMolGen, generic Prodrug, or arbitrary GuacaMol datasets do
not appear in the PyTDC 1.1.15 public generation imports/registry and must not be
presented as supported loaders.
PrimeKG is a distinct resource contract
The released API is from tdc.resource import PrimeKG, then
PrimeKG(path=".pytdc-data"); construction can download a large graph.
PyTDC 1.1.15 maps primekg to Dataverse file 6180626, the grouped
kg_grouped.csv artifact, cached as comma-separated primekg.tab. This is not the separate
kg.csv file 6180620. Record which artifact was used.
get_data() returns the edge dataframe; get_node_list(node_type="drug") uses
the node_type keyword. get_features(feature_type="drug") or "disease" can
fetch additional tab-separated files. to_nx() constructs an undirected
networkx.Graph keyed by display names and can merge distinct typed IDs and
overwrite parallel relations. Preserve the edge table, (id, type, source) node
identities and all relation rows when preparing scientific graphs. Reverse
storage rows are not independent evidence, and contraindication edges are not
treatment evidence. These resource semantics were checked against released
source and a tiny local CSV, not a full PrimeKG download.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs network access, Needs Python
The author says: Requires uv, CPython 3.11, PyTDC 1.1.15, and setuptools 80.9.0 for its legacy pkg_resources runtime import. Network access and disk space are needed for dataset, benchmark, and checkpoint downloads; optional oracles require their service or docking dependencies.
Security
What our scanner noticed· Low risk
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- K-Dense Inc.
- Publisher
- K-Dense (Community)
- Source
- K-Dense-AI/scientific-agent-skills · skills/pytdc · commit a25cf9e
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by K-Dense Inc. or K-Dense.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download pytdc.zip