add sample material column and rewrite inosticID column

This commit is contained in:
Sherwin Price
2023-11-07 17:33:37 -05:00
parent 1f40865aa0
commit 3b73f2b421
4 changed files with 41 additions and 2 deletions

View File

@@ -11,6 +11,9 @@ from openpyxl.styles import PatternFill, Border, Side, Alignment
from rowmodel import RowModel
codex:dict = {"gDNA from cells":"BM"}
codex.update({"gDNA from Buffy Coat":"BC"})
def read_qubit_doc_by_accession(keys:dict, path:str):
# collect values_by_sample_names string ids #
with open(path, 'r', newline='', encoding='utf-8') as csvfile:
@@ -84,7 +87,8 @@ def write_run_doc(dm:dict, path:str):
for r in dm:
model:RowModel = dm[r]
ix=ix+1
ws.append([ix, "", model.get_Id(), model.get_customerid(), model.get_plasmavolml(), model.get_qubitrunid(),
fmtId = formatInosticsId( model.get_Id(), model.get_materialid() )
ws.append([ix, "", fmtId, model.get_customerid(), model.get_plasmavolml(), model.get_qubitrunid(),
model.get_sampleconc(), convert_to_GE(model.get_sampleconc())])
grayFill = PatternFill(start_color='D0CECE', end_color='D0CECE',
@@ -98,6 +102,20 @@ def write_run_doc(dm:dict, path:str):
wb.close()
return
def formatInosticsId(id:str=None, matrl:str=None):
iid = id.split("-", 1)[0]
ncd:str = ""
try:
if codex[matrl] is None:
ncd = ""
else:
ncd = codex[matrl]
if iid:
return iid + ncd
except Exception as e:
pass
return iid
def convert_to_numeric(vlu, stndv:float=0.0):
try:
return float(vlu)
@@ -120,6 +138,7 @@ def read_collect_run_doc_name_strids(min_col:int=1, path:str=None):
InosticsID = None
CustomerID = None
PlasmaID = None
MaterialID = None
InosticsIDKeys = {}
for row in ws.iter_rows(max_row=30, min_col=min_col):
for cell in row:
@@ -135,6 +154,10 @@ def read_collect_run_doc_name_strids(min_col:int=1, path:str=None):
PlasmaID = cell.column
continue
if MaterialID==None and cell.value and isinstance(cell.value, str) and "Sample Material" in cell.value:
MaterialID = cell.column
continue
if cell.value and InosticsID == cell.column:
InosticsIDKeys[cell.value] = RowModel(cell.coordinate, cell.value)
rmv:RowModel = InosticsIDKeys[cell.value]
@@ -159,5 +182,14 @@ def read_collect_run_doc_name_strids(min_col:int=1, path:str=None):
rmv.set_plasmavolml( convert_to_numeric(cell.value) )
except:
pass
if cell.value and MaterialID == cell.column:
print(F"{cell.coordinate}:{cell.row}x{cell.column}={cell.value}")
try:
if InosticsIDKeys[row[InosticsID-1].value] != None:
rmv:RowModel = InosticsIDKeys[row[InosticsID-1].value]
rmv.set_materialid( cell.value )
except:
pass
wb.close()
return InosticsIDKeys