Source code for diff_viz.msd

import os
import numpy as np
import pandas as pd

import matplotlib
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap, LinearSegmentedColormap

from os import listdir, getcwd, chdir
from os.path import isfile, join



def get_msd_dose_dict(doses):
    msd_dose_dict = {}
    #sem_dose_dict = {}

    for dose in doses:
        msd_dose_dict[dose] = []
        #sem_dose_dict[dose] = []
    
    return msd_dose_dict

def get_df_dose_list(doses,geomean_df):
    df_dose_list = []
    #sem_dose_list = []
    
    for dose in doses:
        msd_dose_df = pd.DataFrame()
        dose_cols = [col for col in geomean_df.columns if dose in col]
        msd_dose_df = geomean_df.filter(dose_cols, axis=1)
        df_dose_list.append(msd_dose_df)
        #sem_dose_df = pd.DataFrame()
        #sem_cols = [col for col in geosem_df.columns if dose in col]
        #sem_dose_df = geosem_df.filter(sem_cols, axis=1)
        #sem_dose_list.append(sem_dose_df)
        
    return df_dose_list

[docs]def msd_viz(doses,geomean_df,df_dose_list): count = 0 labels = 'Roteneone' if len(doses) == 1: tau = geomean_df.index.values / 651 fig, ax = plt.subplots(figsize=(6,6)) #plt.suptitle(f'MSD Analysis for {model} experiment {experiment}',fontsize=20) plt.rcParams.update({'font.family':'helvetica'}) handles = list(geomean_df.columns) #labels = [handle.split(stimulus+'_')[1] for handle in handles] for handle in handles: ax.loglog(tau[0:70],geomean_df[handle][0:70]) ax.set_xlabel('Lag time (s)',fontsize=16) ax.set_ylabel('Mean-squared displacement (μ$m^2$)',fontsize=16) ax.legend(labels,loc='upper left') ax.set_xlim([0.002, 0.05]) ax.set_ylim([0.0009,1.3]) else: tau = geomean_df.index.values[0:100] / 651 fig, axes = plt.subplots(nrows=1, ncols=len(doses),figsize=(10,4)) #plt.suptitle(f'MSD Analysis for {model} experiment {experiment}\n\n',fontsize=20) plt.rcParams.update({'font.family':'helvetica'}) count=0 for c in np.arange(0,len(doses)): handles = list(df_dose_list[c].columns) #err = sem_dose_list[count][handles[c]][0:70]/2 times = [] handles = list(df_dose_list[c].columns) #labels = [handle.split(stimulus+'_')[1] for handle in handles] print(handles,labels) #err = sem_dose_list[count][handles[c]][0:70]/2 axes[c].loglog(tau[0:70],df_dose_list[count][0:70]) axes[c].set_xlabel('\nLag time (s)',fontsize=16) axes[c].legend(labels,loc='best') axes[c].set_xlim([0.002, 0.1]) axes[c].set_ylim([0.0009,10]) axes[c].set_title(f'\n{doses[c]}', fontsize=14) if c == 0: axes[c].set_ylabel('Mean-squared displacement (μ$m^2$)',fontsize=16) count+=1 return