From efd7006f360bd4edd3e2899d8d6526792dce3d1c Mon Sep 17 00:00:00 2001 From: SebastianBruijns <> Date: Sun, 5 Mar 2023 14:26:24 +0100 Subject: [PATCH] code updates --- __pycache__/analysis_pmf.cpython-37.pyc | Bin 0 -> 7808 bytes .../dyn_glm_chain_analysis.cpython-37.pyc | Bin 54049 -> 54310 bytes analysis_pmf.py | 11 +++ analysis_regression.py | 11 +++ analysis_state_intros.py | 23 +++--- behaviour_overview.py | 16 ++-- canonical_infos.json | 2 +- dyn_glm_chain_analysis.py | 74 ++++++++++++++---- index_mice.py | 24 +++--- process_many_chains.py | 4 +- 10 files changed, 117 insertions(+), 48 deletions(-) create mode 100644 __pycache__/analysis_pmf.cpython-37.pyc diff --git a/__pycache__/analysis_pmf.cpython-37.pyc b/__pycache__/analysis_pmf.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b4caf72889d24bf4325fbc9922b9fddd747dec8 GIT binary patch literal 7808 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 literal 0 HcmV?d00001 diff --git a/__pycache__/dyn_glm_chain_analysis.cpython-37.pyc b/__pycache__/dyn_glm_chain_analysis.cpython-37.pyc index b4b56a55e7c7e3ff5cceb8da95a87d51c338cbac..740060e1aee1c905d0d6e98e7fb190b6806d36f6 100644 GIT binary patch literal 54310 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 literal 54049 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 diff --git a/analysis_pmf.py b/analysis_pmf.py index b07ba8a8..9a47f86e 100644 --- a/analysis_pmf.py +++ b/analysis_pmf.py @@ -24,6 +24,17 @@ def pmf_type(pmf): if __name__ == "__main__": all_first_pmfs_typeless = pickle.load(open("all_first_pmfs_typeless.p", 'rb')) all_pmfs = pickle.load(open("all_pmfs.p", 'rb')) + all_bias_flips = pickle.load(open("all_bias_flips.p", 'rb')) + + # bias flips + plt.hist(all_bias_flips, bins=np.arange(0, max(all_bias_flips) + 1), color='grey', align='left') + plt.ylabel("# of mice") + plt.xlabel("Bias flips") + sns.despine() + plt.tight_layout() + plt.savefig("./meeting_figures/bias_flips.png") + plt.show() + quit() fewer_states_side = [] for key in all_first_pmfs_typeless: diff --git a/analysis_regression.py b/analysis_regression.py index fe165ae1..575f234c 100644 --- a/analysis_regression.py +++ b/analysis_regression.py @@ -9,6 +9,7 @@ fontsize = 22 if __name__ == "__main__": regressions = np.array(pickle.load(open("regressions.p", 'rb'))) + regression_diffs = np.array(pickle.load(open("regression_diffs.p", 'rb'))) assert (regressions[:, 0] == np.sum(regressions[:, 2:], 1)).all() @@ -50,3 +51,13 @@ if __name__ == "__main__": plt.tight_layout() plt.savefig("# of mice with regressions per type") plt.show() + + # histogram of regression diffs + plt.hist(regression_diffs, color='grey', bins=20) + plt.ylabel("# regressions", size=fontsize) + plt.xlabel("Reward rate diff", size=fontsize) + + sns.despine() + plt.tight_layout() + plt.savefig("Regression diffs") + plt.show() diff --git a/analysis_state_intros.py b/analysis_state_intros.py index c00985af..91b3250a 100644 --- a/analysis_state_intros.py +++ b/analysis_state_intros.py @@ -6,8 +6,9 @@ fontsize = 16 def type_hist(data, title=''): highest = int(data.max()) + lowest = int(data.min()) if (data % 1 == 0).all(): - bins = np.arange(highest + 2) - 0.5 + bins = np.arange(lowest, highest + 2) - 0.5 else: bins = np.histogram(data)[1] hist_max = 0 @@ -15,31 +16,35 @@ def type_hist(data, title=''): hist_max = max(hist_max, np.histogram(data[:, i], bins)[0].max()) plt.subplot(3, 1, 1) - - if title != '': - plt.title(title, size=fontsize + 4) - assert np.histogram(data[:, 0])[0].sum() == np.histogram(data[:, 0], bins)[0].sum() plt.hist(data[:, 0], alpha=1/3, label="type 1", align='mid', bins=bins, color='grey') - plt.xlim(-0.5, highest + 1) + plt.xlim(lowest - 0.5, highest + 1) plt.ylim(0, hist_max + 1) + ax2 = plt.gca().twinx() plt.ylabel("Type 1", size=fontsize) + ax2.set_yticks([]) plt.subplot(3, 1, 2) assert np.histogram(data[:, 1])[0].sum() == np.histogram(data[:, 1], bins)[0].sum() plt.hist(data[:, 1], alpha=1/3, label="type 2", align='mid', bins=bins, color='grey') - plt.xlim(-0.5, highest + 1) + plt.xlim(lowest - 0.5, highest + 1) plt.ylim(0, hist_max + 1) + ax2 = plt.gca().twinx() plt.ylabel("Type 2", size=fontsize) + ax2.set_yticks([]) plt.subplot(3, 1, 3) assert np.histogram(data[:, 2])[0].sum() == np.histogram(data[:, 2], bins)[0].sum() plt.hist(data[:, 2], alpha=1/3, label="type 3", align='mid', bins=bins, color='grey') - plt.xlim(-0.5, highest + 1) + plt.xlim(lowest - 0.5, highest + 1) plt.ylim(0, hist_max + 1) + plt.xlabel(title, size=fontsize) + plt.ylabel("# of mice", size=fontsize) + ax2 = plt.gca().twinx() plt.ylabel("Type 3", size=fontsize) + ax2.set_yticks([]) - # plt.legend() + plt.savefig(title) plt.show() diff --git a/behaviour_overview.py b/behaviour_overview.py index 24180ed2..1a4899e6 100644 --- a/behaviour_overview.py +++ b/behaviour_overview.py @@ -5,7 +5,7 @@ from one.api import ONE import pickle -show = 1 +show = 0 def progression(data, contrasts, progression_variable='feedback', windowsize=6, upper_bound=None, title=None): # looks somewhat irregular, red dots are not in middle of bump they cause, this is because distribution of specific contrasts is not uniform @@ -47,13 +47,13 @@ def progression(data, contrasts, progression_variable='feedback', windowsize=6, # plt.title(title, size=22) # plt.savefig("temp {}".format(title).replace('/', '_')) # plt.close() - # if progression_variable == 'rt': - # means = data.groupby('signed_contrast').mean()['rt'] - # stds = data.groupby('signed_contrast').std()['rt'] - # plt.errorbar(means.index, means.values, stds.values) - # plt.title(title, size=22) - # plt.savefig("temp {}".format(title).replace('/', '_')) - # plt.show() + if progression_variable == 'rt': + means = data.groupby('signed_contrast').mean()['rt'] + stds = data.groupby('signed_contrast').sem()['rt'] + plt.errorbar(means.index, means.values, stds.values) + plt.title(title, size=22) + plt.savefig("temp {}".format(title).replace('/', '_')) + plt.close() dataset_types = ['choice', 'contrastLeft', 'contrastRight', \ diff --git a/canonical_infos.json b/canonical_infos.json index 5f8da998..c0868bc5 100644 --- a/canonical_infos.json +++ b/canonical_infos.json @@ -1 +1 @@ -{"SWC_023": {"seeds": ["302", "312", "304", "300", "315", "311", "308", "305", "303", "309", "306", "313", "307", "314", "301", "310"], "fit_nums": ["994", "913", "681", "816", "972", "790", "142", "230", "696", "537", "975", "773", "918", "677", "742", "745"], "chain_num": 4, "ignore": [12, 1, 15, 14, 8, 6, 4, 10]}, "SWC_021": {"seeds": ["415", "403", "412", "407", "409", "408", "405", "404", "410", "414", "401", "413", "402", "400", "406", "411"], "fit_nums": ["773", "615", "107", "583", "564", "354", "142", "184", "549", "185", "924", "907", "105", "531", "9", "812"], "chain_num": 9, "ignore": [14, 12, 0, 10, 9, 4, 5, 1]}, "ibl_witten_15": {"seeds": ["409", "410", "401", "415", "414", "403", "411", "404", "402", "405", "400", "412", "408", "407", "406", "413"], "fit_nums": ["411", "344", "496", "600", "716", "18", "527", "467", "898", "334", "309", "326", "133", "823", "740", "253"], "chain_num": 9, "ignore": [14, 13, 8, 4, 5, 12, 11, 9]}, "ibl_witten_13": {"seeds": ["302", "312", "313", "306", "315", "307", "311", "314", "309", "301", "308", "300", "304", "310", "303", "305"], "fit_nums": ["897", "765", "433", "641", "967", "599", "984", "259", "853", "385", "887", "619", "434", "964", "483", "891"], "chain_num": 4, "ignore": [3, 5, 15, 0, 2, 12, 11, 10]}, "KS016": {"seeds": ["315", "301", "309", "313", "302", "307", "303", "308", "311", "312", "314", "306", "310", "300", "305", "304"], "fit_nums": ["99", "57", "585", "32", "501", "558", "243", "413", "59", "757", "463", "172", "524", "957", "909", "292"], "chain_num": 4, "ignore": [0, 2, 14, 12, 1, 7, 11, 6]}, "KS003": {"seeds": ["404", "407", "413", "403", "414", "405", "400", "401", "402", "410", "415", "408", "411", "409", "406", "412"], "fit_nums": ["846", "256", "845", "945", "293", "406", "420", "109", "690", "421", "54", "866", "784", "81", "997", "665"], "chain_num": 9, "ignore": [8, 15, 0, 13, 7, 12, 11, 1]}, "ibl_witten_19": {"seeds": ["315", "311", "307", "314", "308", "300", "305", "301", "313", "304", "302", "310", "306", "312", "309", "303"], "fit_nums": ["179", "951", "613", "6", "623", "382", "458", "504", "406", "554", "5", "631", "746", "817", "265", "328"], "chain_num": 4, "ignore": [13, 4, 10, 9, 2, 1, 3, 6]}, "SWC_022": {"seeds": ["411", "403", "414", "409", "407", "412", "410", "413", "415", "404", "405", "400", "402", "401", "408", "406"], "fit_nums": ["408", "884", "62", "962", "744", "854", "635", "70", "320", "952", "8", "67", "231", "381", "536", "962"], "chain_num": 9, "ignore": [4, 8, 7, 9, 1, 2, 10, 6]}, "KS022": {"seeds": ["315", "300", "314", "301", "303", "302", "306", "308", "305", "310", "313", "312", "304", "307", "311", "309"], "fit_nums": ["899", "681", "37", "957", "629", "637", "375", "980", "810", "51", "759", "664", "420", "127", "259", "555"], "chain_num": 4, "ignore": [10, 1, 0, 13, 5, 9, 12, 3]}, "CSH_ZAD_017": {"seeds": ["401", "409", "405", "403", "415", "404", "402", "411", "410", "414", "408", "406", "413", "412", "400", "407"], "fit_nums": ["883", "803", "637", "806", "356", "804", "662", "654", "684", "350", "947", "460", "569", "976", "103", "713"], "chain_num": 9, "ignore": [3, 4, 6, 7, 5, 0, 15, 12]}, "CSH_ZAD_025": {"seeds": ["303", "311", "307", "312", "313", "314", "308", "315", "305", "306", "304", "302", "309", "310", "301", "300"], "fit_nums": ["581", "148", "252", "236", "581", "838", "206", "756", "449", "288", "756", "593", "733", "633", "418", "563"], "chain_num": 4, "ignore": [8, 10, 13, 5, 12, 9, 7, 1]}, "ibl_witten_17": {"seeds": ["406", "415", "408", "413", "402", "405", "409", "400", "414", "401", "412", "407", "404", "410", "403", "411"], "fit_nums": ["827", "797", "496", "6", "444", "823", "384", "873", "634", "27", "811", "142", "207", "322", "756", "275"], "chain_num": 9, "ignore": [9, 0, 1, 7, 11, 3, 10, 8]}, "ibl_witten_18": {"seeds": ["311", "310", "303", "314", "302", "309", "305", "307", "312", "300", "308", "306", "315", "313", "304", "301"], "fit_nums": ["236", "26", "838", "762", "826", "409", "496", "944", "280", "704", "930", "419", "637", "896", "876", "297"], "chain_num": 4, "ignore": [11, 0, 4, 2, 12, 13, 8, 3]}, "CSHL_018": {"seeds": ["302", "310", "306", "300", "314", "307", "309", "313", "311", "308", "304", "301", "312", "303", "305", "315"], "fit_nums": ["843", "817", "920", "900", "226", "36", "472", "676", "933", "453", "116", "263", "269", "897", "568", "438"], "chain_num": 4, "ignore": [15, 4, 8, 0, 5, 10, 12, 11]}, "GLM_Sim_06": {"seeds": ["313", "309", "302", "303", "305", "314", "300", "315", "311", "306", "304", "310", "301", "312", "308", "307"], "fit_nums": ["9", "786", "286", "280", "72", "587", "619", "708", "360", "619", "311", "189", "60", "708", "939", "733"], "chain_num": 2, "ignore": [15, 9, 8, 14, 1, 12, 10, 3]}, "ZM_1897": {"seeds": ["304", "308", "305", "311", "315", "314", "307", "306", "300", "303", "313", "310", "301", "312", "302", "309"], "fit_nums": ["549", "96", "368", "509", "424", "897", "287", "426", "968", "93", "725", "513", "837", "581", "989", "374"], "chain_num": 4, "ignore": [0, 14, 5, 8, 7, 11, 13, 10]}, "CSHL_020": {"seeds": ["305", "309", "313", "302", "314", "310", "300", "307", "315", "306", "312", "304", "311", "301", "303", "308"], "fit_nums": ["222", "306", "243", "229", "584", "471", "894", "238", "986", "660", "494", "657", "896", "459", "100", "283"], "chain_num": 4, "ignore": [6, 5, 9, 15, 0, 8, 4, 13]}, "CSHL054": {"seeds": ["401", "415", "409", "410", "414", "413", "407", "405", "406", "408", "411", "400", "412", "402", "403", "404"], "fit_nums": ["901", "734", "609", "459", "574", "793", "978", "66", "954", "906", "954", "111", "292", "850", "266", "967"], "chain_num": 9, "ignore": [5, 12, 7, 10, 11, 2, 6, 4]}, "CSHL_014": {"seeds": ["305", "311", "309", "300", "313", "310", "307", "306", "304", "312", "308", "302", "314", "303", "301", "315"], "fit_nums": ["371", "550", "166", "24", "705", "385", "870", "884", "831", "546", "404", "722", "287", "564", "613", "783"], "chain_num": 4, "ignore": [15, 0, 3, 4, 7, 6, 1, 11]}, "CSHL062": {"seeds": ["307", "313", "310", "303", "306", "312", "308", "305", "311", "314", "304", "302", "300", "301", "315", "309"], "fit_nums": ["846", "371", "94", "888", "499", "229", "546", "432", "71", "989", "986", "91", "935", "314", "975", "481"], "chain_num": 4, "ignore": [14, 6, 3, 11, 15, 13, 4, 12]}, "CSH_ZAD_001": {"seeds": ["313", "309", "311", "312", "305", "310", "315", "300", "314", "304", "301", "302", "308", "303", "306", "307"], "fit_nums": ["468", "343", "314", "544", "38", "120", "916", "170", "305", "569", "502", "496", "452", "336", "559", "572"], "chain_num": 4, "ignore": [12, 8, 5, 1, 9, 3, 13, 15]}, "NYU-06": {"seeds": ["314", "309", "306", "305", "312", "303", "307", "304", "300", "302", "310", "301", "315", "308", "313", "311"], "fit_nums": ["950", "862", "782", "718", "427", "645", "827", "612", "821", "834", "595", "929", "679", "668", "648", "869"], "chain_num": 4, "ignore": [8, 2, 7, 12, 3, 4, 13, 11]}, "KS019": {"seeds": ["404", "401", "411", "408", "400", "403", "410", "413", "402", "407", "415", "409", "406", "414", "412", "405"], "fit_nums": ["682", "4", "264", "200", "250", "267", "737", "703", "132", "855", "922", "686", "85", "176", "54", "366"], "chain_num": 9, "ignore": [12, 14, 1, 2, 4, 7, 10, 15]}, "CSHL049": {"seeds": ["411", "402", "414", "408", "409", "410", "413", "407", "406", "401", "404", "405", "403", "415", "400", "412"], "fit_nums": ["104", "553", "360", "824", "749", "519", "347", "228", "863", "671", "140", "883", "701", "445", "627", "898"], "chain_num": 9, "ignore": [10, 11, 6, 7, 12, 13, 1, 8]}, "ibl_witten_14": {"seeds": ["310", "311", "304", "306", "300", "302", "314", "313", "303", "308", "301", "309", "305", "315", "312", "307"], "fit_nums": ["563", "120", "85", "712", "277", "871", "183", "661", "505", "598", "210", "89", "310", "638", "564", "998"], "chain_num": 4, "ignore": [11, 14, 6, 13, 5, 12, 15, 8]}, "KS014": {"seeds": ["301", "310", "302", "312", "313", "308", "307", "303", "305", "300", "314", "306", "311", "309", "304", "315"], "fit_nums": ["668", "32", "801", "193", "269", "296", "74", "24", "270", "916", "21", "250", "342", "451", "517", "293"], "chain_num": 4, "ignore": [9, 11, 0, 1, 14, 2, 12, 13]}, "CSHL059": {"seeds": ["306", "309", "300", "304", "314", "303", "315", "311", "313", "305", "301", "307", "302", "312", "310", "308"], "fit_nums": ["821", "963", "481", "999", "986", "45", "551", "605", "701", "201", "629", "261", "972", "407", "165", "9"], "chain_num": 4, "ignore": [9, 3, 5, 15, 6, 10, 2, 1]}, "GLM_Sim_13": {"seeds": ["310", "303", "308", "306", "300", "312", "301", "313", "305", "311", "315", "304", "314", "309", "307", "302"], "fit_nums": ["982", "103", "742", "524", "614", "370", "926", "456", "133", "143", "302", "80", "395", "549", "579", "944"], "chain_num": 2, "ignore": [12, 4, 11, 6, 7, 14, 0, 1]}, "CSHL_007": {"seeds": ["314", "303", "308", "313", "301", "300", "302", "305", "315", "306", "310", "309", "311", "304", "307", "312"], "fit_nums": ["462", "703", "345", "286", "480", "313", "986", "165", "201", "102", "322", "894", "960", "438", "330", "169"], "chain_num": 4, "ignore": [3, 12, 4, 5, 2, 0, 13, 1]}, "CSH_ZAD_011": {"seeds": ["314", "311", "303", "300", "305", "310", "306", "301", "302", "315", "304", "309", "308", "312", "313", "307"], "fit_nums": ["320", "385", "984", "897", "315", "120", "320", "945", "475", "403", "210", "412", "695", "564", "664", "411"], "chain_num": 4, "ignore": [0, 2, 14, 11, 7, 10, 13, 9]}, "KS021": {"seeds": ["309", "312", "304", "310", "303", "311", "314", "302", "305", "301", "306", "300", "308", "315", "313", "307"], "fit_nums": ["874", "943", "925", "587", "55", "136", "549", "528", "349", "211", "401", "84", "225", "545", "153", "382"], "chain_num": 4, "ignore": [11, 12, 0, 8, 2, 14, 5, 1]}, "GLM_Sim_15": {"seeds": ["303", "312", "305", "308", "309", "302", "301", "310", "313", "315", "311", "314", "307", "306", "304", "300"], "fit_nums": ["769", "930", "328", "847", "899", "714", "144", "518", "521", "873", "914", "359", "242", "343", "45", "364"], "chain_num": 2, "ignore": [8, 1, 0, 3, 2, 5, 10, 4]}, "CSHL_015": {"seeds": ["301", "302", "307", "310", "309", "311", "304", "312", "300", "308", "313", "305", "314", "315", "306", "303"], "fit_nums": ["717", "705", "357", "539", "604", "971", "669", "76", "45", "413", "510", "122", "190", "821", "368", "472"], "chain_num": 4, "ignore": [7, 6, 10, 2, 15, 13, 1, 3]}, "ibl_witten_16": {"seeds": ["304", "313", "309", "314", "312", "307", "305", "301", "306", "310", "300", "315", "308", "311", "303", "302"], "fit_nums": ["392", "515", "696", "270", "7", "583", "880", "674", "23", "576", "579", "695", "149", "854", "184", "875"], "chain_num": 4, "ignore": [3, 12, 2, 6, 10, 14, 4, 1]}, "KS015": {"seeds": ["315", "305", "309", "303", "314", "310", "311", "312", "313", "300", "307", "308", "304", "301", "302", "306"], "fit_nums": ["257", "396", "387", "435", "133", "164", "403", "8", "891", "650", "111", "557", "473", "229", "842", "196"], "chain_num": 4, "ignore": [7, 8, 0, 10, 2, 3, 12, 9]}, "GLM_Sim_12": {"seeds": ["304", "312", "306", "303", "310", "302", "300", "305", "308", "313", "307", "311", "315", "301", "314", "309"], "fit_nums": ["971", "550", "255", "195", "952", "486", "841", "535", "559", "37", "654", "213", "864", "506", "732", "550"], "chain_num": 2, "ignore": [0, 7, 15, 14, 3, 10, 11, 13]}, "GLM_Sim_11": {"seeds": ["300", "312", "310", "315", "302", "313", "314", "311", "308", "303", "309", "307", "306", "304", "301", "305"], "fit_nums": ["477", "411", "34", "893", "195", "293", "603", "5", "887", "281", "956", "73", "346", "640", "532", "688"], "chain_num": 2}, "GLM_Sim_10": {"seeds": ["301", "300", "306", "305", "307", "309", "312", "314", "311", "315", "304", "313", "303", "308", "302", "310"], "fit_nums": ["391", "97", "897", "631", "239", "652", "19", "448", "807", "35", "972", "469", "280", "562", "42", "706"], "chain_num": 2, "ignore": [1, 9, 15, 3, 13, 12, 7, 11]}, "CSH_ZAD_026": {"seeds": ["312", "313", "308", "310", "303", "307", "302", "305", "300", "315", "306", "301", "311", "304", "314", "309"], "fit_nums": ["699", "87", "537", "628", "797", "511", "459", "770", "969", "240", "504", "948", "295", "506", "25", "378"], "chain_num": 4, "ignore": [12, 13, 4, 11, 8, 3, 15, 0]}, "KS023": {"seeds": ["304", "313", "306", "309", "300", "314", "302", "310", "303", "315", "307", "308", "301", "311", "305", "312"], "fit_nums": ["698", "845", "319", "734", "908", "507", "45", "499", "175", "108", "419", "443", "116", "779", "159", "231"], "chain_num": 4, "ignore": [8, 10, 1, 13, 4, 15, 14, 7]}, "GLM_Sim_05": {"seeds": ["301", "315", "300", "302", "305", "304", "313", "314", "311", "309", "306", "307", "308", "310", "303", "312"], "fit_nums": ["425", "231", "701", "375", "343", "902", "623", "125", "921", "637", "393", "964", "678", "930", "796", "42"], "chain_num": 2, "ignore": [11, 2, 5, 1, 4, 9, 15, 12]}, "CSHL061": {"seeds": ["305", "315", "304", "303", "309", "310", "302", "300", "314", "306", "311", "313", "301", "308", "307", "312"], "fit_nums": ["396", "397", "594", "911", "308", "453", "686", "552", "103", "209", "128", "892", "345", "925", "777", "396"], "chain_num": 4, "ignore": [11, 13, 7, 15, 14, 3, 0, 4]}, "CSHL051": {"seeds": ["303", "310", "306", "302", "309", "305", "313", "308", "300", "314", "311", "307", "312", "304", "315", "301"], "fit_nums": ["69", "186", "49", "435", "103", "910", "705", "367", "303", "474", "596", "334", "929", "796", "616", "790"], "chain_num": 4, "ignore": [15, 12, 8, 13, 0, 2, 4, 5]}, "GLM_Sim_14": {"seeds": ["310", "311", "309", "313", "314", "300", "302", "304", "305", "306", "307", "312", "303", "301", "315", "308"], "fit_nums": ["616", "872", "419", "106", "940", "986", "599", "704", "218", "808", "244", "825", "448", "397", "552", "316"], "chain_num": 2, "ignore": [7, 11, 2, 15, 0, 13, 5, 10]}, "GLM_Sim_11_trick": {"seeds": ["411", "400", "408", "409", "415", "413", "410", "412", "406", "414", "403", "404", "401", "405", "407", "402"], "fit_nums": ["95", "508", "886", "384", "822", "969", "525", "382", "489", "436", "344", "537", "251", "223", "458", "401"], "chain_num": 2, "ignore": [10, 12, 4, 1, 0, 3, 2, 6]}, "GLM_Sim_16": {"seeds": ["302", "311", "303", "307", "313", "308", "309", "300", "305", "315", "304", "310", "312", "301", "314", "306"], "fit_nums": ["914", "377", "173", "583", "870", "456", "611", "697", "13", "713", "159", "248", "617", "37", "770", "780"], "chain_num": 2, "ignore": [4, 10, 5, 0, 13, 8, 6, 7]}, "ZM_3003": {"seeds": ["300", "304", "307", "312", "305", "310", "311", "314", "303", "308", "313", "301", "315", "309", "306", "302"], "fit_nums": ["603", "620", "657", "735", "357", "390", "119", "33", "62", "617", "209", "810", "688", "21", "744", "426"], "chain_num": 4, "ignore": [14, 7, 12, 1, 3, 4, 11, 8]}, "CSH_ZAD_022": {"seeds": ["305", "310", "311", "315", "303", "312", "314", "313", "307", "302", "300", "304", "301", "308", "306", "309"], "fit_nums": ["143", "946", "596", "203", "576", "403", "900", "65", "478", "325", "282", "513", "460", "42", "161", "970"], "chain_num": 4, "ignore": [9, 12, 4, 8, 3, 7, 0, 1]}, "GLM_Sim_07": {"seeds": ["300", "309", "302", "304", "305", "312", "301", "311", "315", "314", "308", "307", "303", "310", "306", "313"], "fit_nums": ["724", "701", "118", "230", "648", "426", "689", "114", "832", "731", "592", "519", "559", "938", "672", "144"], "chain_num": 1}, "KS017": {"seeds": ["311", "310", "306", "309", "303", "302", "308", "300", "313", "301", "314", "307", "315", "304", "312", "305"], "fit_nums": ["97", "281", "808", "443", "352", "890", "703", "468", "780", "708", "674", "27", "345", "23", "939", "457"], "chain_num": 4, "ignore": [0, 13, 8, 1, 12, 5, 10, 9]}, "GLM_Sim_11_sub": {"seeds": ["410", "414", "413", "404", "409", "415", "406", "408", "402", "411", "400", "405", "403", "407", "412", "401"], "fit_nums": ["830", "577", "701", "468", "929", "374", "954", "749", "937", "488", "873", "416", "612", "792", "461", "488"], "chain_num": 2}} \ No newline at end of file +{"SWC_022": {"seeds": ["412", "401", "403", "413", "406", "407", "415", "409", "405", "400", "408", "404", "410", "411", "414", "402"], "fit_nums": ["347", "54", "122", "132", "520", "386", "312", "59", "999", "849", "372", "300", "485", "593", "358", "550"], "chain_num": 19, "ignore": [5, 6, 12, 3, 1, 11, 10]}, "SWC_023": {"seeds": ["302", "312", "304", "300", "315", "311", "308", "305", "303", "309", "306", "313", "307", "314", "301", "310"], "fit_nums": ["994", "913", "681", "816", "972", "790", "142", "230", "696", "537", "975", "773", "918", "677", "742", "745"], "chain_num": 4, "ignore": [12, 1, 15, 14, 8, 6, 4, 10]}, "ibl_witten_15": {"seeds": ["408", "412", "400", "411", "410", "407", "403", "406", "413", "405", "404", "402", "401", "415", "409", "414"], "fit_nums": ["40", "241", "435", "863", "941", "530", "382", "750", "532", "731", "146", "500", "967", "334", "375", "670"], "chain_num": 19, "ignore": [6, 7, 9, 8, 5, 13, 12, 11]}, "ibl_witten_13": {"seeds": ["401", "414", "409", "413", "415", "411", "410", "408", "402", "405", "406", "407", "412", "403", "400", "404"], "fit_nums": ["702", "831", "47", "740", "251", "929", "579", "351", "515", "261", "222", "852", "754", "892", "473", "29"], "chain_num": 19, "ignore": [11, 4, 15, 6, 8, 0]}, "KS016": {"seeds": ["315", "301", "309", "313", "302", "307", "303", "308", "311", "312", "314", "306", "310", "300", "305", "304"], "fit_nums": ["99", "57", "585", "32", "501", "558", "243", "413", "59", "757", "463", "172", "524", "957", "909", "292"], "chain_num": 4, "ignore": [0, 2, 14, 12, 1, 7, 11, 6]}, "ibl_witten_19": {"seeds": ["412", "415", "413", "408", "409", "404", "403", "401", "405", "411", "410", "406", "402", "414", "407", "400"], "fit_nums": ["234", "41", "503", "972", "935", "808", "912", "32", "331", "755", "117", "833", "822", "704", "901", "207"], "chain_num": 19, "ignore": [6, 1, 15, 10, 12]}, "CSH_ZAD_017": {"seeds": ["408", "404", "413", "406", "414", "411", "400", "401", "415", "407", "402", "412", "403", "409", "405", "410"], "fit_nums": ["928", "568", "623", "841", "92", "251", "829", "922", "964", "257", "150", "970", "375", "113", "423", "564"], "chain_num": 19, "ignore": [8, 10, 12, 5, 9, 7, 4]}, "KS022": {"seeds": ["315", "300", "314", "301", "303", "302", "306", "308", "305", "310", "313", "312", "304", "307", "311", "309"], "fit_nums": ["899", "681", "37", "957", "629", "637", "375", "980", "810", "51", "759", "664", "420", "127", "259", "555"], "chain_num": 4, "ignore": [10, 1, 0, 13, 5, 9, 12, 3]}, "CSH_ZAD_025": {"seeds": ["303", "311", "307", "312", "313", "314", "308", "315", "305", "306", "304", "302", "309", "310", "301", "300"], "fit_nums": ["581", "148", "252", "236", "581", "838", "206", "756", "449", "288", "756", "593", "733", "633", "418", "563"], "chain_num": 4, "ignore": [8, 10, 13, 5, 12, 9, 7, 1]}, "ibl_witten_17": {"seeds": ["406", "415", "408", "413", "402", "405", "409", "400", "414", "401", "412", "407", "404", "410", "403", "411"], "fit_nums": ["827", "797", "496", "6", "444", "823", "384", "873", "634", "27", "811", "142", "207", "322", "756", "275"], "chain_num": 9, "ignore": [9, 0, 1, 7, 11, 3, 10, 8]}, "SWC_021": {"seeds": ["404", "413", "406", "412", "403", "401", "410", "409", "400", "414", "415", "402", "405", "408", "411", "407"], "fit_nums": ["840", "978", "224", "38", "335", "500", "83", "509", "441", "9", "135", "890", "358", "460", "844", "30"], "chain_num": 19, "ignore": [2, 13, 1, 9, 0, 4, 6, 5]}, "ibl_witten_18": {"seeds": ["311", "310", "303", "314", "302", "309", "305", "307", "312", "300", "308", "306", "315", "313", "304", "301"], "fit_nums": ["236", "26", "838", "762", "826", "409", "496", "944", "280", "704", "930", "419", "637", "896", "876", "297"], "chain_num": 4, "ignore": [11, 0, 4, 2, 12, 13, 8, 3]}, "CSHL_018": {"seeds": ["302", "310", "306", "300", "314", "307", "309", "313", "311", "308", "304", "301", "312", "303", "305", "315"], "fit_nums": ["843", "817", "920", "900", "226", "36", "472", "676", "933", "453", "116", "263", "269", "897", "568", "438"], "chain_num": 4, "ignore": [15, 4, 8, 0, 5, 10, 12, 11]}, "GLM_Sim_06": {"seeds": ["313", "309", "302", "303", "305", "314", "300", "315", "311", "306", "304", "310", "301", "312", "308", "307"], "fit_nums": ["9", "786", "286", "280", "72", "587", "619", "708", "360", "619", "311", "189", "60", "708", "939", "733"], "chain_num": 2, "ignore": [15, 9, 8, 14, 1, 12, 10, 3]}, "ZM_1897": {"seeds": ["304", "308", "305", "311", "315", "314", "307", "306", "300", "303", "313", "310", "301", "312", "302", "309"], "fit_nums": ["549", "96", "368", "509", "424", "897", "287", "426", "968", "93", "725", "513", "837", "581", "989", "374"], "chain_num": 4, "ignore": [0, 14, 5, 8, 7, 11, 13, 10]}, "CSHL_020": {"seeds": ["305", "309", "313", "302", "314", "310", "300", "307", "315", "306", "312", "304", "311", "301", "303", "308"], "fit_nums": ["222", "306", "243", "229", "584", "471", "894", "238", "986", "660", "494", "657", "896", "459", "100", "283"], "chain_num": 4, "ignore": [6, 5, 9, 15, 0, 8, 4, 13]}, "CSHL054": {"seeds": ["401", "415", "409", "410", "414", "413", "407", "405", "406", "408", "411", "400", "412", "402", "403", "404"], "fit_nums": ["901", "734", "609", "459", "574", "793", "978", "66", "954", "906", "954", "111", "292", "850", "266", "967"], "chain_num": 9, "ignore": [5, 12, 7, 10, 11, 2, 6, 4]}, "CSHL_014": {"seeds": ["305", "311", "309", "300", "313", "310", "307", "306", "304", "312", "308", "302", "314", "303", "301", "315"], "fit_nums": ["371", "550", "166", "24", "705", "385", "870", "884", "831", "546", "404", "722", "287", "564", "613", "783"], "chain_num": 4, "ignore": [15, 0, 3, 4, 7, 6, 1, 11]}, "CSHL062": {"seeds": ["307", "313", "310", "303", "306", "312", "308", "305", "311", "314", "304", "302", "300", "301", "315", "309"], "fit_nums": ["846", "371", "94", "888", "499", "229", "546", "432", "71", "989", "986", "91", "935", "314", "975", "481"], "chain_num": 4, "ignore": [14, 6, 3, 11, 15, 13, 4, 12]}, "CSH_ZAD_001": {"seeds": ["313", "309", "311", "312", "305", "310", "315", "300", "314", "304", "301", "302", "308", "303", "306", "307"], "fit_nums": ["468", "343", "314", "544", "38", "120", "916", "170", "305", "569", "502", "496", "452", "336", "559", "572"], "chain_num": 4, "ignore": [12, 8, 5, 1, 9, 3, 13, 15]}, "KS003": {"seeds": ["405", "401", "414", "415", "410", "404", "409", "413", "412", "408", "411", "407", "402", "406", "403", "400"], "fit_nums": ["858", "464", "710", "285", "665", "857", "990", "438", "233", "177", "43", "509", "780", "254", "523", "695"], "chain_num": 19, "ignore": [1, 8, 9, 2, 4, 15, 0, 7]}, "NYU-06": {"seeds": ["314", "309", "306", "305", "312", "303", "307", "304", "300", "302", "310", "301", "315", "308", "313", "311"], "fit_nums": ["950", "862", "782", "718", "427", "645", "827", "612", "821", "834", "595", "929", "679", "668", "648", "869"], "chain_num": 4, "ignore": [8, 2, 7, 12, 3, 4, 13, 11]}, "KS019": {"seeds": ["404", "401", "411", "408", "400", "403", "410", "413", "402", "407", "415", "409", "406", "414", "412", "405"], "fit_nums": ["682", "4", "264", "200", "250", "267", "737", "703", "132", "855", "922", "686", "85", "176", "54", "366"], "chain_num": 9, "ignore": [12, 14, 1, 2, 4, 7, 10, 15]}, "CSHL049": {"seeds": ["411", "402", "414", "408", "409", "410", "413", "407", "406", "401", "404", "405", "403", "415", "400", "412"], "fit_nums": ["104", "553", "360", "824", "749", "519", "347", "228", "863", "671", "140", "883", "701", "445", "627", "898"], "chain_num": 9, "ignore": [10, 11, 6, 7, 12, 13, 1, 8]}, "ibl_witten_14": {"seeds": ["310", "311", "304", "306", "300", "302", "314", "313", "303", "308", "301", "309", "305", "315", "312", "307"], "fit_nums": ["563", "120", "85", "712", "277", "871", "183", "661", "505", "598", "210", "89", "310", "638", "564", "998"], "chain_num": 4, "ignore": [11, 14, 6, 13, 5, 12, 15, 8]}, "KS014": {"seeds": ["301", "310", "302", "312", "313", "308", "307", "303", "305", "300", "314", "306", "311", "309", "304", "315"], "fit_nums": ["668", "32", "801", "193", "269", "296", "74", "24", "270", "916", "21", "250", "342", "451", "517", "293"], "chain_num": 4, "ignore": [9, 11, 0, 1, 14, 2, 12, 13]}, "CSHL059": {"seeds": ["306", "309", "300", "304", "314", "303", "315", "311", "313", "305", "301", "307", "302", "312", "310", "308"], "fit_nums": ["821", "963", "481", "999", "986", "45", "551", "605", "701", "201", "629", "261", "972", "407", "165", "9"], "chain_num": 4, "ignore": [9, 3, 5, 15, 6, 10, 2, 1]}, "GLM_Sim_13": {"seeds": ["310", "303", "308", "306", "300", "312", "301", "313", "305", "311", "315", "304", "314", "309", "307", "302"], "fit_nums": ["982", "103", "742", "524", "614", "370", "926", "456", "133", "143", "302", "80", "395", "549", "579", "944"], "chain_num": 2, "ignore": [12, 4, 11, 6, 7, 14, 0, 1]}, "CSHL_007": {"seeds": ["314", "303", "308", "313", "301", "300", "302", "305", "315", "306", "310", "309", "311", "304", "307", "312"], "fit_nums": ["462", "703", "345", "286", "480", "313", "986", "165", "201", "102", "322", "894", "960", "438", "330", "169"], "chain_num": 4, "ignore": [3, 12, 4, 5, 2, 0, 13, 1]}, "CSH_ZAD_011": {"seeds": ["314", "311", "303", "300", "305", "310", "306", "301", "302", "315", "304", "309", "308", "312", "313", "307"], "fit_nums": ["320", "385", "984", "897", "315", "120", "320", "945", "475", "403", "210", "412", "695", "564", "664", "411"], "chain_num": 4, "ignore": [0, 2, 14, 11, 7, 10, 13, 9]}, "KS021": {"seeds": ["309", "312", "304", "310", "303", "311", "314", "302", "305", "301", "306", "300", "308", "315", "313", "307"], "fit_nums": ["874", "943", "925", "587", "55", "136", "549", "528", "349", "211", "401", "84", "225", "545", "153", "382"], "chain_num": 4, "ignore": [11, 12, 0, 8, 2, 14, 5, 1]}, "GLM_Sim_15": {"seeds": ["303", "312", "305", "308", "309", "302", "301", "310", "313", "315", "311", "314", "307", "306", "304", "300"], "fit_nums": ["769", "930", "328", "847", "899", "714", "144", "518", "521", "873", "914", "359", "242", "343", "45", "364"], "chain_num": 2, "ignore": [8, 1, 0, 3, 2, 5, 10, 4]}, "CSHL_015": {"seeds": ["301", "302", "307", "310", "309", "311", "304", "312", "300", "308", "313", "305", "314", "315", "306", "303"], "fit_nums": ["717", "705", "357", "539", "604", "971", "669", "76", "45", "413", "510", "122", "190", "821", "368", "472"], "chain_num": 4, "ignore": [7, 6, 10, 2, 15, 13, 1, 3]}, "ibl_witten_16": {"seeds": ["304", "313", "309", "314", "312", "307", "305", "301", "306", "310", "300", "315", "308", "311", "303", "302"], "fit_nums": ["392", "515", "696", "270", "7", "583", "880", "674", "23", "576", "579", "695", "149", "854", "184", "875"], "chain_num": 4, "ignore": [3, 12, 2, 6, 10, 14, 4, 1]}, "KS015": {"seeds": ["315", "305", "309", "303", "314", "310", "311", "312", "313", "300", "307", "308", "304", "301", "302", "306"], "fit_nums": ["257", "396", "387", "435", "133", "164", "403", "8", "891", "650", "111", "557", "473", "229", "842", "196"], "chain_num": 4, "ignore": [7, 8, 0, 10, 2, 3, 12, 9]}, "GLM_Sim_12": {"seeds": ["304", "312", "306", "303", "310", "302", "300", "305", "308", "313", "307", "311", "315", "301", "314", "309"], "fit_nums": ["971", "550", "255", "195", "952", "486", "841", "535", "559", "37", "654", "213", "864", "506", "732", "550"], "chain_num": 2, "ignore": [0, 7, 15, 14, 3, 10, 11, 13]}, "GLM_Sim_11": {"seeds": ["300", "312", "310", "315", "302", "313", "314", "311", "308", "303", "309", "307", "306", "304", "301", "305"], "fit_nums": ["477", "411", "34", "893", "195", "293", "603", "5", "887", "281", "956", "73", "346", "640", "532", "688"], "chain_num": 2}, "GLM_Sim_10": {"seeds": ["301", "300", "306", "305", "307", "309", "312", "314", "311", "315", "304", "313", "303", "308", "302", "310"], "fit_nums": ["391", "97", "897", "631", "239", "652", "19", "448", "807", "35", "972", "469", "280", "562", "42", "706"], "chain_num": 2, "ignore": [1, 9, 15, 3, 13, 12, 7, 11]}, "CSH_ZAD_026": {"seeds": ["312", "313", "308", "310", "303", "307", "302", "305", "300", "315", "306", "301", "311", "304", "314", "309"], "fit_nums": ["699", "87", "537", "628", "797", "511", "459", "770", "969", "240", "504", "948", "295", "506", "25", "378"], "chain_num": 4, "ignore": [12, 13, 4, 11, 8, 3, 15, 0]}, "KS023": {"seeds": ["304", "313", "306", "309", "300", "314", "302", "310", "303", "315", "307", "308", "301", "311", "305", "312"], "fit_nums": ["698", "845", "319", "734", "908", "507", "45", "499", "175", "108", "419", "443", "116", "779", "159", "231"], "chain_num": 4, "ignore": [8, 10, 1, 13, 4, 15, 14, 7]}, "GLM_Sim_05": {"seeds": ["301", "315", "300", "302", "305", "304", "313", "314", "311", "309", "306", "307", "308", "310", "303", "312"], "fit_nums": ["425", "231", "701", "375", "343", "902", "623", "125", "921", "637", "393", "964", "678", "930", "796", "42"], "chain_num": 2, "ignore": [11, 2, 5, 1, 4, 9, 15, 12]}, "CSHL061": {"seeds": ["305", "315", "304", "303", "309", "310", "302", "300", "314", "306", "311", "313", "301", "308", "307", "312"], "fit_nums": ["396", "397", "594", "911", "308", "453", "686", "552", "103", "209", "128", "892", "345", "925", "777", "396"], "chain_num": 4, "ignore": [11, 13, 7, 15, 14, 3, 0, 4]}, "CSHL051": {"seeds": ["303", "310", "306", "302", "309", "305", "313", "308", "300", "314", "311", "307", "312", "304", "315", "301"], "fit_nums": ["69", "186", "49", "435", "103", "910", "705", "367", "303", "474", "596", "334", "929", "796", "616", "790"], "chain_num": 4, "ignore": [15, 12, 8, 13, 0, 2, 4, 5]}, "GLM_Sim_14": {"seeds": ["310", "311", "309", "313", "314", "300", "302", "304", "305", "306", "307", "312", "303", "301", "315", "308"], "fit_nums": ["616", "872", "419", "106", "940", "986", "599", "704", "218", "808", "244", "825", "448", "397", "552", "316"], "chain_num": 2, "ignore": [7, 11, 2, 15, 0, 13, 5, 10]}, "GLM_Sim_11_trick": {"seeds": ["411", "400", "408", "409", "415", "413", "410", "412", "406", "414", "403", "404", "401", "405", "407", "402"], "fit_nums": ["95", "508", "886", "384", "822", "969", "525", "382", "489", "436", "344", "537", "251", "223", "458", "401"], "chain_num": 2}, "GLM_Sim_16": {"seeds": ["302", "311", "303", "307", "313", "308", "309", "300", "305", "315", "304", "310", "312", "301", "314", "306"], "fit_nums": ["914", "377", "173", "583", "870", "456", "611", "697", "13", "713", "159", "248", "617", "37", "770", "780"], "chain_num": 2, "ignore": [4, 10, 5, 0, 13, 8, 6, 7]}, "ZM_3003": {"seeds": ["300", "304", "307", "312", "305", "310", "311", "314", "303", "308", "313", "301", "315", "309", "306", "302"], "fit_nums": ["603", "620", "657", "735", "357", "390", "119", "33", "62", "617", "209", "810", "688", "21", "744", "426"], "chain_num": 4, "ignore": [14, 7, 12, 1, 3, 4, 11, 8]}, "CSH_ZAD_022": {"seeds": ["305", "310", "311", "315", "303", "312", "314", "313", "307", "302", "300", "304", "301", "308", "306", "309"], "fit_nums": ["143", "946", "596", "203", "576", "403", "900", "65", "478", "325", "282", "513", "460", "42", "161", "970"], "chain_num": 4, "ignore": [9, 12, 4, 8, 3, 7, 0, 1]}, "GLM_Sim_07": {"seeds": ["300", "309", "302", "304", "305", "312", "301", "311", "315", "314", "308", "307", "303", "310", "306", "313"], "fit_nums": ["724", "701", "118", "230", "648", "426", "689", "114", "832", "731", "592", "519", "559", "938", "672", "144"], "chain_num": 1}, "KS017": {"seeds": ["311", "310", "306", "309", "303", "302", "308", "300", "313", "301", "314", "307", "315", "304", "312", "305"], "fit_nums": ["97", "281", "808", "443", "352", "890", "703", "468", "780", "708", "674", "27", "345", "23", "939", "457"], "chain_num": 4, "ignore": [0, 13, 8, 1, 12, 5, 10, 9]}, "GLM_Sim_11_sub": {"seeds": ["410", "414", "413", "404", "409", "415", "406", "408", "402", "411", "400", "405", "403", "407", "412", "401"], "fit_nums": ["830", "577", "701", "468", "929", "374", "954", "749", "937", "488", "873", "416", "612", "792", "461", "488"], "chain_num": 2}} \ No newline at end of file diff --git a/dyn_glm_chain_analysis.py b/dyn_glm_chain_analysis.py index 4924143b..410e2cdc 100644 --- a/dyn_glm_chain_analysis.py +++ b/dyn_glm_chain_analysis.py @@ -21,7 +21,7 @@ import time import multiprocessing as mp from mcmc_chain_analysis import state_size_helper, state_num_helper, gamma_func, alpha_func, ll_func, r_hat_array_comp, rank_inv_normal_transform, eval_r_hat, eval_simple_r_hat import pandas as pd -from pmf_analysis import pmf_type, type2color +from analysis_pmf import pmf_type, type2color colors = np.genfromtxt('colors.csv', delimiter=',') @@ -587,6 +587,33 @@ def contrasts_plot(test, state_sets, subject, save=False, show=False, dpi='figur return cnas +def bias_flips(states_by_session, pmfs, durs): + state_counter = {} + prev_bias = 0 + bias_flips = 0 + + for sess in range(states_by_session.shape[1]): + states = np.where(states_by_session[:, sess])[0] + + for s in states: + if s not in state_counter: + state_counter[s] = -1 + state_counter[s] += 1 + + if s == np.argmax(states_by_session[:, sess]): + bias = np.mean(pmfs[s][1][state_counter[s]][pmfs[s][0]]) + if bias < 0.45: + if prev_bias == 1: + print("sess {}".format(sess)) + bias_flips += 1 + prev_bias = -1 + elif bias > 0.55: + if prev_bias == -1: + print("sess {}".format(sess)) + bias_flips += 1 + prev_bias = 1 + return bias_flips + def pmf_regressions(states_by_session, pmfs, durs): # find out whether pmfs regressed state_perfs = {} @@ -594,6 +621,7 @@ def pmf_regressions(states_by_session, pmfs, durs): current_best_state = -1 counter = 0 types = [0, 0, 0] + diffs = [] for sess in range(states_by_session.shape[1]): states = np.where(states_by_session[:, sess])[0] @@ -616,8 +644,9 @@ def pmf_regressions(states_by_session, pmfs, durs): types[2] += 1 a, b = state_perfs[np.argmax(states_by_session[:, sess])], state_perfs[current_best_state] print("Regression in session {} during {:.2f}% of session ({:.2f} instead of {:.2f})".format(sess + 1, np.max(states_by_session[:, sess]) * 100, a, b)) + diffs.append(b - a) - return [counter, states_by_session.shape[1], *types] + return [counter, states_by_session.shape[1], *types], diffs def control_flow(test, indices, trials, func_init, first_for, second_for, end_first_for): # Generalised control flow for iterating over samples of mode across individually across sessions @@ -1227,6 +1256,9 @@ def find_good_chains_unsplit_greedy(chains1, chains2, chains3, chains4, reduce_t print("Without removals: {}".format(r_hat)) mins[0] = r_hat + r_hats = [] + solutions = [] + to_del = [] for i in range(delete_n): r_hat_min = 50 @@ -1247,10 +1279,16 @@ def find_good_chains_unsplit_greedy(chains1, chains2, chains3, chains4, reduce_t print("Removed: {}".format(to_del)) mins[i + 1] = r_hat_min + r_hats.append(r_hat_min) + solutions.append(to_del.copy()) + if simple: r_hat_local = eval_r_hat([np.delete(chains1, to_del, axis=0), np.delete(chains2, to_del, axis=0), np.delete(chains3, to_del, axis=0), np.delete(chains4, to_del, axis=0)]) print("Minimum over everything is {} (removed {})".format(r_hat_local, i + 1)) - return to_del, r_hat_min + + best = np.argmin(r_hats) + + return solutions[best], r_hats[best] if __name__ == "__main__": @@ -1261,7 +1299,7 @@ if __name__ == "__main__": elif fit_type == 'prebias': loading_info = json.load(open("canonical_infos.json", 'r')) r_hats = json.load(open("canonical_info_r_hats.json", 'r')) - subjects = list(loading_info.keys()) + subjects = ['SWC_021', 'ibl_witten_15', 'ibl_witten_13', 'KS003', 'ibl_witten_19', 'SWC_022', 'CSH_ZAD_017'] # list(loading_info.keys()) r_hats = {} @@ -1273,7 +1311,6 @@ if __name__ == "__main__": check_r_hats = False if check_r_hats: - subjects = list(loading_info.keys()) for subject in subjects: if subject.startswith('GLM_Sim_07') or subject.startswith('GLM_Sim_11'): continue @@ -1440,7 +1477,7 @@ if __name__ == "__main__": r_hats = json.load(open("canonical_info_r_hats.json", 'r')) no_good_pcas = ['NYU-06', 'SWC_023'] subjects = list(loading_info.keys()) - subjects = ['KS014'] + # subjects = ['SWC_021', 'ibl_witten_15', 'ibl_witten_13', 'KS003', 'ibl_witten_19', 'SWC_022', 'CSH_ZAD_017'] # meh pmfs: KS021 print(subjects) @@ -1479,12 +1516,17 @@ if __name__ == "__main__": all_intros_div = [] all_states_per_type = [] regressions = [] + regression_diffs = [] + all_bias_flips = [] for subject in subjects: if subject.startswith('GLM_Sim_') or subject == 'ibl_witten_18': continue + if subject in ['SWC_021', 'ibl_witten_15', 'ibl_witten_13', 'KS003', 'ibl_witten_19', 'SWC_022', 'CSH_ZAD_017']: + continue + print(subject) try: @@ -1500,9 +1542,14 @@ if __name__ == "__main__": # training overview states, pmfs, durs, _, contrast_intro_type, intros_by_type, undiv_intros, states_per_type = state_development(test, [s for s in state_sets if len(s) > 40], mode_indices, show=0, separate_pmf=1, type_coloring=True) - regression = pmf_regressions(states, pmfs, durs) + + # b_flips = bias_flips(states, pmfs, durs) + # all_bias_flips.append(b_flips) + + regression, diffs = pmf_regressions(states, pmfs, durs) + regression_diffs += diffs regressions.append(regression) - quit() + continue # compare_pmfs(test, [s for s in state_sets if len(s) > 40], mode_indices, [4, 5], states, pmfs, title="{} convergence pmf".format(subject)) # compare_weights(test, [s for s in state_sets if len(s) > 40], mode_indices, [4, 5], states, title="{} convergence weights".format(subject)) # quit() @@ -1720,7 +1767,6 @@ if __name__ == "__main__": except FileNotFoundError as e: print(e) - continue print('no canoncial result') print(r_hats[subject]) if r_hats[subject] >= 1.05: @@ -1749,17 +1795,12 @@ if __name__ == "__main__": except Exception: break save_id = "{}_fittype_{}_var_{}_{}_{}.p".format(subject, fit_type, fit_variance, seed, fit_num).replace('.', '_') - # for file in os.listdir("./dynamic_GLMiHMM_crossvals/infos_new/"): - # if file.startswith("{}_".format(subject)) and file.endswith("_{}_{}_{}_{}.json".format(fit_type, fit_variance, seed, fit_num)): - # print("Taking fit infos from {}".format(file)) - # fit_infos = json.load(open("./dynamic_GLMiHMM_crossvals/infos_new/" + file, 'r')) - # sample_lls = fit_infos['ll'] print("Loaded") result = MCMC_result(samples[::25], infos=info_dict, data=samples[0].datas, sessions=fit_type, fit_variance=fit_variance, - dur=dur, save_id=save_id) # , sample_lls=sample_lls) + dur=dur, save_id=save_id) results.append(result) test = MCMC_result_list(results, summary_info) pickle.dump(test, open("multi_chain_saves/canonical_result_{}_{}.p".format(subject, fit_type), 'wb')) @@ -1789,13 +1830,14 @@ if __name__ == "__main__": # pickle.dump(all_intros_div, open("all_intros_div.p", 'wb')) # pickle.dump(all_states_per_type, open("all_states_per_type.p", 'wb')) # pickle.dump(regressions, open("regressions.p", 'wb')) + # pickle.dump(regression_diffs, open("regression_diffs.p", 'wb')) + # pickle.dump(all_bias_flips, open("all_bias_flips.p", 'wb')) # # a = [x for x, y in zip(all_pmf_asymms, all_pmf_diffs) if y >= 0.2] # b = [y for x, y in zip(all_pmf_asymms, all_pmf_diffs) if y >= 0.2] # plt.hist2d(a, b, bins=40) # plt.show() - if True: abs_state_durs = np.array(abs_state_durs) # pickle.dump(abs_state_durs, open("multi_chain_saves/abs_state_durs.p", 'wb')) diff --git a/index_mice.py b/index_mice.py index ebb58b84..e821de0e 100644 --- a/index_mice.py +++ b/index_mice.py @@ -42,7 +42,7 @@ for filename in os.listdir("./dynamic_GLMiHMM_crossvals/"): for s in prebias_subinfo.keys(): - if len(prebias_subinfo[s]["fit_nums"]) == 48: + if len(prebias_subinfo[s]["fit_nums"]) == 48 or len(prebias_subinfo[s]["fit_nums"]) == 32: new_fit_nums = [] new_seeds = [] for fit_num, seed in zip(prebias_subinfo[s]["fit_nums"], prebias_subinfo[s]["seeds"]): @@ -51,23 +51,23 @@ for s in prebias_subinfo.keys(): new_seeds.append(seed) prebias_subinfo[s]["fit_nums"] = new_fit_nums prebias_subinfo[s]["seeds"] = new_seeds - if s == 'ibl_witten_13': - new_fit_nums = [] - new_seeds = [] - for fit_num, seed in zip(prebias_subinfo[s]["fit_nums"], prebias_subinfo[s]["seeds"]): - if int(seed) < 316: - new_fit_nums.append(fit_num) - new_seeds.append(seed) - prebias_subinfo[s]["fit_nums"] = new_fit_nums - prebias_subinfo[s]["seeds"] = new_seeds + # if s == 'ibl_witten_13': + # new_fit_nums = [] + # new_seeds = [] + # for fit_num, seed in zip(prebias_subinfo[s]["fit_nums"], prebias_subinfo[s]["seeds"]): + # if int(seed) < 316: + # new_fit_nums.append(fit_num) + # new_seeds.append(seed) + # prebias_subinfo[s]["fit_nums"] = new_fit_nums + # prebias_subinfo[s]["seeds"] = new_seeds big = [] non_big = [] sim_subjects = [] for s in prebias_subinfo.keys(): - # assert len(sub_info[s]["seeds"]) in [16, 32] - # assert len(sub_info[s]["fit_nums"]) in [16, 32] + assert len(prebias_subinfo[s]["seeds"]) in [16, 32] + assert len(prebias_subinfo[s]["fit_nums"]) in [16, 32] print(s, len(prebias_subinfo[s]["fit_nums"])) if len(prebias_subinfo[s]["fit_nums"]) == 32: big.append(s) diff --git a/process_many_chains.py b/process_many_chains.py index 88840671..cf806135 100644 --- a/process_many_chains.py +++ b/process_many_chains.py @@ -9,7 +9,7 @@ import json from dyn_glm_chain_analysis import MCMC_result import matplotlib.pyplot as plt import time -from mcmc_chain_analysis import state_size_helper, state_num_helper, ll_helper +from mcmc_chain_analysis import state_size_helper, state_num_helper fit_type = ['prebias', 'bias', 'all', 'prebias_plus', 'zoe_style'][0] @@ -17,7 +17,7 @@ if fit_type == 'bias': loading_info = json.load(open("canonical_infos_bias.json", 'r')) elif fit_type == 'prebias': loading_info = json.load(open("canonical_infos.json", 'r')) -subjects = ['GLM_Sim_11_trick'] # list(loading_info.keys()) +subjects = ['SWC_021', 'ibl_witten_15', 'ibl_witten_13', 'KS003', 'ibl_witten_19', 'SWC_022', 'CSH_ZAD_017'] # list(loading_info.keys()) fit_variance = [0.03, 0.002, 0.0005, 'uniform', 0, 0.008][0] func1 = state_num_helper(0.2) -- GitLab