Dictionarul de date Genomic Data Commons (GDC) ofera primul nivel de validare pentru toate datele stocate si generate de GDC. Schemele JSON definesc toate entitatile individuale (noduri) din modelul de date GDC. Mai mult, aceste scheme definesc toate relatiile (legaturile) dintre noduri. In cele din urma, schemele definesc perechile cheie-valoare valide care pot fi utilizate pentru a descrie nodurile.

  • Dictionar de date GDC
    • Structura dictionarului de date GDC
    • Proprietati nod si exemple
    • Dictionar Changes
      • Ruperea schimbarilor
      • Adaugari de relatii de entitati
      • Adaugari de schema
      • Corectii cosmetice
      • Testarea
      • Versionare
    • Configurati carligul de precomitere pentru a verifica secretele
    • Contribuind

Structura dictionarului de date GDC

Modelul de date GDC acopera toate nodurile din GDC, precum si relatiile dintre diferitele tipuri de noduri. Toate nodurile din modelul de date sunt puternic tastate si definite individual pentru un anumit tip de date. De exemplu, fisierele trimise pot avea doua forme diferite, aliniate sau nealiniate; in cadrul modelului avem doua noduri definite separat pentru citiri nealiniate trimise si citiri aliniate trimise. A face acest lucru permite interogarea mai rapida a modelului de date, precum si furnizarea unei reprezentari clare si concise a datelor in GDC.

Dincolo de tipul de nod, exista, de asemenea, o serie de extensii GDC utilizate pentru a defini in continuare nodurile din modelul de date. Nodurile sunt grupate in categorii care reprezinta roluri largi pentru nod, cum ar fi analiza sau biospecimenul. In plus, nodurile sunt definite in cadrul programului sau proiectului lor si au descrieri ale utilizarii lor. Toate nodurile au, de asemenea, o serie de Proprietati de sistem; aceste proprietati sunt cele care vor fi completate automat de sistem, cu exceptia cazului in care utilizatorul defineste altfel. Aceste proprietati de baza definesc nodul in sine, dar trebuie totusi plasat in model.

Modelul in sine este reprezentat ca un grafic. In cadrul schemei sunt definite legaturi; aceste legaturi indica de la copil la parinte, programul fiind radacina graficului. Link-urile contin, de asemenea, un backref care permite unui parinte sa arate spre un copil. Alte caracteristici ale legaturii includ o eticheta semantica care descrie relatia dintre cele doua noduri, o proprietate de multiplicitate care descrie relatia numerica de la copil la parinte si o proprietate de cerinta pentru a defini daca un nod trebuie sa aiba legatura respectiva. Luate toate impreuna, nodurile si linkurile creeaza graficul directionat al modelului de date GDC.

Proprietati nod si exemple

Fiecare nod contine o serie de potentiale perechi cheie-valoare (proprietati) care pot fi utilizate pentru a caracteriza datele pe care le reprezinta. Unele proprietati sunt clasificate ca fiind necesare sau preferate. Daca o cerere nu are o proprietate necesara, aceasta nu poate fi acceptata. Proprietatile preferate pot indica doua lucruri: proprietatea este evidentiata pe masura ce a devenit mai dorita de comunitate sau proprietatea este promovata la cerere. Toate proprietatile care nu sunt desemnate obligatorii sau preferate sunt inca cautate de GDC, dar trimiterile fara ele sunt permise.

Proprietatile au o validare suplimentara prin intrarile lor. Valorile legale sunt definite in fiecare proprietate. In cea mai mare parte acestea sunt reprezentate in categoriile enum, desi unele chei, cum ar fi submitter_id, vor permite orice valoare sir ca o intrare valida. Alte proprietati numerice pot avea valori maxime si minime pentru a limita intrarile valide. Pentru exemple despre cum ar arata o intrare valida, fiecare nod are o prezentare falsa localizata in directorul exemple / valid /.

yola berrocal follando incesto ruso
fire force hentai gordibuenas españolas
ancianas españolas follando le pilla masturbandose
coños maduros comedias porno
porno con argumento maduras insaciables
sexo videos caseros maduras en castellano
españolas guarras mala rodriguez porno
comedias porno mama me folla
supertetas abuela follando con joven
penes gordos defloin.com
porbo sobando tetas
relatos sexo con maduros brazzers online
videos sexo putasfollando
me corro en su boca sin avisar mamada gay
incesto retro maturehd
abuelas incestos españolas calientes
abuelas y nietos xxx me follo a la vecina
pajas caseras videos travestis en español
paginas sexo corridas brutales en la boca
videos pornos de españolas follar con jovencitas

Dictionar Changes

Urmatoarea este o incercare de a planifica ghidurile pentru nivelul de impact al modificarilor dictionarului, clasificandu-le in Modificari de rupere , Adaugari de relatii de entitati , Adaugari de schema , Corectii cosmetice .

Ruperea schimbarilor

Modificarile de rupere sunt modificari ale dictionarului, astfel incat datele permise anterior sunt nevalide in raport cu noua schema, de exemplu, eliminarea unei parti din dictionar.

NB: Nu toate modificarile clasificate aici ca modificari de rupere sunt promise ca vor necesita o migrare a datelor. Este posibil ca in GDC sa nu existe date care sa fie invalidate de modificare, de exemplu, sa fie necesar un camp care nu a fost lasat niciodata necompletat. Acest lucru ar trebui confirmat in raport cu corpusul de date, iar baza de utilizatori ar trebui sa fie notificata cu privire la o intrerupere a compatibilitatii inapoi.

Modificarile de rupere includ :

  • Redenumirea / eliminarea a tot ceea ce nu este o descriere sau un comentariu
    • Eliminarea unei scheme de entitate
    • Eliminarea tipului permis al unei proprietati
    • Eliminarea valorii enum permise a unei proprietati
    • Schimbarea categoriei unei entitati
    • Schimbarea cheilor unice ale unei entitati
    • Modificarea linkurilor unei entitati, inclusiv eticheta, backref
    • Eliminarea unei proprietati dintr-o schema de entitate
  • Modificarea cerintelor de existenta
    • Adaugarea unei proprietati la lista necesara
    • Este necesara schimbarea linkului de la fals la adevarat
    • Schimbarea multiplicitatii legaturilor de la one_to_many sau many_to_one la one_to_one
    • Modificarea exclusivitatii subgrupului de linkuri de la fals la adevarat

Gestionarea modificarilor de rupere :

Uneori poate fi cel mai bine sa introduceti modificarile de rupere necesare treptat. Avand in vedere ca aveti statul A si statul B, care sunt incompatibile, daca puteti crea un stat AB care este compatibil cu ambele, puteti face upgrade la stat AB fara a sparge modificari, actualizati datele pentru a fi conforme cu statul B, apoi faceti upgrade la statul B .

  1. Statul A este implementat
  2. Treceti la stat AB
  3. Actualizati datele in timp ce statul AB este implementat pentru a fi valid in statul B
  4. Treceti la statul B.

Un exemplu ar putea fi: Introduceti culoarea proprietatii necesare :

  1. Culoarea proprietatii nu exista
  2. Implementati schema care permite, dar nu necesita culoare
  3. Adaugati culoare tuturor inregistrarilor
  4. Implementati schema care necesita culoare

Adaugari de relatii de entitati

Adaugarile la dictionar care creeaza entitati sau adauga legaturi intre entitati nu ar trebui considerate modificari de rupere, cu toate acestea, acestea ar trebui luate in considerare cu atentie in contextul efectelor din aval.

Adaugarile de relatii cu entitatile includ :

  • Adaugarea unei noi scheme de entitati
  • Adaugarea unui nou link intre entitati

Efecte din aval pe relatia entitatii :

  • GDC va trebui sa actualizeze schema bazei de date
  • Utilizatorii ar trebui sa fie anuntati despre adaugiri

Adaugari de schema

GDC este configurat pentru a permite adaugari stricte la proprietati care au un impact minim asupra datelor existente.

Adaugarile la schema includ :

  • Proprietati noi
  • Noi tipuri permise pentru proprietati
  • Noi membri enum permisi pentru proprietati

Efecte din aval de adaugare a schemei :

  • Utilizatorii ar trebui sa fie anuntati despre adaugiri

Corectii cosmetice

Corectiile cosmetice sunt modificari care au efecte comportamentale putin sau deloc.

Corectiile cosmetice includ :

  • Modificari ale termenilor
  • Modificari ale documentatiei
  • Schimbarea formatarii schemei

Efecte din aval de adaugare a schemei :

  • Fara impacturi mari

Testarea

Angajarile vor fi rulate automat pe TravisCI atunci cand este deschisa o cerere de extragere. Daca doriti sa testati local, acestea sunt rulate prin tox

Versionare

Dictionarul GDC ar trebui sa urmeze versiunea semantica actualizand linia din fisierul setup.py la MAJOR.MINOR.PATCH in consecinta:

  1. MAJOR: versiune atunci cand efectuati modificari API incompatibile: Breaking Changes
    • de exemplu 1.2.4 -> 2.0.0
  2. MINOR: versiune cand adaugati functionalitate intr-o maniera compatibila cu versiunile anterioare: Adaugari de relatii , Adaugari de schema
    • de exemplu 1.2.4 -> 1.3.0
  3. PATCH: versiune atunci cand efectuati remedieri de erori compatibile cu versiunile anterioare: Corectii cosmetice
    • de exemplu 1.2.4 -> 1.2.5

Configurati carligul de precomitere pentru a verifica secretele

Folosim pre-commit pentru a configura carlige de pre-commit pentru aceasta repo. Folosim detectarea secretelor pentru a cauta secrete care sunt incluse in repo.

Pentru a instala carligul de precomitere, rulati

Pentru a actualiza fisierul .secrets.baseline, rulati

scanare detectare-secrete – actualizare .secrete.baseline

.secrets.baseline contine toate sirurile care au fost surprinse de detectarea secretelor, dar care nu sunt stocate in text simplu. Auditati linia de baza pentru a vizualiza secretele.

audit detect-secret .secrets.baseline

Contribuind

Cititi cum sa contribuiti aici.