FYPO release procedure - pombase/fypo Wiki

Protege and owl tutorials


https://github.com/pombase/fypo/blob/master/src/ontology/README-editors.md (mentally s/Travis/GitHub Actions/g); it's got lots of useful info. Some notes on each section:

uPheno Patterns

Requirements and pre-startup configuration [placeholder]

Ontology Development Kit (ODK)

new ODK release

% docker pull obolibrary/odkfull % sh run.sh make update_repo

FYPO editing in Protege



In the first set of selections, choose

Then in the last set of selections, choose 'Numeric (iterative)'. Like this: Adding new entities (what the prefixes and ID ranges will be),

Ontology Prefix FYPO_ (Should read start ID from ontology) (Start might depend on my ID range - important for GO)


Editing Overview

Owl thing (overview)

Basic Editing

Editing an existing term

Adding a new term

Adding a logical definition

EXAMPLE Has part’ some (a little wrapper that goes around thing store cope with the types of phenotypes that (Quality and happens_during some ‘single-celled vegetative growth phase) And (characteristic of part of some ‘RNA processing’ And (qualifier some abnormal)

Equivalent to

but 'increased occurrence' goes in place of 'quality'; it's not a "modifier" as in "'has modifier' some abnormal", e.g.

'has part' some
    ('decreased occurrence'
     and ('characteristic of' some
        ('histone H2A phosphorylation'
         and ('happens during' some 'single-celled organism vegetative
growth phase'))))

FYPO release,step-by-step

Go to your/path/to/pombase-git/fypo/ (wherever you have run protege, issue commands:)

Command Notes
Wherever you run protege -
% git pull -
% cd src/ontology -
% sh run.sh make synonyms -B adds synonyms from .tsv file
% sh run.sh make fix_quality_issue -B don't have to do this every time, but it fixes BFO:quality to PATO:quality, so do it every so often (especially if you've added "normal" or "abnormal" terms)
% sh run.sh make clear_obsoletes -B only if anything has just gone obsolete
% git add fypo-edit.obo -
% git commit -m 'commit message' fypo-edit.obo "closes #123; closes #124;" will link the commit to, and automagically close, the ticket(s)
% git push origin master wait for CI checks (can see in GitHub under "Actions" All the above edits were done in the 'edit file' terms are visible but not useable. This is a 'branch' (When CI checks are running a small brown dot is visible) origin=GitHub master=default main branch
% cd your/path/to/pombase-git/fypo/ -
% git pull -
% cd ../.. Back to root (not necessary, IIRC this is only required if your entire release pipeline is on the same machine?)
% git checkout -b [fypo-release-yyyy-mm-1dd] creates a branch (temporary scratch space)
% git branch Reports current branch
% cd src/ontology
% sh run.sh make prepare_release -B runs release (takes a while) (minus B =report all problems)
If ODK fails -
git branch -D $branch (e.g. git branch -D fypo-release-2021-09-16) and fix in protege
OR -
% cd ../.. -
% git status Shows changed files
% git add . -
% git status -
% git commit -m 'yada release' e.g. -m '2021-09-16 release'
% git push origin $branch e.g. git push origin fypo-release-2021-09-16 (Unitil this step everything has been local directory)
Go to https://github.com/pombase/fypo/pulls there should be a message "$branch had recent pushes"
Click "Compare & pull request" Comments optional
Click "Create pull request" (button under text box) Wait for CI checks to pass
Click "Squash & merge", then "Confirm squash & merge" Wait for CI checks to pass
Click "Delete branch" -
Return to your command line (server) -
% git checkout master -
% git branch -D $branch e.g. git branch -D fypo-release-2021-09-16
Go to https://github.com/pombase/fypo/releases/new -
Code -> Releases (right-hand panel) -> "Draft a new release" (button on right, near top) -
Click "Choose a tag", type vyyyy-mm-dd click "Create new tag" (appears below the text box) -
Add: Release title (comments optional)
Click "Publish release" (button near the bottom)
Return to your command line (server) -
% git pull
Return to your command line (local) -
% git pull


Viewing CI checks (if a push request fails)

CI check failure

Release failure

  1. Look for conflict markers <<<<<< and correct the local file Select the correct part and delete everything else including the markers % git add $filename % git commit
  2. Conflicts that can't be fixed: git reset --hard origin/master Restart release with a new branch name

GO Term obsoletions

To check external ontology term usage (useful when GO makes terms obsolete)

Creating logical definitions

ODK imports the "release" versions of ontologies, i.e. for GO it doesn't use the "snapshot" version. That means sometimes you have to wait to be able to add a logical definition if it uses a new GO term.

If an external ontology is out of date

sh run.sh make refresh-pato git commit (will commit all files git knows about) git push