# HG changeset patch
# User adrian.diaz
# Date 1659433473 0
# Node ID a9db23ac113fce1e37f828c7cf398c4cb7fba27a
# Parent 891ccfd226332445cd9572b42bca2127c77c17ab
Uploaded new version formatted.
diff -r 891ccfd22633 -r a9db23ac113f b2btools_single_sequence.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b2btools_single_sequence.xml Tue Aug 02 09:44:33 2022 +0000
@@ -0,0 +1,123 @@
+
+ from their amino-acid sequences
+
+ b2btools
+
+
+ b2btools
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 10.1038/ncomms3741
+ 10.1101/2020.05.25.115253
+ 10.1038/s41598-017-08366-3
+ 10.1093/bioinformatics/btz912
+
+
\ No newline at end of file
diff -r 891ccfd22633 -r a9db23ac113f b2btools_single_sequence/b2btools_single_sequence.xml
--- a/b2btools_single_sequence/b2btools_single_sequence.xml Tue Aug 02 08:54:19 2022 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-
- predicts protein biophysical properties from their amino-acid sequences
-
- b2btools
-
-
- b2btools
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10.1038/ncomms3741
- 10.1101/2020.05.25.115253
- 10.1038/s41598-017-08366-3
- 10.1093/bioinformatics/btz912
-
-
\ No newline at end of file
diff -r 891ccfd22633 -r a9db23ac113f b2btools_single_sequence/script.py
--- a/b2btools_single_sequence/script.py Tue Aug 02 08:54:19 2022 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-import optparse
-import os.path
-import unicodedata
-import re
-import numpy as np
-import pandas as pd
-from b2bTools import SingleSeq
-import matplotlib.pyplot as plt
-
-
-def slugify(value):
- """
- Taken from https://github.com/django/django/blob/master/django/utils/text.py
- Convert to ASCII if 'allow_unicode'. Convert spaces or repeated
- dashes to single dashes. Remove characters that aren't alphanumerics,
- underscores, or hyphens. Convert to lowercase. Also strip leading and
- trailing whitespace, dashes, and underscores.
- """
- value = str(value)
- value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
- value = re.sub(r'[^\w\s-]', '', value.lower())
- return re.sub(r'[-\s]+', '-', value).strip('-_')
-
-
-def check_min_max(predicted_values, former_min, former_max):
- seq_max = max(predicted_values)
- seq_min = min(predicted_values)
- if seq_max + 0.1 > former_max and not np.isnan(seq_max) and not np.isinf(seq_max):
- former_max = seq_max + 0.1
- if seq_min - 0.1 < former_min and not np.isnan(seq_min) and not np.isinf(seq_min):
- former_min = seq_min - 0.1
- return former_min, former_max
-
-
-def plot_prediction(prediction_name, highlighting_regions, predicted_values, seq_name):
- thresholds_dict = {'backbone': {'membrane spanning': [1., 1.5],
- 'rigid': [0.8, 1.],
- 'context-dependent': [0.69, 0.8],
- 'flexible': [-1.0, 0.69]},
- 'earlyFolding': {'early folds': [0.169, 2.], 'late folds': [-1., 0.169]},
- 'disoMine': {'ordered': [-1., 0.5], 'disordered': [0.5, 2.]},
- }
- ordered_regions_dict = {'backbone': ['flexible', 'context-dependent', 'rigid', 'membrane spanning'],
- 'earlyFolding': ['late folds', 'early folds'],
- 'disoMine': ['ordered', 'disordered'],
- }
- colors = ['yellow', 'orange', 'pink', 'red']
- ranges_dict = {
- 'backbone': [-0.2, 1.2],
- 'sidechain': [-0.2, 1.2],
- 'ppII': [-0.2, 1.2],
- 'earlyFolding': [-0.2, 1.2],
- 'disoMine': [-0.2, 1.2],
- 'agmata': [-0.2, 1.2],
- 'helix': [-1., 1.],
- 'sheet': [-1., 1.],
- 'coil': [-1., 1.],
- }
- fig, ax = plt.subplots(1, 1)
- fig.set_figwidth(10)
- fig.set_figheight(5)
- ax.set_title(prediction_name + ' ' + 'prediction')
- min_value, max_value = ranges_dict[prediction_name]
- if seq_name == 'all':
- max_len = 0
- for seq in predicted_values.keys():
- predictions = predicted_values[seq]
- min_value, max_value = check_min_max(predictions, min_value, max_value)
- ax.plot(range(len(predictions)), predictions, label=seq)
- if len(predictions) > max_len:
- max_len = len(predictions)
- ax.set_xlim([0, max_len - 1])
- else:
- predictions = predicted_values
- min_value, max_value = check_min_max(predictions, min_value, max_value)
- ax.plot(range(len(predictions)), predictions, label=seq_name)
- ax.set_xlim([0, len(predictions) - 1])
- legend_lines = plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left", fancybox=True, shadow=True)
- ax.add_artist(legend_lines)
- # Define regions
- if highlighting_regions:
- if prediction_name in ordered_regions_dict.keys():
- for i, prediction in enumerate(ordered_regions_dict[prediction_name]):
- lower = thresholds_dict[prediction_name][prediction][0]
- upper = thresholds_dict[prediction_name][prediction][1]
- color = colors[i]
- ax.axhspan(lower, upper, alpha=0.3, color=color, label=prediction)
- included_in_regions_legend = list(reversed(
- [prediction for prediction in ordered_regions_dict[prediction_name]])) # to sort it "from up to low"
- # Get handles and labels
- handles, labels = plt.gca().get_legend_handles_labels()
- handles_dict = {label: handles[idx] for idx, label in enumerate(labels)}
- # Add legend for regions, if available
- region_legend = ax.legend([handles_dict[region] for region in included_in_regions_legend],
- [region for region in included_in_regions_legend], fancybox=True, shadow=True,
- loc='lower left', bbox_to_anchor=(1.04, 0))
- ax.add_artist(region_legend)
- ax.set_ylim([min_value, max_value])
- ax.set_xlabel('residue index')
- ax.set_ylabel('prediction values')
- ax.grid(axis='y')
- plt.savefig(os.path.join(options.plot_output, "{0}_{1}.png".format(slugify(seq_name), prediction_name)), bbox_inches="tight")
- plt.close()
-
-
-def df_dict_to_dict_of_values(df_dict, predictor):
- results_dict = {}
- for seq in df_dict.keys():
- df = pd.read_csv(df_dict[seq], sep='\t')
- results_dict[seq] = df[predictor]
- return results_dict
-
-
-def main(options):
- single_seq = SingleSeq(options.input_fasta)
- b2b_tools = []
- if options.dynamine:
- b2b_tools.append('dynamine')
- if options.disomine:
- b2b_tools.append('disomine')
- if options.efoldmine:
- b2b_tools.append('efoldmine')
- if options.agmata:
- b2b_tools.append('agmata')
-
- single_seq.predict(b2b_tools)
- predictions = single_seq.get_all_predictions()
- results_json = single_seq.get_all_predictions_json('all')
- with open(options.json_output, 'w') as f:
- f.write(results_json)
- first_sequence_key = next(iter(predictions))
- prediction_keys = predictions[first_sequence_key].keys()
- df_dictionary = {}
- for sequence_key, sequence_predictions in predictions.items():
- residues = sequence_predictions['seq']
- residues_count = len(residues)
- sequence_df = pd.DataFrame(columns=prediction_keys, index=range(residues_count))
- sequence_df.index.name = 'residue_index'
- for predictor in prediction_keys:
- sequence_df[predictor] = sequence_predictions[predictor]
- sequence_df = sequence_df.rename(columns={"seq": "residue"})
- sequence_df = sequence_df.round(decimals=2)
- filename = f'{options.output}/{slugify(sequence_key)}.tsv'
- df_dictionary[sequence_key] = filename
- sequence_df.to_csv(filename, sep="\t")
- # Plot each individual plot (compatible with plot all)
- if options.plot:
- for predictor in prediction_keys:
- if predictor != 'seq':
- plot_prediction(prediction_name=predictor, highlighting_regions=True,
- predicted_values=sequence_predictions[predictor], seq_name=sequence_key)
- # Plot all together (compatible with plot individual)
- if options.plot_all:
- for predictor in prediction_keys:
- if predictor != 'seq':
- results_dictionary = df_dict_to_dict_of_values(df_dict=df_dictionary, predictor=predictor)
- plot_prediction(prediction_name=predictor, highlighting_regions=True,
- predicted_values=results_dictionary, seq_name='all')
-
-
-if __name__ == "__main__":
- parser = optparse.OptionParser()
- parser.add_option("--dynamine", action="store_true", default=False)
- parser.add_option("--disomine", action="store_true", default=False)
- parser.add_option("--efoldmine", action="store_true", default=False)
- parser.add_option("--agmata", action="store_true", default=False)
- parser.add_option("--file", dest="input_fasta", default=False)
- parser.add_option("--output", dest="output", default=False)
- parser.add_option("--plot-output", dest="plot_output", default=False)
-
- parser.add_option("--json", dest="json_output", default=False)
- parser.add_option("--plot", action="store_true", default=False)
- parser.add_option("--plot_all", action="store_true", default=False)
- parser.add_option("--highlight", action="store_true", default=False)
- options, _args = parser.parse_args()
- main(options)
diff -r 891ccfd22633 -r a9db23ac113f script.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/script.py Tue Aug 02 09:44:33 2022 +0000
@@ -0,0 +1,222 @@
+import optparse
+import os.path
+import unicodedata
+import re
+import numpy as np
+import pandas as pd
+from b2bTools import SingleSeq
+import matplotlib.pyplot as plt
+
+
+def slugify(value):
+ """
+ Taken from
+ https://github.com/django/django/blob/master/django/utils/text.py
+ Convert to ASCII if 'allow_unicode'. Convert spaces or repeated
+ dashes to single dashes. Remove characters that aren't alphanumerics,
+ underscores, or hyphens. Convert to lowercase. Also strip leading and
+ trailing whitespace, dashes, and underscores.
+ """
+ value = str(value)
+ value = unicodedata.normalize(
+ 'NFKD', value).encode(
+ 'ascii', 'ignore').decode('ascii')
+ value = re.sub(r'[^\w\s-]', '', value.lower())
+ return re.sub(r'[-\s]+', '-', value).strip('-_')
+
+
+def check_min_max(predicted_values, former_min, former_max):
+ seq_max = max(predicted_values)
+ seq_min = min(predicted_values)
+ if seq_max + \
+ 0.1 > former_max and not np.isnan(seq_max) \
+ and not np.isinf(seq_max):
+ former_max = seq_max + 0.1
+ if seq_min - \
+ 0.1 < former_min and not np.isnan(seq_min) \
+ and not np.isinf(seq_min):
+ former_min = seq_min - 0.1
+ return former_min, former_max
+
+
+def plot_prediction(prediction_name, highlighting_regions,
+ pred_vals, seq_name):
+ thresholds_dict = {'backbone': {'membrane spanning': [1., 1.5],
+ 'rigid': [0.8, 1.],
+ 'context-dependent': [0.69, 0.8],
+ 'flexible': [-1.0, 0.69]},
+ 'earlyFolding': {'early folds': [0.169, 2.],
+ 'late folds': [-1., 0.169]},
+ 'disoMine': {'ordered': [-1., 0.5],
+ 'disordered': [0.5, 2.]},
+ }
+ ordered_regions_dict = {'backbone': ['flexible',
+ 'context-dependent',
+ 'rigid',
+ 'membrane spanning'],
+ 'earlyFolding': ['late folds', 'early folds'],
+ 'disoMine': ['ordered', 'disordered'],
+ }
+ colors = ['yellow', 'orange', 'pink', 'red']
+ ranges_dict = {
+ 'backbone': [-0.2, 1.2],
+ 'sidechain': [-0.2, 1.2],
+ 'ppII': [-0.2, 1.2],
+ 'earlyFolding': [-0.2, 1.2],
+ 'disoMine': [-0.2, 1.2],
+ 'agmata': [-0.2, 1.2],
+ 'helix': [-1., 1.],
+ 'sheet': [-1., 1.],
+ 'coil': [-1., 1.],
+ }
+ fig, ax = plt.subplots(1, 1)
+ fig.set_figwidth(10)
+ fig.set_figheight(5)
+ ax.set_title(prediction_name + ' ' + 'prediction')
+ min_value, max_value = ranges_dict[prediction_name]
+ if seq_name == 'all':
+ max_len = 0
+ for seq in pred_vals.keys():
+ predictions = pred_vals[seq]
+ min_value, max_value = check_min_max(
+ predictions, min_value, max_value)
+ ax.plot(range(len(predictions)), predictions, label=seq)
+ if len(predictions) > max_len:
+ max_len = len(predictions)
+ ax.set_xlim([0, max_len - 1])
+ else:
+ predictions = pred_vals
+ min_value, max_value = check_min_max(predictions, min_value, max_value)
+ ax.plot(range(len(predictions)), predictions, label=seq_name)
+ ax.set_xlim([0, len(predictions) - 1])
+ legend_lines = plt.legend(
+ bbox_to_anchor=(
+ 1.04,
+ 1),
+ loc="upper left",
+ fancybox=True,
+ shadow=True)
+ ax.add_artist(legend_lines)
+ # Define regions
+ if highlighting_regions:
+ if prediction_name in ordered_regions_dict.keys():
+ for i, prediction in enumerate(
+ ordered_regions_dict[prediction_name]):
+ lower = thresholds_dict[prediction_name][prediction][0]
+ upper = thresholds_dict[prediction_name][prediction][1]
+ color = colors[i]
+ ax.axhspan(
+ lower,
+ upper,
+ alpha=0.3,
+ color=color,
+ label=prediction)
+ # to sort it "from up to low"
+ included_in_regions_legend = list(reversed(
+ [r_pred for r_pred in ordered_regions_dict[prediction_name]]))
+ # Get handles and labels
+ handles, labels = plt.gca().get_legend_handles_labels()
+ handles_dict = {label: handles[idx]
+ for idx, label in enumerate(labels)}
+ # Add legend for regions, if available
+ lgnd_labels = [handles_dict[r] for r in included_in_regions_legend]
+ lgnd_regions = [region for region in included_in_regions_legend]
+ region_legend = ax.legend(lgnd_labels,
+ lgnd_regions,
+ fancybox=True,
+ shadow=True,
+ loc='lower left',
+ bbox_to_anchor=(1.04, 0))
+ ax.add_artist(region_legend)
+ ax.set_ylim([min_value, max_value])
+ ax.set_xlabel('residue index')
+ ax.set_ylabel('prediction values')
+ ax.grid(axis='y')
+ plt.savefig(
+ os.path.join(
+ options.plot_output,
+ "{0}_{1}.png".format(
+ slugify(seq_name),
+ prediction_name)),
+ bbox_inches="tight")
+ plt.close()
+
+
+def df_dict_to_dict_of_values(df_dict, predictor):
+ results_dict = {}
+ for seq in df_dict.keys():
+ df = pd.read_csv(df_dict[seq], sep='\t')
+ results_dict[seq] = df[predictor]
+ return results_dict
+
+
+def main(options):
+ single_seq = SingleSeq(options.input_fasta)
+ b2b_tools = []
+ if options.dynamine:
+ b2b_tools.append('dynamine')
+ if options.disomine:
+ b2b_tools.append('disomine')
+ if options.efoldmine:
+ b2b_tools.append('efoldmine')
+ if options.agmata:
+ b2b_tools.append('agmata')
+
+ single_seq.predict(b2b_tools)
+ predictions = single_seq.get_all_predictions()
+ results_json = single_seq.get_all_predictions_json('all')
+ with open(options.json_output, 'w') as f:
+ f.write(results_json)
+ first_sequence_key = next(iter(predictions))
+ prediction_keys = predictions[first_sequence_key].keys()
+ df_dictionary = {}
+ for sequence_key, sequence_predictions in predictions.items():
+ residues = sequence_predictions['seq']
+ residues_count = len(residues)
+ sequence_df = pd.DataFrame(
+ columns=prediction_keys,
+ index=range(residues_count))
+ sequence_df.index.name = 'residue_index'
+ for predictor in prediction_keys:
+ sequence_df[predictor] = sequence_predictions[predictor]
+ sequence_df = sequence_df.rename(columns={"seq": "residue"})
+ sequence_df = sequence_df.round(decimals=2)
+ filename = f'{options.output}/{slugify(sequence_key)}.tsv'
+ df_dictionary[sequence_key] = filename
+ sequence_df.to_csv(filename, sep="\t")
+ # Plot each individual plot (compatible with plot all)
+ if options.plot:
+ for predictor in prediction_keys:
+ if predictor != 'seq':
+ plot_prediction(prediction_name=predictor,
+ highlighting_regions=True,
+ pred_vals=sequence_predictions[predictor],
+ seq_name=sequence_key)
+ # Plot all together (compatible with plot individual)
+ if options.plot_all:
+ for predictor in prediction_keys:
+ if predictor != 'seq':
+ results_dictionary = df_dict_to_dict_of_values(
+ df_dict=df_dictionary, predictor=predictor)
+ plot_prediction(prediction_name=predictor,
+ highlighting_regions=True,
+ pred_vals=results_dictionary,
+ seq_name='all')
+
+
+if __name__ == "__main__":
+ parser = optparse.OptionParser()
+ parser.add_option("--dynamine", action="store_true", default=False)
+ parser.add_option("--disomine", action="store_true", default=False)
+ parser.add_option("--efoldmine", action="store_true", default=False)
+ parser.add_option("--agmata", action="store_true", default=False)
+ parser.add_option("--file", dest="input_fasta", default=False)
+ parser.add_option("--output", dest="output", default=False)
+ parser.add_option("--plot-output", dest="plot_output", default=False)
+
+ parser.add_option("--json", dest="json_output", default=False)
+ parser.add_option("--plot", action="store_true", default=False)
+ parser.add_option("--plot_all", action="store_true", default=False)
+ parser.add_option("--highlight", action="store_true", default=False)
+ options, _args = parser.parse_args()
+ main(options)
diff -r 891ccfd22633 -r a9db23ac113f test-data/input.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input.fasta Tue Aug 02 09:44:33 2022 +0000
@@ -0,0 +1,29 @@
+>random_sequence_1_consisting_of_10_residues
+MDRHDPVQKS
+
+>random_sequence_2_consisting_of_10_residues
+SQRAMWSMWR
+
+>random_sequence_3_consisting_of_10_residues
+YWCELTYWRV
+
+>random_sequence_4_consisting_of_10_residues
+SWTHYELKAV
+
+>random_sequence_5_consisting_of_10_residues
+NCPIEPEDQY
+
+>random_sequence_6_consisting_of_10_residues
+YACLFQKPYI
+
+>random_sequence_7_consisting_of_10_residues
+FVPGKQEPDS
+
+>random_sequence_8_consisting_of_10_residues
+HHLCANKMDL
+
+>random_sequence_9_consisting_of_10_residues
+GNKTPFMKMH
+
+>random_sequence_10_consisting_of_10_residues
+PMSKMWQLDN
diff -r 891ccfd22633 -r a9db23ac113f test-data/test_output.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_output.json Tue Aug 02 09:44:33 2022 +0000
@@ -0,0 +1,803 @@
+{
+ "creation_date": "2022-07-06T13:54:39",
+ "id": "all",
+ "information": {
+ "Agmata": {
+ "info": "Generated by Agmata;See http://bio2byte.be",
+ "origin": "b2bTools.singleSeq.Agmata.Predictor",
+ "references": [
+ "doi: 10.1093/bioinformatics/btz912 (2020)"
+ ],
+ "version": "1.0"
+ },
+ "DisoMine": {
+ "info": "Generated by DisoMine;See http://bio2byte.be",
+ "origin": "python.b2bTools.singleSeq.DisoMine.Predictor",
+ "references": [
+ "doi: 10.1101/2020.05.25.115253 (2020)"
+ ],
+ "version": "2.0"
+ },
+ "DynaMine suite": {
+ "info": "Generated by the DynaMine suite;See http://bio2byte.be",
+ "origin": "python.b2bTools.singleSeq.DynaMine.Predictor",
+ "references": [
+ "doi: 10.1038/ncomms3741 (2013)",
+ "doi: 10.1093/nar/gku270 (2014)"
+ ],
+ "version": "4.0"
+ },
+ "EFoldMine": {
+ "info": "Generated by EFoldMine;Based on the DynaMine project;See http://bio2byte.be",
+ "origin": "python.b2bTools.singleSeq.EFoldMine.Predictor",
+ "references": [
+ "doi: 10.1038/ncomms3741 (2013)",
+ "doi: 10.1093/nar/gku270 (2014)",
+ "doi: 10.1038/s41598-017-08366-3 (2017)"
+ ],
+ "version": "2.0"
+ }
+ },
+ "results": [
+ {
+ "backbone": [
+ 0.724,
+ 0.749,
+ 0.745,
+ 0.777,
+ 0.792,
+ 0.794,
+ 0.817,
+ 0.846,
+ 0.82,
+ 0.815
+ ],
+ "coil": [
+ 0.411,
+ 0.427,
+ 0.419,
+ 0.362,
+ 0.346,
+ 0.316,
+ 0.313,
+ 0.351,
+ 0.42,
+ 0.449
+ ],
+ "helix": [
+ 0.379,
+ 0.418,
+ 0.445,
+ 0.505,
+ 0.466,
+ 0.465,
+ 0.452,
+ 0.447,
+ 0.416,
+ 0.401
+ ],
+ "ppII": [
+ 0.121,
+ 0.099,
+ 0.088,
+ 0.07,
+ 0.069,
+ 0.071,
+ 0.068,
+ 0.058,
+ 0.067,
+ 0.06
+ ],
+ "proteinID": "random_sequence_10_consisting_of_10_residues",
+ "sequence": "PMSKMWQLDN",
+ "sheet": [
+ 0.131,
+ 0.117,
+ 0.115,
+ 0.143,
+ 0.213,
+ 0.262,
+ 0.287,
+ 0.213,
+ 0.137,
+ 0.09
+ ],
+ "sidechain": [
+ 0.508,
+ 0.523,
+ 0.494,
+ 0.367,
+ 0.541,
+ 0.62,
+ 0.41,
+ 0.599,
+ 0.327,
+ 0.538
+ ]
+ },
+ {
+ "backbone": [
+ 0.717,
+ 0.697,
+ 0.729,
+ 0.747,
+ 0.742,
+ 0.723,
+ 0.713,
+ 0.709,
+ 0.732,
+ 0.724
+ ],
+ "coil": [
+ 0.458,
+ 0.541,
+ 0.572,
+ 0.555,
+ 0.521,
+ 0.475,
+ 0.459,
+ 0.434,
+ 0.406,
+ 0.407
+ ],
+ "helix": [
+ 0.309,
+ 0.187,
+ 0.144,
+ 0.144,
+ 0.186,
+ 0.237,
+ 0.256,
+ 0.276,
+ 0.318,
+ 0.317
+ ],
+ "ppII": [
+ 0.105,
+ 0.129,
+ 0.132,
+ 0.13,
+ 0.143,
+ 0.15,
+ 0.137,
+ 0.123,
+ 0.106,
+ 0.104
+ ],
+ "proteinID": "random_sequence_1_consisting_of_10_residues",
+ "sequence": "MDRHDPVQKS",
+ "sheet": [
+ 0.152,
+ 0.121,
+ 0.108,
+ 0.113,
+ 0.137,
+ 0.194,
+ 0.205,
+ 0.218,
+ 0.212,
+ 0.2
+ ],
+ "sidechain": [
+ 0.487,
+ 0.282,
+ 0.324,
+ 0.503,
+ 0.3,
+ 0.503,
+ 0.514,
+ 0.339,
+ 0.338,
+ 0.507
+ ]
+ },
+ {
+ "backbone": [
+ 0.743,
+ 0.763,
+ 0.743,
+ 0.764,
+ 0.802,
+ 0.846,
+ 0.854,
+ 0.854,
+ 0.832,
+ 0.845
+ ],
+ "coil": [
+ 0.34,
+ 0.321,
+ 0.338,
+ 0.325,
+ 0.323,
+ 0.287,
+ 0.282,
+ 0.283,
+ 0.303,
+ 0.295
+ ],
+ "helix": [
+ 0.54,
+ 0.567,
+ 0.536,
+ 0.565,
+ 0.564,
+ 0.571,
+ 0.533,
+ 0.515,
+ 0.448,
+ 0.44
+ ],
+ "ppII": [
+ 0.079,
+ 0.073,
+ 0.079,
+ 0.07,
+ 0.058,
+ 0.042,
+ 0.037,
+ 0.034,
+ 0.052,
+ 0.048
+ ],
+ "proteinID": "random_sequence_2_consisting_of_10_residues",
+ "sequence": "SQRAMWSMWR",
+ "sheet": [
+ 0.104,
+ 0.14,
+ 0.164,
+ 0.163,
+ 0.206,
+ 0.239,
+ 0.267,
+ 0.266,
+ 0.287,
+ 0.292
+ ],
+ "sidechain": [
+ 0.502,
+ 0.396,
+ 0.32,
+ 0.561,
+ 0.557,
+ 0.637,
+ 0.578,
+ 0.589,
+ 0.65,
+ 0.433
+ ]
+ },
+ {
+ "backbone": [
+ 0.92,
+ 0.938,
+ 0.976,
+ 0.997,
+ 0.992,
+ 0.981,
+ 0.955,
+ 0.937,
+ 0.936,
+ 0.912
+ ],
+ "coil": [
+ 0.255,
+ 0.254,
+ 0.228,
+ 0.225,
+ 0.233,
+ 0.238,
+ 0.243,
+ 0.221,
+ 0.209,
+ 0.213
+ ],
+ "helix": [
+ 0.434,
+ 0.383,
+ 0.406,
+ 0.458,
+ 0.483,
+ 0.443,
+ 0.413,
+ 0.404,
+ 0.398,
+ 0.389
+ ],
+ "ppII": [
+ 0.041,
+ 0.038,
+ 0.025,
+ 0.016,
+ 0.01,
+ 0.017,
+ 0.028,
+ 0.032,
+ 0.035,
+ 0.04
+ ],
+ "proteinID": "random_sequence_3_consisting_of_10_residues",
+ "sequence": "YWCELTYWRV",
+ "sheet": [
+ 0.363,
+ 0.436,
+ 0.473,
+ 0.484,
+ 0.46,
+ 0.443,
+ 0.455,
+ 0.473,
+ 0.505,
+ 0.494
+ ],
+ "sidechain": [
+ 0.63,
+ 0.699,
+ 0.732,
+ 0.409,
+ 0.701,
+ 0.713,
+ 0.646,
+ 0.686,
+ 0.436,
+ 0.622
+ ]
+ },
+ {
+ "backbone": [
+ 0.748,
+ 0.766,
+ 0.828,
+ 0.859,
+ 0.874,
+ 0.908,
+ 0.863,
+ 0.84,
+ 0.853,
+ 0.824
+ ],
+ "coil": [
+ 0.419,
+ 0.403,
+ 0.338,
+ 0.278,
+ 0.231,
+ 0.237,
+ 0.239,
+ 0.26,
+ 0.257,
+ 0.267
+ ],
+ "helix": [
+ 0.227,
+ 0.224,
+ 0.336,
+ 0.437,
+ 0.548,
+ 0.54,
+ 0.52,
+ 0.502,
+ 0.516,
+ 0.501
+ ],
+ "ppII": [
+ 0.101,
+ 0.096,
+ 0.068,
+ 0.048,
+ 0.039,
+ 0.038,
+ 0.05,
+ 0.05,
+ 0.048,
+ 0.06
+ ],
+ "proteinID": "random_sequence_4_consisting_of_10_residues",
+ "sequence": "SWTHYELKAV",
+ "sheet": [
+ 0.281,
+ 0.312,
+ 0.317,
+ 0.329,
+ 0.326,
+ 0.358,
+ 0.355,
+ 0.333,
+ 0.317,
+ 0.286
+ ],
+ "sidechain": [
+ 0.534,
+ 0.654,
+ 0.622,
+ 0.612,
+ 0.593,
+ 0.387,
+ 0.611,
+ 0.374,
+ 0.59,
+ 0.567
+ ]
+ },
+ {
+ "backbone": [
+ 0.775,
+ 0.754,
+ 0.753,
+ 0.754,
+ 0.754,
+ 0.783,
+ 0.771,
+ 0.798,
+ 0.773,
+ 0.777
+ ],
+ "coil": [
+ 0.505,
+ 0.538,
+ 0.497,
+ 0.495,
+ 0.468,
+ 0.451,
+ 0.46,
+ 0.449,
+ 0.409,
+ 0.372
+ ],
+ "helix": [
+ 0.156,
+ 0.028,
+ 0.096,
+ 0.086,
+ 0.156,
+ 0.267,
+ 0.34,
+ 0.408,
+ 0.411,
+ 0.394
+ ],
+ "ppII": [
+ 0.107,
+ 0.135,
+ 0.152,
+ 0.157,
+ 0.154,
+ 0.141,
+ 0.124,
+ 0.093,
+ 0.09,
+ 0.085
+ ],
+ "proteinID": "random_sequence_5_consisting_of_10_residues",
+ "sequence": "NCPIEPEDQY",
+ "sheet": [
+ 0.223,
+ 0.288,
+ 0.278,
+ 0.281,
+ 0.236,
+ 0.165,
+ 0.097,
+ 0.057,
+ 0.111,
+ 0.178
+ ],
+ "sidechain": [
+ 0.49,
+ 0.635,
+ 0.528,
+ 0.572,
+ 0.299,
+ 0.54,
+ 0.28,
+ 0.321,
+ 0.375,
+ 0.549
+ ]
+ },
+ {
+ "backbone": [
+ 0.911,
+ 0.923,
+ 0.931,
+ 0.883,
+ 0.891,
+ 0.881,
+ 0.886,
+ 0.855,
+ 0.837,
+ 0.82
+ ],
+ "coil": [
+ 0.217,
+ 0.199,
+ 0.2,
+ 0.273,
+ 0.33,
+ 0.342,
+ 0.351,
+ 0.332,
+ 0.338,
+ 0.318
+ ],
+ "helix": [
+ 0.546,
+ 0.566,
+ 0.586,
+ 0.493,
+ 0.43,
+ 0.394,
+ 0.324,
+ 0.342,
+ 0.351,
+ 0.352
+ ],
+ "ppII": [
+ 0.033,
+ 0.025,
+ 0.019,
+ 0.035,
+ 0.045,
+ 0.066,
+ 0.079,
+ 0.091,
+ 0.087,
+ 0.081
+ ],
+ "proteinID": "random_sequence_6_consisting_of_10_residues",
+ "sequence": "YACLFQKPYI",
+ "sheet": [
+ 0.33,
+ 0.372,
+ 0.376,
+ 0.358,
+ 0.316,
+ 0.298,
+ 0.333,
+ 0.327,
+ 0.343,
+ 0.332
+ ],
+ "sidechain": [
+ 0.617,
+ 0.622,
+ 0.689,
+ 0.632,
+ 0.638,
+ 0.445,
+ 0.432,
+ 0.593,
+ 0.596,
+ 0.618
+ ]
+ },
+ {
+ "backbone": [
+ 0.789,
+ 0.776,
+ 0.744,
+ 0.689,
+ 0.678,
+ 0.635,
+ 0.64,
+ 0.672,
+ 0.701,
+ 0.691
+ ],
+ "coil": [
+ 0.373,
+ 0.395,
+ 0.422,
+ 0.51,
+ 0.581,
+ 0.601,
+ 0.583,
+ 0.539,
+ 0.544,
+ 0.512
+ ],
+ "helix": [
+ 0.163,
+ 0.147,
+ 0.175,
+ 0.105,
+ 0.027,
+ -0.041,
+ 0.018,
+ 0.152,
+ 0.273,
+ 0.307
+ ],
+ "ppII": [
+ 0.106,
+ 0.126,
+ 0.151,
+ 0.171,
+ 0.169,
+ 0.19,
+ 0.193,
+ 0.172,
+ 0.143,
+ 0.122
+ ],
+ "proteinID": "random_sequence_7_consisting_of_10_residues",
+ "sequence": "FVPGKQEPDS",
+ "sheet": [
+ 0.412,
+ 0.369,
+ 0.278,
+ 0.208,
+ 0.167,
+ 0.175,
+ 0.159,
+ 0.111,
+ 0.008,
+ 0.01
+ ],
+ "sidechain": [
+ 0.582,
+ 0.577,
+ 0.526,
+ 0.444,
+ 0.344,
+ 0.325,
+ 0.268,
+ 0.491,
+ 0.269,
+ 0.468
+ ]
+ },
+ {
+ "backbone": [
+ 0.806,
+ 0.83,
+ 0.829,
+ 0.835,
+ 0.797,
+ 0.816,
+ 0.835,
+ 0.828,
+ 0.808,
+ 0.806
+ ],
+ "coil": [
+ 0.331,
+ 0.313,
+ 0.316,
+ 0.336,
+ 0.393,
+ 0.406,
+ 0.41,
+ 0.4,
+ 0.374,
+ 0.346
+ ],
+ "helix": [
+ 0.46,
+ 0.477,
+ 0.475,
+ 0.488,
+ 0.402,
+ 0.468,
+ 0.498,
+ 0.48,
+ 0.496,
+ 0.469
+ ],
+ "ppII": [
+ 0.058,
+ 0.046,
+ 0.051,
+ 0.054,
+ 0.071,
+ 0.062,
+ 0.055,
+ 0.055,
+ 0.068,
+ 0.067
+ ],
+ "proteinID": "random_sequence_8_consisting_of_10_residues",
+ "sequence": "HHLCANKMDL",
+ "sheet": [
+ 0.219,
+ 0.279,
+ 0.278,
+ 0.251,
+ 0.22,
+ 0.128,
+ 0.093,
+ 0.114,
+ 0.136,
+ 0.18
+ ],
+ "sidechain": [
+ 0.563,
+ 0.555,
+ 0.601,
+ 0.647,
+ 0.562,
+ 0.493,
+ 0.376,
+ 0.523,
+ 0.312,
+ 0.572
+ ]
+ },
+ {
+ "backbone": [
+ 0.64,
+ 0.674,
+ 0.721,
+ 0.758,
+ 0.791,
+ 0.753,
+ 0.762,
+ 0.772,
+ 0.77,
+ 0.796
+ ],
+ "coil": [
+ 0.578,
+ 0.611,
+ 0.552,
+ 0.459,
+ 0.363,
+ 0.378,
+ 0.383,
+ 0.372,
+ 0.391,
+ 0.37
+ ],
+ "helix": [
+ 0.043,
+ -0.002,
+ 0.039,
+ 0.143,
+ 0.329,
+ 0.405,
+ 0.425,
+ 0.401,
+ 0.406,
+ 0.431
+ ],
+ "ppII": [
+ 0.158,
+ 0.152,
+ 0.14,
+ 0.13,
+ 0.11,
+ 0.099,
+ 0.081,
+ 0.073,
+ 0.071,
+ 0.06
+ ],
+ "proteinID": "random_sequence_9_consisting_of_10_residues",
+ "sequence": "GNKTPFMKMH",
+ "sheet": [
+ 0.143,
+ 0.165,
+ 0.21,
+ 0.269,
+ 0.291,
+ 0.218,
+ 0.224,
+ 0.238,
+ 0.2,
+ 0.182
+ ],
+ "sidechain": [
+ 0.431,
+ 0.477,
+ 0.361,
+ 0.588,
+ 0.562,
+ 0.551,
+ 0.514,
+ 0.344,
+ 0.526,
+ 0.573
+ ]
+ }
+ ]
+}
\ No newline at end of file