From b50e6fdb2c2f64d9272cca56550569bdb3f3f2d4 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 26 Feb 2020 10:20:39 -0500 Subject: [PATCH 01/17] modified get_associated_qc_metrics to include more information --- dcicutils/ff_utils.py | 112 ++++++++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 43 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index e4358224b..03ecf4102 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -457,12 +457,49 @@ def faceted_search(key=None, ff_env=None, item_type=None, **kwargs): return search_metadata(search, ff_env=ff_env, key=key) +def fetch_files_qc_metrics(data, file_levels, ignored_fields=True, key=None, ff_env=None): + """ + Simple function to graps the all qc metrics values associated with an experimentset. + inputs: + data: the metadata of a ExperimentSet + file_levels: a list of the file categories that want to be included: + the accepted values are = ['raw_files', 'processed_files', 'other_processed_files'] + Args: + ignored_fields: flag to ignore 4DN custom fields from the qc metric object + + """ + qc_metrics = [] + + if ignored_fields: + ignored_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', + 'project_release', 'award', 'principals_allowed', 'validation-errors', '@type', + 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', + 'actions', 'submitted_by', 'convergence', 'lab', 'date_created'] + else: + ignored_qc_fields = [] + + for level in file_levels: + if level in data: + for entry in data[level]: + if entry.get('quality_metric'): + qc_info = {} + qc_uuid = entry['quality_metric']['uuid'] + qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) + qc_info['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} + qc_info['association'] = level + qc_info['file_of_origin_accession'] = entry['accession'] + qc_info['file_of_origin_type'] = entry['file_type_detailed'] + qc_metrics.append(qc_info) + return qc_metrics + + def get_associated_qc_metrics(uuid, key=None, ff_env=None, exclude_raw_files=True, exclude_supplementary_files=True): """ - Given a uuid of an experiment set, return a dictionary of uuid : item - mappings of quality metric items. + Given a uuid of an experiment set, return a list of dictionaries with the following structure: + 'experiment_set_qc_metrics': a list of quality metrics associated with the experiment set + 'experiments_in_set_qc_metrics': a list of quality metrics associated with the experiments in the experimentset Args: exclude_raw_files: if False will provide QC metrics on raw files as well @@ -470,52 +507,41 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, exclude_supplementary_files: if False will also give QC's associated with non-processed files. Default: True """ - result = {} + result = {'experiment_set_qc_metrics': [], 'experiments_in_set_qc_metrics': []} + file_categories = ['processed_files', 'other_processed_files', 'files'] + extra_info = False + resp = get_metadata(uuid, key=key, ff_env=ff_env) - # handle all 'processed_files' by default - if 'processed_files' in resp: - for entry in resp['processed_files']: - if 'quality_metric' not in entry: - continue - uuid = entry['quality_metric']['uuid'] - result[uuid] = get_metadata(uuid, key=key, ff_env=ff_env) - - # handle 'other_processed_files' if we are doing supplementary files - if 'other_processed_files' in resp and not exclude_supplementary_files: - for entry in resp['processed_files']: - if 'quality_metric' not in entry: - continue - uuid = entry['quality_metric']['uuid'] - result[uuid] = get_metadata(uuid, key=key, ff_env=ff_env) - - # check 'experiment_in_set' as these can contain things too if 'experiments_in_set' in resp: + organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] + experiment_type = resp['experiments_in_set'][0]['experiment_type']['display_title'] + experiment_subclass = resp['experiments_in_set'][0]['experiment_type']['assay_subclass_short'] + extra_info = True + experiments_qc_metrics = [] + for exp in resp['experiments_in_set']: + description = exp['display_title'] + exp_qc_metrics = fetch_files_qc_metrics(exp, file_categories, key=key, ff_env=ff_env) + if exp_qc_metrics: + for exp_qc_metric in exp_qc_metrics: + exp_qc_metric['description'] = description + exp_qc_metric['organism'] = organism + exp_qc_metric['experiment_type'] = experiment_type + exp_qc_metric['experiment_subclass'] = experiment_subclass + exp_qc_metric['experiment_of_origin'] = exp['accession'] + experiments_qc_metrics = experiments_qc_metrics + exp_qc_metrics + result['experiments_in_set_qc_metrics'] = experiments_qc_metrics + + expSet_qc_metrics = fetch_files_qc_metrics(resp, file_categories, key=key, ff_env=ff_env) + if expSet_qc_metrics and extra_info: + for expSet_qc_metric in expSet_qc_metrics: + expSet_qc_metric['description'] = resp['dataset_label'] + expSet_qc_metric['organism'] = organism + expSet_qc_metric['experiment_type'] = experiment_type + expSet_qc_metric['experiment_subclass'] = experiment_subclass + result['experiment_set_qc_metrics'] = expSet_qc_metrics - # handle all 'processed_files' by default - if 'processed_files' in exp: - for entry in exp['processed_files']: - if 'quality_metric' not in entry: - continue - uuid = entry['quality_metric']['uuid'] - result[uuid] = get_metadata(uuid, key=key, ff_env=ff_env) - - # handle 'other_processed_files' if we're doing supplementary files - if 'other_processed_files' in exp and not exclude_supplementary_files: - for entry in exp['processed_files']: - if 'quality_metric' not in entry: - continue - uuid = entry['quality_metric']['uuid'] - result[uuid] = get_metadata(uuid, key=key, ff_env=ff_env) - - # handle 'files' only if we are doing raw files - if 'files' in exp and not exclude_raw_files: - for entry in exp['files']: - if 'quality_metric' not in entry: - continue - uuid = entry['quality_metric']['uuid'] - result[uuid] = get_metadata(uuid, key=key, ff_env=ff_env) return result From 5d16ed6b86063c8b1bc873288bdebe20a48f5055 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 26 Feb 2020 23:00:25 -0500 Subject: [PATCH 02/17] added tests --- dcicutils/ff_utils.py | 86 +++++++++++++++++++++++++------------------ test/test_ff_utils.py | 16 ++++---- 2 files changed, 60 insertions(+), 42 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 03ecf4102..b456b7134 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -457,38 +457,40 @@ def faceted_search(key=None, ff_env=None, item_type=None, **kwargs): return search_metadata(search, ff_env=ff_env, key=key) -def fetch_files_qc_metrics(data, file_levels, ignored_fields=True, key=None, ff_env=None): +def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None, ff_env=None): """ - Simple function to graps the all qc metrics values associated with an experimentset. + Utility function to grap all the qc metrics from associated types of file such as 'proccessed_files', 'other_processed_files', 'raw_files' inputs: - data: the metadata of a ExperimentSet - file_levels: a list of the file categories that want to be included: - the accepted values are = ['raw_files', 'processed_files', 'other_processed_files'] + data: the metadata of a ExperimentSet or the embeded experiments in the ExperimentSet + associated_files: a list of the types of the files fields the qc metrics will be extracted from: + examples are = ['raw_files', 'processed_files', 'other_processed_files'] Args: ignored_fields: flag to ignore 4DN custom fields from the qc metric object + Returns: + a list of dictionaries containing the qc_metric information """ qc_metrics = [] if ignored_fields: ignored_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', - 'project_release', 'award', 'principals_allowed', 'validation-errors', '@type', - 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', - 'actions', 'submitted_by', 'convergence', 'lab', 'date_created'] + 'project_release', 'award', 'principals_allowed', 'validation-errors', + 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', + 'actions', 'submitted_by', 'convergence', 'lab', 'date_created'] else: ignored_qc_fields = [] - - for level in file_levels: - if level in data: - for entry in data[level]: + # for each file + for associated_file in associated_files: + if associated_file in data: + for entry in data[associated_file]: if entry.get('quality_metric'): - qc_info = {} + qc_info = {entry['uuid']: {}} qc_uuid = entry['quality_metric']['uuid'] qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) - qc_info['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info['association'] = level - qc_info['file_of_origin_accession'] = entry['accession'] - qc_info['file_of_origin_type'] = entry['file_type_detailed'] + qc_info[entry['uuid']]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} + qc_info[entry['uuid']]['association'] = associated_file + qc_info[entry['uuid']]['file_of_origin_accession'] = entry['accession'] + qc_info[entry['uuid']]['file_of_origin_type'] = entry['file_type_detailed'] qc_metrics.append(qc_info) return qc_metrics @@ -499,48 +501,62 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, """ Given a uuid of an experiment set, return a list of dictionaries with the following structure: 'experiment_set_qc_metrics': a list of quality metrics associated with the experiment set - 'experiments_in_set_qc_metrics': a list of quality metrics associated with the experiments in the experimentset + 'experiments_in_set_qc_metrics': a list of quality metrics associated with the experiments in the experiment set Args: exclude_raw_files: if False will provide QC metrics on raw files as well Default: True exclude_supplementary_files: if False will also give QC's associated with non-processed files. Default: True + Returns: + a list of dictionaries with the following structure: + {'qc_metric_uuid'}:{'values':'', The values of the qc_metric object + 'association':'', the file class (processed_file or raw_files) + 'file_of_origin_accession, the accession of the file that the qc is linked to + 'file_of_origin_type', the description of the file that the qc is linked to + 'description', the description of the experiment or experimentset + 'organism', the organism + 'experiment_type', the experiment type (in situ Hi-C, ChIP-seq) + 'experiment_subclass' (Hi-C) """ - result = {'experiment_set_qc_metrics': [], 'experiments_in_set_qc_metrics': []} - file_categories = ['processed_files', 'other_processed_files', 'files'] + result = {'experiment_set_qc_metrics': {}, 'experiments_in_set_qc_metrics': {}} + associated_files = ['processed_files', 'other_processed_files', 'files'] extra_info = False - resp = get_metadata(uuid, key=key, ff_env=ff_env) + if 'ExperimentSet' not in resp['@type']: + raise TypeError('Expected ExperimentSet Item') + if 'experiments_in_set' in resp: organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] experiment_type = resp['experiments_in_set'][0]['experiment_type']['display_title'] experiment_subclass = resp['experiments_in_set'][0]['experiment_type']['assay_subclass_short'] extra_info = True - experiments_qc_metrics = [] + experiments_qc_metrics = {} for exp in resp['experiments_in_set']: description = exp['display_title'] - exp_qc_metrics = fetch_files_qc_metrics(exp, file_categories, key=key, ff_env=ff_env) + exp_qc_metrics = fetch_files_qc_metrics(exp, associated_files, key=key, ff_env=ff_env) if exp_qc_metrics: for exp_qc_metric in exp_qc_metrics: - exp_qc_metric['description'] = description - exp_qc_metric['organism'] = organism - exp_qc_metric['experiment_type'] = experiment_type - exp_qc_metric['experiment_subclass'] = experiment_subclass - exp_qc_metric['experiment_of_origin'] = exp['accession'] - experiments_qc_metrics = experiments_qc_metrics + exp_qc_metrics + for key in exp_qc_metric.keys(): + exp_qc_metric[key]['description'] = description + exp_qc_metric[key]['organism'] = organism + exp_qc_metric[key]['experiment_type'] = experiment_type + exp_qc_metric[key]['experiment_subclass'] = experiment_subclass + exp_qc_metric[key]['experiment_of_origin'] = exp['accession'] + experiments_qc_metrics.update(exp_qc_metric) result['experiments_in_set_qc_metrics'] = experiments_qc_metrics - expSet_qc_metrics = fetch_files_qc_metrics(resp, file_categories, key=key, ff_env=ff_env) + expSet_qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) if expSet_qc_metrics and extra_info: for expSet_qc_metric in expSet_qc_metrics: - expSet_qc_metric['description'] = resp['dataset_label'] - expSet_qc_metric['organism'] = organism - expSet_qc_metric['experiment_type'] = experiment_type - expSet_qc_metric['experiment_subclass'] = experiment_subclass - result['experiment_set_qc_metrics'] = expSet_qc_metrics + for key in expSet_qc_metric.keys(): + expSet_qc_metric[key]['description'] = resp['dataset_label'] + expSet_qc_metric[key]['organism'] = organism + expSet_qc_metric[key]['experiment_type'] = experiment_type + expSet_qc_metric[key]['experiment_subclass'] = experiment_subclass + result['experiment_set_qc_metrics'].update(expSet_qc_metric) return result diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 8059d30e4..50504dd6a 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -820,23 +820,25 @@ def test_get_qc_metrics(integrated_ff): """ Tests that we correctly extract qc metric uuids (and therefore items) from the helper """ + key, ff_env = integrated_ff['ff_key'], integrated_ff['ff_env'] uuid = '331106bc-8535-3338-903e-854af460b544' qc_metrics = ff_utils.get_associated_qc_metrics(uuid, key=key, ff_env=ff_env) - assert len(qc_metrics.keys()) == 1 - assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics - assert 'QualityMetric' in qc_metrics['131106bc-8535-4448-903e-854abbbbbbbb']['@type'] + assert len(qc_metrics.keys()) == 2 + assert '46e82a90-49e5-4c33-afab-9ec90d65faa0' in qc_metrics['experiments_in_set_qc_metrics'] + assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['46e82a90-49e5-4c33-afab-9ec90d65faa0']['values']['@type'] kwargs = { # do same as above w/ kwargs, specify to include raw files this time 'key': key, 'ff_env': ff_env, 'exclude_raw_files': False } + qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) assert len(qc_metrics.keys()) == 2 - assert '4c9dabc6-61d6-4054-a951-c4fdd0023800' in qc_metrics - assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics - assert 'QualityMetric' in qc_metrics['131106bc-8535-4448-903e-854abbbbbbbb']['@type'] - assert 'QualityMetric' in qc_metrics['4c9dabc6-61d6-4054-a951-c4fdd0023800']['@type'] + assert '46e82a90-49e5-4c33-afab-9ec90d65faa0' in qc_metrics['experiments_in_set_qc_metrics'] + assert '7f9eb396-5c1a-1112-aebf-28ea39d6a50f' in qc_metrics['experiments_in_set_qc_metrics'] + assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['46e82a90-49e5-4c33-afab-9ec90d65faa0']['values']['@type'] + assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['7f9eb396-5c1a-1112-aebf-28ea39d6a50f']['values']['@type'] @pytest.mark.integrated From b6ec3bc7825fc865aadbbe8a53d87acc79d74ce2 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Thu, 27 Feb 2020 11:00:56 -0500 Subject: [PATCH 03/17] some more changes --- dcicutils/ff_utils.py | 43 +++++++++++++++++++++++-------------------- test/test_ff_utils.py | 10 ++++++++-- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index b456b7134..559c5c408 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -463,14 +463,14 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None inputs: data: the metadata of a ExperimentSet or the embeded experiments in the ExperimentSet associated_files: a list of the types of the files fields the qc metrics will be extracted from: - examples are = ['raw_files', 'processed_files', 'other_processed_files'] + examples are = ['files', 'processed_files', 'other_processed_files'] Args: ignored_fields: flag to ignore 4DN custom fields from the qc metric object Returns: - a list of dictionaries containing the qc_metric information + a dictionaries of dictionaries containing the qc_metric information """ - qc_metrics = [] + qc_metrics = {} if ignored_fields: ignored_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', @@ -488,10 +488,10 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None qc_uuid = entry['quality_metric']['uuid'] qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) qc_info[entry['uuid']]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[entry['uuid']]['association'] = associated_file + qc_info[entry['uuid']]['association'] = associated_file if associated_file != 'files' else 'raw_file' qc_info[entry['uuid']]['file_of_origin_accession'] = entry['accession'] qc_info[entry['uuid']]['file_of_origin_type'] = entry['file_type_detailed'] - qc_metrics.append(qc_info) + qc_metrics.update(qc_info) return qc_metrics @@ -527,6 +527,11 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, if 'ExperimentSet' not in resp['@type']: raise TypeError('Expected ExperimentSet Item') + if exclude_supplementary_files: + associated_files.pop(1) + if exclude_raw_files: + associated_files.pop() + if 'experiments_in_set' in resp: organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] experiment_type = resp['experiments_in_set'][0]['experiment_type']['display_title'] @@ -538,25 +543,23 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, description = exp['display_title'] exp_qc_metrics = fetch_files_qc_metrics(exp, associated_files, key=key, ff_env=ff_env) if exp_qc_metrics: - for exp_qc_metric in exp_qc_metrics: - for key in exp_qc_metric.keys(): - exp_qc_metric[key]['description'] = description - exp_qc_metric[key]['organism'] = organism - exp_qc_metric[key]['experiment_type'] = experiment_type - exp_qc_metric[key]['experiment_subclass'] = experiment_subclass - exp_qc_metric[key]['experiment_of_origin'] = exp['accession'] - experiments_qc_metrics.update(exp_qc_metric) + for exp_qc_metric in exp_qc_metrics.values(): + exp_qc_metric['description'] = description + exp_qc_metric['organism'] = organism + exp_qc_metric['experiment_type'] = experiment_type + exp_qc_metric['experiment_subclass'] = experiment_subclass + exp_qc_metric['experiment_of_origin'] = exp['accession'] + experiments_qc_metrics.update(exp_qc_metrics) result['experiments_in_set_qc_metrics'] = experiments_qc_metrics expSet_qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) if expSet_qc_metrics and extra_info: - for expSet_qc_metric in expSet_qc_metrics: - for key in expSet_qc_metric.keys(): - expSet_qc_metric[key]['description'] = resp['dataset_label'] - expSet_qc_metric[key]['organism'] = organism - expSet_qc_metric[key]['experiment_type'] = experiment_type - expSet_qc_metric[key]['experiment_subclass'] = experiment_subclass - result['experiment_set_qc_metrics'].update(expSet_qc_metric) + for expSet_qc_metric in expSet_qc_metrics.values(): + expSet_qc_metric['description'] = resp['dataset_label'] + expSet_qc_metric['organism'] = organism + expSet_qc_metric['experiment_type'] = experiment_type + expSet_qc_metric['experiment_subclass'] = experiment_subclass + result['experiment_set_qc_metrics'].update(expSet_qc_metrics) return result diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 50504dd6a..25b06f053 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -825,8 +825,14 @@ def test_get_qc_metrics(integrated_ff): uuid = '331106bc-8535-3338-903e-854af460b544' qc_metrics = ff_utils.get_associated_qc_metrics(uuid, key=key, ff_env=ff_env) assert len(qc_metrics.keys()) == 2 - assert '46e82a90-49e5-4c33-afab-9ec90d65faa0' in qc_metrics['experiments_in_set_qc_metrics'] - assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['46e82a90-49e5-4c33-afab-9ec90d65faa0']['values']['@type'] + assert '7f9eb396-5c1a-1112-aebf-28ea39d6a50f' in qc_metrics['experiments_in_set_qc_metrics'] + target_qc = qc_metrics['experiments_in_set_qc_metrics']['7f9eb396-5c1a-1112-aebf-28ea39d6a50f'] + assert 'QualityMetric' in target_qc['values']['@type'] + assert target_qc['organism'] == 'human' + assert target_qc['experiment_type'] == 'Dilution Hi-C' + assert target_qc['experiment_subclass'] == 'Hi-C' + assert target_qc['association'] == 'processed_files' + kwargs = { # do same as above w/ kwargs, specify to include raw files this time 'key': key, 'ff_env': ff_env, From db26fd4fd7b59af7f18f80c28bb78795e2aba049 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Thu, 27 Feb 2020 14:42:39 -0500 Subject: [PATCH 04/17] fix mistake in qc_metrics key --- dcicutils/ff_utils.py | 13 +++++++------ test/test_ff_utils.py | 12 ++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 559c5c408..a1d792af3 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -459,7 +459,8 @@ def faceted_search(key=None, ff_env=None, item_type=None, **kwargs): def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None, ff_env=None): """ - Utility function to grap all the qc metrics from associated types of file such as 'proccessed_files', 'other_processed_files', 'raw_files' + Utility function to grap all the qc metrics from associated types of file such as: + 'proccessed_files', 'other_processed_files', 'files' inputs: data: the metadata of a ExperimentSet or the embeded experiments in the ExperimentSet associated_files: a list of the types of the files fields the qc metrics will be extracted from: @@ -484,13 +485,13 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None if associated_file in data: for entry in data[associated_file]: if entry.get('quality_metric'): - qc_info = {entry['uuid']: {}} qc_uuid = entry['quality_metric']['uuid'] + qc_info = {qc_uuid: {}} qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) - qc_info[entry['uuid']]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[entry['uuid']]['association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[entry['uuid']]['file_of_origin_accession'] = entry['accession'] - qc_info[entry['uuid']]['file_of_origin_type'] = entry['file_type_detailed'] + qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} + qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' + qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] + qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] qc_metrics.update(qc_info) return qc_metrics diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 25b06f053..594c43c6c 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -825,8 +825,8 @@ def test_get_qc_metrics(integrated_ff): uuid = '331106bc-8535-3338-903e-854af460b544' qc_metrics = ff_utils.get_associated_qc_metrics(uuid, key=key, ff_env=ff_env) assert len(qc_metrics.keys()) == 2 - assert '7f9eb396-5c1a-1112-aebf-28ea39d6a50f' in qc_metrics['experiments_in_set_qc_metrics'] - target_qc = qc_metrics['experiments_in_set_qc_metrics']['7f9eb396-5c1a-1112-aebf-28ea39d6a50f'] + assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics['experiments_in_set_qc_metrics'] + target_qc = qc_metrics['experiments_in_set_qc_metrics']['131106bc-8535-4448-903e-854abbbbbbbb'] assert 'QualityMetric' in target_qc['values']['@type'] assert target_qc['organism'] == 'human' assert target_qc['experiment_type'] == 'Dilution Hi-C' @@ -841,10 +841,10 @@ def test_get_qc_metrics(integrated_ff): qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) assert len(qc_metrics.keys()) == 2 - assert '46e82a90-49e5-4c33-afab-9ec90d65faa0' in qc_metrics['experiments_in_set_qc_metrics'] - assert '7f9eb396-5c1a-1112-aebf-28ea39d6a50f' in qc_metrics['experiments_in_set_qc_metrics'] - assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['46e82a90-49e5-4c33-afab-9ec90d65faa0']['values']['@type'] - assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['7f9eb396-5c1a-1112-aebf-28ea39d6a50f']['values']['@type'] + assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics['experiments_in_set_qc_metrics'] + assert '4c9dabc6-61d6-4054-a951-c4fdd0023800' in qc_metrics['experiments_in_set_qc_metrics'] + assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['131106bc-8535-4448-903e-854abbbbbbbb']['values']['@type'] + assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['4c9dabc6-61d6-4054-a951-c4fdd0023800']['values']['@type'] @pytest.mark.integrated From 3c901201b3580aef2da6d8a4cc14575546022694 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Thu, 27 Feb 2020 17:05:19 -0500 Subject: [PATCH 05/17] modified code to be more flexible for target files --- dcicutils/ff_utils.py | 39 +++++++++++++++++++++++---------------- test/test_ff_utils.py | 2 +- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index a1d792af3..43f8e6d1e 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -469,7 +469,7 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None ignored_fields: flag to ignore 4DN custom fields from the qc metric object Returns: - a dictionaries of dictionaries containing the qc_metric information + a dictionary of dictionaries containing the qc_metric information """ qc_metrics = {} @@ -496,21 +496,23 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None return qc_metrics -def get_associated_qc_metrics(uuid, key=None, ff_env=None, - exclude_raw_files=True, - exclude_supplementary_files=True): +def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_files=True, + include_raw_files=False, + include_supplementary_files=False): """ Given a uuid of an experiment set, return a list of dictionaries with the following structure: - 'experiment_set_qc_metrics': a list of quality metrics associated with the experiment set - 'experiments_in_set_qc_metrics': a list of quality metrics associated with the experiments in the experiment set + 'experiment_set_qc_metrics': a dictionary with quality metrics associated with the experiment set + 'experiments_in_set_qc_metrics': a dictionary with quality metrics associated with the experiments in the experiment set Args: - exclude_raw_files: if False will provide QC metrics on raw files as well - Default: True - exclude_supplementary_files: if False will also give QC's associated with - non-processed files. Default: True + include_processed_files: if False will exclude QC metrics on processed files + Default: True + include_raw_files: if True will provide QC metrics on raw files as well + Default: False + include_supplementary_files: if True will also give QC's associated with + non-processed files. Default: False Returns: - a list of dictionaries with the following structure: + a dictionary of dictionaries with the following structure: {'qc_metric_uuid'}:{'values':'', The values of the qc_metric object 'association':'', the file class (processed_file or raw_files) 'file_of_origin_accession, the accession of the file that the qc is linked to @@ -521,17 +523,22 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, 'experiment_subclass' (Hi-C) """ result = {'experiment_set_qc_metrics': {}, 'experiments_in_set_qc_metrics': {}} - associated_files = ['processed_files', 'other_processed_files', 'files'] + associated_files = [] extra_info = False resp = get_metadata(uuid, key=key, ff_env=ff_env) if 'ExperimentSet' not in resp['@type']: raise TypeError('Expected ExperimentSet Item') - if exclude_supplementary_files: - associated_files.pop(1) - if exclude_raw_files: - associated_files.pop() + if include_processed_files: + associated_files.append('processed_files') + if include_supplementary_files: + associated_files.append('other_processed_files') + if include_raw_files: + associated_files.append('files') + + if not associated_files: + return result if 'experiments_in_set' in resp: organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 594c43c6c..4dea1056e 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -836,7 +836,7 @@ def test_get_qc_metrics(integrated_ff): kwargs = { # do same as above w/ kwargs, specify to include raw files this time 'key': key, 'ff_env': ff_env, - 'exclude_raw_files': False + 'include_raw_files': True } qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) From 6d45b42008a1342353fd86d84193d862e2dca4da Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 2 Mar 2020 15:02:03 -0500 Subject: [PATCH 06/17] modified function to work on experiments as well --- dcicutils/ff_utils.py | 91 ++++++++++++++++++++++++++++++------------- test/test_ff_utils.py | 8 ++++ 2 files changed, 73 insertions(+), 26 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 43f8e6d1e..f3748e984 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -462,7 +462,7 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None Utility function to grap all the qc metrics from associated types of file such as: 'proccessed_files', 'other_processed_files', 'files' inputs: - data: the metadata of a ExperimentSet or the embeded experiments in the ExperimentSet + data: the metadata of a ExperimentSet or Experiment associated_files: a list of the types of the files fields the qc metrics will be extracted from: examples are = ['files', 'processed_files', 'other_processed_files'] Args: @@ -485,14 +485,30 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None if associated_file in data: for entry in data[associated_file]: if entry.get('quality_metric'): - qc_uuid = entry['quality_metric']['uuid'] - qc_info = {qc_uuid: {}} - qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) - qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] - qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] - qc_metrics.update(qc_info) + # check if it is a list of qc metrics + if entry['quality_metric']['display_title'].startswith('QualityMetricQclist'): + qc_metric_list = get_metadata(entry['quality_metric']['uuid'], key=key, ff_env=ff_env) + if not qc_metric_list.get('qc_list'): + continue + for qc in qc_metric_list['qc_list']: + qc_uuid = qc['value']['uuid'] + qc_info = {qc_uuid: {}} + qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) + qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} + qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' + qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] + qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] + qc_metrics.update(qc_info) + + else: + qc_uuid = entry['quality_metric']['uuid'] + qc_info = {qc_uuid: {}} + qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) + qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} + qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' + qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] + qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] + qc_metrics.update(qc_info) return qc_metrics @@ -500,10 +516,12 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil include_raw_files=False, include_supplementary_files=False): """ - Given a uuid of an experiment set, return a list of dictionaries with the following structure: + Given a uuid of an experimentSet or an experiment, return a dictionrary of dictionaries with the following structure: + For ExperimentSet 'experiment_set_qc_metrics': a dictionary with quality metrics associated with the experiment set 'experiments_in_set_qc_metrics': a dictionary with quality metrics associated with the experiments in the experiment set + For Experiment it outputs the dictionaries are the qc_metrics of each file in the experiment Args: include_processed_files: if False will exclude QC metrics on processed files Default: True @@ -522,14 +540,32 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil 'experiment_type', the experiment type (in situ Hi-C, ChIP-seq) 'experiment_subclass' (Hi-C) """ - result = {'experiment_set_qc_metrics': {}, 'experiments_in_set_qc_metrics': {}} + result = {} associated_files = [] - extra_info = False + experimentSet = True # Assumes is a experiment set by default + + # Additional information to include in the results for interpretation + organism = None + experiment_type = None + experiment_subclass = None + description = None + resp = get_metadata(uuid, key=key, ff_env=ff_env) - if 'ExperimentSet' not in resp['@type']: - raise TypeError('Expected ExperimentSet Item') + # Checks wheter the input is a experiment or experimentset otherwise throws an error + if 'ExperimentSet'in resp['@type']: + result = {'experiment_set_qc_metrics': {}, 'experiments_in_set_qc_metrics': {}} + description = resp.get('dataset_label', None) + elif 'Experiment' in resp['@type']: + experimentSet = False + organism = resp['biosample']['biosource'][0]['individual']['organism']['name'] + experiment_type = resp['experiment_type']['display_title'] + experiment_subclass = resp['experiment_type']['assay_subclass_short'] + else: + raise TypeError('Expected ExperimentSet or Experiment Item') + + # verifies what category of files to include (processed_files, other_processed_files, files) if include_processed_files: associated_files.append('processed_files') if include_supplementary_files: @@ -540,19 +576,19 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil if not associated_files: return result - if 'experiments_in_set' in resp: + # If it is an experimentset, get qc_metrics for the experiments in the experiment set + if experimentSet and resp.get('experiments_in_set'): organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] experiment_type = resp['experiments_in_set'][0]['experiment_type']['display_title'] experiment_subclass = resp['experiments_in_set'][0]['experiment_type']['assay_subclass_short'] - extra_info = True experiments_qc_metrics = {} for exp in resp['experiments_in_set']: - description = exp['display_title'] + exp_description = exp['display_title'] exp_qc_metrics = fetch_files_qc_metrics(exp, associated_files, key=key, ff_env=ff_env) if exp_qc_metrics: for exp_qc_metric in exp_qc_metrics.values(): - exp_qc_metric['description'] = description + exp_qc_metric['experiment_description'] = exp_description exp_qc_metric['organism'] = organism exp_qc_metric['experiment_type'] = experiment_type exp_qc_metric['experiment_subclass'] = experiment_subclass @@ -560,14 +596,17 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil experiments_qc_metrics.update(exp_qc_metrics) result['experiments_in_set_qc_metrics'] = experiments_qc_metrics - expSet_qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) - if expSet_qc_metrics and extra_info: - for expSet_qc_metric in expSet_qc_metrics.values(): - expSet_qc_metric['description'] = resp['dataset_label'] - expSet_qc_metric['organism'] = organism - expSet_qc_metric['experiment_type'] = experiment_type - expSet_qc_metric['experiment_subclass'] = experiment_subclass - result['experiment_set_qc_metrics'].update(expSet_qc_metrics) + qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) + if qc_metrics: + for qc_metric in qc_metrics.values(): + qc_metric['experiment_description'] = description + qc_metric['organism'] = organism + qc_metric['experiment_type'] = experiment_type + qc_metric['experiment_subclass'] = experiment_subclass + if experimentSet: + result['experiment_set_qc_metrics'].update(qc_metrics) + else: + result.update(qc_metrics) return result diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 4dea1056e..a8b3b0d10 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -846,6 +846,14 @@ def test_get_qc_metrics(integrated_ff): assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['131106bc-8535-4448-903e-854abbbbbbbb']['values']['@type'] assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['4c9dabc6-61d6-4054-a951-c4fdd0023800']['values']['@type'] + # Test Experiment input file + uuid = '75041e2f-3e43-4388-8bbb-e861f209b3fb' + qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) + assert len(qc_metrics.keys()) == 1 + assert '75041e2f-3e43-4388-8bbb-e861f209b3fb' in qc_metrics + assert 'QualityMetric' in qc_metrics['75041e2f-3e43-4388-8bbb-e861f209b3fb'] + + @pytest.mark.integrated @pytest.mark.flaky From 58d6e0f9b931173b29f442259d21b157a009999e Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 11 Mar 2020 15:22:05 -0400 Subject: [PATCH 07/17] Added additional testing --- dcicutils/ff_utils.py | 77 +- test/data_files/qc_metrics.json | 5 + test/data_files/test_experiment_set.json | 3792 ++++++++++++++++++++++ test/test_ff_utils.py | 67 +- 4 files changed, 3882 insertions(+), 59 deletions(-) create mode 100644 test/data_files/qc_metrics.json create mode 100644 test/data_files/test_experiment_set.json diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index f3748e984..c0062245c 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -457,7 +457,7 @@ def faceted_search(key=None, ff_env=None, item_type=None, **kwargs): return search_metadata(search, ff_env=ff_env, key=key) -def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None, ff_env=None): +def fetch_files_qc_metrics(data, associated_files=['processed_files'], ignored_fields=True, key=None, ff_env=None): """ Utility function to grap all the qc metrics from associated types of file such as: 'proccessed_files', 'other_processed_files', 'files' @@ -477,7 +477,7 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None ignored_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', 'project_release', 'award', 'principals_allowed', 'validation-errors', 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', - 'actions', 'submitted_by', 'convergence', 'lab', 'date_created'] + 'actions', 'submitted_by', 'convergence', 'lab', 'date_created', 'uuid'] else: ignored_qc_fields = [] # for each file @@ -495,9 +495,9 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None qc_info = {qc_uuid: {}} qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] - qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] + qc_info[qc_uuid]['source_file_association'] = associated_file if associated_file != 'files' else 'raw_file' + qc_info[qc_uuid]['source_file'] = entry['accession'] + qc_info[qc_uuid]['source_file_type'] = entry['file_type_detailed'] qc_metrics.update(qc_info) else: @@ -505,9 +505,9 @@ def fetch_files_qc_metrics(data, associated_files, ignored_fields=True, key=None qc_info = {qc_uuid: {}} qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[qc_uuid]['association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[qc_uuid]['file_of_origin_accession'] = entry['accession'] - qc_info[qc_uuid]['file_of_origin_type'] = entry['file_type_detailed'] + qc_info[qc_uuid]['source_file_association'] = associated_file if associated_file != 'files' else 'raw_file' + qc_info[qc_uuid]['source_file'] = entry['accession'] + qc_info[qc_uuid]['source_file_type'] = entry['file_type_detailed'] qc_metrics.update(qc_info) return qc_metrics @@ -516,12 +516,9 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil include_raw_files=False, include_supplementary_files=False): """ - Given a uuid of an experimentSet or an experiment, return a dictionrary of dictionaries with the following structure: - For ExperimentSet - 'experiment_set_qc_metrics': a dictionary with quality metrics associated with the experiment set - 'experiments_in_set_qc_metrics': a dictionary with quality metrics associated with the experiments in the experiment set + Given a uuid of an experimentSet return a dictionary of dictionaries with each dictionary + representing a quality metric. - For Experiment it outputs the dictionaries are the qc_metrics of each file in the experiment Args: include_processed_files: if False will exclude QC metrics on processed files Default: True @@ -532,38 +529,32 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil Returns: a dictionary of dictionaries with the following structure: {'qc_metric_uuid'}:{'values':'', The values of the qc_metric object - 'association':'', the file class (processed_file or raw_files) - 'file_of_origin_accession, the accession of the file that the qc is linked to - 'file_of_origin_type', the description of the file that the qc is linked to - 'description', the description of the experiment or experimentset + 'source_file_association': the file class (processed_file or raw_files) + 'source_file':, the accession of the file that the qc is linked to + 'source_file_type', the description of the file that the qc is linked to + 'experiment_description', the description of the experiment or experimentset 'organism', the organism 'experiment_type', the experiment type (in situ Hi-C, ChIP-seq) 'experiment_subclass' (Hi-C) + 'source_experiment': the experiment the qc is linked to (if apply) + 'source_experimentSet': the experimentSet the qc is linked to + 'biosource_summary': the experiment biosource """ result = {} associated_files = [] - experimentSet = True # Assumes is a experiment set by default # Additional information to include in the results for interpretation organism = None experiment_type = None experiment_subclass = None description = None + biosource_summary = None resp = get_metadata(uuid, key=key, ff_env=ff_env) # Checks wheter the input is a experiment or experimentset otherwise throws an error - if 'ExperimentSet'in resp['@type']: - result = {'experiment_set_qc_metrics': {}, 'experiments_in_set_qc_metrics': {}} - description = resp.get('dataset_label', None) - elif 'Experiment' in resp['@type']: - experimentSet = False - organism = resp['biosample']['biosource'][0]['individual']['organism']['name'] - experiment_type = resp['experiment_type']['display_title'] - experiment_subclass = resp['experiment_type']['assay_subclass_short'] - - else: - raise TypeError('Expected ExperimentSet or Experiment Item') + if 'ExperimentSet' not in resp['@type']: + raise TypeError('Expected ExperimentSet') # verifies what category of files to include (processed_files, other_processed_files, files) if include_processed_files: @@ -577,11 +568,11 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil return result # If it is an experimentset, get qc_metrics for the experiments in the experiment set - if experimentSet and resp.get('experiments_in_set'): + if resp.get('experiments_in_set'): organism = resp['experiments_in_set'][0]['biosample']['biosource'][0]['individual']['organism']['name'] experiment_type = resp['experiments_in_set'][0]['experiment_type']['display_title'] experiment_subclass = resp['experiments_in_set'][0]['experiment_type']['assay_subclass_short'] - experiments_qc_metrics = {} + biosource_summary = resp['experiments_in_set'][0]['biosample']['biosource_summary'] for exp in resp['experiments_in_set']: exp_description = exp['display_title'] @@ -592,21 +583,23 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil exp_qc_metric['organism'] = organism exp_qc_metric['experiment_type'] = experiment_type exp_qc_metric['experiment_subclass'] = experiment_subclass - exp_qc_metric['experiment_of_origin'] = exp['accession'] - experiments_qc_metrics.update(exp_qc_metrics) - result['experiments_in_set_qc_metrics'] = experiments_qc_metrics - - qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) - if qc_metrics: - for qc_metric in qc_metrics.values(): + exp_qc_metric['source_experiment'] = exp['accession'] + exp_qc_metric['source_experimentSet'] = resp['accession'] + exp_qc_metric['biosource_summary'] = biosource_summary + result.update(exp_qc_metrics) + + description = resp.get('dataset_label', None) + ES_qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) + if ES_qc_metrics: + for qc_metric in ES_qc_metrics.values(): qc_metric['experiment_description'] = description qc_metric['organism'] = organism qc_metric['experiment_type'] = experiment_type qc_metric['experiment_subclass'] = experiment_subclass - if experimentSet: - result['experiment_set_qc_metrics'].update(qc_metrics) - else: - result.update(qc_metrics) + qc_metric['source_experiment'] = None + qc_metric['source_experimentSet'] = resp['accession'] + qc_metric['biosource_summary'] = biosource_summary + result.update(ES_qc_metrics) return result diff --git a/test/data_files/qc_metrics.json b/test/data_files/qc_metrics.json new file mode 100644 index 000000000..7b0b816ad --- /dev/null +++ b/test/data_files/qc_metrics.json @@ -0,0 +1,5 @@ +{ + "762d3cc0-fcd4-4c1a-a99f-124b0f371690": {"source_file_type": "contact list-replicate", "values":{"Total Reads": 9087}}, + "9b0b1733-0f17-420e-9e38-1f58ba993c54": {"source_file_type": "contact list-replicate (pairs)"}, "values":{"Cis/Trans":0.3} + +} diff --git a/test/data_files/test_experiment_set.json b/test/data_files/test_experiment_set.json new file mode 100644 index 000000000..9feda5229 --- /dev/null +++ b/test/data_files/test_experiment_set.json @@ -0,0 +1,3792 @@ +{ + "@context": "/terms/", + "uuid": "6ba6a5df-dac5-4111-b5f0-aaaaaaaaaaaa", + "external_references": [], + "completed_processes": ["HiC_Pipeline_0.2.6"], + "submitted_by": { + "error": "no view permissions" + }, + "publications_of_set": [{ + "@id": "/publications/b13590b2-a341-4e5e-ad5e-72e233b32e9d/", + "uuid": "b13590b2-a341-4e5e-ad5e-72e233b32e9d", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Publication", "Item"], + "abstract": "Over the past decade, 3C-related methods, complemented by increasingly detailed microscopic views of the nucleus, have provided unprecedented insights into chromosome folding in vivo. Here, to overcome the resolution limits inherent to the majority of genome-wide chromosome architecture mapping studies, we extend a recently-developed Hi-C variant, Micro-C, to map chromosome architecture at nucleosome resolution in human embryonic stem cells and fibroblasts. Micro-C maps robustly capture well-described features of mammalian chromosome folding including A/B compartment organization, topologically associating domains (TADs), and cis interaction peaks anchored at CTCF binding sites, while also providing a detailed 1-dimensional map of nucleosome positioning and phasing genome-wide. Compared to high-resolution in situ Hi-C, Micro-C exhibits substantially improved signal-to-noise with an order of magnitude greater dynamic range, enabling not only localization of domain boundaries with single-nucleosome accuracy, but also resolving more than 20,000 additional looping interaction peaks in each cell type. Intriguingly, many of these newly-identified peaks are localized along stripe patterns and form transitive grids, consistent with their anchors being pause sites impeding the process of cohesin-dependent loop extrusion. Together, our analyses provide the highest resolution maps of chromosome folding in human cells to date, and provide a valuable resource for studies of chromosome folding mechanisms.", + "journal": "bioRxiv", + "title": "Ultrastructural details of mammalian chromosome architecture", + "date_published": "2019-05-17", + "display_title": "Nils Krietenstein et al. (2019) Ultrastructural details of mammalian chromosome architecture", + "authors": ["Nils Krietenstein", "Sameer Abraham", "Sergey V. Venev", "Nezar Abdennur", "Johan Gibcus", "Tsung-Han S. Hsieh", "Krishna Mohan Parsi", "Liyan Yang", "Ren Maehr", "Leonid A. Mirny", "Job TEST", "Oliver J. Rando"] + }], + "alternate_accessions": [], + "aliases": ["TEST-lab:ExperimentSet_U54_U54-ESC4DN-FA-DpnII-2017524"], + "condition": "Enzyme Dpn II - cells cultured following 4DN SOP", + "@id": "/experiment-set-replicates/TESTS2AAAAAA/", + "tags": ["4DN Joint Analysis 2018", "2018_01_public", "2018_01_internal", "2018_01_internal_JA"], + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "static_content": [{ + "location": "tab:processed-files", + "description": "auto_generated_higlass_view_config", + "content": { + "status": "released", + "name": "13e2ca00-957a-47ce-bdf4-080af3a67b9c", + "uuid": "13e2ca00-957a-47ce-bdf4-080af3a67b9c", + "@type": ["HiglassViewConfig", "UserContent", "Item"], + "title": "TESTS2AAAAAA - Processed files", + "display_title": "TESTS2AAAAAA - Processed files", + "contributing_labs": [], + "lab": { + "@id": "/labs/job-TEST-lab/", + "uuid": "3c577664-affb-41c4-bf27-9e21c2fc1554", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "submits_for.3c577664-affb-41c4-bf27-9e21c2fc1554"] + }, + "@type": ["Lab", "Item"], + "display_title": "Job TEST, UMMS" + }, + "@id": "/higlass-view-configs/13e2ca00-957a-47ce-bdf4-080af3a67b9c/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "userid.986b362f-4eb6-4a9c-8173-3ab267307e3a"] + }, + "filetype": "HiglassViewConfig", + "award": { + "@id": "/awards/1U54DK107980-01/", + "uuid": "ae6c618f-7a8c-441e-a886-e30bbbe591da", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Award", "Item"], + "display_title": "CENTER FOR 3D STRUCTURE AND PHYSICS OF THE GENOME" + }, + "description": "TESTS2AAAAAA (in situ Hi-C on H1-hESC (Tier 1) with DpnII): 4DNFI6HDY7WZ" + } + }], + "aggregated-items": { + "tissue": [{ + "embedded_path": "experiments_in_set.biosample.biosource.tissue", + "parent": "/biosources/4DNSRV3SKQ8M/", + "item": { + "preferred_name": "stem cell" + } + }], + "badges": [{ + "embedded_path": "badges", + "parent": "/experiment-set-replicates/TESTS2AAAAAA/", + "item": { + "messages": ["Replicate set contains only a single biological replicate"], + "badge": { + "commendation": null, + "warning": "Replicate Numbers", + "@id": "/badges/replicate-numbers/", + "uuid": "24a64a84-3c33-4d76-aaf2-e5ef45eff347", + "badge_icon": "/static/img/badges/replicates-orange-circle.svg", + "description": "Issues with replicate numbers" + } + } + }, { + "embedded_path": "experiments_in_set.biosample.badges", + "parent": "/biosamples/4DNBS3O2FNJO/", + "item": { + "messages": ["Biosample missing doubling_number", "Biosample missing morphology_image"], + "badge": { + "commendation": null, + "warning": "Biosample Metadata Incomplete", + "@id": "/badges/biosample-metadata-incomplete/", + "uuid": "2b2cc7ff-b7a8-4138-9a6c-22884fc71690", + "badge_icon": "/static/img/badges/biosample-icon.svg", + "description": "Biosample is missing metadata information required as part of the standards implemented by the 4DN Samples working group." + } + } + }] + }, + "dataset_label": "Hi-C on H1 cells - protocol variations", + "validation-errors": [], + "replicate_exps": [{ + "tec_rep_no": 1, + "replicate_exp": { + "@id": "/experiments-hi-c/4DNEXENKINA2/", + "uuid": "eca3ac9b-9dc4-4891-861d-771279b7f9b1", + "accession": "4DNEXENKINA2", + "@type": ["ExperimentHiC", "Experiment", "Item"], + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "in situ Hi-C on H1-hESC (Tier 1) with DpnII - 4DNEXENKINA2" + }, + "bio_rep_no": 1 + }, { + "tec_rep_no": 2, + "replicate_exp": { + "@id": "/experiments-hi-c/4DNEXZJZ5EBZ/", + "uuid": "c00ecfa0-7e3d-43af-b1c2-091aa9379594", + "accession": "4DNEXZJZ5EBZ", + "@type": ["ExperimentHiC", "Experiment", "Item"], + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "in situ Hi-C on H1-hESC (Tier 1) with DpnII - 4DNEXZJZ5EBZ" + }, + "bio_rep_no": 1 + }], + "experimentset_type": "replicate", + "status": "released", + "number_of_experiments": 2, + "project_release": "2017-07-26", + "@type": ["ExperimentSetReplicate", "ExperimentSet", "Item"], + "badges": [{ + "messages": ["Replicate set contains only a single biological replicate"], + "badge": { + "warning": "Replicate Numbers", + "@id": "/badges/replicate-numbers/", + "uuid": "24a64a84-3c33-4d76-aaf2-e5ef45eff347", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "Replicate Numbers", + "@type": ["Badge", "Item"], + "badge_icon": "/static/img/badges/replicates-orange-circle.svg", + "badge_classification": "Warning", + "description": "Issues with replicate numbers", + "title": "Replicate Numbers" + } + }], + "other_processed_files": [{ + "type": "archived", + "files": [{ + "status": "released", + "uuid": "aff4c78b-b07a-4fb0-b568-388f0a8ff0e3", + "href": "/files-processed/4DNFI3RIKRUJ/@@download/4DNFI3RIKRUJ.hic", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFI3RIKRUJ.hic", + "@id": "/files-processed/4DNFI3RIKRUJ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:33.471425+00:00" + }, + "file_format": { + "@id": "/file-formats/hic/", + "uuid": "d13d11cf-218e-4f61-bbf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "hic" + }, + "accession": "4DNFI3RIKRUJ", + "file_size": 10960590432, + "file_type_detailed": "contact matrix (hic)" + }, { + "status": "released", + "uuid": "d0237baf-973a-45f4-acb3-33ee6cf7c7f6", + "href": "/files-processed/4DNFI65CBIKX/@@download/4DNFI65CBIKX.mcool", + "@type": ["FileProcessed", "File", "Item"], + "genome_assembly": "GRCh38", + "display_title": "4DNFI65CBIKX.mcool", + "@id": "/files-processed/4DNFI65CBIKX/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2019-05-08T18:39:20.016666+00:00" + }, + "file_format": { + "@id": "/file-formats/mcool/", + "uuid": "d13d06cf-218e-4f61-ccf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "mcool" + }, + "accession": "4DNFI65CBIKX", + "file_size": 13385314415, + "higlass_uid": "fwgPd2PMTW6E5Clf7zIK6Q", + "file_type_detailed": "contact matrix (mcool)" + }, { + "status": "released", + "uuid": "2d661756-da8c-44be-ab49-321ec5763ae0", + "href": "/files-processed/4DNFIY3DJCHA/@@download/4DNFIY3DJCHA.normvector.juicerformat.gz", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFIY3DJCHA.normvector.juicerformat.gz", + "@id": "/files-processed/4DNFIY3DJCHA/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:31.616215+00:00" + }, + "file_format": { + "@id": "/file-formats/normvector_juicerformat/", + "uuid": "d13d06cf-218e-4f61-55f0-94f226118b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "normvector_juicerformat" + }, + "accession": "4DNFIY3DJCHA", + "file_size": 8462189, + "file_type_detailed": "juicebox norm vector (normvector_juicerformat)" + }], + "higlass_view_config": { + "@id": "/higlass-view-configs/1d58b3ad-83d6-40bf-a2b0-bd4b214b2fda/", + "uuid": "1d58b3ad-83d6-40bf-a2b0-bd4b214b2fda", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "userid.7677f8a8-79d2-4cff-ab0a-a967a2a68e39"] + }, + "description": "Supplementary Files (Archived results) for TESTS2AAAAAA (in situ Hi-C on H1-hESC (Tier 1) with DpnII): 4DNFI65CBIKX", + "@type": ["HiglassViewConfig", "UserContent", "Item"], + "display_title": "TESTS2AAAAAA - Archived results", + "last_modified": { + "date_modified": "2019-12-11T21:19:22.741672+00:00" + } + }, + "title": "Archived results", + "description": "Results from a preliminary version of the HiC processing pipeline, retained for archival purposes" + }, { + "type": "supplementary", + "files": [{ + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }], + "higlass_view_config": { + "error": "no view permissions" + }, + "title": "JAWG results - TEST Lab" + }, { + "type": "supplementary", + "files": [{ + "error": "no view permissions" + }, { + "error": "no view permissions" + }], + "higlass_view_config": { + "error": "no view permissions" + }, + "title": "JAWG results - TEST Lab - TAD calls round 1" + }, { + "type": "preliminary", + "files": [{ + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }], + "higlass_view_config": { + "error": "no view permissions" + }, + "title": "JAWG results - TEST Lab version 1", + "description": "These are files provided as Preliminary results of analyses by the TEST lab and for use in the Joint Analysis - they include PC1, Directionality Index (DI), TAD, Stripe and Loop calls" + }], + "award": { + "center_title": "NOFIC - TEST", + "uuid": "ae6c618f-7a8c-441e-a886-e30bbbe591da", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Award", "Item"], + "project": "4DN", + "@id": "/awards/1U54DK107980-01/", + "display_title": "CENTER FOR 3D STRUCTURE AND PHYSICS OF THE GENOME" + }, + "documents": [], + "static_headers": [{ + "name": "item-page-headers.ExperimentType.insituhic", + "status": "released", + "uuid": "298554ad-20e2-4449-a752-ac190123dab7", + "external_references": [], + "@type": ["StaticSection", "UserContent", "Item"], + "@id": "/static-sections/298554ad-20e2-4449-a752-ac190123dab7/", + "submitted_by": { + "error": "no view permissions" + }, + "title": "Assay Description", + "aliases": ["4dn-dcic-lab:experiment_infobox_hic"], + "options": { + "filetype": "html", + "default_open": false, + "collapsible": false + }, + "lab": { + "@id": "/labs/4dn-dcic-lab/", + "uuid": "828cd4fe-ebb0-4b36-a94a-d2e3a36cc989", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "submits_for.828cd4fe-ebb0-4b36-a94a-d2e3a36cc989"] + }, + "@type": ["Lab", "Item"], + "display_title": "4DN DCIC, HMS" + }, + "schema_version": "2", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "userid.56c9c683-bb11-471b-b590-c656f7dc03c1"] + }, + "last_modified": { + "date_modified": "2019-04-22T16:22:05.901177+00:00", + "modified_by": { + "error": "no view permissions" + } + }, + "body": "In Situ Hi-C\n\n

\n In situ Hi-C is a method to detect and quantify the pairwise interactions between chromosome regions across the entire genome. It was developed in 2014 as an improvement over the dilution Hi-C method. Compared to standard dilution Hi-C, this technique reduces the frequency of random ligation because the ligation is performed in situ inside the nucleus, a constrained space, instead of in solution, where DNA fragments are floating freely. In addition, this protocol can be done more quickly in the lab and was the first to introduce the use of 4-cutter restriction enzymes as opposed to the previous 6-cutters, providing higher resolution.\n

\n

\nThe protocol involves cross-linking the cells with formaldehyde to form links between physically adjacent DNA regions. The cells are then permeabilized with their nuclei intact. A 4-cutter restriction enzyme is used to digest the chromatin into multiple DNA fragments. The resulting fragments are biotinylated by end filling of the fragments ends. The fragments are then ligated and the DNA is purified and sheared. The biotinylated fragments are pulled down from the solution with streptavidin beads and a library is constructed and sequenced. Analysis of the resulting paired-end short read sequences produces a matrix that shows the number of interactions between different DNA regions.\n

\n

\nSee Rao et al., 2014 for more details.\n

\n\n
\n\n

\n Image source: Rao et al., 2014, Figure 1A\n
", + "display_title": "Assay Description", + "filetype": "html", + "section_type": "Item Page Header", + "date_created": "2018-09-07T18:19:43.777198+00:00", + "award": { + "@id": "/awards/1U01CA200059-01/", + "uuid": "b0b9c607-f8b4-4f02-93f4-9895b461334b", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Award", "Item"], + "display_title": "4D NUCLEOME NETWORK DATA COORDINATION AND INTEGRATION CENTER" + }, + "content": "In Situ Hi-C\n\n

\n In situ Hi-C is a method to detect and quantify the pairwise interactions between chromosome regions across the entire genome. It was developed in 2014 as an improvement over the dilution Hi-C method. Compared to standard dilution Hi-C, this technique reduces the frequency of random ligation because the ligation is performed in situ inside the nucleus, a constrained space, instead of in solution, where DNA fragments are floating freely. In addition, this protocol can be done more quickly in the lab and was the first to introduce the use of 4-cutter restriction enzymes as opposed to the previous 6-cutters, providing higher resolution.\n

\n

\nThe protocol involves cross-linking the cells with formaldehyde to form links between physically adjacent DNA regions. The cells are then permeabilized with their nuclei intact. A 4-cutter restriction enzyme is used to digest the chromatin into multiple DNA fragments. The resulting fragments are biotinylated by end filling of the fragments ends. The fragments are then ligated and the DNA is purified and sheared. The biotinylated fragments are pulled down from the solution with streptavidin beads and a library is constructed and sequenced. Analysis of the resulting paired-end short read sequences produces a matrix that shows the number of interactions between different DNA regions.\n

\n

\nSee Rao et al., 2014 for more details.\n

\n\n
\n\n

\n Image source: Rao et al., 2014, Figure 1A\n
" + }], + "produced_in_pub": { + "journal": "bioRxiv", + "@id": "/publications/b13590b2-a341-4e5e-ad5e-72e233b32e9d/", + "uuid": "b13590b2-a341-4e5e-ad5e-72e233b32e9d", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "abstract": "Over the past decade, 3C-related methods, complemented by increasingly detailed microscopic views of the nucleus, have provided unprecedented insights into chromosome folding in vivo. Here, to overcome the resolution limits inherent to the majority of genome-wide chromosome architecture mapping studies, we extend a recently-developed Hi-C variant, Micro-C, to map chromosome architecture at nucleosome resolution in human embryonic stem cells and fibroblasts. Micro-C maps robustly capture well-described features of mammalian chromosome folding including A/B compartment organization, topologically associating domains (TADs), and cis interaction peaks anchored at CTCF binding sites, while also providing a detailed 1-dimensional map of nucleosome positioning and phasing genome-wide. Compared to high-resolution in situ Hi-C, Micro-C exhibits substantially improved signal-to-noise with an order of magnitude greater dynamic range, enabling not only localization of domain boundaries with single-nucleosome accuracy, but also resolving more than 20,000 additional looping interaction peaks in each cell type. Intriguingly, many of these newly-identified peaks are localized along stripe patterns and form transitive grids, consistent with their anchors being pause sites impeding the process of cohesin-dependent loop extrusion. Together, our analyses provide the highest resolution maps of chromosome folding in human cells to date, and provide a valuable resource for studies of chromosome folding mechanisms.", + "@type": ["Publication", "Item"], + "short_attribution": "Nils Krietenstein et al. (2019)", + "title": "Ultrastructural details of mammalian chromosome architecture", + "date_published": "2019-05-17", + "display_title": "Nils Krietenstein et al. (2019) Ultrastructural details of mammalian chromosome architecture", + "authors": ["Nils Krietenstein", "Sameer Abraham", "Sergey V. Venev", "Nezar Abdennur", "Johan Gibcus", "Tsung-Han S. Hsieh", "Krishna Mohan Parsi", "Liyan Yang", "Ren Maehr", "Leonid A. Mirny", "Job TEST", "Oliver J. Rando"] + }, + "schema_version": "2", + "last_modified": { + "date_modified": "2019-12-11T21:19:30.104078+00:00", + "modified_by": { + "error": "no view permissions" + } + }, + "lab": { + "postal_code": "", + "@id": "/labs/job-TEST-lab/", + "uuid": "3c577664-affb-41c4-bf27-9e21c2fc1554", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "submits_for.3c577664-affb-41c4-bf27-9e21c2fc1554"] + }, + "state": "", + "@type": ["Lab", "Item"], + "country": "", + "city": "", + "correspondence": [{ + "@id": "/users/83b5073a-069b-4162-9b30-6f42d5551e34/", + "display_title": "Job TEST", + "contact_email": "am9iLmRla2tlckB1bWFzc21lZC5lZHU=" + }], + "display_title": "Job TEST, UMMS" + }, + "processed_files": [{ + "status": "released", + "uuid": "d6f17148-609b-4f64-bb32-9567efb17e13", + "file_classification": "processed file", + "href": "/files-processed/4DNFITU7K8VQ/@@download/4DNFITU7K8VQ.pairs.gz", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "d6f17148-609b-4f64-bb32-9567efb17e13/4DNFITU7K8VQ.pairs.gz", + "file_type": "contact list-combined", + "genome_assembly": "GRCh38", + "last_modified": { + "date_modified": "2020-02-20T19:20:55.406342+00:00" + }, + "accession": "4DNFITU7K8VQ", + "@id": "/files-processed/4DNFITU7K8VQ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFITU7K8VQ.pairs.gz", + "file_format": { + "@id": "/file-formats/pairs/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "pairs", + "@type": ["FileFormat", "Item"] + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "2525323776", + "title": "Filtered Reads" + }, { + "numberType": "percent", + "value": "30.312", + "title": "Cis reads (>20kb)", + "tooltip": "Percent of total reads (=765.49m)" + }, { + "numberType": "percent", + "value": "16.691", + "title": "Short cis reads", + "tooltip": "Percent of total reads (=421.5m)" + }, { + "numberType": "percent", + "value": "52.997", + "title": "Trans Reads", + "tooltip": "Percent of total reads (=1338.34m)" + }], + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFITU7K8VQ/pairsqc_report.html", + "@id": "/quality-metrics-pairsqc/7a2d8f3d-2108-4b81-a09e-fdcf622a0392/", + "uuid": "7a2d8f3d-2108-4b81-a09e-fdcf622a0392", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricPairsqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricPairsqc from 2018-04-27" + }, + "file_size": 49203877939, + "extra_files": [{ + "href": "/files-processed/4DNFITU7K8VQ/@@download/4DNFITU7K8VQ.pairs.gz.px2", + "file_format": { + "@id": "/file-formats/pairs_px2/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226348b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "pairs_px2" + } + }], + "file_type_detailed": "contact list-combined (pairs)" + }, { + "status": "released", + "file_type": "contact matrix", + "uuid": "0d72e78a-fc87-4716-8b8e-6dc5650ff2ef", + "href": "/files-processed/4DNFIQYQWPF5/@@download/4DNFIQYQWPF5.hic", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "0d72e78a-fc87-4716-8b8e-6dc5650ff2ef/4DNFIQYQWPF5.hic", + "file_format": { + "@id": "/file-formats/hic/", + "uuid": "d13d11cf-218e-4f61-bbf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "hic", + "@type": ["FileFormat", "Item"] + }, + "genome_assembly": "GRCh38", + "display_title": "4DNFIQYQWPF5.hic", + "@id": "/files-processed/4DNFIQYQWPF5/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:00:31.069121+00:00" + }, + "file_classification": "processed file", + "accession": "4DNFIQYQWPF5", + "file_size": 22161530585, + "extra_files": [], + "file_type_detailed": "contact matrix (hic)" + }, { + "status": "released", + "file_type": "contact matrix", + "uuid": "8600d037-9af0-477d-9e39-fec95552b64d", + "href": "/files-processed/4DNFI6HDY7WZ/@@download/4DNFI6HDY7WZ.mcool", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "8600d037-9af0-477d-9e39-fec95552b64d/4DNFI6HDY7WZ.mcool", + "file_format": { + "@id": "/file-formats/mcool/", + "uuid": "d13d06cf-218e-4f61-ccf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "mcool", + "@type": ["FileFormat", "Item"] + }, + "genome_assembly": "GRCh38", + "display_title": "4DNFI6HDY7WZ.mcool", + "@id": "/files-processed/4DNFI6HDY7WZ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2020-02-20T20:18:38.176833+00:00" + }, + "file_classification": "processed file", + "accession": "4DNFI6HDY7WZ", + "file_type_detailed": "contact matrix (mcool)", + "file_size": 26310980892, + "extra_files": [], + "higlass_uid": "bJORvAOhSmCkED7QGB7FYA", + "static_content": [{ + "location": "tab:higlass", + "description": "auto_generated_higlass_view_config", + "content": { + "@id": "/higlass-view-configs/befc872f-6120-4712-bd62-3eec91a4daeb/", + "uuid": "befc872f-6120-4712-bd62-3eec91a4daeb", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin", "userid.986b362f-4eb6-4a9c-8173-3ab267307e3a"] + }, + "display_title": "4DNFI6HDY7WZ - contact matrix for H1-hESC (Tier 1) in situ Hi-C DpnII", + "@type": ["HiglassViewConfig", "UserContent", "Item"] + } + }] + }], + "public_release": "2017-07-26", + "display_title": "TESTS2AAAAAA", + "accession": "TESTS2AAAAAA", + "date_created": "2017-07-13T14:23:13.113468+00:00", + "description": "in situ Hi-C on H1-hESC (Tier 1) with DpnII", + "experiments_in_set": [{ + "status": "released", + "experiment_type": { + "@id": "/experiment-types/in-situ-hi-c/", + "uuid": "a2920a38-cdba-4ff0-b4f0-c6bb53257747", + "assay_subclassification": "DNA-DNA Pairwise Interactions", + "@type": ["ExperimentType", "Item"], + "assay_classification": "3C via Ligation", + "experiment_category": "Sequencing", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "assay_subclass_short": "Hi-C", + "display_title": "in situ Hi-C", + "other_tags": ["DNA-DNA", "Pairwise", "3D"] + }, + "uuid": "eca3ac9b-9dc4-4891-861d-771279b7f9b1", + "@type": ["ExperimentHiC", "Experiment", "Item"], + "other_processed_files": [{ + "type": "archived", + "files": [{ + "status": "released", + "uuid": "6169212f-9a1c-4f17-aca6-3c8562d2919a", + "href": "/files-processed/4DNFIS58ESR4/@@download/4DNFIS58ESR4.bam", + "@type": ["FileProcessed", "File", "Item"], + "genome_assembly": "GRCh38", + "display_title": "4DNFIS58ESR4.bam", + "@id": "/files-processed/4DNFIS58ESR4/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2020-02-21T04:15:55.748191+00:00" + }, + "file_format": { + "@id": "/file-formats/bam/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b3c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "bam", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFIS58ESR4", + "file_size": 271660375461, + "file_type_detailed": "alignments (bam)" + }, { + "status": "released", + "uuid": "42ac46e8-1fff-4342-a3e4-29e34799a754", + "href": "/files-processed/4DNFIQL5L5I3/@@download/4DNFIQL5L5I3.pairs.gz", + "@type": ["FileProcessed", "File", "Item"], + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIQL5L5I3/pairsqc_report.html", + "@id": "/quality-metrics-pairsqc/9adc818b-1e74-4d3e-9ac9-85a9d9f9cc54/", + "uuid": "9adc818b-1e74-4d3e-9ac9-85a9d9f9cc54", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricPairsqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricPairsqc from 2018-01-26" + }, + "display_title": "4DNFIQL5L5I3.pairs.gz", + "@id": "/files-processed/4DNFIQL5L5I3/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2019-05-23T01:47:59.291843+00:00" + }, + "file_format": { + "@id": "/file-formats/pairs/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "pairs", + "@type": ["FileFormat", "Item"] + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "1318462319", + "title": "Filtered Reads" + }, { + "numberType": "percent", + "value": "30.587", + "title": "Cis reads (>20kb)", + "tooltip": "Percent of total reads (=403.28m)" + }, { + "numberType": "percent", + "value": "16.703", + "title": "Short cis reads", + "tooltip": "Percent of total reads (=220.22m)" + }, { + "numberType": "percent", + "value": "52.71", + "title": "Trans Reads", + "tooltip": "Percent of total reads (=694.96m)" + }], + "accession": "4DNFIQL5L5I3", + "file_size": 29900868622, + "file_type_detailed": "contact list (pairs)" + }, { + "status": "released", + "uuid": "ce74f51c-4174-4baa-963e-b1c515470c81", + "href": "/files-processed/4DNFI9NDGTUJ/@@download/4DNFI9NDGTUJ.hic", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFI9NDGTUJ.hic", + "@id": "/files-processed/4DNFI9NDGTUJ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:36.086112+00:00" + }, + "file_format": { + "@id": "/file-formats/hic/", + "uuid": "d13d11cf-218e-4f61-bbf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "hic", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFI9NDGTUJ", + "file_size": 6793377891, + "file_type_detailed": "contact matrix (hic)" + }, { + "status": "released", + "uuid": "a7a847ed-9649-4cf5-b37d-b349743dea0d", + "href": "/files-processed/4DNFI29JL6ZO/@@download/4DNFI29JL6ZO.mcool", + "@type": ["FileProcessed", "File", "Item"], + "genome_assembly": "GRCh38", + "display_title": "4DNFI29JL6ZO.mcool", + "@id": "/files-processed/4DNFI29JL6ZO/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2019-05-08T18:39:48.616061+00:00" + }, + "file_format": { + "@id": "/file-formats/mcool/", + "uuid": "d13d06cf-218e-4f61-ccf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "mcool", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFI29JL6ZO", + "file_size": 8388649047, + "higlass_uid": "W8BNoyqxTAO0yUlTQ4GNww", + "file_type_detailed": "contact matrix (mcool)" + }, { + "status": "released", + "uuid": "45865c4c-c854-4ed7-bcc1-aff2dd554ee5", + "href": "/files-processed/4DNFI3J81EEE/@@download/4DNFI3J81EEE.normvector.juicerformat.gz", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFI3J81EEE.normvector.juicerformat.gz", + "@id": "/files-processed/4DNFI3J81EEE/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:32.655794+00:00" + }, + "file_format": { + "@id": "/file-formats/normvector_juicerformat/", + "uuid": "d13d06cf-218e-4f61-55f0-94f226118b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "normvector_juicerformat", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFI3J81EEE", + "file_size": 8492570, + "file_type_detailed": "juicebox norm vector (normvector_juicerformat)" + }], + "title": "Archived results", + "description": "Results from a preliminary version of the HiC processing pipeline, retained for archival purposes" + }, { + "type": "supplementary", + "files": [{ + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }], + "title": "JAWG results - TEST Lab" + }], + "biosample": { + "biosample_category": ["H1-hESC", "Human stem cell"], + "cell_culture_details": [{ + "@id": "/biosample-cell-cultures/525242f1-8d24-4e44-bb06-7643fa924647/", + "uuid": "525242f1-8d24-4e44-bb06-7643fa924647", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["BiosampleCellCulture", "Item"], + "display_title": "BiosampleCellCulture from 2017-07-13" + }], + "uuid": "fcd173b9-1463-4bac-ada3-e48f035a24e0", + "@type": ["Biosample", "Item"], + "modifications_summary": "None", + "modifications": [], + "biosource": [{ + "cell_line": { + "preferred_name": "H1-hESC", + "@id": "/ontology-terms/EFO:0003042/", + "uuid": "c3f6e06f-900e-45f9-9c23-983c5673f58d", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "slim_terms": [{ + "@id": "/ontology-terms/CL:0000000/", + "uuid": "45d2b02e-130b-40db-8bf2-2288c6c57dcf", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }, { + "@id": "/ontology-terms/GO:0005623/", + "uuid": "72e16a19-eef3-46ca-a1b8-20e646e69675", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }], + "display_title": "H1-hESC", + "synonyms": ["H1"] + }, + "@id": "/biosources/4DNSRV3SKQ8M/", + "uuid": "68172441-97c4-40cc-b73f-d0f5dbc5cc05", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Biosource", "Item"], + "tissue": { + "preferred_name": "stem cell", + "@id": "/ontology-terms/CL:0000034/", + "uuid": "082f5be3-3617-4d3e-9ee9-78df53a71802", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "slim_terms": [{ + "@id": "/ontology-terms/CL:0000000/", + "uuid": "45d2b02e-130b-40db-8bf2-2288c6c57dcf", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }, { + "@id": "/ontology-terms/GO:0005623/", + "uuid": "72e16a19-eef3-46ca-a1b8-20e646e69675", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }], + "display_title": "stem cell" + }, + "cell_line_tier": "Tier 1", + "biosource_type": "stem cell derived cell line", + "individual": { + "@id": "/individuals-human/4DNIN3RG3ZKE/", + "uuid": "c97775b7-3d00-4132-9598-863797b8ef14", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["IndividualHuman", "Individual", "Item"], + "organism": { + "name": "human", + "@id": "/organisms/9606/", + "uuid": "7745b647-ff15-4ff3-9ced-b897d4e2983c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Organism", "Item"], + "display_title": "H. sapiens" + }, + "display_title": "4DNIN3RG3ZKE" + }, + "display_title": "H1-hESC (Tier 1) - 4DNSRV3SKQ8M" + }], + "display_title": "4DNBS3O2FNJO", + "treatments": [], + "biosource_summary": "H1-hESC (Tier 1)", + "badges": [{ + "messages": ["Biosample missing doubling_number", "Biosample missing morphology_image"], + "badge": { + "warning": "Biosample Metadata Incomplete", + "@id": "/badges/biosample-metadata-incomplete/", + "uuid": "2b2cc7ff-b7a8-4138-9a6c-22884fc71690", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "Biosample Metadata Incomplete", + "@type": ["Badge", "Item"], + "badge_icon": "/static/img/badges/biosample-icon.svg", + "badge_classification": "Warning", + "description": "Biosample is missing metadata information required as part of the standards implemented by the 4DN Samples working group.", + "title": "Biosample Metadata Incomplete" + } + }], + "@id": "/biosamples/4DNBS3O2FNJO/", + "accession": "4DNBS3O2FNJO", + "biosample_type": "stem cells", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "treatments_summary": "None" + }, + "experiment_categorizer": { + "combined": "Enzyme: DpnII", + "value": "DpnII", + "field": "Enzyme" + }, + "display_title": "in situ Hi-C on H1-hESC (Tier 1) with DpnII - 4DNEXENKINA2", + "digestion_enzyme": { + "name": "DpnII", + "@id": "/enzymes/DpnII/", + "uuid": "356a57a1-1f1d-463d-a972-27742f79a6a5", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Enzyme", "Item"], + "display_title": "DpnII" + }, + "processed_files": [{ + "status": "released", + "uuid": "572904ad-5d91-4105-ab4c-2d1b3c914975", + "file_classification": "processed file", + "href": "/files-processed/4DNFIN6ZI1S4/@@download/4DNFIN6ZI1S4.bam", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "572904ad-5d91-4105-ab4c-2d1b3c914975/4DNFIN6ZI1S4.bam", + "file_type": "alignments", + "genome_assembly": "GRCh38", + "last_modified": { + "date_modified": "2020-02-21T04:10:13.118014+00:00" + }, + "accession": "4DNFIN6ZI1S4", + "@id": "/files-processed/4DNFIN6ZI1S4/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIN6ZI1S4.bam", + "file_format": { + "@id": "/file-formats/bam/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b3c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "bam" + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "3165786921", + "title": "Total Reads" + }, { + "numberType": "percent", + "value": "17.846", + "title": "Unmapped Reads", + "tooltip": "Percent of total reads (=564.95m)" + }, { + "numberType": "percent", + "value": "22.328", + "title": "Multimapped Reads", + "tooltip": "Percent of total reads (=706.87m)" + }, { + "numberType": "percent", + "value": "18.172", + "title": "Duplicate Reads", + "tooltip": "Percent of total reads (=575.28m)" + }, { + "numberType": "percent", + "value": "0.007", + "title": "Walks", + "tooltip": "Percent of total reads (=0.24m)" + }, { + "numberType": "percent", + "value": "0.185", + "title": "Minor Contigs", + "tooltip": "Percent of total reads (=5.87m)" + }], + "quality_metric": { + "@id": "/quality-metrics-bamqc/9b0b1733-0f17-420e-9e38-1f58ba993c54/", + "uuid": "9b0b1733-0f17-420e-9e38-1f58ba993c54", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricBamqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricBamqc from 2019-12-21" + }, + "file_size": 271651190780, + "extra_files": [], + "file_type_detailed": "alignments (bam)" + }, { + "status": "released", + "uuid": "35d9afd3-0117-4d62-b4c9-95b0456eae57", + "file_classification": "processed file", + "href": "/files-processed/4DNFIINYRY8H/@@download/4DNFIINYRY8H.pairs.gz", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "35d9afd3-0117-4d62-b4c9-95b0456eae57/4DNFIINYRY8H.pairs.gz", + "file_type": "contact list-replicate", + "genome_assembly": "GRCh38", + "last_modified": { + "date_modified": "2019-05-23T01:38:46.664629+00:00" + }, + "accession": "4DNFIINYRY8H", + "@id": "/files-processed/4DNFIINYRY8H/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIINYRY8H.pairs.gz", + "file_format": { + "@id": "/file-formats/pairs/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "pairs" + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "1318448509", + "title": "Filtered Reads" + }, { + "numberType": "percent", + "value": "30.587", + "title": "Cis reads (>20kb)", + "tooltip": "Percent of total reads (=403.28m)" + }, { + "numberType": "percent", + "value": "16.703", + "title": "Short cis reads", + "tooltip": "Percent of total reads (=220.22m)" + }, { + "numberType": "percent", + "value": "52.71", + "title": "Trans Reads", + "tooltip": "Percent of total reads (=694.95m)" + }], + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIINYRY8H/pairsqc_report.html", + "@id": "/quality-metrics-pairsqc/762d3cc0-fcd4-4c1a-a99f-124b0f371690/", + "uuid": "762d3cc0-fcd4-4c1a-a99f-124b0f371690", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricPairsqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricPairsqc from 2018-03-06" + }, + "file_size": 27213955480, + "extra_files": [{ + "href": "/files-processed/4DNFIINYRY8H/@@download/4DNFIINYRY8H.pairs.gz.px2", + "file_format": { + "@id": "/file-formats/pairs_px2/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226348b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "pairs_px2", + "@type": ["FileFormat", "Item"] + } + }], + "file_type_detailed": "contact list-replicate (pairs)" + }], + "@id": "/experiments-hi-c/4DNEXENKINA2/", + "accession": "4DNEXENKINA2", + "last_modified": { + "date_modified": "2019-04-24T17:00:01.714315+00:00" + }, + "files": [{ + "status": "released", + "md5sum": "0e9cb8a8ed230e8203ad556748f91613", + "uuid": "4bf24163-435b-47f4-a5bf-fb0f82935402", + "accession": "4DNFIHNEAEMA", + "href": "/files-fastq/4DNFIHNEAEMA/@@download/4DNFIHNEAEMA.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "4bf24163-435b-47f4-a5bf-fb0f82935402/4DNFIHNEAEMA.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFINLRXHSC/", + "uuid": "14883855-bec8-4a76-a374-b57ef24338dd", + "accession": "4DNFINLRXHSC", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFINLRXHSC.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIHNEAEMA/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIHNEAEMA.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIHNEAEMA/fastqc_report.html", + "@id": "/quality-metrics-fastqc/e53ef0ec-f459-4887-82c1-5de1f7064333/", + "uuid": "e53ef0ec-f459-4887-82c1-5de1f7064333", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 340747352, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 10982811060 + }, { + "status": "released", + "md5sum": "b3914c5b5b43d6e140954cb5d49099eb", + "uuid": "ce353ca8-6157-48b1-aa9a-de1688ab92c4", + "accession": "4DNFIBCRYBPW", + "href": "/files-fastq/4DNFIBCRYBPW/@@download/4DNFIBCRYBPW.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "ce353ca8-6157-48b1-aa9a-de1688ab92c4/4DNFIBCRYBPW.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI8TIPK75/", + "uuid": "7825488a-5cd3-4434-9bfb-a53fc337f0da", + "accession": "4DNFI8TIPK75", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI8TIPK75.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIBCRYBPW/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIBCRYBPW.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIBCRYBPW/fastqc_report.html", + "@id": "/quality-metrics-fastqc/cdc5ecd6-3575-4509-9615-7da395f95171/", + "uuid": "cdc5ecd6-3575-4509-9615-7da395f95171", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 360470026, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10937494760 + }, { + "status": "released", + "md5sum": "cd947730fc954df2395e1ed12fb92833", + "uuid": "9cc83449-91a4-4fc1-b87d-28c78d216b1f", + "accession": "4DNFI96OZWFF", + "href": "/files-fastq/4DNFI96OZWFF/@@download/4DNFI96OZWFF.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "9cc83449-91a4-4fc1-b87d-28c78d216b1f/4DNFI96OZWFF.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIHY3D1G7/", + "uuid": "1a64c4bc-3b27-4a6e-9c81-b70abed4aa19", + "accession": "4DNFIHY3D1G7", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIHY3D1G7.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI96OZWFF/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI96OZWFF.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI96OZWFF/fastqc_report.html", + "@id": "/quality-metrics-fastqc/a098b8c9-3e9b-4baa-8383-65074ee5c0df/", + "uuid": "a098b8c9-3e9b-4baa-8383-65074ee5c0df", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 345015631, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11451268931 + }, { + "status": "released", + "md5sum": "f56a5c07ee31178ff8436d142e1c55cc", + "uuid": "eee7fba5-0115-4e91-9b12-ab3545e871cf", + "accession": "4DNFI1PAJKFC", + "href": "/files-fastq/4DNFI1PAJKFC/@@download/4DNFI1PAJKFC.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "eee7fba5-0115-4e91-9b12-ab3545e871cf/4DNFI1PAJKFC.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIUXJJM67/", + "uuid": "0942066d-d702-41ed-a5a3-752bfc73c6a6", + "accession": "4DNFIUXJJM67", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIUXJJM67.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI1PAJKFC/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI1PAJKFC.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFI1PAJKFC/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b3df8208-ae8d-4743-9957-22486d8d0f6f/", + "uuid": "b3df8208-ae8d-4743-9957-22486d8d0f6f", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 348819073, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10736514671 + }, { + "status": "released", + "md5sum": "79276a3220d1adf9533c889141fdc2ed", + "uuid": "0942066d-d702-41ed-a5a3-752bfc73c6a6", + "accession": "4DNFIUXJJM67", + "href": "/files-fastq/4DNFIUXJJM67/@@download/4DNFIUXJJM67.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "0942066d-d702-41ed-a5a3-752bfc73c6a6/4DNFIUXJJM67.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI1PAJKFC/", + "uuid": "eee7fba5-0115-4e91-9b12-ab3545e871cf", + "accession": "4DNFI1PAJKFC", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI1PAJKFC.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIUXJJM67/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIUXJJM67.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIUXJJM67/fastqc_report.html", + "@id": "/quality-metrics-fastqc/8f7e0bab-f056-4f92-b9ee-8643853888c6/", + "uuid": "8f7e0bab-f056-4f92-b9ee-8643853888c6", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 348819073, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11477272949 + }, { + "status": "released", + "md5sum": "db0c57327a1802e16357df8cb5c8b65a", + "uuid": "be5455dd-dbe9-4b5b-981c-cc947eda67f7", + "accession": "4DNFI4F6KXR5", + "href": "/files-fastq/4DNFI4F6KXR5/@@download/4DNFI4F6KXR5.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "be5455dd-dbe9-4b5b-981c-cc947eda67f7/4DNFI4F6KXR5.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIY55W1HW/", + "uuid": "a0dde283-a68b-47f2-8e0e-928f01341bc5", + "accession": "4DNFIY55W1HW", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIY55W1HW.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI4F6KXR5/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI4F6KXR5.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI4F6KXR5/fastqc_report.html", + "@id": "/quality-metrics-fastqc/50ae8fe2-4fcd-4249-a4ff-eaecd6ae5b82/", + "uuid": "50ae8fe2-4fcd-4249-a4ff-eaecd6ae5b82", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 345874427, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10601235782 + }, { + "status": "released", + "md5sum": "899a06f4622c38516b50e9e652b9e6da", + "uuid": "a28fabeb-1465-4651-8a3c-99416076faa2", + "accession": "4DNFIVNDDEDZ", + "href": "/files-fastq/4DNFIVNDDEDZ/@@download/4DNFIVNDDEDZ.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "a28fabeb-1465-4651-8a3c-99416076faa2/4DNFIVNDDEDZ.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI29W6CX6/", + "uuid": "fdf44035-8309-4703-a87b-167c9d92c393", + "accession": "4DNFI29W6CX6", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI29W6CX6.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIVNDDEDZ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIVNDDEDZ.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIVNDDEDZ/fastqc_report.html", + "@id": "/quality-metrics-fastqc/6ac548bd-4b8a-4ada-a663-6d8df79cc3cc/", + "uuid": "6ac548bd-4b8a-4ada-a663-6d8df79cc3cc", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357628798, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10950510577 + }, { + "status": "released", + "md5sum": "ff1808fe4761cb83b406eec5c5394a18", + "uuid": "a0dde283-a68b-47f2-8e0e-928f01341bc5", + "accession": "4DNFIY55W1HW", + "href": "/files-fastq/4DNFIY55W1HW/@@download/4DNFIY55W1HW.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "a0dde283-a68b-47f2-8e0e-928f01341bc5/4DNFIY55W1HW.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI4F6KXR5/", + "uuid": "be5455dd-dbe9-4b5b-981c-cc947eda67f7", + "accession": "4DNFI4F6KXR5", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI4F6KXR5.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIY55W1HW/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIY55W1HW.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIY55W1HW/fastqc_report.html", + "@id": "/quality-metrics-fastqc/21aadb70-7671-46cf-a39a-6e6794245ea8/", + "uuid": "21aadb70-7671-46cf-a39a-6e6794245ea8", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 345874427, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11294664886 + }, { + "status": "released", + "md5sum": "3c8fecf76d72b397eaf5af890bec4723", + "uuid": "fdf44035-8309-4703-a87b-167c9d92c393", + "accession": "4DNFI29W6CX6", + "href": "/files-fastq/4DNFI29W6CX6/@@download/4DNFI29W6CX6.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "fdf44035-8309-4703-a87b-167c9d92c393/4DNFI29W6CX6.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIVNDDEDZ/", + "uuid": "a28fabeb-1465-4651-8a3c-99416076faa2", + "accession": "4DNFIVNDDEDZ", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIVNDDEDZ.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI29W6CX6/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI29W6CX6.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI29W6CX6/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b106497f-c5e5-47d1-a073-1ea9de17090e/", + "uuid": "b106497f-c5e5-47d1-a073-1ea9de17090e", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357628798, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11735835952 + }, { + "status": "released", + "md5sum": "67bc3d8cd2bf6997fd98c8300b4126a6", + "uuid": "fc80b065-332b-4ff7-849f-38e50d156462", + "accession": "4DNFI7PO1Y9I", + "href": "/files-fastq/4DNFI7PO1Y9I/@@download/4DNFI7PO1Y9I.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "fc80b065-332b-4ff7-849f-38e50d156462/4DNFI7PO1Y9I.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI7FTRUX4/", + "uuid": "b8424a3d-058e-4444-88d5-0b7d490f6187", + "accession": "4DNFI7FTRUX4", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI7FTRUX4.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI7PO1Y9I/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI7PO1Y9I.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFI7PO1Y9I/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b0f60747-d72b-4704-9c66-f805f4cc7f40/", + "uuid": "b0f60747-d72b-4704-9c66-f805f4cc7f40", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357395279, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10875643819 + }, { + "status": "released", + "md5sum": "f8c1fb3bc84c85980c65b245c28a1b0d", + "uuid": "79cd223e-43fe-4ad1-96b7-6292ed39fd73", + "accession": "4DNFIMZ4MZCG", + "href": "/files-fastq/4DNFIMZ4MZCG/@@download/4DNFIMZ4MZCG.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "79cd223e-43fe-4ad1-96b7-6292ed39fd73/4DNFIMZ4MZCG.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIJI2ZEWN/", + "uuid": "7d78fb08-b740-4df6-8a9d-354bdc5984ba", + "accession": "4DNFIJI2ZEWN", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIJI2ZEWN.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIMZ4MZCG/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIMZ4MZCG.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIMZ4MZCG/fastqc_report.html", + "@id": "/quality-metrics-fastqc/dd8582da-c07c-4d38-97c7-623710a037b9/", + "uuid": "dd8582da-c07c-4d38-97c7-623710a037b9", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357286779, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11737265696 + }, { + "status": "released", + "md5sum": "748a9ffdcea39e12d1b9f7d008277c55", + "uuid": "5a49563d-9c8c-41a5-96fe-bea8a833d822", + "accession": "4DNFIA7QPBK1", + "href": "/files-fastq/4DNFIA7QPBK1/@@download/4DNFIA7QPBK1.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "5a49563d-9c8c-41a5-96fe-bea8a833d822/4DNFIA7QPBK1.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIFSML3KY/", + "uuid": "0c226c4e-daed-448d-9ecb-7a43117a4adc", + "accession": "4DNFIFSML3KY", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIFSML3KY.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIA7QPBK1/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIA7QPBK1.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIA7QPBK1/fastqc_report.html", + "@id": "/quality-metrics-fastqc/59234790-e519-4fd1-86f8-86909d38cd1a/", + "uuid": "59234790-e519-4fd1-86f8-86909d38cd1a", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 352549556, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10831079354 + }, { + "status": "released", + "md5sum": "a08ace42f9e0919e358296bee2551398", + "uuid": "b8424a3d-058e-4444-88d5-0b7d490f6187", + "accession": "4DNFI7FTRUX4", + "href": "/files-fastq/4DNFI7FTRUX4/@@download/4DNFI7FTRUX4.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "b8424a3d-058e-4444-88d5-0b7d490f6187/4DNFI7FTRUX4.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI7PO1Y9I/", + "uuid": "fc80b065-332b-4ff7-849f-38e50d156462", + "accession": "4DNFI7PO1Y9I", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI7PO1Y9I.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI7FTRUX4/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI7FTRUX4.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI7FTRUX4/fastqc_report.html", + "@id": "/quality-metrics-fastqc/c44d9e4a-8e0b-4862-932c-369fe4588e93/", + "uuid": "c44d9e4a-8e0b-4862-932c-369fe4588e93", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357395279, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11637900766 + }, { + "status": "released", + "md5sum": "0347432436e4c0acdea22d1c1e42027c", + "uuid": "0c226c4e-daed-448d-9ecb-7a43117a4adc", + "accession": "4DNFIFSML3KY", + "href": "/files-fastq/4DNFIFSML3KY/@@download/4DNFIFSML3KY.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "0c226c4e-daed-448d-9ecb-7a43117a4adc/4DNFIFSML3KY.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIA7QPBK1/", + "uuid": "5a49563d-9c8c-41a5-96fe-bea8a833d822", + "accession": "4DNFIA7QPBK1", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIA7QPBK1.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIFSML3KY/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIFSML3KY.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIFSML3KY/fastqc_report.html", + "@id": "/quality-metrics-fastqc/0074617c-e7b7-423a-ae8d-f0acce5897c9/", + "uuid": "0074617c-e7b7-423a-ae8d-f0acce5897c9", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 352549556, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11612753204 + }, { + "status": "released", + "md5sum": "72296fb53c916c5b2402e64c1bd82036", + "uuid": "1a64c4bc-3b27-4a6e-9c81-b70abed4aa19", + "accession": "4DNFIHY3D1G7", + "href": "/files-fastq/4DNFIHY3D1G7/@@download/4DNFIHY3D1G7.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "1a64c4bc-3b27-4a6e-9c81-b70abed4aa19/4DNFIHY3D1G7.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI96OZWFF/", + "uuid": "9cc83449-91a4-4fc1-b87d-28c78d216b1f", + "accession": "4DNFI96OZWFF", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI96OZWFF.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIHY3D1G7/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIHY3D1G7.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIHY3D1G7/fastqc_report.html", + "@id": "/quality-metrics-fastqc/2208b871-3bd0-41ff-a840-922d172b4b97/", + "uuid": "2208b871-3bd0-41ff-a840-922d172b4b97", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 345015631, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10696202395 + }, { + "status": "released", + "md5sum": "69fc1997b3fc9c70f991676748eeb621", + "uuid": "14883855-bec8-4a76-a374-b57ef24338dd", + "accession": "4DNFINLRXHSC", + "href": "/files-fastq/4DNFINLRXHSC/@@download/4DNFINLRXHSC.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "14883855-bec8-4a76-a374-b57ef24338dd/4DNFINLRXHSC.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIHNEAEMA/", + "uuid": "4bf24163-435b-47f4-a5bf-fb0f82935402", + "accession": "4DNFIHNEAEMA", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIHNEAEMA.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFINLRXHSC/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFINLRXHSC.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFINLRXHSC/fastqc_report.html", + "@id": "/quality-metrics-fastqc/37e45f41-ec13-415a-8a09-248897594cc6/", + "uuid": "37e45f41-ec13-415a-8a09-248897594cc6", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 340747352, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10239800002 + }, { + "status": "released", + "md5sum": "534aa2e223a2f5eb37cea43917598324", + "uuid": "7825488a-5cd3-4434-9bfb-a53fc337f0da", + "accession": "4DNFI8TIPK75", + "href": "/files-fastq/4DNFI8TIPK75/@@download/4DNFI8TIPK75.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "7825488a-5cd3-4434-9bfb-a53fc337f0da/4DNFI8TIPK75.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIBCRYBPW/", + "uuid": "ce353ca8-6157-48b1-aa9a-de1688ab92c4", + "accession": "4DNFIBCRYBPW", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIBCRYBPW.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI8TIPK75/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI8TIPK75.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI8TIPK75/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b216a779-a3c1-471b-a7b1-4d9ec5cdb41b/", + "uuid": "b216a779-a3c1-471b-a7b1-4d9ec5cdb41b", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 360470026, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11747232845 + }, { + "status": "released", + "md5sum": "b8d6a865e0d45b6860a049c9596519fb", + "uuid": "7d78fb08-b740-4df6-8a9d-354bdc5984ba", + "accession": "4DNFIJI2ZEWN", + "href": "/files-fastq/4DNFIJI2ZEWN/@@download/4DNFIJI2ZEWN.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "7d78fb08-b740-4df6-8a9d-354bdc5984ba/4DNFIJI2ZEWN.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIMZ4MZCG/", + "uuid": "79cd223e-43fe-4ad1-96b7-6292ed39fd73", + "accession": "4DNFIMZ4MZCG", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIMZ4MZCG.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIJI2ZEWN/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIJI2ZEWN.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIJI2ZEWN/fastqc_report.html", + "@id": "/quality-metrics-fastqc/24f4a068-369b-416a-b49e-0e4f84d9d1e8/", + "uuid": "24f4a068-369b-416a-b49e-0e4f84d9d1e8", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357286779, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10943116212 + }], + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + } + }, { + "status": "released", + "experiment_type": { + "@id": "/experiment-types/in-situ-hi-c/", + "uuid": "a2920a38-cdba-4ff0-b4f0-c6bb53257747", + "assay_subclassification": "DNA-DNA Pairwise Interactions", + "@type": ["ExperimentType", "Item"], + "assay_classification": "3C via Ligation", + "experiment_category": "Sequencing", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "assay_subclass_short": "Hi-C", + "display_title": "in situ Hi-C", + "other_tags": ["DNA-DNA", "Pairwise", "3D"] + }, + "uuid": "c00ecfa0-7e3d-43af-b1c2-091aa9379594", + "@type": ["ExperimentHiC", "Experiment", "Item"], + "other_processed_files": [{ + "type": "archived", + "files": [{ + "status": "released", + "uuid": "461b19b3-530b-4f21-8736-d5628453158f", + "href": "/files-processed/4DNFIOM76FMO/@@download/4DNFIOM76FMO.bam", + "@type": ["FileProcessed", "File", "Item"], + "genome_assembly": "GRCh38", + "display_title": "4DNFIOM76FMO.bam", + "@id": "/files-processed/4DNFIOM76FMO/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2020-02-21T04:15:53.046068+00:00" + }, + "file_format": { + "@id": "/file-formats/bam/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b3c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "bam", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFIOM76FMO", + "file_size": 272120030098, + "file_type_detailed": "alignments (bam)" + }, { + "status": "released", + "uuid": "1c8b2f40-ecae-4343-b6e2-8b90a9b5fbba", + "href": "/files-processed/4DNFIYLQMUFZ/@@download/4DNFIYLQMUFZ.pairs.gz", + "@type": ["FileProcessed", "File", "Item"], + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIYLQMUFZ/pairsqc_report.html", + "@id": "/quality-metrics-pairsqc/27bff730-b586-4a8d-bc99-74bb1b180fd0/", + "uuid": "27bff730-b586-4a8d-bc99-74bb1b180fd0", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricPairsqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricPairsqc from 2018-01-26" + }, + "display_title": "4DNFIYLQMUFZ.pairs.gz", + "@id": "/files-processed/4DNFIYLQMUFZ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2019-05-23T01:47:55.808472+00:00" + }, + "file_format": { + "@id": "/file-formats/pairs/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "pairs", + "@type": ["FileFormat", "Item"] + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "1206886275", + "title": "Filtered Reads" + }, { + "numberType": "percent", + "value": "30.012", + "title": "Cis reads (>20kb)", + "tooltip": "Percent of total reads (=362.21m)" + }, { + "numberType": "percent", + "value": "16.678", + "title": "Short cis reads", + "tooltip": "Percent of total reads (=201.28m)" + }, { + "numberType": "percent", + "value": "53.311", + "title": "Trans Reads", + "tooltip": "Percent of total reads (=643.4m)" + }], + "accession": "4DNFIYLQMUFZ", + "file_size": 27437698202, + "file_type_detailed": "contact list (pairs)" + }, { + "status": "released", + "uuid": "09c59c3f-1f2f-4dfc-b6e5-d6062a7f336f", + "href": "/files-processed/4DNFI92GEPN1/@@download/4DNFI92GEPN1.hic", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFI92GEPN1.hic", + "@id": "/files-processed/4DNFI92GEPN1/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:34.667585+00:00" + }, + "file_format": { + "@id": "/file-formats/hic/", + "uuid": "d13d11cf-218e-4f61-bbf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "hic", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFI92GEPN1", + "file_size": 6414543327, + "file_type_detailed": "contact matrix (hic)" + }, { + "status": "released", + "uuid": "47856772-bbd8-4760-8607-8bcec67aede8", + "href": "/files-processed/4DNFIKTHE2OT/@@download/4DNFIKTHE2OT.mcool", + "@type": ["FileProcessed", "File", "Item"], + "genome_assembly": "GRCh38", + "display_title": "4DNFIKTHE2OT.mcool", + "@id": "/files-processed/4DNFIKTHE2OT/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2019-05-08T18:39:44.160473+00:00" + }, + "file_format": { + "@id": "/file-formats/mcool/", + "uuid": "d13d06cf-218e-4f61-ccf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "mcool", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFIKTHE2OT", + "file_size": 7928916230, + "higlass_uid": "KNkz3cxdTreSXZLoItnH2g", + "file_type_detailed": "contact matrix (mcool)" + }, { + "status": "released", + "uuid": "afcd281d-a420-4ec9-b6fa-a7a46e06e0c1", + "href": "/files-processed/4DNFIDLGV28D/@@download/4DNFIDLGV28D.normvector.juicerformat.gz", + "@type": ["FileProcessed", "File", "Item"], + "display_title": "4DNFIDLGV28D.normvector.juicerformat.gz", + "@id": "/files-processed/4DNFIDLGV28D/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "last_modified": { + "date_modified": "2018-09-18T04:20:31.978033+00:00" + }, + "file_format": { + "@id": "/file-formats/normvector_juicerformat/", + "uuid": "d13d06cf-218e-4f61-55f0-94f226118b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "normvector_juicerformat", + "@type": ["FileFormat", "Item"] + }, + "accession": "4DNFIDLGV28D", + "file_size": 8990474, + "file_type_detailed": "juicebox norm vector (normvector_juicerformat)" + }], + "title": "Archived results", + "description": "Results from a preliminary version of the HiC processing pipeline, retained for archival purposes" + }, { + "type": "supplementary", + "files": [{ + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }, { + "error": "no view permissions" + }], + "title": "JAWG results - TEST Lab" + }], + "biosample": { + "biosample_category": ["H1-hESC", "Human stem cell"], + "cell_culture_details": [{ + "@id": "/biosample-cell-cultures/525242f1-8d24-4e44-bb06-7643fa924647/", + "uuid": "525242f1-8d24-4e44-bb06-7643fa924647", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["BiosampleCellCulture", "Item"], + "display_title": "BiosampleCellCulture from 2017-07-13" + }], + "uuid": "fcd173b9-1463-4bac-ada3-e48f035a24e0", + "@type": ["Biosample", "Item"], + "modifications_summary": "None", + "modifications": [], + "biosource": [{ + "cell_line": { + "preferred_name": "H1-hESC", + "@id": "/ontology-terms/EFO:0003042/", + "uuid": "c3f6e06f-900e-45f9-9c23-983c5673f58d", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "slim_terms": [{ + "@id": "/ontology-terms/CL:0000000/", + "uuid": "45d2b02e-130b-40db-8bf2-2288c6c57dcf", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }, { + "@id": "/ontology-terms/GO:0005623/", + "uuid": "72e16a19-eef3-46ca-a1b8-20e646e69675", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }], + "display_title": "H1-hESC", + "synonyms": ["H1"] + }, + "@id": "/biosources/4DNSRV3SKQ8M/", + "uuid": "68172441-97c4-40cc-b73f-d0f5dbc5cc05", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Biosource", "Item"], + "tissue": { + "preferred_name": "stem cell", + "@id": "/ontology-terms/CL:0000034/", + "uuid": "082f5be3-3617-4d3e-9ee9-78df53a71802", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "slim_terms": [{ + "@id": "/ontology-terms/CL:0000000/", + "uuid": "45d2b02e-130b-40db-8bf2-2288c6c57dcf", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }, { + "@id": "/ontology-terms/GO:0005623/", + "uuid": "72e16a19-eef3-46ca-a1b8-20e646e69675", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["OntologyTerm", "Item"], + "display_title": "cell" + }], + "display_title": "stem cell" + }, + "cell_line_tier": "Tier 1", + "biosource_type": "stem cell derived cell line", + "individual": { + "@id": "/individuals-human/4DNIN3RG3ZKE/", + "uuid": "c97775b7-3d00-4132-9598-863797b8ef14", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["IndividualHuman", "Individual", "Item"], + "organism": { + "name": "human", + "@id": "/organisms/9606/", + "uuid": "7745b647-ff15-4ff3-9ced-b897d4e2983c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Organism", "Item"], + "display_title": "H. sapiens" + }, + "display_title": "4DNIN3RG3ZKE" + }, + "display_title": "H1-hESC (Tier 1) - 4DNSRV3SKQ8M" + }], + "display_title": "4DNBS3O2FNJO", + "treatments": [], + "biosource_summary": "H1-hESC (Tier 1)", + "badges": [{ + "messages": ["Biosample missing doubling_number", "Biosample missing morphology_image"], + "badge": { + "warning": "Biosample Metadata Incomplete", + "@id": "/badges/biosample-metadata-incomplete/", + "uuid": "2b2cc7ff-b7a8-4138-9a6c-22884fc71690", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "Biosample Metadata Incomplete", + "@type": ["Badge", "Item"], + "badge_icon": "/static/img/badges/biosample-icon.svg", + "badge_classification": "Warning", + "description": "Biosample is missing metadata information required as part of the standards implemented by the 4DN Samples working group.", + "title": "Biosample Metadata Incomplete" + } + }], + "@id": "/biosamples/4DNBS3O2FNJO/", + "accession": "4DNBS3O2FNJO", + "biosample_type": "stem cells", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "treatments_summary": "None" + }, + "experiment_categorizer": { + "combined": "Enzyme: DpnII", + "value": "DpnII", + "field": "Enzyme" + }, + "display_title": "in situ Hi-C on H1-hESC (Tier 1) with DpnII - 4DNEXZJZ5EBZ", + "digestion_enzyme": { + "name": "DpnII", + "@id": "/enzymes/DpnII/", + "uuid": "356a57a1-1f1d-463d-a972-27742f79a6a5", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["Enzyme", "Item"], + "display_title": "DpnII" + }, + "processed_files": [{ + "status": "released", + "uuid": "13df1f34-672a-4721-977a-27bda15f3c26", + "file_classification": "processed file", + "href": "/files-processed/4DNFIQP64RT3/@@download/4DNFIQP64RT3.bam", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "13df1f34-672a-4721-977a-27bda15f3c26/4DNFIQP64RT3.bam", + "file_type": "alignments", + "genome_assembly": "GRCh38", + "last_modified": { + "date_modified": "2020-02-21T04:10:15.563158+00:00" + }, + "accession": "4DNFIQP64RT3", + "@id": "/files-processed/4DNFIQP64RT3/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIQP64RT3.bam", + "file_format": { + "@id": "/file-formats/bam/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b3c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "bam" + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "3191509775", + "title": "Total Reads" + }, { + "numberType": "percent", + "value": "18.173", + "title": "Unmapped Reads", + "tooltip": "Percent of total reads (=579.98m)" + }, { + "numberType": "percent", + "value": "22.216", + "title": "Multimapped Reads", + "tooltip": "Percent of total reads (=709.01m)" + }, { + "numberType": "percent", + "value": "21.79", + "title": "Duplicate Reads", + "tooltip": "Percent of total reads (=695.43m)" + }, { + "numberType": "percent", + "value": "0.007", + "title": "Walks", + "tooltip": "Percent of total reads (=0.21m)" + }, { + "numberType": "percent", + "value": "0.172", + "title": "Minor Contigs", + "tooltip": "Percent of total reads (=5.49m)" + }], + "quality_metric": { + "@id": "/quality-metrics-bamqc/c8a903b2-2fee-4c75-837e-6ef6764b7252/", + "uuid": "c8a903b2-2fee-4c75-837e-6ef6764b7252", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricBamqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricBamqc from 2019-12-21" + }, + "file_size": 272111684753, + "extra_files": [], + "file_type_detailed": "alignments (bam)" + }, { + "status": "released", + "uuid": "0401edff-028d-48cf-b3a9-ac58f35a4a3b", + "file_classification": "processed file", + "href": "/files-processed/4DNFILR6CKEJ/@@download/4DNFILR6CKEJ.pairs.gz", + "@type": ["FileProcessed", "File", "Item"], + "upload_key": "0401edff-028d-48cf-b3a9-ac58f35a4a3b/4DNFILR6CKEJ.pairs.gz", + "file_type": "contact list-replicate", + "genome_assembly": "GRCh38", + "last_modified": { + "date_modified": "2019-05-23T01:38:52.693738+00:00" + }, + "accession": "4DNFILR6CKEJ", + "@id": "/files-processed/4DNFILR6CKEJ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFILR6CKEJ.pairs.gz", + "file_format": { + "@id": "/file-formats/pairs/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["FileFormat", "Item"], + "display_title": "pairs" + }, + "quality_metric_summary": [{ + "numberType": "integer", + "value": "1206875267", + "title": "Filtered Reads" + }, { + "numberType": "percent", + "value": "30.012", + "title": "Cis reads (>20kb)", + "tooltip": "Percent of total reads (=362.21m)" + }, { + "numberType": "percent", + "value": "16.678", + "title": "Short cis reads", + "tooltip": "Percent of total reads (=201.28m)" + }, { + "numberType": "percent", + "value": "53.31", + "title": "Trans Reads", + "tooltip": "Percent of total reads (=643.39m)" + }], + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFILR6CKEJ/pairsqc_report.html", + "@id": "/quality-metrics-pairsqc/82ade5a4-8154-4b8a-8ff8-4f41acbab04a/", + "uuid": "82ade5a4-8154-4b8a-8ff8-4f41acbab04a", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "@type": ["QualityMetricPairsqc", "QualityMetric", "Item"], + "overall_quality_status": "PASS", + "display_title": "QualityMetricPairsqc from 2018-03-06" + }, + "file_size": 25008910992, + "extra_files": [{ + "href": "/files-processed/4DNFILR6CKEJ/@@download/4DNFILR6CKEJ.pairs.gz.px2", + "file_format": { + "@id": "/file-formats/pairs_px2/", + "uuid": "d13d06cf-218e-4f61-aaf0-91f226348b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "pairs_px2", + "@type": ["FileFormat", "Item"] + } + }], + "file_type_detailed": "contact list-replicate (pairs)" + }], + "@id": "/experiments-hi-c/4DNEXZJZ5EBZ/", + "accession": "4DNEXZJZ5EBZ", + "last_modified": { + "date_modified": "2019-04-24T16:59:59.792727+00:00" + }, + "files": [{ + "status": "released", + "md5sum": "c6cfa613710b2b1a8d7e5b69252be176", + "uuid": "cb2dbe53-2f7a-4542-9843-2d8265805733", + "accession": "4DNFIO9OHYUV", + "href": "/files-fastq/4DNFIO9OHYUV/@@download/4DNFIO9OHYUV.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "cb2dbe53-2f7a-4542-9843-2d8265805733/4DNFIO9OHYUV.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIM62WI62/", + "uuid": "8ff3cb1b-30c5-462e-a234-246f30747c1d", + "accession": "4DNFIM62WI62", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIM62WI62.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIO9OHYUV/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIO9OHYUV.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIO9OHYUV/fastqc_report.html", + "@id": "/quality-metrics-fastqc/c410bd65-de81-41aa-90f3-ebd4e70af10c/", + "uuid": "c410bd65-de81-41aa-90f3-ebd4e70af10c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 331456009, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 9897412116 + }, { + "status": "released", + "md5sum": "378f0bdcdf8dfd22723f1cac8493bdea", + "uuid": "18a3e6cd-1d44-4a17-8530-9d1ff3a4be79", + "accession": "4DNFI3TE7QNY", + "href": "/files-fastq/4DNFI3TE7QNY/@@download/4DNFI3TE7QNY.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "18a3e6cd-1d44-4a17-8530-9d1ff3a4be79/4DNFI3TE7QNY.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIS28AISX/", + "uuid": "cfe2ea41-80ee-41aa-9c39-d76a0a3345a7", + "accession": "4DNFIS28AISX", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIS28AISX.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI3TE7QNY/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI3TE7QNY.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFI3TE7QNY/fastqc_report.html", + "@id": "/quality-metrics-fastqc/d78e3b2d-2984-4df9-908c-6fb65ef8d607/", + "uuid": "d78e3b2d-2984-4df9-908c-6fb65ef8d607", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359709230, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10729323194 + }, { + "status": "released", + "md5sum": "cbd8d018e2947ee74604da5319775fb6", + "uuid": "147fc064-39d6-4689-bf43-9c266e169d0a", + "accession": "4DNFIN9HJDNO", + "href": "/files-fastq/4DNFIN9HJDNO/@@download/4DNFIN9HJDNO.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "147fc064-39d6-4689-bf43-9c266e169d0a/4DNFIN9HJDNO.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIBZJ8W8V/", + "uuid": "83cdd1d0-779d-46f9-970e-56bc4e814d3e", + "accession": "4DNFIBZJ8W8V", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIBZJ8W8V.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIN9HJDNO/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIN9HJDNO.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIN9HJDNO/fastqc_report.html", + "@id": "/quality-metrics-fastqc/39266444-bf84-4f1d-8a6f-a25fca73a21d/", + "uuid": "39266444-bf84-4f1d-8a6f-a25fca73a21d", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357393834, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10813983102 + }, { + "status": "released", + "md5sum": "4d252a91ea71a423b04fd6c9b824a22c", + "uuid": "4062cab9-c32a-4355-81bf-c42e45b971b3", + "accession": "4DNFI6LI5AMP", + "href": "/files-fastq/4DNFI6LI5AMP/@@download/4DNFI6LI5AMP.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "4062cab9-c32a-4355-81bf-c42e45b971b3/4DNFI6LI5AMP.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIEIHJLLV/", + "uuid": "4d3860a8-7f01-49e8-b474-70b6ac1b92a8", + "accession": "4DNFIEIHJLLV", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIEIHJLLV.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI6LI5AMP/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI6LI5AMP.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI6LI5AMP/fastqc_report.html", + "@id": "/quality-metrics-fastqc/a0f73b15-cefa-48a1-8ea0-a97fb0f4596b/", + "uuid": "a0f73b15-cefa-48a1-8ea0-a97fb0f4596b", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 354594591, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10974982284 + }, { + "status": "released", + "md5sum": "da0f9415d661765b90cb666937adc18f", + "uuid": "5d0b3e21-6f3c-41d0-9807-6bd6ef713eec", + "accession": "4DNFIU8LC2OB", + "href": "/files-fastq/4DNFIU8LC2OB/@@download/4DNFIU8LC2OB.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "5d0b3e21-6f3c-41d0-9807-6bd6ef713eec/4DNFIU8LC2OB.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI4Z2Y6IR/", + "uuid": "b8136e93-6b93-4ce3-a11f-64f949591fe6", + "accession": "4DNFI4Z2Y6IR", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI4Z2Y6IR.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIU8LC2OB/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIU8LC2OB.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIU8LC2OB/fastqc_report.html", + "@id": "/quality-metrics-fastqc/82a46b95-a89f-4dfd-a685-4f698663520f/", + "uuid": "82a46b95-a89f-4dfd-a685-4f698663520f", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 353033846, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10964020552 + }, { + "status": "released", + "md5sum": "117ee47956e6c36bd7316249d50f5c64", + "uuid": "82ac0fa4-34c6-4380-9380-02a87efd593d", + "accession": "4DNFIROGHFF7", + "href": "/files-fastq/4DNFIROGHFF7/@@download/4DNFIROGHFF7.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "82ac0fa4-34c6-4380-9380-02a87efd593d/4DNFIROGHFF7.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFITO994UM/", + "uuid": "0821731c-3420-455c-bd4d-9fe22cb2c5eb", + "accession": "4DNFITO994UM", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFITO994UM.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIROGHFF7/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIROGHFF7.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIROGHFF7/fastqc_report.html", + "@id": "/quality-metrics-fastqc/68964360-97db-4a89-a1d1-de569807bfd1/", + "uuid": "68964360-97db-4a89-a1d1-de569807bfd1", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 352662959, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 13287773082 + }, { + "status": "released", + "md5sum": "6b878da51e8520f4feb6e20afbc344aa", + "uuid": "b8136e93-6b93-4ce3-a11f-64f949591fe6", + "accession": "4DNFI4Z2Y6IR", + "href": "/files-fastq/4DNFI4Z2Y6IR/@@download/4DNFI4Z2Y6IR.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "b8136e93-6b93-4ce3-a11f-64f949591fe6/4DNFI4Z2Y6IR.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIU8LC2OB/", + "uuid": "5d0b3e21-6f3c-41d0-9807-6bd6ef713eec", + "accession": "4DNFIU8LC2OB", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIU8LC2OB.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI4Z2Y6IR/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI4Z2Y6IR.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI4Z2Y6IR/fastqc_report.html", + "@id": "/quality-metrics-fastqc/8803f7a4-f5cb-4f7f-92ae-de556391f6ec/", + "uuid": "8803f7a4-f5cb-4f7f-92ae-de556391f6ec", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 353033846, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 13276364081 + }, { + "status": "released", + "md5sum": "8237c9b19200440057f4624b3ca169fe", + "uuid": "4d3860a8-7f01-49e8-b474-70b6ac1b92a8", + "accession": "4DNFIEIHJLLV", + "href": "/files-fastq/4DNFIEIHJLLV/@@download/4DNFIEIHJLLV.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "4d3860a8-7f01-49e8-b474-70b6ac1b92a8/4DNFIEIHJLLV.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI6LI5AMP/", + "uuid": "4062cab9-c32a-4355-81bf-c42e45b971b3", + "accession": "4DNFI6LI5AMP", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI6LI5AMP.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIEIHJLLV/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIEIHJLLV.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIEIHJLLV/fastqc_report.html", + "@id": "/quality-metrics-fastqc/8c093ba9-b5f1-466e-8740-d81169e73c5f/", + "uuid": "8c093ba9-b5f1-466e-8740-d81169e73c5f", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 354594591, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 12923689848 + }, { + "status": "released", + "md5sum": "92aa3eabbfcdd39c199577ee70ba1c50", + "uuid": "83cdd1d0-779d-46f9-970e-56bc4e814d3e", + "accession": "4DNFIBZJ8W8V", + "href": "/files-fastq/4DNFIBZJ8W8V/@@download/4DNFIBZJ8W8V.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "83cdd1d0-779d-46f9-970e-56bc4e814d3e/4DNFIBZJ8W8V.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIN9HJDNO/", + "uuid": "147fc064-39d6-4689-bf43-9c266e169d0a", + "accession": "4DNFIN9HJDNO", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIN9HJDNO.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIBZJ8W8V/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIBZJ8W8V.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIBZJ8W8V/fastqc_report.html", + "@id": "/quality-metrics-fastqc/f7d11e97-8f1d-49cc-968b-7f602e735144/", + "uuid": "f7d11e97-8f1d-49cc-968b-7f602e735144", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 357393834, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 12174987690 + }, { + "status": "released", + "md5sum": "077c99b22e6191f3339ec454fe9610bc", + "uuid": "cfe2ea41-80ee-41aa-9c39-d76a0a3345a7", + "accession": "4DNFIS28AISX", + "href": "/files-fastq/4DNFIS28AISX/@@download/4DNFIS28AISX.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "cfe2ea41-80ee-41aa-9c39-d76a0a3345a7/4DNFIS28AISX.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI3TE7QNY/", + "uuid": "18a3e6cd-1d44-4a17-8530-9d1ff3a4be79", + "accession": "4DNFI3TE7QNY", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI3TE7QNY.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIS28AISX/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIS28AISX.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIS28AISX/fastqc_report.html", + "@id": "/quality-metrics-fastqc/684af52b-be25-4fc8-aab1-2c7a426ea379/", + "uuid": "684af52b-be25-4fc8-aab1-2c7a426ea379", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359709230, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11857615461 + }, { + "status": "released", + "md5sum": "41a711695680b5ceeab3e94f043cfb67", + "uuid": "0821731c-3420-455c-bd4d-9fe22cb2c5eb", + "accession": "4DNFITO994UM", + "href": "/files-fastq/4DNFITO994UM/@@download/4DNFITO994UM.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "0821731c-3420-455c-bd4d-9fe22cb2c5eb/4DNFITO994UM.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIROGHFF7/", + "uuid": "82ac0fa4-34c6-4380-9380-02a87efd593d", + "accession": "4DNFIROGHFF7", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIROGHFF7.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFITO994UM/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFITO994UM.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFITO994UM/fastqc_report.html", + "@id": "/quality-metrics-fastqc/02b7e9b1-123f-453b-8ec4-2f386ae544c7/", + "uuid": "02b7e9b1-123f-453b-8ec4-2f386ae544c7", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 352662959, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10987403427 + }, { + "status": "released", + "md5sum": "0e07e878ba68d227f8e12759917c3035", + "uuid": "bbb1dc38-3cd6-49bd-ae8a-bd355f9b7e06", + "accession": "4DNFIYC5ZZGF", + "href": "/files-fastq/4DNFIYC5ZZGF/@@download/4DNFIYC5ZZGF.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "bbb1dc38-3cd6-49bd-ae8a-bd355f9b7e06/4DNFIYC5ZZGF.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFI6LY81F9/", + "uuid": "7bfd8442-ebfa-4dda-9e34-35772a005325", + "accession": "4DNFI6LY81F9", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFI6LY81F9.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIYC5ZZGF/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIYC5ZZGF.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIYC5ZZGF/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b0fa6c55-168a-4373-aacd-6de4e2457802/", + "uuid": "b0fa6c55-168a-4373-aacd-6de4e2457802", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359340353, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10989106223 + }, { + "status": "released", + "md5sum": "da11cbafd2c12df65f42566591a06d96", + "uuid": "7a41c9a0-0bef-475c-adcc-487b533db7dc", + "accession": "4DNFIZWJPRWP", + "href": "/files-fastq/4DNFIZWJPRWP/@@download/4DNFIZWJPRWP.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "7a41c9a0-0bef-475c-adcc-487b533db7dc/4DNFIZWJPRWP.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIQQ1T6EJ/", + "uuid": "cd04cfc7-52f8-4ed1-99a5-f75a9b7a94fb", + "accession": "4DNFIQQ1T6EJ", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIQQ1T6EJ.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIZWJPRWP/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIZWJPRWP.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFIZWJPRWP/fastqc_report.html", + "@id": "/quality-metrics-fastqc/f9371a95-c7d0-4895-8a23-579bd0b8a111/", + "uuid": "f9371a95-c7d0-4895-8a23-579bd0b8a111", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 363446443, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10876892349 + }, { + "status": "released", + "md5sum": "ccff254fe75bd8026a8188b9dc4b634c", + "uuid": "cd04cfc7-52f8-4ed1-99a5-f75a9b7a94fb", + "accession": "4DNFIQQ1T6EJ", + "href": "/files-fastq/4DNFIQQ1T6EJ/@@download/4DNFIQQ1T6EJ.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "cd04cfc7-52f8-4ed1-99a5-f75a9b7a94fb/4DNFIQQ1T6EJ.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIZWJPRWP/", + "uuid": "7a41c9a0-0bef-475c-adcc-487b533db7dc", + "accession": "4DNFIZWJPRWP", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIZWJPRWP.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIQQ1T6EJ/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIQQ1T6EJ.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIQQ1T6EJ/fastqc_report.html", + "@id": "/quality-metrics-fastqc/42e6458b-6a21-47be-901e-1fa5b50c687b/", + "uuid": "42e6458b-6a21-47be-901e-1fa5b50c687b", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 363446443, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 12113567365 + }, { + "status": "released", + "md5sum": "2e5aaa9ca44f0956f48652a6d69d3ffa", + "uuid": "c1f21f6c-26b5-47ce-81aa-4c38b1082a56", + "accession": "4DNFIF3HEOMM", + "href": "/files-fastq/4DNFIF3HEOMM/@@download/4DNFIF3HEOMM.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "c1f21f6c-26b5-47ce-81aa-4c38b1082a56/4DNFIF3HEOMM.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFICIEIA1P/", + "uuid": "5d6b01b5-e2aa-4a4f-8f4b-eed599941bc0", + "accession": "4DNFICIEIA1P", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "2", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFICIEIA1P.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIF3HEOMM/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIF3HEOMM.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIF3HEOMM/fastqc_report.html", + "@id": "/quality-metrics-fastqc/97cb89e2-3c08-4c7e-95b2-89a1af372d4a/", + "uuid": "97cb89e2-3c08-4c7e-95b2-89a1af372d4a", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359872510, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "1", + "extra_files": [], + "file_size": 10687836913 + }, { + "status": "released", + "md5sum": "8f26bb3e2895588ff65e3a335a304c48", + "uuid": "5d6b01b5-e2aa-4a4f-8f4b-eed599941bc0", + "accession": "4DNFICIEIA1P", + "href": "/files-fastq/4DNFICIEIA1P/@@download/4DNFICIEIA1P.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "5d6b01b5-e2aa-4a4f-8f4b-eed599941bc0/4DNFICIEIA1P.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIF3HEOMM/", + "uuid": "c1f21f6c-26b5-47ce-81aa-4c38b1082a56", + "accession": "4DNFIF3HEOMM", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIF3HEOMM.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFICIEIA1P/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFICIEIA1P.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFICIEIA1P/fastqc_report.html", + "@id": "/quality-metrics-fastqc/679f47d8-6ae3-4e64-95a7-991cb56172b2/", + "uuid": "679f47d8-6ae3-4e64-95a7-991cb56172b2", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359872510, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 11851176492 + }, { + "status": "released", + "md5sum": "700340a76ffbae013d7ef8ac6d8acdad", + "uuid": "7bfd8442-ebfa-4dda-9e34-35772a005325", + "accession": "4DNFI6LY81F9", + "href": "/files-fastq/4DNFI6LY81F9/@@download/4DNFI6LY81F9.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "7bfd8442-ebfa-4dda-9e34-35772a005325/4DNFI6LY81F9.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIYC5ZZGF/", + "uuid": "bbb1dc38-3cd6-49bd-ae8a-bd355f9b7e06", + "accession": "4DNFIYC5ZZGF", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIYC5ZZGF.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFI6LY81F9/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFI6LY81F9.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webprod-wfoutput/4DNFI6LY81F9/fastqc_report.html", + "@id": "/quality-metrics-fastqc/340406ad-d7a4-436a-8d56-05872f770b0b/", + "uuid": "340406ad-d7a4-436a-8d56-05872f770b0b", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 359340353, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-11" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 12586105662 + }, { + "status": "released", + "md5sum": "3406597308b13a0b9e8f42d90bde9744", + "uuid": "8ff3cb1b-30c5-462e-a234-246f30747c1d", + "accession": "4DNFIM62WI62", + "href": "/files-fastq/4DNFIM62WI62/@@download/4DNFIM62WI62.fastq.gz", + "@type": ["FileFastq", "File", "Item"], + "upload_key": "8ff3cb1b-30c5-462e-a234-246f30747c1d/4DNFIM62WI62.fastq.gz", + "related_files": [{ + "file": { + "@id": "/files-fastq/4DNFIO9OHYUV/", + "uuid": "cb2dbe53-2f7a-4542-9843-2d8265805733", + "accession": "4DNFIO9OHYUV", + "@type": ["FileFastq", "File", "Item"], + "paired_end": "1", + "file_type": "reads", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "4DNFIO9OHYUV.fastq.gz" + }, + "relationship_type": "paired with" + }], + "file_type": "reads", + "file_format": { + "@id": "/file-formats/fastq/", + "uuid": "c13d06cf-218e-4f61-aaf0-91f226248b2c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "display_title": "fastq", + "@type": ["FileFormat", "Item"] + }, + "@id": "/files-fastq/4DNFIM62WI62/", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "file_type_detailed": "reads (fastq)", + "file_classification": "raw file", + "display_title": "4DNFIM62WI62.fastq.gz", + "quality_metric": { + "url": "https://s3.amazonaws.com/elasticbeanstalk-fourfront-webdev-wfoutput/4DNFIM62WI62/fastqc_report.html", + "@id": "/quality-metrics-fastqc/b0e44d9f-c1eb-40d5-bac5-539c9ad7c84c/", + "uuid": "b0e44d9f-c1eb-40d5-bac5-539c9ad7c84c", + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + }, + "Sequence length": "50", + "@type": ["QualityMetricFastqc", "QualityMetric", "Item"], + "Total Sequences": 331456009, + "overall_quality_status": "PASS", + "display_title": "QualityMetricFastqc from 2017-08-10" + }, + "paired_end": "2", + "extra_files": [], + "file_size": 10690007361 + }], + "principals_allowed": { + "view": ["system.Everyone"], + "edit": ["group.admin"] + } + }] +} diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index a8b3b0d10..98b5647fd 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -2,6 +2,7 @@ import json import time from dcicutils import ff_utils +from unittest import mock pytestmark = pytest.mark.working @@ -79,6 +80,18 @@ def profiles(): } +@pytest.fixture +def mocked_replicate_experiment(): + with open('./test/data_files/test_experiment_set.json') as opf: + return json.load(opf) + + +@pytest.fixture +def qc_metrics(): + with open('./test/data_files/qc_metrics.json') as opf: + return json.load(opf) + + def test_generate_rand_accession(): test = ff_utils.generate_rand_accession() assert '4DN' in test @@ -815,6 +828,32 @@ def test_faceted_search_users(integrated_ff): assert len(resp) == 10 +def test_fetch_qc_metrics_logic(mocked_replicate_experiment): + """ + Tests only 'fetch_qc_metrics' + """ + with mock.patch("dcicutils.ff_utils.get_metadata") as mock_get_metadata: + mock_get_metadata.return_value = { + "uuid": "7a2d8f3d-2108-4b81-a09e-fdcf622a0392", + "display_title": "QualityMetricPairsqc from 2018-04-27" + } + result = ff_utils.fetch_files_qc_metrics(mocked_replicate_experiment, ['processed_files']) + assert "7a2d8f3d-2108-4b81-a09e-fdcf622a0392" in result + + +def test_get_qc_metrics_logic(mocked_replicate_experiment, qc_metrics): + """ + End to end test on 'get_associated_qc_metrics' + """ + with mock.patch("dcicutils.ff_utils.get_metadata") as mock_get_metadata: + mock_get_metadata.return_value = mocked_replicate_experiment + with mock.patch("dcicutils.ff_utils.fetch_files_qc_metrics") as mock_fetch_qc: + mock_fetch_qc.return_value = qc_metrics + result = ff_utils.get_associated_qc_metrics("6ba6a5df-dac5-4111-b5f0-299b6bee0f38") + assert "762d3cc0-fcd4-4c1a-a99f-124b0f371690" in result + assert "9b0b1733-0f17-420e-9e38-1f58ba993c54" in result + + @pytest.mark.integrated def test_get_qc_metrics(integrated_ff): """ @@ -824,35 +863,29 @@ def test_get_qc_metrics(integrated_ff): key, ff_env = integrated_ff['ff_key'], integrated_ff['ff_env'] uuid = '331106bc-8535-3338-903e-854af460b544' qc_metrics = ff_utils.get_associated_qc_metrics(uuid, key=key, ff_env=ff_env) - assert len(qc_metrics.keys()) == 2 - assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics['experiments_in_set_qc_metrics'] - target_qc = qc_metrics['experiments_in_set_qc_metrics']['131106bc-8535-4448-903e-854abbbbbbbb'] + assert len(qc_metrics.keys()) == 1 + assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics + target_qc = qc_metrics['131106bc-8535-4448-903e-854abbbbbbbb'] assert 'QualityMetric' in target_qc['values']['@type'] assert target_qc['organism'] == 'human' assert target_qc['experiment_type'] == 'Dilution Hi-C' assert target_qc['experiment_subclass'] == 'Hi-C' - assert target_qc['association'] == 'processed_files' + assert target_qc['source_file_association'] == 'processed_files' + assert target_qc['source_experiment'] == '4DNEXO67APV1' + assert target_qc['source_experimentSet'] == '4DNESOPFAAA1' + assert target_qc['biosource_summary'] == "GM12878" kwargs = { # do same as above w/ kwargs, specify to include raw files this time 'key': key, 'ff_env': ff_env, 'include_raw_files': True } - qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) assert len(qc_metrics.keys()) == 2 - assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics['experiments_in_set_qc_metrics'] - assert '4c9dabc6-61d6-4054-a951-c4fdd0023800' in qc_metrics['experiments_in_set_qc_metrics'] - assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['131106bc-8535-4448-903e-854abbbbbbbb']['values']['@type'] - assert 'QualityMetric' in qc_metrics['experiments_in_set_qc_metrics']['4c9dabc6-61d6-4054-a951-c4fdd0023800']['values']['@type'] - - # Test Experiment input file - uuid = '75041e2f-3e43-4388-8bbb-e861f209b3fb' - qc_metrics = ff_utils.get_associated_qc_metrics(uuid, **kwargs) - assert len(qc_metrics.keys()) == 1 - assert '75041e2f-3e43-4388-8bbb-e861f209b3fb' in qc_metrics - assert 'QualityMetric' in qc_metrics['75041e2f-3e43-4388-8bbb-e861f209b3fb'] - + assert '131106bc-8535-4448-903e-854abbbbbbbb' in qc_metrics + assert '4c9dabc6-61d6-4054-a951-c4fdd0023800' in qc_metrics + assert 'QualityMetric' in qc_metrics['131106bc-8535-4448-903e-854abbbbbbbb']['values']['@type'] + assert 'QualityMetric' in qc_metrics['4c9dabc6-61d6-4054-a951-c4fdd0023800']['values']['@type'] @pytest.mark.integrated From 8ee4ae27538e3373d1310a9cb57222ad640946dc Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 11 Mar 2020 15:50:16 -0400 Subject: [PATCH 08/17] updating assertion --- test/test_ff_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 98b5647fd..985b8a9de 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -817,7 +817,7 @@ def test_faceted_search_users(integrated_ff): 'ff_env': ff_env, 'item_facets': all_facets} resp = ff_utils.faceted_search(**neg_affiliation) - assert len(resp) == 23 + assert len(resp) == 24 neg_affiliation = {'item_type': 'user', 'Affiliation': '-4DN Testing Lab', 'key': key, From 6e9bfa2864f43f8ea64e7a7b01c44e664e02f767 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 11 Mar 2020 17:42:30 -0400 Subject: [PATCH 09/17] updating assertion --- test/test_ff_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 985b8a9de..338d90a3a 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -762,7 +762,7 @@ def validate_items(items, facet, expected): warnings = {'Warnings': 'No value'} warnings.update(for_all) resp = ff_utils.faceted_search(**warnings) - assert len(resp) == 4 + assert len(resp) == 5 both_projects = {'Project': '4DN|External'} both_projects.update(for_all) resp = ff_utils.faceted_search(**both_projects) From 19739b89172a97c737df46687bc9da72f879e537 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 16 Mar 2020 10:45:14 -0400 Subject: [PATCH 10/17] made some style changes --- dcicutils/ff_utils.py | 73 ++++++++++++++++++++++++++----------------- test/test_ff_utils.py | 4 +-- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 9d3a9cc64..23164a805 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -457,7 +457,9 @@ def faceted_search(key=None, ff_env=None, item_type=None, **kwargs): return search_metadata(search, ff_env=ff_env, key=key) -def fetch_files_qc_metrics(data, associated_files=['processed_files'], ignored_fields=True, key=None, ff_env=None): +def fetch_files_qc_metrics(data, associated_files=['processed_files'], + ignore_typical_fields=True, + key=None, ff_env=None): """ Utility function to grap all the qc metrics from associated types of file such as: 'proccessed_files', 'other_processed_files', 'files' @@ -473,13 +475,13 @@ def fetch_files_qc_metrics(data, associated_files=['processed_files'], ignored_f """ qc_metrics = {} - if ignored_fields: - ignored_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', - 'project_release', 'award', 'principals_allowed', 'validation-errors', - 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', - 'actions', 'submitted_by', 'convergence', 'lab', 'date_created', 'uuid'] + if ignore_typical_fields: + ignorable_qc_fields = ['contributing_labs', 'schema_version', 'external_references', '@context', 'aliases', + 'project_release', 'award', 'principals_allowed', 'validation-errors', + 'last_modified', 'slope', '@id', 'aggregated-items', 'status', 'public_release', + 'actions', 'submitted_by', 'convergence', 'lab', 'date_created', 'uuid'] else: - ignored_qc_fields = [] + ignore_typical_fields = [] # for each file for associated_file in associated_files: if associated_file in data: @@ -492,22 +494,34 @@ def fetch_files_qc_metrics(data, associated_files=['processed_files'], ignored_f continue for qc in qc_metric_list['qc_list']: qc_uuid = qc['value']['uuid'] - qc_info = {qc_uuid: {}} qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) - qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[qc_uuid]['source_file_association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[qc_uuid]['source_file'] = entry['accession'] - qc_info[qc_uuid]['source_file_type'] = entry['file_type_detailed'] + qc_values = {k: v for k, v in qc_meta.items() if k not in ignorable_qc_fields} + source_file_association = associated_file if associated_file != 'files' else 'raw_file' + source_file = entry['accession'] + source_file_type = entry['file_type_detailed'] + qc_info = { + qc_uuid: {'values': qc_values, + 'source_file_association': source_file_association, + 'source_file': source_file, + 'source_file_type': source_file_type + } + } qc_metrics.update(qc_info) else: qc_uuid = entry['quality_metric']['uuid'] - qc_info = {qc_uuid: {}} qc_meta = get_metadata(qc_uuid, key=key, ff_env=ff_env) - qc_info[qc_uuid]['values'] = {k: v for k, v in qc_meta.items() if k not in ignored_qc_fields} - qc_info[qc_uuid]['source_file_association'] = associated_file if associated_file != 'files' else 'raw_file' - qc_info[qc_uuid]['source_file'] = entry['accession'] - qc_info[qc_uuid]['source_file_type'] = entry['file_type_detailed'] + qc_values = {k: v for k, v in qc_meta.items() if k not in ignorable_qc_fields} + source_file_association = associated_file if associated_file != 'files' else 'raw_file' + source_file = entry['accession'] + source_file_type = entry['file_type_detailed'] + qc_info = { + qc_uuid: {'values': qc_values, + 'source_file_association': source_file_association, + 'source_file': source_file, + 'source_file_type': source_file_type + } + } qc_metrics.update(qc_info) return qc_metrics @@ -528,17 +542,20 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil non-processed files. Default: False Returns: a dictionary of dictionaries with the following structure: - {'qc_metric_uuid'}:{'values':'', The values of the qc_metric object - 'source_file_association': the file class (processed_file or raw_files) - 'source_file':, the accession of the file that the qc is linked to - 'source_file_type', the description of the file that the qc is linked to - 'experiment_description', the description of the experiment or experimentset - 'organism', the organism - 'experiment_type', the experiment type (in situ Hi-C, ChIP-seq) - 'experiment_subclass' (Hi-C) - 'source_experiment': the experiment the qc is linked to (if apply) - 'source_experimentSet': the experimentSet the qc is linked to - 'biosource_summary': the experiment biosource + {}:{ + 'values': the values of the qc_metric object>, + 'source_file_association': , + 'source_file': , + 'source_file_type': , + 'experiment_description': + 'organism': + 'experiment_type': , + 'experiment_subclass': , + 'source_experiment': , + 'source_experimentSet': , + 'biosource_summary': + } + } """ result = {} associated_files = [] diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 8dbf96f1b..8f5a3e343 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -762,7 +762,7 @@ def validate_items(items, facet, expected): warnings = {'Warnings': 'No value'} warnings.update(for_all) resp = ff_utils.faceted_search(**warnings) - assert len(resp) == 5 + assert len(resp) == 4 both_projects = {'Project': '4DN|External'} both_projects.update(for_all) resp = ff_utils.faceted_search(**both_projects) @@ -817,7 +817,7 @@ def test_faceted_search_users(integrated_ff): 'ff_env': ff_env, 'item_facets': all_facets} resp = ff_utils.faceted_search(**neg_affiliation) - assert len(resp) == 24 + assert len(resp) == 23 neg_affiliation = {'item_type': 'user', 'Affiliation': '-4DN Testing Lab', 'key': key, From 1e022455bd7538ef2c20b1f05cdead15c8be010e Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 16 Mar 2020 13:50:52 -0400 Subject: [PATCH 11/17] made style changes --- dcicutils/ff_utils.py | 5 ++--- test/test_ff_utils.py | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 23164a805..8eb940138 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -463,12 +463,11 @@ def fetch_files_qc_metrics(data, associated_files=['processed_files'], """ Utility function to grap all the qc metrics from associated types of file such as: 'proccessed_files', 'other_processed_files', 'files' - inputs: + Args: data: the metadata of a ExperimentSet or Experiment associated_files: a list of the types of the files fields the qc metrics will be extracted from: examples are = ['files', 'processed_files', 'other_processed_files'] - Args: - ignored_fields: flag to ignore 4DN custom fields from the qc metric object + ignore_typical_fields: flag to ignore 4DN custom fields from the qc metric object Returns: a dictionary of dictionaries containing the qc_metric information diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 8f5a3e343..e2d65f843 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -738,7 +738,7 @@ def validate_items(items, facet, expected): tissue_src = {'Tissue Source': 'endoderm'} tissue_src.update(for_all) resp = ff_utils.faceted_search(**tissue_src) - assert len(resp) == 1 + assert len(resp) == 0 pub = {'Publication': 'No value'} pub.update(for_all) resp = ff_utils.faceted_search(**pub) @@ -817,7 +817,7 @@ def test_faceted_search_users(integrated_ff): 'ff_env': ff_env, 'item_facets': all_facets} resp = ff_utils.faceted_search(**neg_affiliation) - assert len(resp) == 23 + assert len(resp) == 24 neg_affiliation = {'item_type': 'user', 'Affiliation': '-4DN Testing Lab', 'key': key, @@ -830,7 +830,7 @@ def test_faceted_search_users(integrated_ff): def test_fetch_qc_metrics_logic(mocked_replicate_experiment): """ - Tests only 'fetch_qc_metrics' + Tests that the fetch_qc_metrics function is being used correctly inside the get_associated_qc_metrics function """ with mock.patch("dcicutils.ff_utils.get_metadata") as mock_get_metadata: mock_get_metadata.return_value = { @@ -843,7 +843,7 @@ def test_fetch_qc_metrics_logic(mocked_replicate_experiment): def test_get_qc_metrics_logic(mocked_replicate_experiment, qc_metrics): """ - End to end test on 'get_associated_qc_metrics' + End to end test on 'get_associated_qc_metrics' to check the logic of the fuction """ with mock.patch("dcicutils.ff_utils.get_metadata") as mock_get_metadata: mock_get_metadata.return_value = mocked_replicate_experiment @@ -985,7 +985,7 @@ def test_search_es_metadata(integrated_ff): """ Tests search_es_metadata on mastertest """ res = ff_utils.search_es_metadata('fourfront-mastertestuser', {'size': '1000'}, key=integrated_ff['ff_key'], ff_env=integrated_ff['ff_env']) - assert len(res) == 27 + assert len(res) == 28 test_query = { 'query': { 'bool': { From b03415a455d5287ab2debb6892d4d6e999304121 Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 16 Mar 2020 15:56:33 -0400 Subject: [PATCH 12/17] fix some test assertions --- Testing_Locally.ipynb | 129 ++++++++++++++++++++++++++++++++++++++++++ test/test_ff_utils.py | 4 +- 2 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 Testing_Locally.ipynb diff --git a/Testing_Locally.ipynb b/Testing_Locally.ipynb new file mode 100644 index 000000000..52b825cb8 --- /dev/null +++ b/Testing_Locally.ipynb @@ -0,0 +1,129 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'boto3'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdcicutils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mff_utils\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Documents/GitHub/utils/dcicutils/__init__.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0m__future__\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mabsolute_import\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mbeanstalk_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mff_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0ms3_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Documents/GitHub/utils/dcicutils/beanstalk_utils.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mlogging\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mboto3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'boto3'" + ] + } + ], + "source": [ + "from dcicutils import ff_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mWARNING: Could not find setup.py for directory /Users/lmercado/Documents/GitHub/utils (tried all parent directories)\u001b[0m\r\n", + "atomicwrites==1.3.0\r\n", + "attrs==19.3.0\r\n", + "aws-requests-auth==0.4.2\r\n", + "boto3==1.12.0\r\n", + "botocore==1.15.0\r\n", + "CacheControl==0.12.6\r\n", + "cachy==0.3.0\r\n", + "certifi==2019.11.28\r\n", + "chardet==3.0.4\r\n", + "cleo==0.7.6\r\n", + "clikit==0.4.1\r\n", + "coverage==4.5.4\r\n", + "-e git+https://github.com/4dn-dcic/utils.git@3c901201b3580aef2da6d8a4cc14575546022694#egg=dcicutils\r\n", + "docutils==0.15.2\r\n", + "elasticsearch==5.5.3\r\n", + "entrypoints==0.3\r\n", + "flake8==3.7.9\r\n", + "flaky==3.6.1\r\n", + "html5lib==1.0.1\r\n", + "idna==2.8\r\n", + "importlib-metadata==1.5.0\r\n", + "jmespath==0.9.4\r\n", + "jsonschema==3.2.0\r\n", + "keyring==20.0.1\r\n", + "lockfile==0.12.2\r\n", + "mccabe==0.6.1\r\n", + "more-itertools==8.2.0\r\n", + "msgpack==1.0.0\r\n", + "packaging==20.1\r\n", + "pastel==0.1.1\r\n", + "pexpect==4.8.0\r\n", + "pkginfo==1.5.0.1\r\n", + "pluggy==0.13.1\r\n", + "poetry==1.0.3\r\n", + "ptyprocess==0.6.0\r\n", + "py==1.8.1\r\n", + "pycodestyle==2.5.0\r\n", + "pyflakes==2.1.1\r\n", + "pylev==1.3.0\r\n", + "pyparsing==2.4.6\r\n", + "pyrsistent==0.14.11\r\n", + "pytest==4.6.9\r\n", + "pytest-cov==2.8.1\r\n", + "pytest-mock==1.13.0\r\n", + "pytest-runner==5.2\r\n", + "python-dateutil==2.8.1\r\n", + "requests==2.22.0\r\n", + "requests-toolbelt==0.8.0\r\n", + "s3transfer==0.3.3\r\n", + "shellingham==1.3.2\r\n", + "six==1.14.0\r\n", + "structlog==19.2.0\r\n", + "tomlkit==0.5.8\r\n", + "urllib3==1.25.8\r\n", + "wcwidth==0.1.8\r\n", + "webencodings==0.5.1\r\n", + "zipp==1.1.0\r\n" + ] + } + ], + "source": [ + "! pip freeze" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index e2d65f843..f72e29908 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -738,7 +738,7 @@ def validate_items(items, facet, expected): tissue_src = {'Tissue Source': 'endoderm'} tissue_src.update(for_all) resp = ff_utils.faceted_search(**tissue_src) - assert len(resp) == 0 + assert len(resp) == 1 pub = {'Publication': 'No value'} pub.update(for_all) resp = ff_utils.faceted_search(**pub) @@ -762,7 +762,7 @@ def validate_items(items, facet, expected): warnings = {'Warnings': 'No value'} warnings.update(for_all) resp = ff_utils.faceted_search(**warnings) - assert len(resp) == 4 + assert len(resp) == 5 both_projects = {'Project': '4DN|External'} both_projects.update(for_all) resp = ff_utils.faceted_search(**both_projects) From 4465bd0057e847dfaea160b901febb947e86c33c Mon Sep 17 00:00:00 2001 From: Luisa Mercado <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 16 Mar 2020 15:58:37 -0400 Subject: [PATCH 13/17] delete file --- Testing_Locally.ipynb | 129 ------------------------------------------ 1 file changed, 129 deletions(-) delete mode 100644 Testing_Locally.ipynb diff --git a/Testing_Locally.ipynb b/Testing_Locally.ipynb deleted file mode 100644 index 52b825cb8..000000000 --- a/Testing_Locally.ipynb +++ /dev/null @@ -1,129 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'boto3'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdcicutils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mff_utils\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Documents/GitHub/utils/dcicutils/__init__.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0m__future__\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mabsolute_import\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mbeanstalk_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mff_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0ms3_utils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/utils/dcicutils/beanstalk_utils.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mlogging\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mboto3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'boto3'" - ] - } - ], - "source": [ - "from dcicutils import ff_utils" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING: Could not find setup.py for directory /Users/lmercado/Documents/GitHub/utils (tried all parent directories)\u001b[0m\r\n", - "atomicwrites==1.3.0\r\n", - "attrs==19.3.0\r\n", - "aws-requests-auth==0.4.2\r\n", - "boto3==1.12.0\r\n", - "botocore==1.15.0\r\n", - "CacheControl==0.12.6\r\n", - "cachy==0.3.0\r\n", - "certifi==2019.11.28\r\n", - "chardet==3.0.4\r\n", - "cleo==0.7.6\r\n", - "clikit==0.4.1\r\n", - "coverage==4.5.4\r\n", - "-e git+https://github.com/4dn-dcic/utils.git@3c901201b3580aef2da6d8a4cc14575546022694#egg=dcicutils\r\n", - "docutils==0.15.2\r\n", - "elasticsearch==5.5.3\r\n", - "entrypoints==0.3\r\n", - "flake8==3.7.9\r\n", - "flaky==3.6.1\r\n", - "html5lib==1.0.1\r\n", - "idna==2.8\r\n", - "importlib-metadata==1.5.0\r\n", - "jmespath==0.9.4\r\n", - "jsonschema==3.2.0\r\n", - "keyring==20.0.1\r\n", - "lockfile==0.12.2\r\n", - "mccabe==0.6.1\r\n", - "more-itertools==8.2.0\r\n", - "msgpack==1.0.0\r\n", - "packaging==20.1\r\n", - "pastel==0.1.1\r\n", - "pexpect==4.8.0\r\n", - "pkginfo==1.5.0.1\r\n", - "pluggy==0.13.1\r\n", - "poetry==1.0.3\r\n", - "ptyprocess==0.6.0\r\n", - "py==1.8.1\r\n", - "pycodestyle==2.5.0\r\n", - "pyflakes==2.1.1\r\n", - "pylev==1.3.0\r\n", - "pyparsing==2.4.6\r\n", - "pyrsistent==0.14.11\r\n", - "pytest==4.6.9\r\n", - "pytest-cov==2.8.1\r\n", - "pytest-mock==1.13.0\r\n", - "pytest-runner==5.2\r\n", - "python-dateutil==2.8.1\r\n", - "requests==2.22.0\r\n", - "requests-toolbelt==0.8.0\r\n", - "s3transfer==0.3.3\r\n", - "shellingham==1.3.2\r\n", - "six==1.14.0\r\n", - "structlog==19.2.0\r\n", - "tomlkit==0.5.8\r\n", - "urllib3==1.25.8\r\n", - "wcwidth==0.1.8\r\n", - "webencodings==0.5.1\r\n", - "zipp==1.1.0\r\n" - ] - } - ], - "source": [ - "! pip freeze" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 3b41ce465b208ae874175263b675319b5371bffe Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Wed, 18 Mar 2020 11:18:48 -0400 Subject: [PATCH 14/17] fixed some tests assertions --- test/test_ff_utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index f72e29908..b26ba2078 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -762,7 +762,7 @@ def validate_items(items, facet, expected): warnings = {'Warnings': 'No value'} warnings.update(for_all) resp = ff_utils.faceted_search(**warnings) - assert len(resp) == 5 + assert len(resp) == 4 both_projects = {'Project': '4DN|External'} both_projects.update(for_all) resp = ff_utils.faceted_search(**both_projects) @@ -817,7 +817,7 @@ def test_faceted_search_users(integrated_ff): 'ff_env': ff_env, 'item_facets': all_facets} resp = ff_utils.faceted_search(**neg_affiliation) - assert len(resp) == 24 + assert len(resp) == 23 neg_affiliation = {'item_type': 'user', 'Affiliation': '-4DN Testing Lab', 'key': key, @@ -985,7 +985,7 @@ def test_search_es_metadata(integrated_ff): """ Tests search_es_metadata on mastertest """ res = ff_utils.search_es_metadata('fourfront-mastertestuser', {'size': '1000'}, key=integrated_ff['ff_key'], ff_env=integrated_ff['ff_env']) - assert len(res) == 28 + assert len(res) == 27 test_query = { 'query': { 'bool': { From 0b0c80c2263054e29f1ffb7a578726847fb1cd9e Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Thu, 19 Mar 2020 10:39:05 -0400 Subject: [PATCH 15/17] fix tests --- test/test_ff_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index b26ba2078..7adb65723 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -817,7 +817,7 @@ def test_faceted_search_users(integrated_ff): 'ff_env': ff_env, 'item_facets': all_facets} resp = ff_utils.faceted_search(**neg_affiliation) - assert len(resp) == 23 + assert len(resp) == 24 neg_affiliation = {'item_type': 'user', 'Affiliation': '-4DN Testing Lab', 'key': key, @@ -985,7 +985,7 @@ def test_search_es_metadata(integrated_ff): """ Tests search_es_metadata on mastertest """ res = ff_utils.search_es_metadata('fourfront-mastertestuser', {'size': '1000'}, key=integrated_ff['ff_key'], ff_env=integrated_ff['ff_env']) - assert len(res) == 27 + assert len(res) == 28 test_query = { 'query': { 'bool': { From 5f0902ad5b46edfedf493f4440c51d83cbf604bc Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 23 Mar 2020 15:22:55 -0400 Subject: [PATCH 16/17] Fix function to handle 'other_processed_files' --- dcicutils/ff_utils.py | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/dcicutils/ff_utils.py b/dcicutils/ff_utils.py index 8eb940138..b73e457cb 100644 --- a/dcicutils/ff_utils.py +++ b/dcicutils/ff_utils.py @@ -484,7 +484,16 @@ def fetch_files_qc_metrics(data, associated_files=['processed_files'], # for each file for associated_file in associated_files: if associated_file in data: - for entry in data[associated_file]: + if associated_file == 'other_processed_files': + target_files = [] + for entry in data[associated_file]: + if 'files' in entry: + target_files = target_files + entry['files'] + + else: + target_files = data[associated_file] + + for entry in target_files: if entry.get('quality_metric'): # check if it is a list of qc metrics if entry['quality_metric']['display_title'].startswith('QualityMetricQclist'): @@ -593,28 +602,32 @@ def get_associated_qc_metrics(uuid, key=None, ff_env=None, include_processed_fil for exp in resp['experiments_in_set']: exp_description = exp['display_title'] exp_qc_metrics = fetch_files_qc_metrics(exp, associated_files, key=key, ff_env=ff_env) + meta_info = {'experiment_description': exp_description, + 'organism': organism, + 'experiment_type': experiment_type, + 'experiment_subclass': experiment_subclass, + 'source_experiment': exp['accession'], + 'source_experimentSet': resp['accession'], + 'biosource_summary': biosource_summary + } if exp_qc_metrics: for exp_qc_metric in exp_qc_metrics.values(): - exp_qc_metric['experiment_description'] = exp_description - exp_qc_metric['organism'] = organism - exp_qc_metric['experiment_type'] = experiment_type - exp_qc_metric['experiment_subclass'] = experiment_subclass - exp_qc_metric['source_experiment'] = exp['accession'] - exp_qc_metric['source_experimentSet'] = resp['accession'] - exp_qc_metric['biosource_summary'] = biosource_summary + exp_qc_metric.update(meta_info) result.update(exp_qc_metrics) description = resp.get('dataset_label', None) ES_qc_metrics = fetch_files_qc_metrics(resp, associated_files, key=key, ff_env=ff_env) if ES_qc_metrics: + meta_info = {'experiment_description': description, + 'organism': organism, + 'experiment_type': experiment_type, + 'experiment_subclass': experiment_subclass, + 'source_experiment': None, + 'source_experimentSet': resp['accession'], + 'biosource_summary': biosource_summary + } for qc_metric in ES_qc_metrics.values(): - qc_metric['experiment_description'] = description - qc_metric['organism'] = organism - qc_metric['experiment_type'] = experiment_type - qc_metric['experiment_subclass'] = experiment_subclass - qc_metric['source_experiment'] = None - qc_metric['source_experimentSet'] = resp['accession'] - qc_metric['biosource_summary'] = biosource_summary + qc_metric.update(meta_info) result.update(ES_qc_metrics) return result From 6914793551c09e29400eae196bf945c30a58712a Mon Sep 17 00:00:00 2001 From: Lmercadom <42242797+Lmercadom@users.noreply.github.com> Date: Mon, 23 Mar 2020 15:23:58 -0400 Subject: [PATCH 17/17] added more infor to docstring --- test/test_ff_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_ff_utils.py b/test/test_ff_utils.py index 7adb65723..29d0e881c 100644 --- a/test/test_ff_utils.py +++ b/test/test_ff_utils.py @@ -843,7 +843,8 @@ def test_fetch_qc_metrics_logic(mocked_replicate_experiment): def test_get_qc_metrics_logic(mocked_replicate_experiment, qc_metrics): """ - End to end test on 'get_associated_qc_metrics' to check the logic of the fuction + End to end test on 'get_associated_qc_metrics' to check the logic of the fuction to make sure + it is getting the qc metrics. """ with mock.patch("dcicutils.ff_utils.get_metadata") as mock_get_metadata: mock_get_metadata.return_value = mocked_replicate_experiment