Aller au contenu

Question

Bonjour, comment intégrer un algorithme  dans filemaker ?
Merci

Michel

Partager ce message


Lien à poster
Partager sur d’autres sites

25 réponses à cette question

Messages recommandés

  • 0

Hum, ca veut rien dire cette question !

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

...heu...comment dois je formuler ? 
J'essaye de préciser :
j'ai développé un programme de pedigree sur 5 générations.
Afin de calculer le taux de consanguinité, je désire intégrer, dans une formule de calcul,  un algorithme.
Est ce possible avec Filemaker ?  
Si oui, comment procéder.
Si non quelle solution adopter.
Merci

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir,

Il y a moyen de créer des fonctions personnalisées... des formules de calculs auxquelles tu passes éventuellement un ou plusieurs paramètres, qui peuvent éventuellement être récursives, intégrer d'autres fonctions,...

La première étape est d'écrire ta formule, ton algorithme 😉 Et là que ce soit en FileMaker où avec un papier et un crayon, c'est un peu le même

Cordialement,

Tanguy

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Excellente question 🙂 mais très vaste…

Un algorithme est un processus qui décrit pas à pas (en actions simples) une tâche complexe. Il peut être sous forme écrite ou graphique (algorigramme, logigramme). Par exemple pour une demande du type «je veux multiplier a par b», nous pouvons avoir deux algorithmes (il y en a bien plus…) :

  • - 1er : effectuer a x ;
  • - 2e : effectuer la procédure suivante :
    1. si est égale à 0 :
      1. alors retourner le résultat 0 ;
      2. fin de la procédure.
    2. sinon si b est inférieur à 0 :
      1. alors mettre le flag signe à vrai ;
      2. mettre dans b la valeur -b ;
    3. sinon
      1. alors mettre le flag signe à faux ;
    4. fin de condition
    5. si b est égale à 1 et signe est faux :
      1. alors retourner le résultat a ;
      2. fin de la procédure.
    6. sinon
      1. alors retourner le résultat -a ;
      2. fin de la procédure.
    7. fin de condition
    8. tant que b est supérieur à 1 :
      1. mettre dans résultat l'addition de a par a 
      2. mettre dans b le résultat de b - 1
    9. fin du tant que
    10. retourner la valeur de résultat ;
    11. fin de la procédure

Et pour ces algorithmes, nous pouvons les développer en :

  • une rubrique de type calcul, pour le 1er algorithme ;
  • une fonction personnalisée pour les deux algorithmes ;
  • un script pour les deux algorithmes ;
  • un plug-in pour les deux algorithmes ;
  • faire apple à une API d'un web service, pour les deux algorithmes ;
  • etc…

 

En fait pour répondre à votre question, connaître exactement l'algorithme nous permettrait de répondre à votre question.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

...et intégrer   du langage Python  dans Filemaker, est ce possible ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir,

Vu la question je suppose que vous n’avez pas l’algorithme mais un développement dans un langage donné en l’occurrence du Python.

À ma connaissance non.

On peut utiliser du C, C++, C#, via le développement d’un plug-in.

On peut utiliser du JavaScript via du Web Viever ou de plug-in.

On peut utiliser du Java via des plug-in.

Mais pour ma part je privilégie d’avord un développement natif en FileMaker avant d’envisager l’usage d’un plug-in ou d’un langage externe.

 

C’est comme demander peut-on mettre du langage assembleur dans FileMaker ? Non. Et cela est à mon sens idiot. Je m’explique…

Si je reprends une image, c’est comme si vous aviez un développement en langage assembleur d’une fonction de multiplication (qui représenterait plusieurs dizaines de lignes voir centaines) et comme vous n’avez pas l’algorithme correspondant votre souhaiteriez mettre directement le code assembleur dans FileMaker car vous ne savez pas le développer en code FileMaker, qui en l’occurrence donnerai pour le développement le plus simple : a * b

Pas plus tard qu’aujourd’hui j’ai vu dans un développement FileMaker une fonction personnalisée nommée Carre ( nb ) et dont la formule est nb * nb. Car le développeur ne savait pas le développer en code simple et optimisé de FileMaker, à savoir nb^2

Soit, ce qui a été fait n’est pas faux et fonctionne très bien.

Il faut avoir à l’esprit qu’un langage est adapté à un environnement et/ou un domaine. Je me répète donc, si vous avez l’algorithme de ce que vous souhaitez implémenter, nous pourrions imaginer les différentes méthodes de mise en œuvre dans FileMaker. Ce qui serait plus optimisé.

Pour retranscrire un développement en algorithme c’est ce qu’on appel en anglais du reverse engineering (en français : ingénierie inverse). C’est plus difficile, je le conçois.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci David, l'algorithme a été créé à partir de ce document https://www.vigies-pirates.net/piratologie/selection/au-tableau/
...et mis en application en phyton par une gentille personne avec un tas de compétences.(à mes yeux, bien évidemment)

Reste maintenant à l'appliquer à Filemaker.
Mes connaissances, dans ce domaine, étant d'un niveau de maternelle,  il reste à cette gentille personne à mettre le nez dans Filemaker  (qui lui est totalement inconnu)  et à trouver la solution.
Script ? plugin ? une autre piste ?
L'avenir nous le dira, enfin j'espère.


Pour tout comprendre, le but est de calculer la consanguinité sur 5 générations, dans mon cas, pour des chiens.
J'ai créé l'application...reste le calcul de consanguinité à mettre en oeuvre. 

Cordialement

Michel

genealogie_pedigree-250k.thumb.jpg.640ade526454614b89218b8850f1d680.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
1 hour ago, mimimike said:

l'algorithme a été créé à partir de ce document https://www.vigies-pirates.net/piratologie/selection/au-tableau/

Sans doute la brigade canine de vigies-pirates

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

traduire un tel algorithme d’un langage vers un autre n’est en général pas très compliqué.

Ici, la difficulté sera probablement la requête vers les données.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Le 12/09/2018 à 21:47, mimimike a dit :

...et intégrer   du langage Python  dans Filemaker, est ce possible ?

C’est possible, mais uniquement pour la plateforme Mac :

https://www.beezwax.net/products/bbox

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Citation

C’est possible, mais uniquement pour la plateforme Mac :

...merci pour cette info...bien dommage pour les utilisateurs de PC

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

hello
te reste à traduire ce programme Python en une succession d'opérations en français à la manière dont à parlé David,
puis ayant compris ce processus tu pourras voir quelles fonctions de FM pourront correspondre, sachant que parfois
c'est comme traduire d'une langue à une autre, à savoir qu'un concept n'a pas forcément de mots dans une autre langue
et sera traduit par un assemblage de mots.
Donc la première étape consiste a bien assimiler tant l'ensemble que les détails du programme python, comprendre la logique en le francisant sous formes d'étapes écrites et/ou de logigramme pour représenter les relations entre les blocs d'instructions.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci Ericire, c'est ce que va "tenter" de faire l'auteur du code en phyton.
Filemaker lui est totalement inconnu. Il va mettre les mains dans le cambouis, apprendre et tâcher de résoudre le problème, soit au travers des fonctions de Filemaker, soit en transposant son phyton en C++ et  développer un plugin .

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Ça m'a rappelé de bons souvenirs de mathématique, cette histoire de consanguinité ! 😉

Pour la méthode tabulaire (où nous emmène le lien), il s'agit donc en fait de calculer le taux de consanguinité en utilisant celui du père et de la mère. Si je comprends bien, on doit partir du principe que la 5ème générations d'aïeul est considérée comme des fondateurs (pour reprendre les termes de l'article) et donc ignorer leur degré de parenté éventuel, c'est ça ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour MagalieJ et merci,   effectivement, il s' agit bien dans ce calcul d'ignorer leur degré de parenté, sauf à vouloir établir un pedigree sur 6 générations et alors, dans ce cas de figure, pourquoi ignorer les parents de la  génération 6 puis la 7 et 8 etc etc ? 
Le pedigree est établi sur 5 générations et la consanguinité le sera (si nous y parvenons)   en postulant que les parents des ar ar ar  grands parents sont inconnus. 

Michel

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

C'est presque plus compliqué de chercher à ignorer les générations précédents la 5ème... 😉

Initialement, il me semblait qu'on pouvait appliquer exactement la méthode proposée directement dans un rubrique calculée puisque cela se résume finalement au calcul du lien de parenté entre le père et la mère d'un chien, chacun des parents étant lui-même un chien (qui l'eut cru ! 😉 ) dont la consanguinité se calcule de la même façon. La récursivité se ferait donc "toute seule", comme dans l'exemple de l'article, à condition de bien remplir les informations dans l'ordre chronologique (on rentre les grands-parents avant les parents avant les enfants etc).

Mais, c'est là que cette histoire de 5 générations apporte un poil de complexité finalement, la consanguinité pour un même chien devra être calculée différemment si ce qui nous intéresse est son taux à lui ou bien celui de l'un de ses descendants !

Du coup, j'hésite à conseiller de rester sur un calcul, nécessairement beaucoup plus complexe à première vue que prévu ou bien de réaliser cela par script...

J'ai regardé du côté des séries récursives dont l'auteur parle en fin d'article, mais cela ne semble concerner que les couples frères-sœurs.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour Michel,

Toujours à la recherche de ton taux de consanguinité depuis le printemps.

En fait tu n'es pas loin, tu as tous les ingrédients pour résoudre ton problème, c'est juste de les organiser dans FMP qui coince.

Actuellement, tu calcules facilement dans ton outil de pedigree, tous les ascendants d'un chien, niveau par niveau. Tu obtiens 5 listes de noms, une par niveau d'ascendance.

Il est juste nécessaire que chaque chien soit identifié par un id plutôt que par son nom pour éviter les risques d'erreur. Tu vas donc obtenir pour chaque chien 5 listes d'id, c'est-à-dire une liste par niveau. Chacune de ces listes devra être de type rubrique texte indexé. Un calcul complémentaire te donnera une rubrique comportant l'ensemble des ascendants des 5 niveaux. Ensuite, il suffit de faire des liens entre cette liste et chacune des différents listes d'ascendants des autres chiens pour faire apparaitre les différentes consanguinités que tu pondéreras selon leur niveau. 

Ton plus gros problème sera sans doute la lourdeur des calculs. C'est pourquoi passer par des scripts comme conseillé par Magalie me semble une bonne solution.

Bon courage

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

à partir du moment où l'algo est développé en python, j'aimerais bien connaître ce qui coince pour le reproduire en FileMaker.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour Philippe, je te lis avec plaisir.
J'ai tenté de te faire passer un message..perdu.
L'auteur du script en Phyton,  qui n'est autre que mon fils, ingénieur de son état,  s'est enfin décidé à mettre les mains dans le cambouis.
Problèmes,  S'il maîtrise  différents langages informatique et que la logique ne lui fait pas défaut, il ne connait absolument pas Filemaker (son mode de fonctionnement au niveau calculs) et que son temps lui est souvent compté.
Mais je ne désespère pas.
Pour ma part, mon niveau ne me permet pas d'avancer sauf à me prendre la tête et à tourner en rond. Je garde donc mon énergie pour d'autre tâches.

Merci pour tes conseils avisés. Je transmets au chef. Je crois qu'il s’oriente vers le développement  d'un plugin en C++, PC oblige, plutôt qu'un script, mais ce n'est de sa part qu'une première approche.
Je ne manque pas de poster la suite des événements.

Cordialement

Michel
 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Il y a 3 heures, fabriceN a dit :

à partir du moment où l'algo est développé en python, j'aimerais bien connaître ce qui coince pour le reproduire en FileMaker.

Bonjour Fabrice,  tout simplement, son auteur a une totale méconnaissance  de Filemaker -voir ci- dessus-
"S'il maîtrise  différents langages informatique et que la logique ne lui fait pas défaut, il ne connait absolument pas Filemaker (son mode de fonctionnement au niveau calculs)"  "Je crois qu'il s’oriente vers le développement  d'un plugin en C++, PC oblige, plutôt qu'un script, mais ce n'est de sa part qu'une première approche."
Merci pour ton attention.

Michel
 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

En fait je ne comprends pas bien ce que tu attends ici.

Tu as un algorithme développé en Python, que tu souhaites intégrer à FileMaker. Il n'y a pas 50 solutions :

  • soit FileMaker va exécuter le script python, les manières d'y parvenir sont résumées ici : https://www.filemakerprogurus.com/python-and-filemaker/
  • soit il faut reproduire cet algorithme en FileMaker natif. Pour cela il faudra dévoiler l'algorithme en question si tu souhaites une réponse sur un forum gratuit comme ici en espérant que quelqu'un ait le temps de le faire, soit faire appel à un consultant.

Bonne journée

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci Fabrice, j'attends, entre autre, qu'un contributeur sympa me fasse passer une info comme celle que tu me donne avec ce lien...et tu es sympa. Soit en grandement remercié.
Cela , je pense, lui sera d'une grande utilité.
Comme déjà indiqué  "il ne connait absolument pas Filemaker "  donc, c'est la pêche aux possibilités...afin qu'il apprenne, peut être !

Bonne journée


Cordialement

Michel



 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Pour ajouter un peu d'eau au moulin…

A l'époque (2005) où j'ai posté le document "Breeds"  j'étais détaché 2 ans durant à un labo de génétique.
Mon job à consisté à développer pour le compte de chercheurs, une base FMP (v5.5 si je ne trompe) gérant une base d'individus, leurs prélèvements biologiques , les fractionnements de ces prélèvements, le stockage de ces derniers en cuve d'azote. etc. Bref, que du standard pour leurs besoins.


Le projet évoluant au jour le jour, s'est ajoutée au fil du temps la production de graphes généalogiques, les calculs des coefficients de consanguinité (COI Coefficient of Inbreed) et bien d'autres friandises encore.
Le parc était divisé en deux, Mac pour les chercheurs et Win pour la récupération des (millions) de données provenant des cytometres en flux.

N'étant à l'époque pas spécialement introduit à Python, pour la gestion des arbres généalogiques et des calculs COI (c), les chercheurs (donc Mac) optèrent pour "PEDDraw"  le logiciel de Paul Mamelka, un de leurs amis généticiens (logiciel qui hélas à l'heure d'aujourd'hui ne fonctionne plus sous OSX. C'était le temps où OSX permettait de lancer des apps sous deux architectures différentes ) .
Pour moi, la tâche s'est avérée très simple. Depuis FMP, exporter les données au format TAB, envoyer une instruction AppleScript à PEDDraw pour générer graphes et COI.

Pour la partie WIN, les chercheurs toujours friands de nouveautés et ayant des amis ayant des amis ayant des amis qui … décidèrent d'utiliser "PyPEDdal" un module Python entièrement dédié à la génétique développé par un éminent du génome animal: John B. Cole (PH.D).


Là aussi et contrairement à mes aprioris et mes faibles connaissances à l'époque en Python la tâche fut aussi simple que sous MacOs.
Python ayant été installé (et s'installe aujourd'hui encore) à la racine des disques "C:/", le module PyPEDal dans le dossier idoine (Lib), il ne me restait plus qu'à exporter mes données (PyPedal utilise par défaut le séparateur " " (espace) mais dans le script on peut en préciser le délimiteur ou aussi d'utiliser directement les données de BDD telles que SQLite, MySQL ou PostGreSQL), à exporter ou écrire le script Python au format texte (en n'oubliant pas en début de script l'instruction "import PyPedal"), puis d'exécuter le script Python à l'aide de la commande FMP "Emettre Evénement".
En fonction des instructions posées dans le script.py , il en résulta soit un graphe généalogique complet, un COI, ou simplement des données brutes à retravailler, à importer; etc…


Les outils existants étant plus que puissants , il est  à mon sens inutile d'aujourd'hui réinventer la roue. Et, avec le recul , sans ciller , j'utiliserai  tant bien sous Mac que sous Win le module "PyPedal".

Le tout étant de choisir la "bonne" version de Python, car entre la v.2.7 (en standard sous MacOS) et la v.3.7 actuelle) les différences peuvent s'avérer conséquentes !!

2 liens utiles:

 

Breeds.pdf

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci beaucoup Clem pour cette très pertinente arrivée d'eau. Je pense que le moulin tournera bien plus vite.

Michel

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×