2021
DOI: 10.1093/plphys/kiab336
|View full text |Cite
|
Sign up to set email alerts
|

Decoding and recoding plant development

Abstract: The development of multicellular organisms has been studied for centuries, yet many critical events and mechanisms of regulation remain challenging to observe directly. Early research focused on detailed observational and comparative studies. Molecular biology has generated insights into regulatory mechanisms, but only for a limited number of species. Now, synthetic biology is bringing these two approaches together, and by adding the possibility of sculpting novel morphologies, opening another path to understa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
7
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
4
1
1

Relationship

2
4

Authors

Journals

citations
Cited by 6 publications
(7 citation statements)
references
References 82 publications
0
7
0
Order By: Relevance
“…The growing environmental pressures resulting from climate change make this adaptability increasingly important 1 . A better understanding of the mechanisms that underlie plant developmental plasticity will help guide the engineering of traits that can face current and future challenges 2 .…”
Section: Introductionmentioning
confidence: 99%
“…The growing environmental pressures resulting from climate change make this adaptability increasingly important 1 . A better understanding of the mechanisms that underlie plant developmental plasticity will help guide the engineering of traits that can face current and future challenges 2 .…”
Section: Introductionmentioning
confidence: 99%
“…FIRST the directory where your files are and where your want to generate your graphs.# #Those need to be characters" # function to make boxplots of each set of tobacco injection data # reads in dataset to plot, figure size, construct order (order to plot from left to right) # and filename (path to which to save the generated plot) def plot_data(dataset, figuresize, construct_order, filename): fig, ax = plt.subplots(figsize=(figuresize, 8)) ax = sns.boxplot(x = 'Construct', y='Intensity Ratio', hue = 'Experiment', data = dataset, palette='Greys', width=0.7, order=construct_order, boxprops={'alpha':0.4}, showfliers=False) handles, labels = ax.get_legend_handles_labels() sns.stripplot(x = 'Construct', y='Intensity Ratio', hue = 'Experiment', data = dataset, jitter=True, palette='Greys', dodge = True, linewidth = 1, s=4, order=construct_order, ax=ax) ax.legend().set_visible(False) ax.figure.savefig(filename, bbox_inches='tight') # read in all raw platereader fluorescence measurement data (example in github repo) # replace with the path to your data, copy the line as many times as data files you have data1 = pd.read_excel(path_platereader_data, usecols="B:CS") # combine all platereader data outputs as one list # fill in list with variables above of platereader output dataframes # copy line for as many data files you have raw_data_list = [] # read in all 96 well plate data layout files # replace with your data layout file (example in github repo) # copy line for as many data files you have data_layout1 = pd.read_csv(path_layout_file) # combine all layouts into one list # fill in list with your layout dataframes layout_list = [] # calculate median values per well for entire data list med_per_exp = process_raw_data(raw_data_list) # merge all layouts into one df, then add calculated median intensity per well data as new column layout_merged_df = pd.DataFrame() for i in layout_list: layout_merged_df = pd.concat([layout_merged_df, i,], axis = "rows") layout_merged_df.insert(4, "YFP Intensity", med_per_exp[0]) layout_merged_df.insert(5, "RFP Intensity", med_per_exp [1]) layout_merged_df.insert(6, "Intensity Ratio", med_per_exp [2]) # drop any row with NA values (corresponding to unused wells) med_intensity_data = layout_merged_df.dropna() # changes float values for these constructs into string to be consistent with the rest of the data med_intensity_data.replace(439.0, '439', inplace=True) med_intensity_data.replace(440.0, '440', inplace=True) med_intensity_data.replace(472.0, '472', inplace=True) med_intensity_data.replace(473.0, '473', inplace=True)…”
Section: Python Scriptmentioning
confidence: 99%
“…FIRST the directory where your files are and where your want to generate your graphs.# #Those need to be characters" # function to make boxplots of each set of tobacco injection data # reads in dataset to plot, figure size, construct order (order to plot from left to right) # and filename (path to which to save the generated plot) def plot_data(dataset, figuresize, construct_order, filename): fig, ax = plt.subplots(figsize=(figuresize, 8)) ax = sns.boxplot(x = 'Construct', y='Intensity Ratio', hue = 'Experiment', data = dataset, palette='Greys', width=0.7, order=construct_order, boxprops={'alpha':0.4}, showfliers=False) handles, labels = ax.get_legend_handles_labels() sns.stripplot(x = 'Construct', y='Intensity Ratio', hue = 'Experiment', data = dataset, jitter=True, palette='Greys', dodge = True, linewidth = 1, s=4, order=construct_order, ax=ax) ax.legend().set_visible(False) ax.figure.savefig(filename, bbox_inches='tight') # read in all raw platereader fluorescence measurement data (example in github repo) # replace with the path to your data, copy the line as many times as data files you have data1 = pd.read_excel(path_platereader_data, usecols="B:CS") # combine all platereader data outputs as one list # fill in list with variables above of platereader output dataframes # copy line for as many data files you have raw_data_list = [] # read in all 96 well plate data layout files # replace with your data layout file (example in github repo) # copy line for as many data files you have data_layout1 = pd.read_csv(path_layout_file) # combine all layouts into one list # fill in list with your layout dataframes layout_list = [] # calculate median values per well for entire data list med_per_exp = process_raw_data(raw_data_list) # merge all layouts into one df, then add calculated median intensity per well data as new column layout_merged_df = pd.DataFrame() for i in layout_list: layout_merged_df = pd.concat([layout_merged_df, i,], axis = "rows") layout_merged_df.insert(4, "YFP Intensity", med_per_exp[0]) layout_merged_df.insert(5, "RFP Intensity", med_per_exp [1]) layout_merged_df.insert(6, "Intensity Ratio", med_per_exp [2]) # drop any row with NA values (corresponding to unused wells) med_intensity_data = layout_merged_df.dropna() # changes float values for these constructs into string to be consistent with the rest of the data med_intensity_data.replace(439.0, '439', inplace=True) med_intensity_data.replace(440.0, '440', inplace=True) med_intensity_data.replace(472.0, '472', inplace=True) med_intensity_data.replace(473.0, '473', inplace=True) # make an ordered list of constructs to iterate over construct_list = ['P1', 'P2', 'P4', 'P5', 'P16', 'P17', 'P18', 'P19', 'P22', 'P23', 'P24', 'P25', 'P27', 'P46', 'P47', 'P56', '439', '440', '472', '473', '294arf', '277'] # map construct name to index construct_dict = {'P1':0, 'P2':1, 'P4':2, 'P5':3, 'P16':4, 'P17':5, 'P18':6, 'P19':7, 'P22':8, 'P23':9, 'P24':10, 'P25':11, 'P27':12, 'P46':13, 'P47':14, 'P56':15, '439':16, '440':17, '472':18, '473':19, '294arf':20, '277':21} # makes a list of lists (ratio_vals) where each list is all the median ratiometric intensities for a construct # in order of the construct_list above ratio_vals = [] for i in construct_list: ratio_vals_temp = [] for ind, row in med_intensity_data.iterrows(): if row['Construct'] == i: ratio_vals_temp.append(row['Intensity Ratio']) ratio_vals.append(ratio_vals_temp) # example of running statistical analysis for group of pPP2AA3 constructs getStats(['P1', 'P2', 'P4', 'P5']) # subset pooled data into different dataframes for generating the separate plots main_tuning = med_intensity_data[med_intensity_data.Construct.isin(['P27', 'P46', 'P47', 'P56', '294', 277.0, '277'])==False] term_tuning = med_intensity_data[med_intensity_data.Construct.isin(['P1', 'P2', 'P46', 'P47', '294arf'])] ub_tuning = med_intensity_data[med_intensity_data.Construct.isin(['P23', 'P27', 'P56', '29...…”
Section: Python Scriptmentioning
confidence: 99%
See 2 more Smart Citations