Register feature barcodes from Benchling

# pip install git+https://github.com/laminlabs/sentseqdb.git
!lamin init --storage "./test-sentseqdb" --modules bionty,sentseqdb
 initialized lamindb: testuser1/test-sentseqdb
import lamindb as ln
import sentseqdb as sq
from sentseqdb.benchling import BenchlingConnector
 connected lamindb: testuser1/test-sentseqdb

Initialize the BenchlingConnector

from benchling_sdk.benchling import Benchling
from benchling_sdk.auth.client_credentials_oauth2 import ClientCredentialsOAuth2
import os

# create a benchling object
benchling = Benchling(
    url="https://navatx.benchling.com/",
    auth_method=ClientCredentialsOAuth2(
        client_id=os.environ["BENCHLING_CLIENT_ID"],
        client_secret=os.environ["BENCHLING_CLIENT_SECRET"],
    ),
)
connector = BenchlingConnector(benchling)

Register an ADTBarcodes record in LaminDB

sq.ADTBarcodes
ADTBarcodes
  Simple fields
    .uid: CharField
    .name: CharField
    .concentration: FloatField
    .clone: CharField
    .species_reactivity: CharField
    .payload_sentseq_align: CharField
    .updated_at: DateTimeField
  Relational fields
    .space: Space
    .artifacts: Artifact
    .feature_sets: Schema
  Sentseqdb fields
    .tissuepool: sentseqdb.TissuePool
    .adtpool: sentseqdb.ADTPool
# Benchling id of a record
uid = "seq_oigcgwiR"
benchling_record = connector.get(uid, sq.ADTBarcodes)
benchling_record
DnaOligo(annotations=[], api_url='https://navatx.benchling.com/api/v2/dna-oligos/seq_oigcgwiR', bases='CTCCTACCTAAACTG', custom_notation=None, custom_notation_name=None, helm='RNA1{d(C)p.d(T)p.d(C)p.d(C)p.d(T)p.d(A)p.d(C)p.d(C)p.d(T)p.d(A)p.d(A)p.d(A)p.d(C)p.d(T)p.d(G)}$$$$V2.0', aliases=[], archive_record=None, created_at=datetime.datetime(2023, 10, 27, 17, 44, 54, 210716, tzinfo=tzutc()), creator=UserSummary(handle='bmead', id='ent_hbb0xuLf', name='', additional_properties={}), custom_fields=CustomFields(additional_properties={}), entity_registry_id='ADT042', fields=Fields(additional_properties={'Clone': Field(display_value='Rabbit IgG control', is_multi=False, text_value='Rabbit IgG control', type=<FieldType.TEXT: 'text'>, unit=<benchling_api_client.v2.types.Unset object at 0x7fe3139cfa30>, value='Rabbit IgG control', additional_properties={}), 'Concentration': Field(display_value='', is_multi=False, text_value='', type=<FieldType.FLOAT: 'float'>, unit=None, value=None, additional_properties={}), 'Payload [SENTseq align]': Field(display_value=None, is_multi=False, text_value=None, type=<FieldType.DROPDOWN: 'dropdown'>, unit=<benchling_api_client.v2.types.Unset object at 0x7fe3139cfa30>, value=None, additional_properties={}), 'Species reactivity': Field(display_value='None', is_multi=False, text_value='None', type=<FieldType.DROPDOWN: 'dropdown'>, unit=<benchling_api_client.v2.types.Unset object at 0x7fe3139cfa30>, value='sfso_N2OJeFSS', additional_properties={})}), folder_id='lib_9e5rHQvJ', id='seq_oigcgwiR', length=15, modified_at=datetime.datetime(2023, 10, 27, 17, 47, 42, 646975, tzinfo=tzutc()), name='aVHH-isotype', nucleotide_type=<OligoNucleotideType.DNA: 'DNA'>, registration_origin=RegistrationOrigin(origin_entry_id=None, registered_at=datetime.datetime(2023, 10, 27, 17, 47, 42, 646975, tzinfo=tzutc()), additional_properties={}), registry_id='src_8XcPMnUA', schema=SchemaSummary(id='ts_fkQwtf0q', name='ADT Barcodes', additional_properties={}), web_url='https://navatx.benchling.com/navatx_org/f/lib_6o0vJed2-registry/seq_oigcgwiR-avhh-isotype/edit', additional_properties={'authors': [{'handle': 'bmead', 'id': 'ent_hbb0xuLf', 'name': ''}]})
adt_barcode = connector.save_to_lamindb(benchling_record)
adt_barcode
ADTBarcodes(uid='seq_oigcgwiR', name='aVHH-isotype', clone='Rabbit IgG control', species_reactivity='sfso_N2OJeFSS', space_id=1)

Register an HTObarcodes record in LaminDB

sq.HTObarcodes
HTObarcodes
  Simple fields
    .uid: CharField
    .name: CharField
    .antibody: CharField
    .concentration: FloatField
    .clone: CharField
    .species_reactivity: CharField
    .updated_at: DateTimeField
  Relational fields
    .space: Space
    .artifacts: Artifact
    .feature_sets: Schema
  Sentseqdb fields
    .taggedsinglecellseqsample: sentseqdb.TaggedSingleCellSeqSample
uid = "seq_3zTG56qb"
benchling_record = connector.get(uid, sq.HTObarcodes)
hto_barcode = connector.save_to_lamindb(benchling_record)
hto_barcode
HTObarcodes(uid='seq_3zTG56qb', name='DEPRICATED Mouse HTO 1', antibody='H-2', concentration=1.0, clone='M1/42', species_reactivity='sfso_30Eey9Vx', space_id=1)