extension-ancient

A MIxS extension proposal for 'ancient' samples

https://github.com/mixs-minas/extension-ancient

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

A MIxS extension proposal for 'ancient' samples

Basic Info
  • Host: GitHub
  • Owner: MIxS-MInAS
  • License: cc0-1.0
  • Language: Python
  • Default Branch: main
  • Size: 232 KB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 4
  • Releases: 12
Created over 1 year ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

extension-ancient

DOI

A MIxS extension proposal for 'ancient DNA' samples.

Repository Structure

The repo is laid out as follows:

  • feedback/
    • <date>-<eventid>: contains collated tables from community feedback sessions
  • proposals/
    • <upcoming version>: contains consensus term update proposals for inclusion in the next version of the standard
  • project/:
    • class-model-tsvs/: contains MIxS <= v5 style TSVs for the extension for more-human readable inspection
  • scripts/: contains various helper scripts for processing JSON, YAML, and feedback data where necessary
  • src/
    • mixs/: contains the structured YAML and JSON files of the latest release of the extension

Update workflows

  1. Gather all feedback from feedback sessions (feedback/) and development workshops (proposals/<upcoming_version>) in the forms of JSONs
  2. Coordination team makes two branch and associated PRs:
    • <upcoming version>-termupdates
    • <upcoming version>-newterms
  3. Update existing terms and add new terms in/to the src/mixs/schema/ancient.yaml file on the two branches
    • Updates as per the aggregated feedback under proposals/, but can be evaluated or 'vetoed' for technical reasons
    • Important: try to make one commit for each new term and term update, with a descriptive message as to the change.
    • For each term, all changes to (description, examples, etc.) should be in one commit and described in the commit message (this will allow us further automate release notes)
  4. Coordination team cross-reviews the two PRs and merge in
  5. Run validation (TO BE AUTOMATED)
    • linkml lint --config linkml-lint-config.yml src/mixs/schema/ancient.yml: to ensure there are no errors or important missing information about or misformatting of each term (slot)
    • linkml validate -s <schema>.yaml --target-class Ancient <test_data>.csv: checks that the schema can be used against an actual metadata test file [NOT YET IMPLEMENTED]
  6. In a new PR, generate additional JSON and TSV files based on instructions on technical notes (containing all changes/new terms)
    • gen-csv src/mixs/schema/ancient.yml > src/mixs/schema/ancient.csv: checks that the schema can be converted to a basic CSV format
    • gen-json-schema src/mixs/schema/ancient.yml > src/mixs/schema/ancient.json checks that the schema can be converted to a basic JSON format
    • The YAML -> JSON conversion will include additioanl LinkML schema validation, so additional correction PRs made be required at this point!
  7. Generate the 'old style' MIxS checklist
    • ./scripts/linkml2class_tsvs.py --schema-file src/mixs/schema/ancient.yml --output-dir projects/class-model-tsvs/
  8. Update the CITATION.cff file with the new version number and authors, and update the version field to match the new version number
    • The title should be descriptive of the extension, e.g. "Minimum Information about any Ancient Sequence: Ancient Extension Schema (MInAS)"
    • The version should be updated to match the new version number, e.g. "1.8.0"
  9. Make a GitHub release with the following format:
    • Tag: vX.X.X
    • Title: vX.X.X
    • Generate release notes based on a cleaned up git log --oneline that has the git hash and the informative commit message
    • Set as latest
  10. Go to the MInAS repo and make an updated mega-yaml plus release following instructions there

Technical notes

Use the YAML (in as far as possible similar format as MIxS LinkML structure) as the source of truth.

MIxS TSV Style Conversion

To convert to the original MIxS TSV style, we can use a script developed by @TurboMam.

This script has been copied and modified very slightly to include the python3 shebang, and is placed under scripts until properly packaged for the MIxS project.

To use this script, you only need python3 and no other dependencies (it seems).

In the root of this directory run:

bash ./scripts/linkml2class_tsvs.py --schema-file src/mixs/schema/ancient.yml --output-dir projects/class-model-tsvs/

Latest tag

We use a GitHub action to generate a special 'latest' tag that points to the commit of the latest release. This allows a more 'user friendly' URL for downloading a specific file, rather than making users have to download a release tarball and extract a specific file.

Owner

  • Name: MIxS-MInAS
  • Login: MIxS-MInAS
  • Kind: organization

GitHub Events

Total
  • Create event: 11
  • Release event: 4
  • Issues event: 6
  • Watch event: 1
  • Delete event: 7
  • Issue comment event: 4
  • Push event: 33
  • Pull request review event: 23
  • Pull request review comment event: 36
  • Pull request event: 14
Last Year
  • Create event: 11
  • Release event: 4
  • Issues event: 6
  • Watch event: 1
  • Delete event: 7
  • Issue comment event: 4
  • Push event: 33
  • Pull request review event: 23
  • Pull request review comment event: 36
  • Pull request event: 14

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 3
  • Total pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jfy133 (4)
Pull Request Authors
  • jfy133 (9)
  • MeriamGuellil (2)
Top Labels
Issue Labels
Pull Request Labels