phenopolis / phenopolis_genomics_browser

Python API and React frontend for the Phenopolis Genomics Browser
https://dev-live.phenopolis.org
MIT License
31 stars 2 forks source link

Consistency between 'observed' and 'simplified' #333

Closed alanwilter closed 3 years ago

alanwilter commented 3 years ago

Why?: Patients must have, at least, HP:0000001 for both 'observed' and 'simplified' types in phenopolis.individual_feature. Patients created with broken code had simplified HPO_IDs missing, related to #332.

Check:

    (select if2.individual_id
     from phenopolis.individual_feature if2
     where if2."type" = 'observed'
     except select if2.individual_id
     from phenopolis.individual_feature if2
     where if2."type" = 'simplified')
union
    (select if2.individual_id
     from phenopolis.individual_feature if2
     where if2."type" = 'simplified'
     except select if2.individual_id
     from phenopolis.individual_feature if2
     where if2."type" = 'observed');

Solution:

insert into phenopolis.individual_feature (individual_id,feature_id,"type")
select individual_id, feature_id, 'simplified' 
from phenopolis.individual_feature where individual_id in (
    select if2.individual_id from phenopolis.individual_feature if2 where if2."type" = 'observed'
    except
    select if2.individual_id from phenopolis.individual_feature if2 where if2."type" = 'simplified'
) and "type" = 'observed'
;
alanwilter commented 3 years ago

Fix applied for Dev_DB on 06/Apr/21, 648 rows added. It will likely not be an issue in Prod_DB if scripts/migrate_individuals.sh works as expected.