Skip to content

Commit c59c453

Browse files
authored
Merge pull request #273 from include-dcc/issue-231
deprecate custom validator
2 parents 547c05b + e7e5959 commit c59c453

13 files changed

+61
-401
lines changed

README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,5 @@ The repository structure is organized as follows:
3737
- Inclusion of over 25 new slots.
3838
- 5 new enumerations: EnumClinicalDataSourceType, EnumDataCategory, EnumGuidType, EnumParticipantLifespanStage, EnumResearchDomain.
3939

40-
### CLI Enhancements:
4140

42-
- **Validation**: Streamlines data cleaning and validation via the command line (CLI), allowing users to specify the data type and file path. The CLI reads, cleans, and validates data using LinkML-defined models for robust validation. For more details, use:
43-
44-
```bash
45-
validate-data --help
46-
```
4741

src/data_validation/README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# LinkML Schema Linting and Validation
2+
3+
This project uses [LinkML](https://linkml.io/) to define schemas and validate tabular data files. Below are the commands used to lint and validate schemas and data using `linkml-lint` and `linkml-validate`.
4+
5+
---
6+
7+
## 🔍 Schema Linting
8+
9+
We use `linkml-lint` to check for syntax and structure issues in the schema.
10+
11+
### 1. Full Linting Check
12+
13+
```bash
14+
linkml-lint src/linkml/include_schema.yaml
15+
```
16+
- **More Info**: [linkml-lint CLI](https://linkml.io/linkml/cli/lint.html)
17+
18+
✅ Data Validation
19+
-----------------
20+
21+
We use `linkml-validate` to check whether data files conform to their schema definitions.
22+
23+
### 1. Validate `study.csv` against `Study` class
24+
```bash
25+
linkml-validate -s src/linkml/include_schema.yaml -C Study src/data/input/study.csv
26+
```
27+
### 2. Validate `participant.csv` against `Participant` class
28+
```bash
29+
linkml-validate -s src/linkml/include_schema.yaml -C Participant src/data/input/participant.csv
30+
```
31+
### 3. Validate `condition.csv` against `Condition` class
32+
```bash
33+
linkml-validate -s src/linkml/include_schema.yaml -C Condition src/data/input/condition.csv
34+
```
35+
### 4. Validate `biospecimen.csv` against `Biospecimen` class
36+
```bash
37+
linkml-validate -s src/linkml/include_schema.yaml -C Biospecimen src/data/input/biospecimen.csv
38+
```
39+
### 5. Validate `datafile.csv` against `DataFile` class
40+
```bash
41+
linkml-validate -s src/linkml/include_schema.yaml -C DataFile src/data/input/datafile.csv
42+
```
43+
44+
- **More Info**: [linkml-validate CLI](https://linkml.io/linkml/cli/validate.html)
45+
46+
### 📤 Saving Validation Logs
47+
48+
To save validation output to a file (e.g., for documentation or reporting), redirect the output of `linkml-validate`:
49+
50+
```bash
51+
linkml-validate -s src/linkml/include_schema.yaml -C Study src/data/input/study.csv > src/data/output/validation-report.md
52+
```
53+
You can change the extension to .csv, .txt, or .json based on your preferred format.
54+
55+
📌 Notes
56+
57+
- Ensure all required fields are present in your CSV files.
58+
59+
- Column names in SCV files must match the schema slot names.
60+
61+
- The schema file (src/linkml/include_schema.yaml) must define all referenced classes (Study, Participant, etc.).

src/data_validation/__init__.py

Whitespace-only changes.

src/data_validation/cli.py

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/data_validation/validate_biospecimen.py

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/data_validation/validate_condition.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/data_validation/validate_datafile.py

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/data_validation/validate_dataset.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/data_validation/validate_datasetmanifest.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/data_validation/validate_participant.py

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)