@@ -57,29 +57,23 @@ def frequency_mapping(frequencies, values, animal="mouse", transduction_efficien
5757COCHLEAE_FOR_SUBTYPES = {
5858 "M_LR_000099_L" : ["PV" , "Calb1" , "Lypd1" ],
5959 # "M_LR_000214_L": ["PV", "CR", "Calb1"],
60- # "M_AMD_N62_L": ["PV", "CR", "Calb1"],
61- # "M_AMD_N180_R": ["CR", "Ntng1", "CTBP2"],
62- # "M_AMD_N180_L": ["CR", "Ntng1", "Lypd1"],
6360 "M_LR_000184_R" : ["PV" , "Prph" ],
6461 "M_LR_000184_L" : ["PV" , "Prph" ],
65- # Mutant / some stuff is weird.
66- # "M_AMD_Runx1_L": ["PV", "Lypd1", "Calb1"],
67- # This one still has to be stitched:
68- # "M_LR_000184_R": {"PV", "Prph"},
62+ "M_LR_000260_L" : ["PV" , "Prph" , "Tuj1" ],
6963}
7064
7165COCHLEAE = {
66+ "M_LR_000099_L" : {"seg_data" : "PV_SGN_v2" , "subtype" : ["Calb1" , "Lypd1" ]},
7267 "M_LR_000184_L" : {"seg_data" : "SGN_v2" , "subtype" : ["Prph" ], "output_seg" : "SGN_v2b" },
7368 "M_LR_000184_R" : {"seg_data" : "SGN_v2" , "subtype" : ["Prph" ], "output_seg" : "SGN_v2b" },
74- "M_LR_000099_L " : {"seg_data" : "PV_SGN_v2 " , "subtype" : ["Calb1 " , "Lypd1 " ]},
69+ "M_LR_000260_L " : {"seg_data" : "SGN_v2 " , "subtype" : ["Prph " , "Tuj1 " ]},
7570 # "M_LR_000214_L": {"seg_data": "PV_SGN_v2", "subtype": ["Calb1"]},
7671}
7772
7873
7974REGULAR_COCHLEAE = [
80- "M_LR_000099_L" , "M_LR_000184_R" , "M_LR_000184_L"
75+ "M_LR_000099_L" , "M_LR_000184_R" , "M_LR_000184_L" , "M_LR_000260_L"
8176]
82- # "M_LR_000214_L", "M_AMD_N62_L",
8377
8478# For custom thresholds.
8579THRESHOLDS = {
@@ -124,6 +118,12 @@ def stain_to_type(stain):
124118 "Calb1-/Lypd1+" : "Type Ic" ,
125119 "Calb1-/Lypd1-" : "inconclusive" , # Can be Type Ia or Type II
126120
121+ # Combinations of Prph and Tuj1:
122+ "Prph+/Tuj1+" : "Type II" ,
123+ "Prph+/Tuj1-" : "Type I" ,
124+ "Prph-/Tuj1+" : "Type I" ,
125+ "Prph-/Tuj1-" : "inconclusive" ,
126+
127127 # Prph is isolated.
128128 "Prph+" : "Type II" ,
129129 "Prph-" : "Type I" ,
@@ -274,8 +274,8 @@ def compile_data_for_subtype_analysis():
274274 seg_source = sources [COCHLEAE [cochlea ]["output_seg" ]]
275275 seg_name = COCHLEAE [cochlea ]["output_seg" ]
276276 else :
277- seg_source = sources [COCHLEAE [cochlea ]["output_seg " ]]
278- seg_name = COCHLEAE [cochlea ]["output_seg " ]
277+ seg_source = sources [COCHLEAE [cochlea ]["seg_data " ]]
278+ seg_name = COCHLEAE [cochlea ]["seg_data " ]
279279 else :
280280 raise e
281281 table_folder = os .path .join (
@@ -449,6 +449,8 @@ def combined_analysis(results, show_plots):
449449 sub_freq = [frequencies [i ] for i in range (len (classification ))
450450 if classification [i ][:classification [i ].find (" (" )] == c ]
451451 mapping = frequency_mapping (sub_freq , [1 for _ in range (len (sub_freq ))])
452+ mapping .fillna (0 , inplace = True )
453+
452454 mapping = mapping .astype ('float32' )
453455 dic [c ] = mapping
454456 bin_labels = pd .unique (mapping .index )
@@ -562,8 +564,8 @@ def analyze_subtype_data_regular(show_plots=True):
562564 seg_source = sources [COCHLEAE [cochlea ]["output_seg" ]]
563565 seg_name = COCHLEAE [cochlea ]["output_seg" ]
564566 else :
565- seg_source = sources [COCHLEAE [cochlea ]["output_seg " ]]
566- seg_name = COCHLEAE [cochlea ]["output_seg " ]
567+ seg_source = sources [COCHLEAE [cochlea ]["seg_data " ]]
568+ seg_name = COCHLEAE [cochlea ]["seg_data " ]
567569 else :
568570 raise e
569571 table_folder = os .path .join (
@@ -573,6 +575,7 @@ def analyze_subtype_data_regular(show_plots=True):
573575 table = pd .read_csv (table_content , sep = "\t " )
574576 table = table [table .component_labels == 1 ]
575577
578+ print (cochlea )
576579 print (f"Length of table before filtering: { len (table )} " )
577580 # filter subtype table
578581 for chan in channels [1 :]:
@@ -659,7 +662,6 @@ def export_for_annotation():
659662 if cochlea not in REGULAR_COCHLEAE :
660663 continue
661664
662- print (cochlea )
663665 channels = COCHLEAE_FOR_SUBTYPES [cochlea ]
664666 reference_channel = "PV"
665667 assert channels [0 ] == reference_channel
0 commit comments