Create models.py from the Benchling schema¶
from benchling_sdk.benchling import Benchling
from benchling_sdk.auth.client_credentials_oauth2 import ClientCredentialsOAuth2
benchling = Benchling(
url="https://navatx.benchling.com/",
auth_method=ClientCredentialsOAuth2(client_id="***", client_secret="***"),
)
Show code cell content
dicts = []
for tables in benchling.schemas.list_entity_schemas():
for table in tables:
# skip archived tables
if table.archive_record is None:
table_dict = table.to_dict()
# remove archived fields
fields = [
field
for field in table_dict["fieldDefinitions"]
if field["archiveRecord"] is None
]
table_dict["fieldDefinitions"] = fields
dicts.append(table_dict)
dicts
[{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2022-08-22T11:34:08.528872+00:00',
'type': 'dna_oligo',
'prefix': 'BAR',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_WQes737H',
'isMulti': False,
'isRequired': False,
'name': 'Description'}],
'id': 'ts_1uiYEYn2',
'name': 'Barcode'},
{'constraint': {'fieldDefinitionNames': ['5th Lipid Component ID',
'Cholesterol ID',
'Ionizable Lipid ID',
'5th Lipid Component Mole %',
'Phospholipid Mole %',
'Phospholipid ID',
'Cholesterol Mole %',
'Targeting Epitope Identity',
'PEG Lipid ID',
'Ionizable Lipid Mole %',
'PEG Lipid Mole %'],
'hasUniqueResidues': False},
'containableType': 'ENTITY',
'modifiedAt': '2024-12-05T18:28:35.698769+00:00',
'type': 'custom_entity',
'prefix': 'LNP',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_5dLaZUrg',
'isMulti': False,
'isRequired': False,
'name': 'LNP Number'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_qxLhhT5f',
'isMulti': False,
'isRequired': False,
'name': 'Chemical Class'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_QgSqJqsp',
'isMulti': False,
'isRequired': False,
'name': 'Screen Number'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_OQFCU52d',
'isMulti': False,
'isRequired': False,
'name': 'Iteration Number'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_ElG5qbHB',
'isMulti': False,
'isRequired': False,
'name': 'Ionizable Lipid ID'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_32meslYt',
'isMulti': False,
'isRequired': False,
'name': 'Cholesterol ID'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_lZsszEEc',
'isMulti': False,
'isRequired': False,
'name': 'PEG Lipid ID'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_eOtamHGD',
'isMulti': False,
'isRequired': False,
'name': 'Phospholipid ID'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_7sKKs1V1',
'isMulti': False,
'isRequired': False,
'name': '5th Lipid Component ID'},
{'schemaId': 'ts_drSMKjvw',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_oWx1d15h',
'isMulti': False,
'isRequired': False,
'name': 'Targeting Epitope Identity'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_gisP4Avd',
'isMulti': False,
'isRequired': False,
'name': 'Ionizable Lipid Mole %'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_ZbEx2son',
'isMulti': False,
'isRequired': False,
'name': 'Cholesterol Mole %'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_STI7YlA5',
'isMulti': False,
'isRequired': False,
'name': 'PEG Lipid Mole %'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_eV4MRGXC',
'isMulti': False,
'isRequired': False,
'name': 'Phospholipid Mole %'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_tngXJEnJ',
'isMulti': False,
'isRequired': False,
'name': '5th Lipid Component Mole %'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_Zsw871e8',
'isMulti': False,
'isRequired': False,
'name': 'Lipid : RNA mass ratio'}],
'id': 'ts_knQGQg9N',
'name': 'LNP Identity'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-05-30T16:03:44.427042+00:00',
'type': 'custom_entity',
'prefix': 'LIB',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_SKDXt9OA',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_KTy77wRx',
'isMulti': True,
'isRequired': False,
'name': 'LNPs'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_BmSR74f5',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_WGrcKS53',
'isMulti': False,
'isRequired': False,
'name': 'Date (YYMMDD)'},
{'schemaId': 'ts_1uiYEYn2',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_1IQoFa8L',
'isMulti': True,
'isRequired': False,
'name': 'Naked Barcodes'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_LHef0Bpv',
'isMulti': False,
'isRequired': False,
'name': 'Description'},
{'schemaId': 'ts_knQGQg9N',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_l58hOeet',
'isMulti': True,
'isRequired': False,
'name': 'Legacy LNPs'}],
'id': 'ts_2NxifJ5J',
'name': 'LNP Library'},
{'constraint': None,
'containableType': 'NONE',
'modifiedAt': '2024-09-06T17:40:57.211047+00:00',
'type': 'custom_entity',
'prefix': 'ST',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'text',
'archiveRecord': None,
'id': 'tsf_I6koD8qr',
'isMulti': False,
'isRequired': True,
'name': 'Date (YYMMDD)'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_kUR4hOHk',
'isMulti': False,
'isRequired': False,
'name': 'Description'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_n90Kp89N',
'isMulti': False,
'isRequired': False,
'name': 'Total Animals'},
{'dropdownId': 'sfs_Yky86aXE',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_FOZssOE9',
'isMulti': False,
'isRequired': False,
'name': 'Study Type'},
{'dropdownId': 'sfs_7bYAqcM2',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_NN2nj1BD',
'isMulti': False,
'isRequired': False,
'name': 'Study Site'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_MDQyvqGa',
'isMulti': False,
'isRequired': False,
'name': 'Sharepoint Directory'}],
'id': 'ts_SxJbODKl',
'name': 'Study'},
{'constraint': None,
'containableType': 'NONE',
'modifiedAt': '2024-10-03T14:13:38.976593+00:00',
'type': 'custom_entity',
'prefix': 'GP',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_nKLMSg3c',
'isMulti': False,
'isRequired': True,
'name': 'Study'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_JdS0bH2Y',
'isMulti': False,
'isRequired': False,
'name': 'Group number'},
{'schemaId': 'ts_SKDXt9OA',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_A5NBDSrW',
'isMulti': False,
'isRequired': False,
'name': 'Treatment (LNP)'},
{'schemaId': 'ts_2NxifJ5J',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_WTE1Xn9o',
'isMulti': False,
'isRequired': False,
'name': 'Treatment (Library)'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_bSLw4gCf',
'isMulti': False,
'isRequired': False,
'name': 'Quantity (n)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_shT4IaKC',
'isMulti': False,
'isRequired': True,
'name': 'Dose (mg/kg)'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_oMCQY1Io',
'isMulti': False,
'isRequired': False,
'name': 'Description'}],
'id': 'ts_dxeqbvub',
'name': 'Group'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-09-17T18:04:52.397327+00:00',
'type': 'custom_entity',
'prefix': 'M',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_dxeqbvub',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_XW0Ilagd',
'isMulti': False,
'isRequired': False,
'name': 'Group'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_cFHUb9Rm',
'isMulti': False,
'isRequired': False,
'name': 'Animal Replicate Number'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_nOk72xZ7',
'isMulti': True,
'isRequired': False,
'name': 'Study'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_u43PGpr3',
'isMulti': False,
'isRequired': False,
'name': 'Termination Date'},
{'dropdownId': 'sfs_gYd55ha4',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_tgqJFpgm',
'isMulti': False,
'isRequired': False,
'name': 'Strain'},
{'dropdownId': 'sfs_W7V54wft',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_JgNKStsL',
'isMulti': False,
'isRequired': False,
'name': 'Sex'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_kKtzZy04',
'isMulti': False,
'isRequired': False,
'name': 'DOB'},
{'dropdownId': 'sfs_7bYAqcM2',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_2Jav8g1B',
'isMulti': False,
'isRequired': False,
'name': 'Study Site'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_dBLceQrT',
'isMulti': False,
'isRequired': False,
'name': 'Ear Tag'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_JVcycT9G',
'isMulti': False,
'isRequired': False,
'name': 'Notes'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_juqDCY0P',
'isMulti': False,
'isRequired': False,
'name': 'Timepoint (h)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_GgGw7j9X',
'isMulti': False,
'isRequired': False,
'name': 'Timepoint (days)'}],
'id': 'ts_AAtzcSml',
'name': 'Mouse'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-09T15:00:51.545397+00:00',
'type': 'custom_entity',
'prefix': 'Tissue',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_e5PD05Iv',
'isMulti': False,
'isRequired': False,
'name': 'Animal'},
{'dropdownId': 'sfs_Gb5O6dZg',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_ZvcnZzro',
'isMulti': False,
'isRequired': False,
'name': 'Tissue Type'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_UdcAb7rn',
'isMulti': False,
'isRequired': False,
'name': 'Tissue Replicate Number'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_DnLIQUel',
'isMulti': False,
'isRequired': False,
'name': 'Collection Date'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_FE8J0piP',
'isMulti': False,
'isRequired': False,
'name': 'Comment'}],
'id': 'ts_gAH1FB2U',
'name': 'Tissue'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-21T13:24:01.192987+00:00',
'type': 'rna_sequence',
'prefix': 'MRNA',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_SJvMf2LB',
'isMulti': False,
'isRequired': False,
'name': 'Description'},
{'schemaId': 'ts_gou22D2s',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_juk02m60',
'isMulti': False,
'isRequired': False,
'name': 'Plasmid'},
{'dropdownId': 'sfs_kD8D1unh',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_dyPRor1O',
'isMulti': False,
'isRequired': False,
'name': 'CleanCap'},
{'schemaId': 'ts_yBmcsYkz',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_z0XhlJ8r',
'isMulti': False,
'isRequired': False,
'name': "5' UTR"},
{'schemaId': 'ts_lcalxsB0',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_ja5D40q3',
'isMulti': False,
'isRequired': False,
'name': "3' UTR"},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_NK7dzAkF',
'isMulti': False,
'isRequired': False,
'name': 'Notes'}],
'id': 'ts_DPw9EeOA',
'name': 'mRNA'},
{'constraint': {'fieldDefinitionNames': [], 'hasUniqueResidues': False},
'containableType': 'ENTITY',
'modifiedAt': '2024-10-23T13:32:24.738967+00:00',
'type': 'molecule',
'prefix': 'NAVA-',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'dropdownId': 'sfs_uKD3uKsW',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_9QDmjgoS',
'isMulti': False,
'isRequired': False,
'name': 'Type'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_0SFaMhRD',
'isMulti': False,
'isRequired': False,
'name': 'Number of Ionizable Amines'},
{'type': 'blob_link',
'archiveRecord': None,
'id': 'tsf_i3UdbnhL',
'isMulti': True,
'isRequired': False,
'name': 'Structure'},
{'dropdownId': 'sfs_N0jBeprk',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_DeVI9auF',
'isMulti': False,
'isRequired': False,
'name': 'Has this lipid been previously screened?'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_PgFOgMJC',
'isMulti': False,
'isRequired': False,
'name': 'Design Series'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_gMs9FX8g',
'isMulti': False,
'isRequired': False,
'name': 'Design Set'}],
'id': 'ts_5tdksa9q',
'name': 'Compound'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-06-11T15:01:20.946128+00:00',
'type': 'custom_entity',
'prefix': 'SC',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_gAH1FB2U',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_CzPRw6X4',
'isMulti': True,
'isRequired': False,
'name': 'Tissue'},
{'schemaId': 'ts_oC3bbUz0',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_EncUzkW8',
'isMulti': False,
'isRequired': True,
'name': 'HTO used'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_qDN0j49U',
'isMulti': False,
'isRequired': False,
'name': 'Cell Count from Rhapsody'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_67nLzbzx',
'isMulti': False,
'isRequired': False,
'name': 'Viability'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_7rWL3xmM',
'isMulti': False,
'isRequired': False,
'name': 'Actual Cell Count'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_ZMk520Wm',
'isMulti': False,
'isRequired': False,
'name': 'Amount to Pool'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_6MCkoCjs',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'schemaId': 'ts_dxeqbvub',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_L9lTp6cu',
'isMulti': True,
'isRequired': False,
'name': 'Group'}],
'id': 'ts_eVzQXeki',
'name': 'Tagged Single Cell Seq Sample'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-06-11T15:03:33.144533+00:00',
'type': 'custom_entity',
'prefix': 'TPool',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_eVzQXeki',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_62e0A7mx',
'isMulti': True,
'isRequired': False,
'name': 'Tagged Single Cell Tissues'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_2t9xW2FP',
'isMulti': False,
'isRequired': False,
'name': 'Date'},
{'schemaId': 'ts_fkQwtf0q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_xg5X0i4s',
'isMulti': True,
'isRequired': False,
'name': 'Individual ADTs used'},
{'schemaId': 'ts_ZGYsOghk',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_grJ9edv2',
'isMulti': True,
'isRequired': False,
'name': 'ADT pools used'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_JiJU1cvR',
'isMulti': False,
'isRequired': False,
'name': 'Ratio to pool'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_QqRI6EhO',
'isMulti': False,
'isRequired': False,
'name': 'Cell Count from Rhapsody'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_MD3E1p9D',
'isMulti': False,
'isRequired': False,
'name': 'Viability'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_bjf0oyPJ',
'isMulti': False,
'isRequired': False,
'name': 'Actual Cell count'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_AxqBDEZt',
'isMulti': False,
'isRequired': False,
'name': 'Amount to pool'}],
'id': 'ts_W3z7lr0x',
'name': 'Tissue Pool'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-08T14:23:54.768198+00:00',
'type': 'custom_entity',
'prefix': 'P',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_dxeqbvub',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_JloQVf41',
'isMulti': False,
'isRequired': False,
'name': 'Group'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_bW4tcIS6',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_Hu7MlJs9',
'isMulti': False,
'isRequired': False,
'name': 'Experimental Number'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_UTyZovGM',
'isMulti': False,
'isRequired': False,
'name': 'Labcorp Number'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_y62rN7k2',
'isMulti': False,
'isRequired': False,
'name': 'Termination Date'},
{'dropdownId': 'sfs_gYd55ha4',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_ZY1FG0OG',
'isMulti': False,
'isRequired': False,
'name': 'Strain'},
{'dropdownId': 'sfs_km12N2Dm',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_fu3XeNKb',
'isMulti': False,
'isRequired': False,
'name': 'Species'},
{'dropdownId': 'sfs_W7V54wft',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_QSgwgETp',
'isMulti': False,
'isRequired': False,
'name': 'Sex'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_vEpody2C',
'isMulti': False,
'isRequired': False,
'name': 'DOB'}],
'id': 'ts_dIZFTVxd',
'name': 'Primate'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-11-19T16:21:34.715899+00:00',
'type': 'dna_oligo',
'prefix': 'ADT',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_K2VXu9Va',
'isMulti': False,
'isRequired': False,
'name': 'Concentration'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_WMfO8rIL',
'isMulti': False,
'isRequired': False,
'name': 'Clone'},
{'dropdownId': 'sfs_ZpWZgwRj',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_IrB8L6Kq',
'isMulti': False,
'isRequired': False,
'name': 'Species reactivity'},
{'dropdownId': 'sfs_N0jBeprk',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_k8sXILnM',
'isMulti': False,
'isRequired': False,
'name': 'Payload [SENTseq align]'}],
'id': 'ts_fkQwtf0q',
'name': 'ADT Barcodes'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2023-02-14T17:43:54.682364+00:00',
'type': 'dna_oligo',
'prefix': 'HTO',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'text',
'archiveRecord': None,
'id': 'tsf_whPHe483',
'isMulti': False,
'isRequired': False,
'name': 'Antibody'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_3OYP67zN',
'isMulti': False,
'isRequired': False,
'name': 'Concentration'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_4zgqcpn0',
'isMulti': False,
'isRequired': False,
'name': 'Clone'},
{'dropdownId': 'sfs_ZpWZgwRj',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_NAENDxCl',
'isMulti': False,
'isRequired': False,
'name': 'Species reactivity'}],
'id': 'ts_oC3bbUz0',
'name': 'HTO barcodes'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-05-07T14:59:04.126599+00:00',
'type': 'dna_oligo',
'prefix': 'INDEX',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'text',
'archiveRecord': None,
'id': 'tsf_Lv2BpHLQ',
'isMulti': False,
'isRequired': False,
'name': 'Index Name'}],
'id': 'ts_Lap0ZOVS',
'name': 'Index for sequencing'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2023-02-14T17:09:54.414672+00:00',
'type': 'custom_entity',
'prefix': 'ADTP',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_fkQwtf0q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_RGMUYghW',
'isMulti': True,
'isRequired': False,
'name': 'ADT antibodies'}],
'id': 'ts_ZGYsOghk',
'name': 'ADT Pool'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-08-21T01:35:17.985221+00:00',
'type': 'custom_entity',
'prefix': 'SEQ',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_DGG83G6e',
'isMulti': True,
'isRequired': True,
'name': 'Sample'},
{'dropdownId': 'sfs_fAY4pMHw',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_zjP2Owdi',
'isMulti': False,
'isRequired': True,
'name': 'Type of library'},
{'schemaId': 'ts_PsAqwRwQ',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_axWBtqbW',
'isMulti': False,
'isRequired': False,
'name': 'Index Set'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_srTfnhdT',
'isMulti': False,
'isRequired': False,
'name': 'Concentration (ng/ul)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_8tfGeLnl',
'isMulti': False,
'isRequired': False,
'name': 'Size (bp)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_7ng97sWw',
'isMulti': False,
'isRequired': False,
'name': 'Molarity (nM)'},
{'dropdownId': 'sfs_vTHvkHvE',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_Pm1LzAqq',
'isMulti': False,
'isRequired': False,
'name': '[Sort and Seq Only] Sample Type'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_26IygshO',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'dropdownId': 'sfs_N0jBeprk',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_6fPFyNzY',
'isMulti': False,
'isRequired': False,
'name': 'Size Selected'}],
'id': 'ts_7g7TEkdV',
'name': 'Sequencing Library'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-05-07T14:59:04.126599+00:00',
'type': 'custom_entity',
'prefix': 'IDXST',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'dropdownId': 'sfs_H3QISjyb',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_S4nn4FK9',
'isMulti': False,
'isRequired': False,
'name': 'Index Type'},
{'schemaId': 'ts_Lap0ZOVS',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_24ADopY2',
'isMulti': False,
'isRequired': False,
'name': 'Index Barcode'},
{'schemaId': 'ts_Lap0ZOVS',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_LF2JyWFm',
'isMulti': False,
'isRequired': False,
'name': 'i7 Index'},
{'schemaId': 'ts_Lap0ZOVS',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_4ZUkdjjQ',
'isMulti': False,
'isRequired': False,
'name': 'i5 Index Type 1'},
{'schemaId': 'ts_Lap0ZOVS',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_OOW0Whx1',
'isMulti': False,
'isRequired': False,
'name': 'i5 Index Type 2'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_pCkSKptk',
'isMulti': False,
'isRequired': False,
'name': 'Index Barcode Sequence'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_onRLeubn',
'isMulti': False,
'isRequired': False,
'name': 'i7 Sequence'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_ua3DUl94',
'isMulti': False,
'isRequired': False,
'name': 'i5 Type 1 Sequence'}],
'id': 'ts_PsAqwRwQ',
'name': 'NGS - Index Set'},
{'constraint': None,
'containableType': 'NONE',
'modifiedAt': '2024-11-23T19:29:43.423869+00:00',
'type': 'custom_entity',
'prefix': 'AnalysisRun',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'text',
'archiveRecord': None,
'id': 'tsf_eUCM8ulc',
'isMulti': False,
'isRequired': True,
'name': 'Pipeline Name'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_UGA4h5Jz',
'isMulti': False,
'isRequired': False,
'name': 'Pipeline Version'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_h48ZfzLl',
'isMulti': False,
'isRequired': False,
'name': 'Assay Run ID'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_3gohWFWM',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_4qGZC7jS',
'isMulti': False,
'isRequired': True,
'name': 'Seqera Workflow ID'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_BC13yPrz',
'isMulti': False,
'isRequired': False,
'name': 'Run Name'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_IZCOqbUa',
'isMulti': False,
'isRequired': False,
'name': 'User Name'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_DNUsv6LK',
'isMulti': False,
'isRequired': False,
'name': 'Success'},
{'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'integer',
'archiveRecord': None,
'id': 'tsf_uDG40xI3',
'isMulti': False,
'isRequired': False,
'name': 'Exit Status'},
{'type': 'datetime',
'archiveRecord': None,
'id': 'tsf_EAe71p29',
'isMulti': False,
'isRequired': False,
'name': 'Complete'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_5Cs0pOVb',
'isMulti': False,
'isRequired': False,
'name': 'Duration'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_BiieqHGI',
'isMulti': False,
'isRequired': False,
'name': 'Error Message'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_smj2kl8p',
'isMulti': False,
'isRequired': False,
'name': 'Commit ID'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_eImoljwZ',
'isMulti': False,
'isRequired': False,
'name': 'Revision'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_Myanc9kw',
'isMulti': False,
'isRequired': False,
'name': 'Stub Run'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_EtNHGCxi',
'isMulti': False,
'isRequired': False,
'name': 'Nextflow Version'}],
'id': 'ts_Ov5Ssrvp',
'name': 'Analysis Run'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-08-06T20:38:49.088745+00:00',
'type': 'custom_entity',
'prefix': 'SEQPOOL',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_7g7TEkdV',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_XliPhqGN',
'isMulti': True,
'isRequired': False,
'name': 'Sequencing libraries'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_57HPHRDK',
'isMulti': False,
'isRequired': False,
'name': 'Concentration (ng/ul)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_frbHMDsO',
'isMulti': False,
'isRequired': False,
'name': 'Size (bp)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_jgHo39GX',
'isMulti': False,
'isRequired': False,
'name': 'Concentration (nM)'},
{'dropdownId': 'sfs_Yi7ODqam',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_VwCjUsoI',
'isMulti': False,
'isRequired': False,
'name': 'Flowcell Lanes'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_ZWXrKwZC',
'isMulti': True,
'isRequired': False,
'name': 'Study'}],
'id': 'ts_78vdlwZv',
'name': 'Pooled Sequencing Libraries'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-22T16:49:33.889857+00:00',
'type': 'custom_entity',
'prefix': 'CLSAM',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_Dakn3Z8X',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_row1XyQO',
'isMulti': False,
'isRequired': True,
'name': 'Parent Cell Line'},
{'schemaId': 'ts_dxeqbvub',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_6ukjKkbw',
'isMulti': False,
'isRequired': False,
'name': 'Group'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_nNC6koiz',
'isMulti': False,
'isRequired': False,
'name': 'Date Generated'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_VngBcF5M',
'isMulti': False,
'isRequired': False,
'name': 'Collection Date'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_bKFlcxLM',
'isMulti': False,
'isRequired': False,
'name': 'Legacy Parent Cell Type (deprecated)'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_x0zgpd8B',
'isMulti': False,
'isRequired': False,
'name': 'Legacy Genotype (deprecated)'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_NJExlAcX',
'isMulti': False,
'isRequired': False,
'name': 'Legacy Selection (deprecated)'},
{'dropdownId': 'sfs_km12N2Dm',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_RDzv5GET',
'isMulti': False,
'isRequired': False,
'name': 'Legacy Species (deprecated)'}],
'id': 'ts_sAwl22iX',
'name': 'Cell Line Sample'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-18T17:18:04.083135+00:00',
'type': 'custom_entity',
'prefix': 'LNP_Form',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_knQGQg9N',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_TIjKtffo',
'isMulti': False,
'isRequired': True,
'name': 'LNP Identity'},
{'schemaId': 'ts_mFCULlud',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_iyC1PwBT',
'isMulti': False,
'isRequired': False,
'name': 'Formulation Process'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_jZsYFV5D',
'isMulti': False,
'isRequired': False,
'name': 'Ionizable Lipid Lot'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_PBkqWNqY',
'isMulti': False,
'isRequired': False,
'name': 'Cholesterol Lot'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_tlPwxjdb',
'isMulti': False,
'isRequired': False,
'name': 'PEG Lot'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_k9OK9At3',
'isMulti': False,
'isRequired': False,
'name': 'Phospholipid Lot'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_6zLSCuMB',
'isMulti': False,
'isRequired': False,
'name': '5th Lipid Component Lot'},
{'schemaId': 'ts_M3LvHMYt',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_bJx0svJa',
'isMulti': False,
'isRequired': False,
'name': 'Targeting Epitope Lot'},
{'schemaId': 'ts_Ir94d6f6',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_iVuqBIAq',
'isMulti': False,
'isRequired': True,
'name': 'mRNA Lot'},
{'schemaId': 'ts_5XM82jI0',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_xzWMONKE',
'isMulti': False,
'isRequired': False,
'name': 'sgRNA Lot'},
{'schemaId': 'ts_1uiYEYn2',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_K3z0L5HJ',
'isMulti': False,
'isRequired': False,
'name': 'Barcode'},
{'schemaId': 'ts_SxJbODKl',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_drC8vlal',
'isMulti': False,
'isRequired': False,
'name': 'Study'},
{'type': 'long_text',
'archiveRecord': None,
'id': 'tsf_eoShmc6B',
'isMulti': False,
'isRequired': False,
'name': 'Notes'}],
'id': 'ts_SKDXt9OA',
'name': 'LNP Formulation'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-09-05T13:57:06.354217+00:00',
'type': 'molecule',
'prefix': 'CMPD_LOT',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_sv3U7SiL',
'isMulti': False,
'isRequired': True,
'name': 'Compound'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_vs83rqP8',
'isMulti': False,
'isRequired': False,
'name': 'Vendor'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_jMZLmCcX',
'isMulti': False,
'isRequired': True,
'name': 'Formula Mass'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_FEWw3Hqp',
'isMulti': False,
'isRequired': False,
'name': 'Salt'},
{'type': 'blob_link',
'archiveRecord': None,
'id': 'tsf_wKn73jaP',
'isMulti': True,
'isRequired': False,
'name': 'Initial NMR'},
{'type': 'blob_link',
'archiveRecord': None,
'id': 'tsf_S2iZyxOS',
'isMulti': True,
'isRequired': False,
'name': 'Initial LCMS'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_55c9CxmY',
'isMulti': False,
'isRequired': False,
'name': 'Purity (%)'},
{'decimalPrecision': None,
'legalTextDropdownId': None,
'numericMax': None,
'numericMin': None,
'unit': None,
'type': 'float',
'archiveRecord': None,
'id': 'tsf_LNDwM0eC',
'isMulti': False,
'isRequired': False,
'name': 'Total Synthesis Amount (mg)'},
{'type': 'entry_link',
'archiveRecord': None,
'id': 'tsf_8zMDyhhW',
'isMulti': True,
'isRequired': False,
'name': 'Reaction Path'},
{'type': 'blob_link',
'archiveRecord': None,
'id': 'tsf_THKeZLET',
'isMulti': True,
'isRequired': False,
'name': 'additional attachments'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_izuD017N',
'isMulti': False,
'isRequired': False,
'name': 'Vendor and SKU / Catalog #'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_BjdWiRlZ',
'isMulti': False,
'isRequired': False,
'name': 'Vendor Lot'}],
'id': 'ts_lnlBaKVy',
'name': 'Compound Lot'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-31T17:49:25.018763+00:00',
'type': 'custom_entity',
'prefix': 'sgRNA_LOT',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_czIy2Vjy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_CM4PhWAd',
'isMulti': False,
'isRequired': False,
'name': 'sgRNA'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_camaLxw9',
'isMulti': False,
'isRequired': True,
'name': 'Vendor'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_9acIcMDt',
'isMulti': False,
'isRequired': True,
'name': 'SKU / Catalog #'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_GUoXUJTK',
'isMulti': False,
'isRequired': False,
'name': 'Lot #'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_bv4IzYEl',
'isMulti': False,
'isRequired': False,
'name': 'Notes'}],
'id': 'ts_5XM82jI0',
'name': 'sgRNA Lot'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-09-28T13:21:22.212852+00:00',
'type': 'custom_entity',
'prefix': 'MRNA_LOT',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_8A0aURYn',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_P9KSgato',
'isMulti': False,
'isRequired': False,
'name': 'Plasmid Lot'},
{'schemaId': 'ts_gou22D2s',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_wiDft2x1',
'isMulti': False,
'isRequired': False,
'name': 'Plasmid'},
{'type': 'date',
'archiveRecord': None,
'id': 'tsf_qlK3274M',
'isMulti': False,
'isRequired': False,
'name': 'Manufacture Date'},
{'schemaId': 'ts_DPw9EeOA',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_alqi8J2F',
'isMulti': False,
'isRequired': True,
'name': 'mRNA'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_RGtPj5fl',
'isMulti': False,
'isRequired': False,
'name': 'Vendor'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_39dxMhXq',
'isMulti': False,
'isRequired': False,
'name': 'Vendor Lot'}],
'id': 'ts_Ir94d6f6',
'name': 'mRNA lot'},
{'constraint': None,
'containableType': 'NONE',
'modifiedAt': '2024-12-20T17:17:50.879949+00:00',
'type': 'custom_entity',
'prefix': 'CL',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'type': 'text',
'archiveRecord': None,
'id': 'tsf_evASvWYk',
'isMulti': False,
'isRequired': False,
'name': 'Description'},
{'schemaId': 'ts_Dakn3Z8X',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_7Hnz9oYk',
'isMulti': False,
'isRequired': False,
'name': 'Parent Cell Line'},
{'dropdownId': 'sfs_km12N2Dm',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_CfeR0nE9',
'isMulti': False,
'isRequired': False,
'name': 'Species'},
{'dropdownId': 'sfs_Gb5O6dZg',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_8m7w7mG7',
'isMulti': False,
'isRequired': False,
'name': 'Tissue type'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_DnEG7E5l',
'isMulti': False,
'isRequired': False,
'name': 'Donor ID'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_I1Ixbb2z',
'isMulti': False,
'isRequired': False,
'name': 'Vendor'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_BKyVbVK9',
'isMulti': False,
'isRequired': False,
'name': 'SKU'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_0gPFuIhv',
'isMulti': False,
'isRequired': False,
'name': 'Lot Number'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_FW29m82c',
'isMulti': False,
'isRequired': False,
'name': 'Gender'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_QIT9UxZt',
'isMulti': False,
'isRequired': False,
'name': 'Age'},
{'type': 'text',
'archiveRecord': None,
'id': 'tsf_rFmL5jpZ',
'isMulti': False,
'isRequired': False,
'name': 'Selection'}],
'id': 'ts_Dakn3Z8X',
'name': 'Parent Cell Line'},
{'constraint': None,
'containableType': 'NONE',
'modifiedAt': '2024-12-09T18:40:36.854993+00:00',
'type': 'custom_entity',
'prefix': 'T',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_fBarfSIv',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_plSazIIq',
'isMulti': False,
'isRequired': False,
'name': 'Antibody'},
{'schemaId': 'ts_5tdksa9q',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_qJd35eEI',
'isMulti': False,
'isRequired': False,
'name': 'Compound'},
{'schemaId': 'ts_L2DJaJx9',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_s8bwqMOf',
'isMulti': False,
'isRequired': False,
'name': 'Protein'},
{'dropdownId': 'sfs_Gb5O6dZg',
'type': 'dropdown',
'archiveRecord': None,
'id': 'tsf_HlrZzGuS',
'isMulti': True,
'isRequired': True,
'name': 'Targeted Tissue Type'},
{'schemaId': 'ts_jEsGNyak',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_KoKpsvZy',
'isMulti': False,
'isRequired': True,
'name': 'Conjugation Functional Group'},
{'schemaId': 'ts_u6w73rdb',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_3aj5p77n',
'isMulti': False,
'isRequired': True,
'name': 'Conjugation Process'}],
'id': 'ts_drSMKjvw',
'name': 'Targeting Epitope Identity'},
{'constraint': None,
'containableType': 'ENTITY',
'modifiedAt': '2024-10-14T11:41:59.357729+00:00',
'type': 'custom_entity',
'prefix': 'TE_LOT',
'registryId': 'src_8XcPMnUA',
'archiveRecord': None,
'fieldDefinitions': [{'schemaId': 'ts_drSMKjvw',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_ixnFHOJg',
'isMulti': False,
'isRequired': False,
'name': 'Targeting Epitope Identity'},
{'schemaId': 'ts_MnrO7Dkt',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_iqkZJbOq',
'isMulti': False,
'isRequired': False,
'name': 'Antibody Lot'},
{'schemaId': 'ts_lnlBaKVy',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_7sdMftAw',
'isMulti': False,
'isRequired': False,
'name': 'Compound Lot'},
{'schemaId': 'ts_BKGW6eAL',
'type': 'entity_link',
'archiveRecord': None,
'id': 'tsf_t5vtpQQe',
'isMulti': False,
'isRequired': False,
'name': 'Protein Lot'}],
'id': 'ts_M3LvHMYt',
'name': 'Targeting Epitope Lot'}]
from sentseqdb.benchling import create_models_py
models_py_content = create_models_py(benchling)
! Table Tissue: Manually create a ForeignKey 'animal' field related to 'Animal'
! Table SequencingLibrary: Manually create a ManyToManyField 'sample' field related to 'TissuePool'
# Print or save the generated models.py content
print(models_py_content)
# auto-generated models.py file
import bionty.models as bt_models
from django.db import models
from lamindb.models import Artifact, CanCurate, FeatureSet, Record, TracksUpdates
from lamindb.base.fields import DateField, FloatField, IntegerField, TextField, CharField, ForeignKey, OneToOneField
class Barcode(Record, CanCurate, TracksUpdates):
"""Barcode.
- schema_id: ts_1uiYEYn2
- schema_type: dna_oligo
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_1uiYEYn2"
_benchling_schema_name = "Barcode"
_benchling_schema_type = "dna_oligo"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
description = TextField(null=True)
"""A text field."""
class LNPIdentity(Record, CanCurate, TracksUpdates):
"""LNP Identity.
- schema_id: ts_knQGQg9N
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_knQGQg9N"
_benchling_schema_name = "LNP Identity"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
lnp_number = IntegerField(null=True)
"""A integer field."""
chemical_class = CharField(null=True)
"""A char field."""
screen_number = IntegerField(null=True)
"""A integer field."""
iteration_number = IntegerField(null=True)
"""A integer field."""
ionizable_lipid_id = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
cholesterol_id = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
peg_lipid_id = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
phospholipid_id = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
n5th_lipid_component_id = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
targeting_epitope_identity = ForeignKey("TargetingEpitopeIdentity", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.TargetingEpitopeIdentity`."""
ionizable_lipid_mole_ = FloatField(null=True)
"""A float field."""
cholesterol_mole_ = FloatField(null=True)
"""A float field."""
peg_lipid_mole_ = FloatField(null=True)
"""A float field."""
phospholipid_mole_ = FloatField(null=True)
"""A float field."""
n5th_lipid_component_mole_ = FloatField(null=True)
"""A float field."""
lipid_rna_mass_ratio = FloatField(null=True)
"""A float field."""
class LNPLibrary(Record, CanCurate, TracksUpdates):
"""LNP Library.
- schema_id: ts_2NxifJ5J
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_2NxifJ5J"
_benchling_schema_name = "LNP Library"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
lnps = models.ManyToManyField("LNPFormulation")
"""Many-to-many relationship to :class:`sentseqdb.LNPFormulation`."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
date_yymmdd = CharField(null=True)
"""A char field."""
naked_barcodes = models.ManyToManyField("Barcode")
"""Many-to-many relationship to :class:`sentseqdb.Barcode`."""
description = TextField(null=True)
"""A text field."""
legacy_lnps = models.ManyToManyField("LNPIdentity")
"""Many-to-many relationship to :class:`sentseqdb.LNPIdentity`."""
class Study(Record, CanCurate, TracksUpdates):
"""Study.
- schema_id: ts_SxJbODKl
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_SxJbODKl"
_benchling_schema_name = "Study"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
date_yymmdd = CharField()
"""A char field."""
description = TextField(null=True)
"""A text field."""
total_animals = IntegerField(null=True)
"""A integer field."""
study_type = CharField(null=True)
"""A char field."""
study_site = CharField(null=True)
"""A char field."""
sharepoint_directory = TextField(null=True)
"""A text field."""
artifacts = models.ManyToManyField(Artifact, related_name="studies")
"""Many-to-many relationship to Artifacts."""
class Group(Record, CanCurate, TracksUpdates):
"""Group.
- schema_id: ts_dxeqbvub
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_dxeqbvub"
_benchling_schema_name = "Group"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
study = ForeignKey("Study", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
group_number = IntegerField(null=True)
"""A integer field."""
treatment_lnp = ForeignKey("LNPFormulation", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.LNPFormulation`."""
treatment_library = ForeignKey("LNPLibrary", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.LNPLibrary`."""
quantity_n = IntegerField(null=True)
"""A integer field."""
dose_mgkg = FloatField()
"""A float field."""
description = TextField(null=True)
"""A text field."""
class Mouse(Record, CanCurate, TracksUpdates):
"""Mouse.
- schema_id: ts_AAtzcSml
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_AAtzcSml"
_benchling_schema_name = "Mouse"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
group = ForeignKey("Group", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Group`."""
animal_replicate_number = IntegerField(null=True)
"""A integer field."""
study = models.ManyToManyField("Study")
"""Many-to-many relationship to :class:`sentseqdb.Study`."""
termination_date = DateField(null=True)
"""A date field."""
strain = CharField(null=True)
"""A char field."""
sex = CharField(null=True)
"""A char field."""
dob = DateField(null=True)
"""A date field."""
study_site = CharField(null=True)
"""A char field."""
ear_tag = CharField(null=True)
"""A char field."""
notes = TextField(null=True)
"""A text field."""
timepoint_h = FloatField(null=True)
"""A float field."""
timepoint_days = FloatField(null=True)
"""A float field."""
class Tissue(Record, CanCurate, TracksUpdates):
"""Tissue.
- schema_id: ts_gAH1FB2U
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_gAH1FB2U"
_benchling_schema_name = "Tissue"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
bionty = OneToOneField(bt_models.Tissue, on_delete=models.PROTECT, null=True, related_name="sentseqdb_tissue")
"""OneToOne relationship to :class:`bionty.Tissue`."""
animal = ForeignKey("Animal", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Animal`."""
tissue_type = CharField(null=True)
"""A char field."""
tissue_replicate_number = IntegerField(null=True)
"""A integer field."""
collection_date = DateField(null=True)
"""A date field."""
comment = TextField(null=True)
"""A text field."""
class mRNA(Record, CanCurate, TracksUpdates):
"""mRNA.
- schema_id: ts_DPw9EeOA
- schema_type: rna_sequence
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_DPw9EeOA"
_benchling_schema_name = "mRNA"
_benchling_schema_type = "rna_sequence"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
description = TextField(null=True)
"""A text field."""
cleancap = CharField(null=True)
"""A char field."""
notes = CharField(null=True)
"""A char field."""
class Compound(Record, CanCurate, TracksUpdates):
"""Compound.
- schema_id: ts_5tdksa9q
- schema_type: molecule
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_5tdksa9q"
_benchling_schema_name = "Compound"
_benchling_schema_type = "molecule"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
type = CharField(null=True)
"""A char field."""
number_of_ionizable_amines = IntegerField(null=True)
"""A integer field."""
structure = TextField(null=True)
"""A text field."""
has_this_lipid_been_previously_screened = CharField(null=True)
"""A char field."""
design_series = CharField(null=True)
"""A char field."""
design_set = CharField(null=True)
"""A char field."""
class TaggedSingleCellSeqSample(Record, CanCurate, TracksUpdates):
"""Tagged Single Cell Seq Sample.
- schema_id: ts_eVzQXeki
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_eVzQXeki"
_benchling_schema_name = "Tagged Single Cell Seq Sample"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
tissue = models.ManyToManyField("Tissue")
"""Many-to-many relationship to :class:`sentseqdb.Tissue`."""
hto_used = ForeignKey("HTObarcodes", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.HTObarcodes`."""
cell_count_from_rhapsody = FloatField(null=True)
"""A float field."""
viability = FloatField(null=True)
"""A float field."""
actual_cell_count = FloatField(null=True)
"""A float field."""
amount_to_pool = FloatField(null=True)
"""A float field."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
group = models.ManyToManyField("Group")
"""Many-to-many relationship to :class:`sentseqdb.Group`."""
class TissuePool(Record, CanCurate, TracksUpdates):
"""Tissue Pool.
- schema_id: ts_W3z7lr0x
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_W3z7lr0x"
_benchling_schema_name = "Tissue Pool"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
tagged_single_cell_tissues = models.ManyToManyField("TaggedSingleCellSeqSample")
"""Many-to-many relationship to :class:`sentseqdb.TaggedSingleCellSeqSample`."""
date = DateField(null=True)
"""A date field."""
individual_adts_used = models.ManyToManyField("ADTBarcodes")
"""Many-to-many relationship to :class:`sentseqdb.ADTBarcodes`."""
adt_pools_used = models.ManyToManyField("ADTPool")
"""Many-to-many relationship to :class:`sentseqdb.ADTPool`."""
ratio_to_pool = FloatField(null=True)
"""A float field."""
cell_count_from_rhapsody = FloatField(null=True)
"""A float field."""
viability = FloatField(null=True)
"""A float field."""
actual_cell_count = FloatField(null=True)
"""A float field."""
amount_to_pool = FloatField(null=True)
"""A float field."""
class Primate(Record, CanCurate, TracksUpdates):
"""Primate.
- schema_id: ts_dIZFTVxd
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_dIZFTVxd"
_benchling_schema_name = "Primate"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
group = ForeignKey("Group", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Group`."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
experimental_number = CharField(null=True)
"""A char field."""
labcorp_number = CharField(null=True)
"""A char field."""
termination_date = DateField(null=True)
"""A date field."""
strain = CharField(null=True)
"""A char field."""
species = CharField(null=True)
"""A char field."""
sex = CharField(null=True)
"""A char field."""
dob = DateField(null=True)
"""A date field."""
class ADTBarcodes(Record, CanCurate, TracksUpdates):
"""ADT Barcodes.
- schema_id: ts_fkQwtf0q
- schema_type: dna_oligo
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_fkQwtf0q"
_benchling_schema_name = "ADT Barcodes"
_benchling_schema_type = "dna_oligo"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
concentration = FloatField(null=True)
"""A float field."""
clone = CharField(null=True)
"""A char field."""
species_reactivity = CharField(null=True)
"""A char field."""
payload_sentseq_align = CharField(null=True)
"""A char field."""
artifacts = models.ManyToManyField(Artifact, related_name="adtbarcodes")
"""Many-to-many relationship to Artifacts."""
feature_sets = models.ManyToManyField(FeatureSet, related_name="adtbarcodes")
"""Many-to-many relationship to FeatureSets."""
class HTObarcodes(Record, CanCurate, TracksUpdates):
"""HTO barcodes.
- schema_id: ts_oC3bbUz0
- schema_type: dna_oligo
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_oC3bbUz0"
_benchling_schema_name = "HTO barcodes"
_benchling_schema_type = "dna_oligo"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
antibody = CharField(null=True)
"""A char field."""
concentration = FloatField(null=True)
"""A float field."""
clone = CharField(null=True)
"""A char field."""
species_reactivity = CharField(null=True)
"""A char field."""
artifacts = models.ManyToManyField(Artifact, related_name="htobarcodes")
"""Many-to-many relationship to Artifacts."""
feature_sets = models.ManyToManyField(FeatureSet, related_name="htobarcodes")
"""Many-to-many relationship to FeatureSets."""
class Indexforsequencing(Record, CanCurate, TracksUpdates):
"""Index for sequencing.
- schema_id: ts_Lap0ZOVS
- schema_type: dna_oligo
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_Lap0ZOVS"
_benchling_schema_name = "Index for sequencing"
_benchling_schema_type = "dna_oligo"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
index_name = CharField(null=True)
"""A char field."""
class ADTPool(Record, CanCurate, TracksUpdates):
"""ADT Pool.
- schema_id: ts_ZGYsOghk
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_ZGYsOghk"
_benchling_schema_name = "ADT Pool"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
adt_antibodies = models.ManyToManyField("ADTBarcodes")
"""Many-to-many relationship to :class:`sentseqdb.ADTBarcodes`."""
class SequencingLibrary(Record, CanCurate, TracksUpdates):
"""Sequencing Library.
- schema_id: ts_7g7TEkdV
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_7g7TEkdV"
_benchling_schema_name = "Sequencing Library"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
sample = models.ManyToManyField("TissuePool")
"""Many-to-many relationship to :class:`sentseqdb.TissuePool`."""
type_of_library = CharField()
"""A char field."""
index_set = ForeignKey("NGS_IndexSet", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.NGS_IndexSet`."""
concentration_ngul = FloatField(null=True)
"""A float field."""
size_bp = FloatField(null=True)
"""A float field."""
molarity_nm = FloatField(null=True)
"""A float field."""
sort_and_seq_only_sample_type = CharField(null=True)
"""A char field."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
size_selected = CharField(null=True)
"""A char field."""
class NGS_IndexSet(Record, CanCurate, TracksUpdates):
"""NGS - Index Set.
- schema_id: ts_PsAqwRwQ
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_PsAqwRwQ"
_benchling_schema_name = "NGS - Index Set"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
index_type = CharField(null=True)
"""A char field."""
index_barcode = ForeignKey("Indexforsequencing", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Indexforsequencing`."""
i7_index = ForeignKey("Indexforsequencing", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Indexforsequencing`."""
i5_index_type_1 = ForeignKey("Indexforsequencing", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Indexforsequencing`."""
i5_index_type_2 = ForeignKey("Indexforsequencing", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Indexforsequencing`."""
index_barcode_sequence = CharField(null=True)
"""A char field."""
i7_sequence = CharField(null=True)
"""A char field."""
i5_type_1_sequence = CharField(null=True)
"""A char field."""
class AnalysisRun(Record, CanCurate, TracksUpdates):
"""Analysis Run.
- schema_id: ts_Ov5Ssrvp
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_Ov5Ssrvp"
_benchling_schema_name = "Analysis Run"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
pipeline_name = CharField()
"""A char field."""
pipeline_version = CharField(null=True)
"""A char field."""
assay_run_id = CharField(null=True)
"""A char field."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
seqera_workflow_id = CharField()
"""A char field."""
run_name = CharField(null=True)
"""A char field."""
user_name = CharField(null=True)
"""A char field."""
success = CharField(null=True)
"""A char field."""
exit_status = IntegerField(null=True)
"""A integer field."""
complete = CharField(null=True)
"""A char field."""
duration = CharField(null=True)
"""A char field."""
error_message = CharField(null=True)
"""A char field."""
commit_id = CharField(null=True)
"""A char field."""
revision = CharField(null=True)
"""A char field."""
stub_run = CharField(null=True)
"""A char field."""
nextflow_version = CharField(null=True)
"""A char field."""
class PooledSequencingLibraries(Record, CanCurate, TracksUpdates):
"""Pooled Sequencing Libraries.
- schema_id: ts_78vdlwZv
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_78vdlwZv"
_benchling_schema_name = "Pooled Sequencing Libraries"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
sequencing_libraries = models.ManyToManyField("SequencingLibrary")
"""Many-to-many relationship to :class:`sentseqdb.SequencingLibrary`."""
concentration_ngul = FloatField(null=True)
"""A float field."""
size_bp = FloatField(null=True)
"""A float field."""
concentration_nm = FloatField(null=True)
"""A float field."""
flowcell_lanes = CharField(null=True)
"""A char field."""
study = models.ManyToManyField("Study")
"""Many-to-many relationship to :class:`sentseqdb.Study`."""
class CellLineSample(Record, CanCurate, TracksUpdates):
"""Cell Line Sample.
- schema_id: ts_sAwl22iX
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_sAwl22iX"
_benchling_schema_name = "Cell Line Sample"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
parent_cell_line = ForeignKey("ParentCellLine", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.ParentCellLine`."""
group = ForeignKey("Group", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Group`."""
date_generated = DateField(null=True)
"""A date field."""
collection_date = DateField(null=True)
"""A date field."""
legacy_parent_cell_type_deprecated = CharField(null=True)
"""A char field."""
legacy_genotype_deprecated = CharField(null=True)
"""A char field."""
legacy_selection_deprecated = CharField(null=True)
"""A char field."""
legacy_species_deprecated = CharField(null=True)
"""A char field."""
class LNPFormulation(Record, CanCurate, TracksUpdates):
"""LNP Formulation.
- schema_id: ts_SKDXt9OA
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_SKDXt9OA"
_benchling_schema_name = "LNP Formulation"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
lnp_identity = ForeignKey("LNPIdentity", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.LNPIdentity`."""
ionizable_lipid_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
cholesterol_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
peg_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
phospholipid_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
n5th_lipid_component_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
targeting_epitope_lot = ForeignKey("TargetingEpitopeLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.TargetingEpitopeLot`."""
mrna_lot = ForeignKey("mRNAlot", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.mRNAlot`."""
sgrna_lot = ForeignKey("sgRNALot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.sgRNALot`."""
barcode = ForeignKey("Barcode", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Barcode`."""
study = ForeignKey("Study", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Study`."""
notes = TextField(null=True)
"""A text field."""
artifacts = models.ManyToManyField(Artifact, related_name="lnpformulations")
"""Many-to-many relationship to Artifacts."""
feature_sets = models.ManyToManyField(FeatureSet, related_name="lnpformulations")
"""Many-to-many relationship to FeatureSets."""
class CompoundLot(Record, CanCurate, TracksUpdates):
"""Compound Lot.
- schema_id: ts_lnlBaKVy
- schema_type: molecule
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_lnlBaKVy"
_benchling_schema_name = "Compound Lot"
_benchling_schema_type = "molecule"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
compound = ForeignKey("Compound", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
vendor = CharField(null=True)
"""A char field."""
formula_mass = FloatField()
"""A float field."""
salt = CharField(null=True)
"""A char field."""
initial_nmr = TextField(null=True)
"""A text field."""
initial_lcms = TextField(null=True)
"""A text field."""
purity_ = FloatField(null=True)
"""A float field."""
total_synthesis_amount_mg = FloatField(null=True)
"""A float field."""
reaction_path = TextField(null=True)
"""A text field."""
additional_attachments = TextField(null=True)
"""A text field."""
vendor_and_sku_catalog_ = CharField(null=True)
"""A char field."""
vendor_lot = CharField(null=True)
"""A char field."""
class sgRNALot(Record, CanCurate, TracksUpdates):
"""sgRNA Lot.
- schema_id: ts_5XM82jI0
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_5XM82jI0"
_benchling_schema_name = "sgRNA Lot"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
vendor = CharField()
"""A char field."""
sku_catalog_ = CharField()
"""A char field."""
lot_ = CharField(null=True)
"""A char field."""
notes = CharField(null=True)
"""A char field."""
class mRNAlot(Record, CanCurate, TracksUpdates):
"""mRNA lot.
- schema_id: ts_Ir94d6f6
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_Ir94d6f6"
_benchling_schema_name = "mRNA lot"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
manufacture_date = DateField(null=True)
"""A date field."""
mrna = ForeignKey("mRNA", on_delete=models.PROTECT)
"""ForeignKey relationship to :class:`sentseqdb.mRNA`."""
vendor = CharField(null=True)
"""A char field."""
vendor_lot = CharField(null=True)
"""A char field."""
class ParentCellLine(Record, CanCurate, TracksUpdates):
"""Parent Cell Line.
- schema_id: ts_Dakn3Z8X
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_Dakn3Z8X"
_benchling_schema_name = "Parent Cell Line"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
description = CharField(null=True)
"""A char field."""
parent_cell_line = ForeignKey("ParentCellLine", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.ParentCellLine`."""
species = CharField(null=True)
"""A char field."""
tissue_type = CharField(null=True)
"""A char field."""
donor_id = CharField(null=True)
"""A char field."""
vendor = CharField(null=True)
"""A char field."""
sku = CharField(null=True)
"""A char field."""
lot_number = CharField(null=True)
"""A char field."""
gender = CharField(null=True)
"""A char field."""
age = CharField(null=True)
"""A char field."""
selection = CharField(null=True)
"""A char field."""
class TargetingEpitopeIdentity(Record, CanCurate, TracksUpdates):
"""Targeting Epitope Identity.
- schema_id: ts_drSMKjvw
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_drSMKjvw"
_benchling_schema_name = "Targeting Epitope Identity"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
compound = ForeignKey("Compound", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Compound`."""
targeted_tissue_type = TextField()
"""A text field."""
class TargetingEpitopeLot(Record, CanCurate, TracksUpdates):
"""Targeting Epitope Lot.
- schema_id: ts_M3LvHMYt
- schema_type: custom_entity
"""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
_benchling_schema_id = "ts_M3LvHMYt"
_benchling_schema_name = "Targeting Epitope Lot"
_benchling_schema_type = "custom_entity"
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID."""
name = CharField()
"""Name of the record, same as Benchling "Name" field."""
targeting_epitope_identity = ForeignKey("TargetingEpitopeIdentity", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.TargetingEpitopeIdentity`."""
compound_lot = ForeignKey("CompoundLot", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.CompoundLot`."""
class Animal(Record, CanCurate, TracksUpdates):
"""Primate or Mouse, not part of Benchling schema."""
class Meta(Record.Meta, TracksUpdates.Meta):
abstract = False
id = models.AutoField(primary_key=True)
"""Internal id, valid only in one DB instance."""
uid = CharField(unique=True)
"""A universal ID of the record, same as Benchling ID of Primate or Mouse record."""
name = CharField()
"""Name of the record, same as Benchling "Name" field, required."""
primate = ForeignKey("Primate", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Primate`."""
mouse = ForeignKey("Mouse", on_delete=models.PROTECT, null=True)
"""ForeignKey relationship to :class:`sentseqdb.Mouse`."""
with open("../../sentseqdb/models.py", "w") as f:
f.write(models_py_content)
# create the first migration
# !lamin init --storage ./test-sentseqdb --schema sentseqdb,bionty
# !lamin migrate create
# !lamin migrate deploy