Skip to content

Instantly share code, notes, and snippets.

from pymongo import MongoClient
client = MongoClient()
aggregation = [
{
"$set": {
"collection_date.has_date_value": {
"$dateFromString": {
"dateString": "$collection_date.has_raw_value",
},
@dwinston
dwinston / ibis_pm.md
Last active February 6, 2023 17:31
IBIS Lite + PM
%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR 
    Concept["skos:Concept"]
    Issue["ibis:Issue"]
    Agent["prov:Agent"]
    Position["ibis:Position"]

    %% <ibis>
@dwinston
dwinston / pm_lite.md
Last active February 6, 2023 17:31
PM Lite
%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR 
    Concept["skos:Concept"]
    Issue["ibis:Issue"]
    Agent["prov:Agent"]
    Position["ibis:Position"]

    State["pm:State"]
    Goal["pm:Goal"]
@dwinston
dwinston / ibis_lite.md
Last active February 6, 2023 17:30
IBIS Lite
%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR
    Concept["skos:Concept"]
    Issue["ibis:Issue"]
    Agent["prov:Agent"]
    Position["ibis:Position"]
    
    ConceptScheme["skos:ConceptScheme"]
 Argument["ibis:Argument"] 
erDiagram
  Process ||--|| Material : outputs
  Material ||--o{ Measurement : subjectTo
  Ingredient }o--|| Material : from
  Ingredient }o--|| Process : inputTo
  Record }o--|| RecordType : has
  RecordType }o--o| Template : mayBe
  RecordType }o--o| Spec : mayBe
 RecordType }o--o| Run : mayBe
@dwinston
dwinston / nmdc-minting-example-flowchart.md
Created December 15, 2022 19:19
NMDC Minting Service example flowchart
flowchart TD
    %% t1(["terminator (process start/end)"])
    %% s1["(process) step"]
    %% d1{decision}
    %% b1[("(data)base")]
    %% m1[\manual step/]
    %% o1[/"(input/output) object"/]
    %% p1[[predefined step]]
    classDef literal fill:#dff;,stroke:#bbb
{
"access_methods": [{"access_url": {"url": "https://gist.githubusercontent.com/dwinston/05a176b69744a3dfc52a1c8b07590867/raw/c58d8039544378d7ca20b9a80c87abcc983e4f76/readsqc-in-example.json"}}],
"checksums": [{"type": "sha256", "checksum": "9e1d75d48d3e90bfec0b4608b8c1755eab88e51e69003dd1329b46086bbd3f68"}],
"created_time": "2022-09-27T14:16:00-04:00",
"size": 1009
}
{"data_object_set": [{
"id" : "jgi:534819030d87850d7aea2a16",
"name" : "7846.2.85463.CGTACG.fastq.gz",
"description" : "Raw sequencer read data",
"file_size_bytes" : 11031180705,
"type" : "nmdc:DataObject"
}
],
"read_QC_analysis_activity_set": [{
"id" : "nmdc:498a1b67f0b35bc4f059a5de7d5ddb49",
@dwinston
dwinston / shouder_to_type-code-plus-shoulder.md
Last active September 28, 2022 23:44
shoulder to typecode + shoulder

My intended identifier design was nmdc:<shoulder><generated_id> where shoulder is an opaque namespace granted to a minting (sub)organization to avoid ID clashes in case they are bringing existing (not generated) IDs into the mix, and it helps keep IDs short for a minting org that doesn't mint a lot.

Unfortunately, it seems folks really really want to infer semantics from an ID rather than the discipline of resolving it and fetching metadata. So we've had a mushy compromise where the shoulders are kinda memorable, like "mga0" is for metagenome annotations.

I propose, given insistence on the desire for by-eye ID typing, we re-set the scheme as nmdc: , where type_code is an alphabetical code that is part of a recognized and controlled set, like how "Gb" is "GOLD biosample" (e.g., https://identifiers.org/gold:Gb0110680) and "Gs" is "GOLD study" (e.g., [https://identifiers.org/gold:Gs0103573](https://identifiers.org/gold:Gs0103573

@dwinston
dwinston / nmdc-schema-v3.2.0-v6.0.3.src.diff
Created August 12, 2022 14:29
<github.com:microbiomedata/nmdc-schema>: git diff v3.2.0 v6.0.3 -- src/schema/*
diff --git a/src/schema/basic_slots.yaml b/src/schema/basic_slots.yaml
index 17c8bf3..1fa4bda 100644
--- a/src/schema/basic_slots.yaml
+++ b/src/schema/basic_slots.yaml
@@ -29,7 +29,7 @@ slots:
description: >-
A unique identifier for a thing.
Must be either a CURIE shorthand for a URI or a complete URI
- #required: false # for now we setting this to false until we develop an id template
+ #required: false # for now we are setting this to false until we develop an id template