From 2c1d8e3c18c936124b45fa33bf7d2cc7fbe743a2 Mon Sep 17 00:00:00 2001 From: Peter Harrison Date: Thu, 2 Feb 2017 12:45:57 +0000 Subject: [PATCH] Update manifest and remove unrequired XML tests --- MANIFEST | 27 ---- t/XMLsample_loader.t | 20 --- t/XMLsampleset_loader.t | 20 --- t/data/XML/sample_bad.xml | 91 -------------- t/data/XML/sample_good.xml | 95 -------------- t/data/XML/sampleset_bad.xml | 141 --------------------- t/data/XML/sampleset_good.xml | 197 ------------------------------ t/test_out.experimentset.bad.xlsx | Bin 9731 -> 0 bytes t/test_out.sampleset.bad.xlsx | Bin 10490 -> 0 bytes t/test_out.sampleset.good.xlsx | Bin 10175 -> 0 bytes 10 files changed, 591 deletions(-) delete mode 100755 t/XMLsample_loader.t delete mode 100755 t/XMLsampleset_loader.t delete mode 100644 t/data/XML/sample_bad.xml delete mode 100644 t/data/XML/sample_good.xml delete mode 100644 t/data/XML/sampleset_bad.xml delete mode 100644 t/data/XML/sampleset_good.xml delete mode 100644 t/test_out.experimentset.bad.xlsx delete mode 100644 t/test_out.sampleset.bad.xlsx delete mode 100644 t/test_out.sampleset.good.xlsx diff --git a/MANIFEST b/MANIFEST index 9e4bbe1a..58d261e2 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2,13 +2,6 @@ Build.PL cpanfile cpanfile.snapshot -json_schemas/Experiment.schema.08012016.json -json_schemas/Experiment.schema.26012016.json -json_schemas/Experiment.schema.dev.json -json_schemas/Experiment.schema.json -json_schemas/Sample.schema.1603.json -json_schemas/Sample.schema.dev.json -json_schemas/Sample.validonor.json lib/.perltidyrc lib/.ship.conf lib/.travis.yml @@ -87,8 +80,6 @@ t/data/test_data.json t/data/test_good_rule_set.json t/data/test_good_rule_set_with_cons_check.json t/data/test_out.sample.xlsx -t/data/TSV/sample.tsv -t/data/TSV/sampleset.tsv t/data/XML/experiment_good.xml t/data/XML/experiment_good_noroot.xml t/data/XML/experimentset_bad.xml @@ -96,10 +87,6 @@ t/data/XML/primary_cell.sampleset_bad.xml t/data/XML/primary_cell.sampleset_good.xml t/data/XML/primary_tissue.sampleset_bad.xml t/data/XML/primary_tissue.sampleset_good.xml -t/data/XML/sample_bad.xml -t/data/XML/sample_good.xml -t/data/XML/sampleset_bad.xml -t/data/XML/sampleset_good.xml t/Excel/createSampleTab.t t/Excel/XLSXBioSampleset_loader.t t/faang_breed_checks.t @@ -107,28 +94,14 @@ t/loader.t t/object_creation.t t/ols_lookup.t t/prototype_script.t -t/test_out.experimentset.bad.xlsx -t/test_out.sampleset.bad.xlsx -t/test_out.sampleset.good.xlsx -t/TSVsample_loader.t -t/TSVsampleset_loader.t t/validate_attributes.t t/validate_primarycell_bad.t t/validate_primarycell_good.t t/validate_primarytissue_bad.t t/validate_primarytissue_good.t -t/validate_xml_experiment.t -t/validate_xml_root.t -t/validate_xml_experimentset.t -t/validate_xml_sample.bad.t -t/validate_xml_sample.good.t -t/validate_xml_sampleset.bad.t -t/validate_xml_sampleset.good.t t/validator.t t/XMLexperiment_loader.t t/XMLexperimentset_loader.t -t/XMLsample_loader.t -t/XMLsampleset_loader.t web/dev.sh web/public/biosamples_template.xlsx web/public/css/site.css diff --git a/t/XMLsample_loader.t b/t/XMLsample_loader.t deleted file mode 100755 index 34ed3bf4..00000000 --- a/t/XMLsample_loader.t +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use FindBin qw/$Bin/; -use lib "$Bin/../lib"; - -use Bio::Metadata::Loader::XMLSampleLoader; -use Data::Dumper; -use Test::More; - -my $data_dir = "$Bin/data"; - -my $loader = Bio::Metadata::Loader::XMLSampleLoader->new(); - -my $o=$loader->load("$data_dir/XML/sample_good.xml"); - -isa_ok($o, "ARRAY"); - -done_testing(); diff --git a/t/XMLsampleset_loader.t b/t/XMLsampleset_loader.t deleted file mode 100755 index b23b127d..00000000 --- a/t/XMLsampleset_loader.t +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use FindBin qw/$Bin/; -use lib "$Bin/../lib"; - -use Bio::Metadata::Loader::XMLSampleLoader; -use Data::Dumper; -use Test::More; - -my $data_dir = "$Bin/data"; - -my $loader = Bio::Metadata::Loader::XMLSampleLoader->new(); - -my $o=$loader->load("$data_dir/XML/sampleset_good.xml"); - -isa_ok($o, "ARRAY"); - -done_testing(); diff --git a/t/data/XML/sample_bad.xml b/t/data/XML/sample_bad.xml deleted file mode 100644 index 7ad99067..00000000 --- a/t/data/XML/sample_bad.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - S00TXX11 - - 9606 - Homo sapiens - human - B270_7 - - Dendritic cells samples from blood of healthy donor - - - subject_id - B270_7 - - - MOLECULE - RNA - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - Sanquin_Nijmegen - - - BIOMATERIAL_TYPE - Primary Cell - - - TISSUE_TYPE - venous blood - - - MARKERS - CD14 positive - - - DONOR_ID - B270_7 - - - DONOR_AGE - NA - - - DONOR_HEALTH_STATUS - Healthy - - - DONOR_SEX - Unknown - - - gender - unknown - - - DONOR_ETHNICITY - NA - - - PASSAGE_IF_EXPANDED - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/CL_0001056 - - - TISSUE_DEPOT - NA - - - DISEASE_ONTOLOGY_URI - NA - - - TREATMENT - NA - - - phenotype - CL_0001056;UBERON_0013756 - - - - diff --git a/t/data/XML/sample_good.xml b/t/data/XML/sample_good.xml deleted file mode 100644 index b442108b..00000000 --- a/t/data/XML/sample_good.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - S00TXX11 - - 9606 - Homo sapiens - human - B270_7 - - Dendritic cells samples from blood of healthy donor - - - subject_id - B270_7 - - - MOLECULE - total RNA - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - Sanquin_Nijmegen - - - BIOMATERIAL_TYPE - Primary Cell - - - CELL_TYPE - dendritic cell - - - TISSUE_TYPE - venous blood - - - MARKERS - CD14 positive - - - DONOR_ID - B270_7 - - - DONOR_AGE - NA - - - DONOR_HEALTH_STATUS - Healthy - - - DONOR_SEX - Unknown - - - gender - unknown - - - DONOR_ETHNICITY - NA - - - PASSAGE_IF_EXPANDED - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/CL_0001056 - - - TISSUE_DEPOT - NA - - - DISEASE_ONTOLOGY_URI - NA - - - TREATMENT - NA - - - phenotype - CL_0001056;UBERON_0013756 - - - - diff --git a/t/data/XML/sampleset_bad.xml b/t/data/XML/sampleset_bad.xml deleted file mode 100644 index 93587b89..00000000 --- a/t/data/XML/sampleset_bad.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - ERS782319 - S011JHDN1 - - S011JHDN1 - - 9606 - Homo sapiens - human - S011JH - - Blood samples (WGS) from donor S011JH - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - Pippo - - - BIOMATERIAL_TYPE - Primary Tissue - - - TISSUE_TYPE - Venous blood - - - TISSUE_DEPOT - median cubital vein - - - DONOR_ID - S011JH - - - DONOR_AGE - 50-55 - - - DONOR_HEALTH_STATUS - NA - - - DONOR_SEX - Female - - - DONOR_ETHNICITY - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/UBERON_0013756 - - - phenotype - UBERON_0013756 - - - ENA-CHECKLIST - ERC000026 - - - - - - ERS782328 - S00DQ0N2 - - S00DQ0N2 - - 9606 - Homo sapiens - human - S00DQ0 - - Blood samples (WGS) from donor S00DQ0 - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - NIHR Cambridge BioResource - - - BIOMATERIAL_TYPE - Primary Cell - - - TISSUE_TYPE - Venous blood - - - TISSUE_DEPOT - median cubital vein - - - DONOR_ID - S00DQ0 - - - DONOR_AGE - 50- 55 - - - DONOR_HEALTH_STATUS - NA - - - DONOR_SEX - Male - - - DONOR_ETHNICITY - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/UBERON_0013756 - - - phenotype - UBERON_0013756 - - - ENA-CHECKLIST - ERC000026 - - - - - diff --git a/t/data/XML/sampleset_good.xml b/t/data/XML/sampleset_good.xml deleted file mode 100644 index 08b499e0..00000000 --- a/t/data/XML/sampleset_good.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - ERS782319 - S011JHDN1 - - S011JHDN1 - - 9606 - Homo sapiens - human - S011JH - - Blood samples (WGS) from donor S011JH - - - subject_id - S011JH - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - NIHR Cambridge BioResource - - - BIOMATERIAL_TYPE - Primary Tissue - - - MOLECULE - genomic DNA - - - TISSUE_TYPE - Venous blood - - - TISSUE_DEPOT - median cubital vein - - - DISEASE_ONTOLOGY_URI - NA - - - DONOR_ID - S011JH - - - DONOR_AGE - 50-55 - - - DONOR_HEALTH_STATUS - NA - - - DONOR_SEX - Female - - - gender - female - - - DONOR_ETHNICITY - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/UBERON_0013756 - - - PASSAGE_IF_EXPANDED - NA - - - COLLECTION_METHOD - NA - - - phenotype - UBERON_0013756 - - - TREATMENT - NA - - - ENA-CHECKLIST - ERC000026 - - - - - - ERS782328 - S00DQ0N2 - - S00DQ0N2 - - 9606 - Homo sapiens - human - S00DQ0 - - Blood samples (WGS) from donor S00DQ0 - - - subject_id - S00DQ0 - - - DISEASE - None - - - BIOMATERIAL_PROVIDER - NIHR Cambridge BioResource - - - BIOMATERIAL_TYPE - Primary Tissue - - - MOLECULE - genomic DNA - - - TISSUE_TYPE - Venous blood - - - TISSUE_DEPOT - median cubital vein - - - DISEASE_ONTOLOGY_URI - NA - - - DONOR_ID - S00DQ0 - - - DONOR_AGE - 50-55 - - - DONOR_HEALTH_STATUS - NA - - - gender - male - - - DONOR_SEX - Male - - - DONOR_ETHNICITY - NA - - - SAMPLE_ONTOLOGY_URI - http://purl.obolibrary.org/obo/UBERON_0013756 - - - PASSAGE_IF_EXPANDED - NA - - - COLLECTION_METHOD - NA - - - phenotype - UBERON_0013756 - - - TREATMENT - NA - - - ENA-CHECKLIST - ERC000026 - - - - - diff --git a/t/test_out.experimentset.bad.xlsx b/t/test_out.experimentset.bad.xlsx deleted file mode 100644 index d9a928e4ca9b778d4c232c9e06d79f53617f9afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9731 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 diff --git a/t/test_out.sampleset.bad.xlsx b/t/test_out.sampleset.bad.xlsx deleted file mode 100644 index 9f3fc4c87afdb707fbc61b3100fd4740d1753ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10490 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 Q5GwHH1q@OPieI1p3r;9*g#Z8m diff --git a/t/test_out.sampleset.good.xlsx b/t/test_out.sampleset.good.xlsx deleted file mode 100644 index d241ccc7e780ce0945169aa88788d1da3f10547c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10175 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