@pikaa-ai/pikaa 0.3.23 → 0.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/assets/brand/orbit-logo-option4-whale.jpg +0 -0
  2. package/assets/brand/orbit-logo.jpg +0 -0
  3. package/assets/brand/orbit-logo.png +0 -0
  4. package/assets/brand/orbit-logo.svg +3 -0
  5. package/dist/cli.js +337 -162
  6. package/dist/index.js +1 -2
  7. package/package.json +1 -2
  8. package/skills/adaptyv/SKILL.md +0 -240
  9. package/skills/aeon/SKILL.md +0 -402
  10. package/skills/analytical-method-validation/SKILL.md +0 -299
  11. package/skills/anndata/SKILL.md +0 -431
  12. package/skills/arbor/SKILL.md +0 -152
  13. package/skills/arboreto/SKILL.md +0 -267
  14. package/skills/astropy/SKILL.md +0 -353
  15. package/skills/autoskill/SKILL.md +0 -233
  16. package/skills/benchling-integration/SKILL.md +0 -229
  17. package/skills/bgpt-paper-search/SKILL.md +0 -75
  18. package/skills/bids/SKILL.md +0 -237
  19. package/skills/biopython/SKILL.md +0 -472
  20. package/skills/bioservices/SKILL.md +0 -399
  21. package/skills/bulk-rnaseq/SKILL.md +0 -198
  22. package/skills/cellxgene-census/SKILL.md +0 -283
  23. package/skills/cirq/SKILL.md +0 -370
  24. package/skills/citation-management/SKILL.md +0 -329
  25. package/skills/clinical-decision-support/SKILL.md +0 -238
  26. package/skills/clinical-decision-support/references/README.md +0 -62
  27. package/skills/clinical-reports/SKILL.md +0 -248
  28. package/skills/clinical-reports/references/README.md +0 -34
  29. package/skills/cobrapy/SKILL.md +0 -496
  30. package/skills/consciousness-council/SKILL.md +0 -151
  31. package/skills/dask/SKILL.md +0 -482
  32. package/skills/database-lookup/SKILL.md +0 -386
  33. package/skills/datamol/SKILL.md +0 -200
  34. package/skills/deepchem/SKILL.md +0 -244
  35. package/skills/deepspot-m/SKILL.md +0 -175
  36. package/skills/deeptools/SKILL.md +0 -412
  37. package/skills/depmap/SKILL.md +0 -301
  38. package/skills/dhdna-profiler/SKILL.md +0 -184
  39. package/skills/diffdock/SKILL.md +0 -488
  40. package/skills/dnanexus-integration/SKILL.md +0 -325
  41. package/skills/docx/SKILL.md +0 -99
  42. package/skills/esm/SKILL.md +0 -334
  43. package/skills/etetoolkit/SKILL.md +0 -327
  44. package/skills/exa-search/SKILL.md +0 -102
  45. package/skills/executing-plans/SKILL.md +0 -14
  46. package/skills/experimental-design/SKILL.md +0 -234
  47. package/skills/exploratory-data-analysis/SKILL.md +0 -280
  48. package/skills/flowio/SKILL.md +0 -310
  49. package/skills/fluidsim/SKILL.md +0 -279
  50. package/skills/frontend-design/SKILL.md +0 -100
  51. package/skills/generate-image/SKILL.md +0 -304
  52. package/skills/geniml/SKILL.md +0 -310
  53. package/skills/genomic-coordinates/SKILL.md +0 -189
  54. package/skills/genomic-intelligence/SKILL.md +0 -243
  55. package/skills/geomaster/README.md +0 -105
  56. package/skills/geomaster/SKILL.md +0 -366
  57. package/skills/geopandas/SKILL.md +0 -250
  58. package/skills/get-available-resources/SKILL.md +0 -260
  59. package/skills/gget/SKILL.md +0 -153
  60. package/skills/ginkgo-cloud-lab/SKILL.md +0 -106
  61. package/skills/glycoengineering/SKILL.md +0 -339
  62. package/skills/gtars/SKILL.md +0 -282
  63. package/skills/guardian-rails/SKILL.md +0 -54
  64. package/skills/histolab/SKILL.md +0 -243
  65. package/skills/hugging-science/SKILL.md +0 -132
  66. package/skills/hypogenic/SKILL.md +0 -290
  67. package/skills/hypothesis-generation/SKILL.md +0 -264
  68. package/skills/imaging-data-commons/SKILL.md +0 -496
  69. package/skills/infographics/SKILL.md +0 -315
  70. package/skills/iso-standards-readiness/SKILL.md +0 -352
  71. package/skills/lab-hardware-cad/SKILL.md +0 -372
  72. package/skills/labarchive-integration/SKILL.md +0 -216
  73. package/skills/lamindb/SKILL.md +0 -408
  74. package/skills/latchbio-integration/SKILL.md +0 -227
  75. package/skills/latex-posters/SKILL.md +0 -369
  76. package/skills/latex-posters/references/README.md +0 -439
  77. package/skills/liteparse/SKILL.md +0 -295
  78. package/skills/literature-review/SKILL.md +0 -263
  79. package/skills/markdown-mermaid-writing/SKILL.md +0 -322
  80. package/skills/market-research-reports/SKILL.md +0 -337
  81. package/skills/markitdown/SKILL.md +0 -264
  82. package/skills/matchms/SKILL.md +0 -276
  83. package/skills/matlab/SKILL.md +0 -274
  84. package/skills/matplotlib/SKILL.md +0 -378
  85. package/skills/medchem/SKILL.md +0 -321
  86. package/skills/modal/SKILL.md +0 -468
  87. package/skills/molecular-dynamics/SKILL.md +0 -458
  88. package/skills/molfeat/SKILL.md +0 -348
  89. package/skills/ncats-arax/SKILL.md +0 -178
  90. package/skills/networkx/SKILL.md +0 -440
  91. package/skills/neurokit2/SKILL.md +0 -323
  92. package/skills/neuropixels-analysis/SKILL.md +0 -412
  93. package/skills/nextflow/SKILL.md +0 -195
  94. package/skills/omero-integration/SKILL.md +0 -222
  95. package/skills/onekgpd/SKILL.md +0 -371
  96. package/skills/ontology-term-resolution/SKILL.md +0 -147
  97. package/skills/open-notebook/SKILL.md +0 -297
  98. package/skills/openpiv/SKILL.md +0 -469
  99. package/skills/opentrons-integration/SKILL.md +0 -322
  100. package/skills/optimize-for-gpu/SKILL.md +0 -176
  101. package/skills/owasp-top10/SKILL.md +0 -48
  102. package/skills/pacsomatic/LICENSE +0 -21
  103. package/skills/pacsomatic/SKILL.md +0 -150
  104. package/skills/paper-lookup/SKILL.md +0 -263
  105. package/skills/paperclip/SKILL.md +0 -413
  106. package/skills/paperzilla/SKILL.md +0 -159
  107. package/skills/parallel-web/SKILL.md +0 -128
  108. package/skills/pathml/SKILL.md +0 -222
  109. package/skills/pathogen-variant-surveillance/SKILL.md +0 -208
  110. package/skills/pathway-enrichment/SKILL.md +0 -194
  111. package/skills/pdf/SKILL.md +0 -322
  112. package/skills/peer-review/SKILL.md +0 -288
  113. package/skills/penetration-testing/SKILL.md +0 -31
  114. package/skills/pennylane/SKILL.md +0 -240
  115. package/skills/phylogenetics/SKILL.md +0 -409
  116. package/skills/pi-agent/SKILL.md +0 -83
  117. package/skills/pkpd-modeling/SKILL.md +0 -381
  118. package/skills/polars/SKILL.md +0 -393
  119. package/skills/polars-bio/SKILL.md +0 -379
  120. package/skills/ponytail/SKILL.md +0 -31
  121. package/skills/ponytail-audit/SKILL.md +0 -18
  122. package/skills/pptx/SKILL.md +0 -246
  123. package/skills/pptx-posters/SKILL.md +0 -258
  124. package/skills/primekg/SKILL.md +0 -99
  125. package/skills/protocolsio-integration/SKILL.md +0 -236
  126. package/skills/pufferlib/SKILL.md +0 -328
  127. package/skills/pydeseq2/SKILL.md +0 -369
  128. package/skills/pydicom/SKILL.md +0 -381
  129. package/skills/pyhealth/SKILL.md +0 -124
  130. package/skills/pylabrobot/SKILL.md +0 -216
  131. package/skills/pymatgen/SKILL.md +0 -404
  132. package/skills/pymc/SKILL.md +0 -310
  133. package/skills/pymoo/SKILL.md +0 -276
  134. package/skills/pyopenms/SKILL.md +0 -179
  135. package/skills/pysam/SKILL.md +0 -330
  136. package/skills/pytdc/SKILL.md +0 -297
  137. package/skills/pytorch-lightning/SKILL.md +0 -191
  138. package/skills/pyzotero/SKILL.md +0 -137
  139. package/skills/qiskit/SKILL.md +0 -259
  140. package/skills/qutip/SKILL.md +0 -317
  141. package/skills/rdkit/SKILL.md +0 -94
  142. package/skills/relsa-severity-assessment/SKILL.md +0 -354
  143. package/skills/research-grants/SKILL.md +0 -296
  144. package/skills/research-grants/references/README.md +0 -287
  145. package/skills/research-lookup/README.md +0 -106
  146. package/skills/research-lookup/SKILL.md +0 -338
  147. package/skills/rowan/SKILL.md +0 -398
  148. package/skills/scanpy/SKILL.md +0 -303
  149. package/skills/scholar-evaluation/SKILL.md +0 -296
  150. package/skills/scientific-brainstorming/SKILL.md +0 -282
  151. package/skills/scientific-critical-thinking/SKILL.md +0 -180
  152. package/skills/scientific-schematics/SKILL.md +0 -370
  153. package/skills/scientific-slides/SKILL.md +0 -379
  154. package/skills/scientific-visualization/SKILL.md +0 -285
  155. package/skills/scientific-writing/SKILL.md +0 -356
  156. package/skills/scikit-bio/SKILL.md +0 -470
  157. package/skills/scikit-learn/SKILL.md +0 -324
  158. package/skills/scikit-survival/SKILL.md +0 -313
  159. package/skills/scvelo/SKILL.md +0 -328
  160. package/skills/scvi-tools/SKILL.md +0 -201
  161. package/skills/seaborn/SKILL.md +0 -254
  162. package/skills/security-auditor/SKILL.md +0 -37
  163. package/skills/shap/SKILL.md +0 -282
  164. package/skills/simpy/SKILL.md +0 -283
  165. package/skills/stable-baselines3/SKILL.md +0 -325
  166. package/skills/statistical-analysis/SKILL.md +0 -446
  167. package/skills/statistical-power/SKILL.md +0 -200
  168. package/skills/statsmodels/SKILL.md +0 -238
  169. package/skills/sympy/SKILL.md +0 -354
  170. package/skills/systematic-debugging/SKILL.md +0 -35
  171. package/skills/tamarind/SKILL.md +0 -285
  172. package/skills/tdd/SKILL.md +0 -26
  173. package/skills/tiledbvcf/SKILL.md +0 -456
  174. package/skills/timesfm-forecasting/SKILL.md +0 -408
  175. package/skills/timesfm-forecasting/examples/global-temperature/README.md +0 -178
  176. package/skills/torch-geometric/SKILL.md +0 -458
  177. package/skills/torchdrug/SKILL.md +0 -241
  178. package/skills/transformers/SKILL.md +0 -195
  179. package/skills/treatment-plans/SKILL.md +0 -174
  180. package/skills/treatment-plans/references/README.md +0 -19
  181. package/skills/umap-learn/SKILL.md +0 -488
  182. package/skills/uncertainty-and-units/SKILL.md +0 -384
  183. package/skills/usfiscaldata/SKILL.md +0 -171
  184. package/skills/vaex/SKILL.md +0 -204
  185. package/skills/venue-templates/SKILL.md +0 -269
  186. package/skills/verification-before-completion/SKILL.md +0 -22
  187. package/skills/waypoint-bio/SKILL.md +0 -273
  188. package/skills/what-if-oracle/SKILL.md +0 -184
  189. package/skills/writing-plans/SKILL.md +0 -15
  190. package/skills/xlsx/SKILL.md +0 -110
  191. package/skills/zarr-python/SKILL.md +0 -241
@@ -1,339 +0,0 @@
1
- ---
2
- name: glycoengineering
3
- description: Analyze and engineer protein glycosylation. Scan sequences for N-glycosylation sequons (N-X-S/T), predict O-glycosylation hotspots, and access curated glycoengineering tools (NetOGlyc, GlycoShield, GlycoWorkbench). For glycoprotein engineering, therapeutic antibody optimization, and vaccine design.
4
- license: Unknown
5
- metadata:
6
- version: "1.1"
7
- skill-author: Kuan-lin Huang
8
- ---
9
-
10
- # Glycoengineering
11
-
12
- ## Overview
13
-
14
- Glycosylation is the most common and complex post-translational modification (PTM) of proteins, affecting over 50% of all human proteins. Glycans regulate protein folding, stability, immune recognition, receptor interactions, and pharmacokinetics of therapeutic proteins. Glycoengineering involves rational modification of glycosylation patterns for improved therapeutic efficacy, stability, or immune evasion.
15
-
16
- **Two major glycosylation types:**
17
- - **N-glycosylation**: Attached to asparagine (N) in the sequon N-X-[S/T] where X ≠ Proline; occurs in the ER/Golgi
18
- - **O-glycosylation**: Attached to serine (S) or threonine (T); no strict consensus motif; primarily GalNAc initiation
19
-
20
- ## When to Use This Skill
21
-
22
- Use this skill when:
23
-
24
- - **Antibody engineering**: Optimize Fc glycosylation for enhanced ADCC, CDC, or reduced immunogenicity
25
- - **Therapeutic protein design**: Identify glycosylation sites that affect half-life, stability, or immunogenicity
26
- - **Vaccine antigen design**: Engineer glycan shields to focus immune responses on conserved epitopes
27
- - **Biosimilar characterization**: Compare glycan patterns between reference and biosimilar
28
- - **Drug target analysis**: Does glycosylation affect target engagement for a receptor?
29
- - **Protein stability**: N-glycans often stabilize proteins; identify sites for stabilizing mutations
30
-
31
- ## N-Glycosylation Sequon Analysis
32
-
33
- ### Scanning for N-Glycosylation Sites
34
-
35
- N-glycosylation occurs at the sequon **N-X-[S/T]** where X ≠ Proline.
36
-
37
- ```python
38
- import re
39
- from typing import List, Tuple
40
-
41
- def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
42
- """
43
- Scan a protein sequence for canonical N-linked glycosylation sequons.
44
- Motif: N-X-[S/T], where X ≠ Proline.
45
-
46
- Args:
47
- sequence: Single-letter amino acid sequence
48
-
49
- Returns:
50
- List of dicts with position (1-based), motif, and context
51
- """
52
- seq = sequence.upper()
53
- results = []
54
- i = 0
55
- while i <= len(seq) - 3:
56
- triplet = seq[i:i+3]
57
- if triplet[0] == 'N' and triplet[1] != 'P' and triplet[2] in {'S', 'T'}:
58
- context = seq[max(0, i-3):i+6] # ±3 residue context
59
- results.append({
60
- 'position': i + 1, # 1-based
61
- 'motif': triplet,
62
- 'context': context,
63
- 'sequon_type': 'NXS' if triplet[2] == 'S' else 'NXT'
64
- })
65
- i += 3
66
- else:
67
- i += 1
68
- return results
69
-
70
- def summarize_glycosylation_sites(sequence: str, protein_name: str = "") -> str:
71
- """Generate a research log summary of N-glycosylation sites."""
72
- sequons = find_n_glycosylation_sequons(sequence)
73
-
74
- lines = [f"# N-Glycosylation Sequon Analysis: {protein_name or 'Protein'}"]
75
- lines.append(f"Sequence length: {len(sequence)}")
76
- lines.append(f"Total N-glycosylation sequons: {len(sequons)}")
77
-
78
- if sequons:
79
- lines.append(f"\nN-X-S sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
80
- lines.append(f"N-X-T sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
81
- lines.append(f"\nSite details:")
82
- for s in sequons:
83
- lines.append(f" Position {s['position']}: {s['motif']} (context: ...{s['context']}...)")
84
- else:
85
- lines.append("No canonical N-glycosylation sequons detected.")
86
-
87
- return "\n".join(lines)
88
-
89
- # Example: IgG1 Fc region
90
- fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
91
- print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
92
- ```
93
-
94
- ### Mutating N-Glycosylation Sites
95
-
96
- ```python
97
- def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
98
- """
99
- Eliminate an N-glycosylation site by substituting Asn → Gln (conservative).
100
-
101
- Args:
102
- sequence: Protein sequence
103
- position: 1-based position of the Asn to mutate
104
- replacement: Amino acid to substitute (default Q = Gln; similar size, not glycosylated)
105
-
106
- Returns:
107
- Mutated sequence
108
- """
109
- seq = list(sequence.upper())
110
- idx = position - 1
111
- assert seq[idx] == 'N', f"Position {position} is '{seq[idx]}', not 'N'"
112
- seq[idx] = replacement.upper()
113
- return ''.join(seq)
114
-
115
- def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
116
- """
117
- Introduce an N-glycosylation site by mutating a residue to Asn,
118
- and ensuring X ≠ Pro and +2 = S/T.
119
-
120
- Args:
121
- position: 1-based position to introduce Asn
122
- flanking_context: 'S' or 'T' at position+2 (if modification needed)
123
- """
124
- seq = list(sequence.upper())
125
- idx = position - 1
126
-
127
- # Mutate to Asn
128
- seq[idx] = 'N'
129
-
130
- # Ensure X+1 != Pro (mutate to Ala if needed)
131
- if idx + 1 < len(seq) and seq[idx + 1] == 'P':
132
- seq[idx + 1] = 'A'
133
-
134
- # Ensure X+2 = S or T
135
- if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
136
- seq[idx + 2] = flanking_context
137
-
138
- return ''.join(seq)
139
- ```
140
-
141
- ## O-Glycosylation Analysis
142
-
143
- ### Heuristic O-Glycosylation Hotspot Prediction
144
-
145
- ```python
146
- def predict_o_glycosylation_hotspots(
147
- sequence: str,
148
- window: int = 7,
149
- min_st_fraction: float = 0.4,
150
- disallow_proline_next: bool = True
151
- ) -> List[dict]:
152
- """
153
- Heuristic O-glycosylation hotspot scoring based on local S/T density.
154
- Not a substitute for NetOGlyc; use as fast baseline.
155
-
156
- Rules:
157
- - O-GalNAc glycosylation clusters on Ser/Thr-rich segments
158
- - Flag Ser/Thr residues in windows enriched for S/T
159
- - Avoid S/T immediately followed by Pro (TP/SP motifs inhibit GalNAc-T)
160
-
161
- Args:
162
- window: Odd window size for local S/T density
163
- min_st_fraction: Minimum fraction of S/T in window to flag site
164
- """
165
- if window % 2 == 0:
166
- window = 7
167
- seq = sequence.upper()
168
- half = window // 2
169
- candidates = []
170
-
171
- for i, aa in enumerate(seq):
172
- if aa not in ('S', 'T'):
173
- continue
174
- if disallow_proline_next and i + 1 < len(seq) and seq[i+1] == 'P':
175
- continue
176
-
177
- start = max(0, i - half)
178
- end = min(len(seq), i + half + 1)
179
- segment = seq[start:end]
180
- st_count = sum(1 for c in segment if c in ('S', 'T'))
181
- frac = st_count / len(segment)
182
-
183
- if frac >= min_st_fraction:
184
- candidates.append({
185
- 'position': i + 1,
186
- 'residue': aa,
187
- 'st_fraction': round(frac, 3),
188
- 'window': f"{start+1}-{end}",
189
- 'segment': segment
190
- })
191
-
192
- return candidates
193
- ```
194
-
195
- ## External Glycoengineering Tools
196
-
197
- ### 1. NetOGlyc 4.0 (O-glycosylation prediction)
198
-
199
- Web service for high-accuracy O-GalNAc site prediction:
200
- - **URL**: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
201
- - **Input**: FASTA protein sequence
202
- - **Output**: Per-residue O-glycosylation probability scores
203
- - **Method**: Neural network trained on experimentally verified O-GalNAc sites
204
-
205
- ```python
206
- import requests
207
-
208
- def submit_netoglycv4(fasta_sequence: str) -> str:
209
- """
210
- Submit sequence to NetOGlyc 4.0 web service.
211
- Returns the job URL for result retrieval.
212
-
213
- Note: This uses the DTU Health Tech web service. Results take ~1-5 min.
214
- """
215
- url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
216
- # NetOGlyc submission (parameters may vary with web service version)
217
- # Recommend using the web interface directly for most use cases
218
- print("Submit sequence at: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
219
- return url
220
-
221
- # Also: NetNGlyc for N-glycosylation prediction
222
- # URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
223
- ```
224
-
225
- ### 2. GlycoShield-MD (Glycan Shielding Analysis)
226
-
227
- GlycoShield-MD analyzes how glycans shield protein surfaces during MD simulations:
228
- - **URL**: https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/
229
- - **Use**: Map glycan shielding on protein surface over MD trajectory
230
- - **Output**: Per-residue shielding fraction, visualization
231
-
232
- ```bash
233
- # Installation
234
- uv pip install glycoshield
235
-
236
- # Basic usage: analyze glycan shielding from glycosylated protein MD trajectory
237
- glycoshield \
238
- --topology glycoprotein.pdb \
239
- --trajectory glycoprotein.xtc \
240
- --glycan_resnames BGLCNA FUC \
241
- --output shielding_analysis/
242
- ```
243
-
244
- ### 3. GlycoWorkbench (Glycan Structure Drawing/Analysis)
245
-
246
- - **URL**: https://www.eurocarbdb.org/project/glycoworkbench
247
- - **Use**: Draw glycan structures, calculate masses, annotate MS spectra
248
- - **Format**: GlycoCT, IUPAC condensed glycan notation
249
-
250
- ### 4. GlyConnect (Glycan-Protein Database)
251
-
252
- - **URL**: https://glyconnect.expasy.org/
253
- - **Use**: Find experimentally verified glycoproteins and glycosylation sites
254
- - **Query**: By protein (UniProt ID), glycan structure, or tissue
255
-
256
- ```python
257
- import requests
258
-
259
- def query_glyconnect(uniprot_id: str) -> dict:
260
- """Query GlyConnect for glycosylation data for a protein."""
261
- url = f"https://glyconnect.expasy.org/api/proteins/uniprot/{uniprot_id}"
262
- response = requests.get(url, headers={"Accept": "application/json"})
263
- if response.status_code == 200:
264
- return response.json()
265
- return {}
266
-
267
- # Example: query EGFR glycosylation
268
- egfr_glyco = query_glyconnect("P00533")
269
- ```
270
-
271
- ### 5. UniCarbKB (Glycan Structure Database)
272
-
273
- - **URL**: https://unicarbkb.org/
274
- - **Use**: Browse glycan structures, search by mass or composition
275
- - **Format**: GlycoCT or IUPAC notation
276
-
277
- ## Key Glycoengineering Strategies
278
-
279
- ### For Therapeutic Antibodies
280
-
281
- | Goal | Strategy | Notes |
282
- |------|----------|-------|
283
- | Enhance ADCC | Defucosylation at Fc Asn297 | Afucosylated IgG1 has ~50× better FcγRIIIa binding |
284
- | Reduce immunogenicity | Remove non-human glycans | Eliminate α-Gal, NGNA epitopes |
285
- | Improve PK half-life | Sialylation | Sialylated glycans extend half-life |
286
- | Reduce inflammation | Hypersialylation | IVIG anti-inflammatory mechanism |
287
- | Create glycan shield | Add N-glycosites to surface | Masks vulnerable epitopes (vaccine design) |
288
-
289
- ### Common Mutations Used
290
-
291
- | Mutation | Effect |
292
- |----------|--------|
293
- | N297A/Q (IgG1) | Removes Fc glycosylation (aglycosyl) |
294
- | N297D (IgG1) | Removes Fc glycosylation |
295
- | S298A/E333A/K334A | Increases FcγRIIIa binding |
296
- | F243L (IgG1) | Increases defucosylation |
297
- | T299A | Removes Fc glycosylation |
298
-
299
- ## Glycan Notation
300
-
301
- ### IUPAC Condensed Notation (Monosaccharide abbreviations)
302
-
303
- | Symbol | Full Name | Type |
304
- |--------|-----------|------|
305
- | Glc | Glucose | Hexose |
306
- | GlcNAc | N-Acetylglucosamine | HexNAc |
307
- | Man | Mannose | Hexose |
308
- | Gal | Galactose | Hexose |
309
- | Fuc | Fucose | Deoxyhexose |
310
- | Neu5Ac | N-Acetylneuraminic acid (Sialic acid) | Sialic acid |
311
- | GalNAc | N-Acetylgalactosamine | HexNAc |
312
-
313
- ### Complex N-Glycan Structure
314
-
315
- ```
316
- Typical complex biantennary N-glycan:
317
- Neu5Ac-Gal-GlcNAc-Man\
318
- Man-GlcNAc-GlcNAc-[Asn]
319
- Neu5Ac-Gal-GlcNAc-Man/
320
- (±Core Fuc at innermost GlcNAc)
321
- ```
322
-
323
- ## Best Practices
324
-
325
- - **Start with NetNGlyc/NetOGlyc** for computational prediction before experimental validation
326
- - **Verify with mass spectrometry**: Glycoproteomics (Byonic, Mascot) for site-specific glycan profiling
327
- - **Consider site context**: Not all predicted sequons are actually glycosylated (accessibility, cell type, protein conformation)
328
- - **For antibodies**: Fc N297 glycan is critical — always characterize this site first
329
- - **Use GlyConnect** to check if your protein of interest has experimentally verified glycosylation data
330
-
331
- ## Additional Resources
332
-
333
- - **GlyTouCan** (glycan structure repository): https://glytoucan.org/
334
- - **GlyConnect**: https://glyconnect.expasy.org/
335
- - **CFG Functional Glycomics**: http://www.functionalglycomics.org/
336
- - **DTU Health Tech servers** (NetNGlyc, NetOGlyc): https://services.healthtech.dtu.dk/
337
- - **GlycoWorkbench**: https://glycoworkbench.software.informer.com/
338
- - **Review**: Apweiler R et al. (1999) Biochim Biophys Acta. PMID: 10564035
339
- - **Therapeutic glycoengineering review**: Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19448661
@@ -1,282 +0,0 @@
1
- ---
2
- name: gtars
3
- description: Use Gtars for local genomic interval models and set algebra, overlaps and counts, consensus and coverage, tokenization, fragment processing, and refget/BEDbase planning across Python, Rust, and the CLI.
4
- license: MIT
5
- compatibility: Python bindings require Python 3.10+ and gtars 0.9.2. The Rust meta-crate and gtars-cli are 0.9.0 and require a Rust toolchain supporting Edition 2024; upstream declares no rust-version. Bundled audit CLIs use only Python 3.10+ standard library and are local/network-free. Remote constructors, pretrained tokenizers, refget, and BEDbase caching require explicit network and storage approval.
6
- allowed-tools: Read Write Edit Bash Glob
7
- metadata:
8
- version: "1.2"
9
- skill-author: K-Dense Inc.
10
- ---
11
-
12
- # Gtars
13
-
14
- Gtars provides native Rust implementations, Python bindings, and a feature-gated
15
- `gtars` binary for genomic interval and reference-sequence work. Start with the
16
- bundled local inspectors; call upstream code only after the data contract,
17
- provenance, resource bounds, and side effects are explicit.
18
-
19
- ## Verified snapshot (2026-07-23)
20
-
21
- - Python: [`gtars==0.9.2`](https://pypi.org/project/gtars/), released
22
- 2026-06-17, `Requires-Python >=3.10`.
23
- - Rust meta-crate: [`gtars=0.9.0`](https://crates.io/crates/gtars), released
24
- 2026-06-15. Its default feature set is empty.
25
- - CLI crate/binary: [`gtars-cli=0.9.0`](https://crates.io/crates/gtars-cli);
26
- the installed binary is named `gtars`.
27
- - Direct refget crate: [`gtars-refget=0.9.1`](https://crates.io/crates/gtars-refget),
28
- released 2026-06-17. `gtars=0.9.0` itself pins its component release set, which
29
- includes refget 0.9.0.
30
- - Upstream intentionally versions workspace crates, Python bindings, and CLI
31
- independently. Do not assume matching numbers mean matching artifacts.
32
- - The published docs changelog stops at 0.5.1. API examples here were checked
33
- against the 0.9.2 Python stubs/runtime and the `v0.9.0` CLI/Rust source.
34
-
35
- The `license: MIT` field covers this skill. Published `gtars` crates declare MIT,
36
- while the GitHub repository currently displays BSD-2-Clause at the root; verify
37
- the exact artifact's license before redistribution.
38
-
39
- ## Native-code trust gate and exact pins
40
-
41
- The Python wheel contains a PyO3 native extension. Cargo installation compiles a
42
- native binary and can run dependency build scripts. Treat either path as code
43
- execution:
44
-
45
- 1. Confirm the official PyPI/crates.io/GitHub owner and immutable version.
46
- 2. Review filenames, platform tags, release provenance, license, and SHA-256.
47
- GitHub's v0.9.0 binary release includes per-archive `.sha256` sidecars.
48
- 3. Never run an untrusted prebuilt binary, wheel, source tree, Cargo build script,
49
- or archive installer. Use isolation and CPU/RAM/disk/time limits.
50
- 4. Keep a lockfile and artifact hashes with the analysis manifest.
51
-
52
- After that review, create an isolated Python environment:
53
-
54
- ```bash
55
- uv venv --python 3.11 .venv-gtars
56
- uv pip install --dry-run --python .venv-gtars/bin/python "gtars==0.9.2"
57
- uv pip install --python .venv-gtars/bin/python "gtars==0.9.2"
58
- .venv-gtars/bin/python -c \
59
- "import gtars; assert gtars.__version__ == '0.9.2'; print(gtars.__version__)"
60
- ```
61
-
62
- For the reviewed CLI source release:
63
-
64
- ```bash
65
- cargo install gtars-cli --version 0.9.0 --locked
66
- gtars --version
67
- gtars --help
68
- ```
69
-
70
- For a Rust project, pin the wrapper exactly and enable only required features:
71
-
72
- ```toml
73
- [dependencies]
74
- gtars = { version = "=0.9.0", default-features = false, features = [
75
- "core", "overlaprs", "uniwig", "tokenizers", "refget"
76
- ] }
77
- ```
78
-
79
- Use `gtars-refget = "=0.9.1"` directly only when the newer direct component API is
80
- required and compatibility has been tested. Do not replace these pins with a Git
81
- branch or an unreviewed release.
82
-
83
- ## Genomic data contract
84
-
85
- Apply this contract before every operation:
86
-
87
- 1. **Coordinates:** BED intervals are 0-based and half-open: `[start, end)`.
88
- Require `0 <= start < end <= contig_length`. Gtars coordinates are `u32`, so
89
- reject values above `4,294,967,295`.
90
- 2. **Assembly:** record an assembly accession/version and the SHA-256 of the exact
91
- chromosome-sizes or refget sequence-collection metadata. Never infer assembly
92
- from filenames or `chr` prefixes.
93
- 3. **Contigs:** compare names exactly. `1` and `chr1`, alternate loci, decoys, and
94
- mitochondrial aliases are not interchangeable. Rename or liftover only as a
95
- separately reviewed transformation.
96
- 4. **Sorting:** preserve the original file, then sort a copy by chromosome-sizes
97
- order and numeric start/end when the operation requires it. Python
98
- `RegionSet(path)` currently sorts lexicographically by contig and start while
99
- loading; do not rely on original row order afterward.
100
- 5. **Strand:** BED6 uses `+`, `-`, or `.`. `Region.rest` retains trailing BED
101
- fields, but a file-backed Python `RegionSet` currently initializes its separate
102
- `strands` vector to `*`. Several set operations drop strand. Preserve and
103
- validate strand externally when it is scientifically meaningful.
104
- 6. **Duplicates/adjacency:** choose policies explicitly. `reduce()` and consensus
105
- merge overlapping **and adjacent** intervals; ordinary half-open overlap does
106
- not treat `[0,10)` and `[10,20)` as overlapping.
107
-
108
- Run the local validator first:
109
-
110
- ```bash
111
- python3 -B scripts/bed_validator.py \
112
- --input data.bed.gz \
113
- --assembly GRCh38.p14 \
114
- --chrom-sizes GRCh38.p14.chrom.sizes \
115
- --require-sorted
116
- ```
117
-
118
- ## Safe local workflow
119
-
120
- 1. Inventory local files, checksums, assembly, contig dictionary, coordinate
121
- system, strand policy, patient/replicate groups, and intended outputs.
122
- 2. Validate BED/fragments and estimate work. Pilot a small synthetic file.
123
- 3. Choose Python, CLI, or Rust from the documented surface; do not translate API
124
- names by guesswork.
125
- 4. Set hard limits for input bytes/records/files, threads/jobs, memory, temporary
126
- disk, output size, and wall time.
127
- 5. Run in a dedicated output directory. Refuse collisions unless overwrite was
128
- explicitly approved.
129
- 6. Revalidate output sorting, bounds, row counts, checksums, and provenance.
130
-
131
- ## Current Python core
132
-
133
- Imports are from submodules, not the `gtars` top level:
134
-
135
- ```python
136
- from gtars.models import Region, RegionSet
137
-
138
- query = RegionSet.from_regions(
139
- [
140
- Region(chr="chr1", start=100, end=200, rest=None),
141
- Region(chr="chr1", start=300, end=400, rest=None),
142
- ],
143
- strands=["+", "-"],
144
- )
145
- universe = RegionSet.from_vectors(
146
- ["chr1", "chr1"],
147
- [150, 500],
148
- [350, 600],
149
- )
150
-
151
- counts = query.count_overlaps(universe) # one count per query region
152
- flags = query.any_overlaps(universe) # one bool per query region
153
- indices = query.find_overlaps(universe) # indices into universe
154
- pieces = query.intersect_all(universe) # all intersection fragments
155
- fraction = query.coverage(universe) # fraction of query bp covered
156
- ```
157
-
158
- `RegionSet.sort()` mutates and returns `None`. Set algebra includes `reduce`,
159
- `setdiff`, `pintersect` (pairs by index), `concat`, `union`, `jaccard`,
160
- `coverage`, `overlap_coefficient`, `intersect_all`, `closest`, `cluster`, and
161
- `gaps`. Read `references/python-api.md` before relying on ordering or strand.
162
-
163
- Consensus is a Python binding in a different module:
164
-
165
- ```python
166
- from gtars.genomic_distributions import consensus
167
-
168
- rows = consensus([query, universe])
169
- # rows: [{"chr": ..., "start": ..., "end": ..., "count": ...}, ...]
170
- ```
171
-
172
- Signal-track generation is **not** exposed as `gtars.uniwig` in Python 0.9.2;
173
- use the reviewed CLI or Rust API. `RegionSet.coverage()` is a base-pair set metric,
174
- not a WIG/bigWig generator.
175
-
176
- ## Tokenizers, fragments, and reference stores
177
-
178
- Use only local constructors by default:
179
-
180
- ```python
181
- from gtars.models import RegionSet
182
- from gtars.tokenizers import Tokenizer
183
-
184
- tokenizer = Tokenizer.from_bed("reviewed-universe.bed")
185
- regions = RegionSet("local-query.bed")
186
- tokens = tokenizer.tokenize(regions)
187
- encoding = tokenizer(regions)
188
- ids = encoding["input_ids"]
189
- ```
190
-
191
- `Tokenizer.from_pretrained(name)` contacts Hugging Face and writes its cache when
192
- the argument is not an existing local directory; it exposes no revision or cache
193
- argument. Obtain explicit approval, fetch an immutable revision through a reviewed
194
- mechanism, verify checksums, then pass the local snapshot directory. See
195
- `references/tokenizers.md`.
196
-
197
- For refget, prefer `RefgetStore.in_memory()` or `RefgetStore.open_local(path)`.
198
- `open_remote(cache_path, remote_url)` contacts a remote service, creates/uses a
199
- local cache, and performs on-demand range reads. See `references/refget.md`.
200
-
201
- ## Network and cache gate
202
-
203
- No download or cache write is implicit in this skill. Before any network-capable
204
- upstream call:
205
-
206
- - obtain explicit user approval for the exact host, endpoint, data, and cache;
207
- - allowlist HTTPS hosts and reject unreviewed redirects;
208
- - record immutable revision/identifier, retrieval time, expected SHA-256 and
209
- domain digest, assembly accession, size quota, and provenance;
210
- - disclose sensitive BED coordinates, barcodes, sample labels, and reference
211
- choices that could leave the approved environment;
212
- - validate downloaded content as untrusted before using it.
213
-
214
- Important side effects:
215
-
216
- - `RegionSet(path)` has HTTP support; a nonexistent local string may be treated as
217
- a URL. Check that the local path exists before construction.
218
- - `Tokenizer.from_pretrained` may download `universe.bed.gz` into the Hugging Face
219
- cache.
220
- - `RefgetStore.on_disk` creates/writes a store. `open_remote` loads remote metadata
221
- and enables persistence by default.
222
- - `gtars bbcache` creates cache directories even when constructing the client.
223
- Cache/download commands use `BBCLIENT_CACHE` (default `~/.bbcache`) and
224
- `BEDBASE_API` (default `https://api.bedbase.org`).
225
-
226
- ## Sensitive metadata and leakage
227
-
228
- Genomic intervals, rare loci, barcodes, sample names, phenotypes, and assembly
229
- choices can be identifying. Keep full paths and raw coordinates out of logs;
230
- default bundled reports redact paths and emit only counts/checksums.
231
-
232
- Freeze splits by patient/donor first, then keep all technical and biological
233
- replicates in the same split. Fit consensus sets, universes, tokenizers, scaling,
234
- thresholds, and QC rules on training data only. Do not create a universe from all
235
- samples and then split: that leaks validation/test locus support. Record excluded
236
- samples and replicate aggregation separately.
237
-
238
- ## Bundled deterministic CLIs
239
-
240
- All six helpers reject URLs, traversal, symlinks, and special files; apply byte,
241
- record, file, coordinate, and worker caps; use no network or gtars import; and
242
- write no output files. Plans contain fixed argv templates and never launch them.
243
-
244
- ```bash
245
- python3 -B scripts/bed_validator.py --help
246
- python3 -B scripts/execution_plan.py --help
247
- python3 -B scripts/tokenizer_manifest.py --help
248
- python3 -B scripts/refget_digest_plan.py --help
249
- python3 -B scripts/coverage_preflight.py --help
250
- python3 -B scripts/artifact_inspector.py --help
251
- ```
252
-
253
- Run synthetic tests without bytecode:
254
-
255
- ```bash
256
- PYTHONDONTWRITEBYTECODE=1 python3 -B -m unittest discover \
257
- -s tests/gtars -p 'test_*.py' -v
258
- ```
259
-
260
- ## Migration traps removed in 1.1
261
-
262
- Do not use stale examples containing `gtars.RegionSet`,
263
- `RegionSet.from_bed`, `TreeTokenizer`, `gtars.igd.build_index`,
264
- `gtars.uniwig.coverage_from_bed`, `gtars.RefgetStore`, global
265
- `set_option`/`set_log_level`, `parallel_apply`, or invented exception classes.
266
- CLI forms such as `uniwig generate`, `igd build`, `scoring score`, and
267
- `fragsplit cluster-split` are also stale for 0.9.0.
268
-
269
- Upstream's published docs and stubs have some drift (for example the older
270
- `GlobalRefgetStore` tutorial and incomplete 0.9.2 stubs). Prefer installed
271
- signature smoke tests plus immutable tagged source when they conflict.
272
-
273
- ## Bundled references
274
-
275
- These are the only six bundled references; all links are local and present:
276
-
277
- - `references/python-api.md` — exact Python 0.9.2 imports and behavior
278
- - `references/overlap.md` — overlap/count/set algebra and consensus semantics
279
- - `references/coverage.md` — uniwig, bigWig, coverage, sorting, and resources
280
- - `references/tokenizers.md` — tokenizer/universe and fragment compatibility
281
- - `references/refget.md` — digests, stores, BEDbase, network/cache controls
282
- - `references/cli.md` — CLI 0.9.0 commands, features, and migrations
@@ -1,54 +0,0 @@
1
- ---
2
- name: guardian-rails
3
- description: "Global safety and workspace cleanliness guardrails: strict zero-pollution rules against temporary/scratch files, mandatory in-place editing, and pre-action safety protocols."
4
- risk: low
5
- source: built-in
6
- ---
7
-
8
- # Global Guardian Rails (Zero-Pollution & Safe Execution Protocol)
9
-
10
- All AI agents, sub-agents, and domain skills must adhere to these non-negotiable guardrails before and during any code generation or tool execution.
11
-
12
- ---
13
-
14
- ## 1. Zero Scratch / Temporary File Pollution
15
-
16
- ```
17
- NEVER DUMP TEMPORARY, SCRATCH, OR DRAFT FILES INTO THE WORKSPACE ROOT OR RANDOM FOLDERS.
18
- ```
19
-
20
- * ❌ **Forbidden Anti-Patterns**:
21
- * Temporary scripts or logs in project root: `build_log.txt`, `dev_log.txt`, `output.log`, `*.log`, `*_log.txt`, `check.ps1`, `test.ps1`, `script.sh`
22
- * Command output redirection to files (e.g. `npm run build > build_log.txt 2>&1`)
23
- * `temp_*`, `tmp_*`, `scratch_*`, `draft_*`, `sandbox_*`, `test_preview.html`, `preview.html`, `mock_*.json`
24
- * ✅ **Mandatory Practice**:
25
- * **Direct Command Execution**: Run build, test, and verification commands directly via the `shell` tool and inspect standard output / standard error directly from the returned tool output. Never dump stdout/stderr into `.txt` or `.log` files.
26
- * **In-Place Architecture**: Implement code directly within the project's real directory architecture (e.g., `components/`, `src/components/`, `app/`, `lib/`, `tests/`).
27
- * If a file path is ambiguous, inspect existing project structure (`list_dir`, `find_files`) to locate the correct directory before writing.
28
-
29
- ---
30
-
31
- ## 2. Frontend & Design Zero-Spam Mandate
32
-
33
- When asked to create UI, prototypes, designs, or styles:
34
- 1. **Target Real Files**: Edit or create production-grade components directly inside the existing frontend framework structure (e.g. `src/components/`, `app/`, `views/`).
35
- 2. **Never Create Detached Preview Files**: Do not generate detached single-file HTML/CSS preview playgrounds unless the user explicitly requested a standalone HTML file.
36
- 3. **Integrate with Existing Styling**: Reuse project Tailwind classes, CSS variables, or component libraries already in place.
37
-
38
- ---
39
-
40
- ## 3. Surgical & Minimal Modifications (Ponytail Principle)
41
-
42
- * **Deletion > Addition**: Prefer refactoring or extending existing utilities rather than introducing new redundant files.
43
- * **No Stray Artifacts**: If a command or tool creates a transient log or test output file during verification, it must be deleted before the turn concludes.
44
- * **Check Dirty Worktree**: Run `git status` or inspect changed files to ensure no unexpected garbage files are left behind.
45
-
46
- ---
47
-
48
- ## 4. Pre-Flight Checklist Before Every Turn Completion
49
-
50
- Before reporting any task complete:
51
- - [ ] No `tmp_*` / `scratch_*` / `preview.*` files left behind.
52
- - [ ] All new files reside in standard, structured project directories.
53
- - [ ] Automated tests, linter, and type checks pass cleanly.
54
- - [ ] Working directory is clean and free of junk.