-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplot_outliers_change_from_baseline.py
More file actions
35 lines (27 loc) · 1.34 KB
/
plot_outliers_change_from_baseline.py
File metadata and controls
35 lines (27 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
input_file = snakemake.input.data
output_file = snakemake.output[0]
#input_file = r'\\pstore.bas.roche.com\data\rpmda\BN40423-v2\jira\RPMDA-6838-clustering-genhd-1\results\longitudinal_norm\som_25\clusters_merged.csv'
data = pd.read_csv(input_file, dtype={'subject_id': str, 'neuron': str})
clusters = list(data.columns[data.columns.str.contains('clusters')]) + ['distance']
data = data.drop(columns=clusters)
neuron = ['14', '15']
data = data[data['neuron'].isin(neuron)]
data = pd.melt(data, id_vars=['subject_id', 'neuron'],
var_name='feature_name', value_name='numeric_value'). \
sort_values(by=['neuron', 'subject_id', 'feature_name'])
data[['feature', 'period']] = data['feature_name'].str.split('_', 1, expand=True)
data = data.drop(columns='feature_name')
data['size'] = 1
data_sum = data.groupby(['neuron', 'feature', 'period']).median().reset_index()
data_sum['subject_id'] = 'median_neuron_' + data_sum['neuron']
data_sum['neuron'] = 'median'
data_sum['size'] = 1.5
data = data.append(data_sum)
sns.relplot(data=data, x='period', y='numeric_value', col='feature',
hue='subject_id', style='neuron', kind='line',
size='size')
plt.savefig(output_file, dpi=300, bbox_inches='tight')
plt.close()