GELOG / adam-ibs

Ports the IBS/MDS/IBD functionality of Plink to Spark / ADAM
Apache License 2.0
3 stars 6 forks source link

Relationship type inferred from .fam/.ped file (--genome) #32

Open sfcwallace opened 9 years ago

sfcwallace commented 9 years ago

Implement algorithm for RT Relationship type inferred from .fam/.ped file

RT est un champ du fichier produit par la commande --genome

https://www.cog-genomics.org/plink2/ibd

iki-v commented 9 years ago

Bonjour, pourriez-vous faire un statut sur ce point ?

ghost commented 9 years ago

Le champ RT est "calculé" en comparant les ID des familles (FID) des deux individus, les ID de leurs parents, vérifies si se sont des "founder" (c'est à dire que se sont des parents), et leurs ID individuels (IID). Cette comparaison va permettre de déterminer si les deux individus sont:

L'algorithme est le suivant:

Input: Individial a, Individual b ==> La classe "Individual" possède l'ensemble des attributs nécessaire pour identifier un individu (FID, IID, IDPat, IDMat etc.)

Output: RT

  
Début
    Si (a.FID != b.FID)
        retourner "UN"
    Si( !( a.founder || b.founder) ) 
        Si (a.IDPAT == b.IDPAT && a.IDMAT == b.IDMAT)
            retourner "FS"
        else if(a.IDPAT == b.IDPAT || a.IDMAT == b.IDMAT)
            retourner "HS"
    Si ( a.IDPAT == b.IID || a.IDMAT == b.IID ||
        b.IDPAT == a.IID || b.IDMAT == a.IID )
        retourner "PO"
    retourner "OT" 
iki-v commented 9 years ago

Bien joué pour RT ! Pour les autres champs, préférez vous les implémenter directement ou nous mettre à disposition les pseudo-code pour repartir les taches de nouveau ?

ghost commented 9 years ago

Pour les autres champs, on mettre le pseudo-code et on les implémentera. Tous les membres ont une tâche spécifique également

davidonlaptop commented 9 years ago

Super! Good job singemanator!

Est-ce que vous avez documenté les autres champs?

2015-06-26 10:11 GMT-04:00 singemanator notifications@github.com:

Pour les autres champs, on mettre le pseudo-code et on les implémentera. Tous les membres ont une tâche spécifique également

— Reply to this email directly or view it on GitHub https://github.com/GELOG/adam-ibs/issues/32#issuecomment-115702168.

ghost commented 9 years ago

@davidonlaptop, en fait l'ensemble des champs sont documentés mais sur papier. On va les mettre avec Khaled sur une nouvelle page Wiki pour que l'ensemble de l'information soit centralisé.

davidonlaptop commented 9 years ago

Super @singemanator,

Quand vous l'aurez fait, si tu peux ajouter le lien vers ta page wiki sur cette discussion.

Merci beaucoup,

2015-07-10 18:22 GMT-04:00 singemanator notifications@github.com:

@davidonlaptop https://github.com/davidonlaptop, en fait l'ensemble des champs sont documentés mais sur papier. On va les mettre avec Khaled sur une nouvelle page Wiki pour que l'ensemble de l'information soit centralisé.

— Reply to this email directly or view it on GitHub https://github.com/GELOG/adam-ibs/issues/32#issuecomment-120541317.

sfcwallace commented 9 years ago

Voici le lien de la page wiki contenant la description de chaque champ: https://github.com/GELOG/adam-ibs/wiki/Algorithm-for-Pairwise--IBS-IBD-computation-(--genome)

iki-v commented 9 years ago

Bonjour, bien joué @sfcwallace et @singemanator pour les algos. J'essaye de les implementer et j'apercois quelques manquements, serait-il possible de les detailler ?

Retour Calcul EZ Dans le model de données vous avez mis une valeur de type Integer dans ce champ. L'algorithme presenté dans la wiki n'est pas complet. Il donne 0 (aucun lien de parenté) ou 1 (individus identiques) et fait reference à un algorithme qui fait un calcul plus precis. Serait-il possible de justement presenter l'ensemble de l'algorithme et non uniquement les cas spécifiques ? A noter qu'il faut faire une modification sur le format des données car il s'agit en realité d'un Double (et non Int).