Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
bc2021d
Move cv files to shared
Bankso Apr 2, 2026
745fe28
Update duo from governance model
Bankso Apr 2, 2026
46218e4
Add governance-focused models
Bankso Apr 2, 2026
affe79d
Add updated governance attributes
Bankso Apr 2, 2026
9eb952f
Update mapping.yaml
Bankso Apr 2, 2026
51255dd
Update valid values
Bankso Apr 2, 2026
fa7e429
Update all_valid_values.csv
Bankso Apr 2, 2026
3eea5f5
Build model CSV
Bankso Apr 2, 2026
8522b0d
Build JSON-LD
Bankso Apr 2, 2026
1cd13bc
Add script to build JSON with curator
Bankso Apr 2, 2026
13ca6f2
Use curator-based JSON build tool
Bankso Apr 2, 2026
229f765
Remove unused schemas
Bankso Apr 2, 2026
0a30990
Remove outdated schemas
Bankso Apr 2, 2026
b8a4128
Delete cckp_datacatalog.jsonld
Bankso Apr 2, 2026
b0ba90b
Add json schemas from curator
Bankso Apr 2, 2026
0334e96
Rebuild JSON schemas with synapseclient 4.12
Bankso Apr 7, 2026
b4ce174
Add base NGS Level 1 attributes to RNA Level 1
Bankso Apr 24, 2026
617fbfe
Build schemas from CSV, not JSON-LD
Bankso Apr 24, 2026
2bd316f
Remove unused functions
Bankso Apr 24, 2026
f3858c3
Make model
Bankso Apr 24, 2026
c9f3de3
Integrate FileView attributes for curator adoption
Bankso Apr 25, 2026
dbcea81
Update mc2.model.csv
Bankso Apr 25, 2026
ec6da3b
Use file-specific data use codes attribute
Bankso Apr 27, 2026
faaffa3
Use File Data Use Codes attribute
Bankso Apr 27, 2026
a42905d
Update mc2.model.csv
Bankso Apr 27, 2026
b5a8b6c
Create SequencingRNALevel1.json
Bankso Apr 27, 2026
09cee5b
Use catalog-specific DUO attribute
Bankso Apr 27, 2026
8483e25
Use DatasetView-specific DUO attribute
Bankso Apr 27, 2026
7ca2f30
Update docs link
Bankso Apr 27, 2026
9857dda
Use Study specific DUO attribute
Bankso Apr 27, 2026
06dfe44
Use catalog-specific DUO attribute
Bankso Apr 27, 2026
b41f9e7
Update annotationProperty.csv
Bankso Apr 27, 2026
8813490
Only use DUO valid values for Study
Bankso Apr 27, 2026
55653da
Collate model CSV
Bankso Apr 27, 2026
d8da15b
Don't use conditional DUO elements in DSP
Bankso Apr 27, 2026
a03bcda
Pass JSON schema types via makefile
Bankso Apr 27, 2026
484b71b
Pull data types from CLI instead
Bankso Apr 27, 2026
2d45873
Update all_valid_values.csv
Bankso Apr 27, 2026
ff5eff7
Update annotationProperty.csv
Bankso Apr 27, 2026
2de8787
Update mc2.model.csv
Bankso Apr 27, 2026
1ecde30
Fix link
Bankso Apr 27, 2026
6a947ed
rebuild model
Bankso Apr 27, 2026
8ddb580
Rebuild JSON schemas
Bankso Apr 27, 2026
e4970ba
Update link
Bankso Apr 27, 2026
8073f5a
Re-separate fileview attributes
Bankso Apr 27, 2026
357cc38
Remove specimen info from file attributes
Bankso Apr 28, 2026
79fb283
Remove specimen info from file schema
Bankso Apr 28, 2026
6df50a7
Combine current file attributes with RNA seq assay
Bankso Apr 28, 2026
d2b3044
Collate model
Bankso Apr 28, 2026
93825b1
Update SequencingRNALevel1.json
Bankso Apr 28, 2026
7b46e5e
Update FileView.json
Bankso Apr 28, 2026
8cc3124
Update DataDSP.json
Bankso Apr 29, 2026
33987ad
Update primary key descriptions
Bankso May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 3 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,21 @@ CSV := mc2.model.csv
QC := ./qc_model/mc2_qc.model.csv
DATA := DataDSP Study FileView PublicationView GrantView ToolView EducationalResource DatasetView DataCatalog

all: collate fix generate-json convert
all: collate generate-json

qc: collate fix qc_fix qc_convert
qc: collate qc_convert

collate:
@echo "Collating module components..."
python update_valid_values.py
head -1 modules/consortium/annotationProperty.csv > ${CSV}
tail -n +2 -q modules/*/annotationProperty.csv >> ${CSV}

fix:
@echo "Modifying columnType to remove string_list"
awk -F ',' '{ gsub(/string_list/, ""); gsub(/^integer/, "number", $$10); gsub(/^integer/, "number", $$11); gsub(/^int/, "num", $$10); gsub(/^int/, "num", $$11); gsub(/^bool$$/, "boolean", $$10); gsub(/^bool$$/, "boolean", $$11); print }' OFS=',' ${CSV} > tmp_${CSV}
rm ${CSV}
mv tmp_${CSV} ${CSV}

qc_fix:
awk -F ',' '{ gsub(/matchAtLeastOne.*/, "list like"); print }' OFS=',' ${CSV} > tmp.csv
mv tmp.csv ${QC}

convert:
schematic schema convert ${CSV}

qc_convert:
schematic schema convert ${QC}

generate-json:
$(foreach d,$(DATA), schematic schema generate-jsonschema -dms ${CSV} -od . -dt $(d);)
rm *.schema.json
python create_json_from_model.py ${DATA}
82 changes: 47 additions & 35 deletions all_valid_values.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8888,31 +8888,6 @@ processLevel,Level 4,
processLevel,Auxiliary,
processLevel,Not Applicable,
processLevel,Metadata,
duo,IRB,
duo,HMB,
duo,PUB,
duo,US,
duo,NPOA,
duo,COL,
duo,NCU,
duo,NPUNCU,
duo,RS,
duo,TS,
duo,NRES,
duo,NPU,
duo,DUM,
duo,POA,
duo,MOR,
duo,GSO,
duo,RTN,
duo,CC,
duo,NMDS,
duo,IS,
duo,GS,
duo,DS,
duo,GRU,
duo,PS,
duo,Pending Annotation,
dataTier,Anonymous,
dataTier,Open,
dataTier,Controlled,
Expand Down Expand Up @@ -9166,12 +9141,17 @@ sourceGeography,YT,
sourceGeography,ZA,
sourceGeography,ZM,
sourceGeography,ZW,
studyLicense,CC BY 3.0,
studyLicense,CC BY 4.0,
studyLicense,CC BY-NC 4.0,
studyLicense,CC BY-NC 3.0,
studyLicense,CC BY-SA 4.0,
studyLicense,CC BY-NC-SA 4.0,
studyLicense,CC0,
studyLicense,CC_BY,
studyLicense,CC_BY_NC,
studyLicense,CC_BY_ND,
studyLicense,CC_BY_SA,
studyLicense,CC_BY_NC_ND,
studyLicense,CC_BY_NC_SA,
studyLicense,Apache_2,
studyLicense,MIT,
studyLicense,GPL_3,
studyLicense,BSD_3_Clause,
ed_topic,Computational Model Development,
ed_topic,Computational Resource,
ed_topic,Diversity/Equity/Inclusion,
Expand Down Expand Up @@ -10855,18 +10835,50 @@ rtPrimer,Oligo-dT,
rtPrimer,Poly-dT,
rtPrimer,Feature barcoding,
rtPrimer,Random,
duo,Pending Annotation,
duo,GRU,
duo,PS,
duo,GSO,
duo,RTN,
duo,CC,
duo,NMDS,
duo,NRES,
duo,NPU,
duo,DUM,
duo,POA,
duo,NCU,
duo,NPUNCU,
duo,NPOA,
duo,IRB,
duo,HMB,
duo,PUB,
duo,USE,
duo,COL,
duo,RST,
duo,TSM,
duo,MOR,
duo,IST,
duo,GSR,
duo,DSR,
duo,DUOPlus1,
duo,DUOPlus2,
duo,DUOPlus3,
duo,DUOPlus4,
duo,DUOPlus5,
duo,DUOPlus6,
duo,DUOPlus7,
deIdMethod,Manual,
deIdMethod,Semiautomatic,
deIdMethod,Automatic,
deIdMethod,Not Applicable,
indexDate,Diagnosis Date ,
indexDate,Enrollment Date,
indexDate,Collection Date,
indexDate,Birth Date,
dataPermission,Agreement,
dataPermission,Attestation,
dataPermission,Award,
dataPermission,Other,
indexDate,Diagnosis Date ,
indexDate,Enrollment Date,
indexDate,Collection Date,
indexDate,Birth Date,
tool_accessibility,Open Access,
tool_accessibility,Open Access (With Restrictions),
tool_accessibility,Restricted Access,
Expand Down
17 changes: 17 additions & 0 deletions create_json_from_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from synapseclient import Synapse
from synapseclient.extensions.curator import generate_jsonschema
import sys

DATA_MODEL_SOURCE = "mc2.model.csv"
DATA_TYPE = sys.argv[1:] if len(sys.argv) > 1 else None
OUTPUT_DIRECTORY = "./json_schemas"

syn = Synapse()
syn.login()

schemas, file_paths = generate_jsonschema(
data_model_source=DATA_MODEL_SOURCE,
output=OUTPUT_DIRECTORY,
data_types=DATA_TYPE,
synapse_client=syn,
)
Loading