{"id":3489,"date":"2024-05-14T09:46:12","date_gmt":"2024-05-14T14:46:12","guid":{"rendered":"https:\/\/elligno.com\/?page_id=3489"},"modified":"2024-05-14T09:46:14","modified_gmt":"2024-05-14T14:46:14","slug":"programmeur-biotechnologie","status":"publish","type":"page","link":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/","title":{"rendered":"Industrie Biotechnologie"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Industrie Biotechnologie (Programmeur Scientifique)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Imagerie Mol\u00e9culaire<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><em>Art<\/em><\/strong><em> est un chef de file dans les produits d\u2019imagerie mol\u00e9culaire optique pour les industries des soins de sant\u00e9 et pharmaceutique. Mandat \u00e0 titre de programmeur scientifique (biotechnologie).<\/em> <\/p>\n\n\n\n<p><strong>Client<\/strong>: ART Inc.<\/p>\n\n\n\n<p><strong>Technologies<\/strong>: C++, OO, Matlab, gnuplot, VTK visualizing tool, programmation algorithme num\u00e9rique, non-linear fit et optimization,Orient\u00e9-Objet, STL, boost<\/p>\n\n\n\n<p><strong>Projet<\/strong>: Programmeur Scientifique biotechnologie en charge de la librairie math\u00e9matique<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technologie Imagerie Mol<em>\u00e9<\/em>culaire<\/h3>\n\n\n\n<p>ART Advanced Research Technologies Inc. d\u00e9veloppe et commercialise des produits d&rsquo;imagerie mol\u00e9culaire pour les industries de la sant\u00e9 et pharmaceutique. L\u2019imagerie mol\u00e9culaire consiste \u00e0 \u00e9clairer la partie du corps d\u2019int\u00e9r\u00eat avec un rayonnement non ionisant et \u00e0 analyser le motif \u00e9mergent \u00e0 la recherche de signes de pathologie. La t\u00e2che consiste \u00e0 \u00e9tudier \u00e0 la fois les propri\u00e9t\u00e9s de diffusion et d&rsquo;absorption des tissus, la mani\u00e8re dont la lumi\u00e8re se propage \u00e0 travers les tissus (les tissus normaux diff\u00e8rent des tissus anormaux par leur absorption ou leur diffusion), il devient alors possible de diff\u00e9rencier optiquement les conditions normales et anormales. Les techniques d&rsquo;imagerie mol\u00e9culaire sont bien adapt\u00e9es \u00e0 l&rsquo;\u00e9valuation de la r\u00e9ponse au traitement du cancer. Cela permet aux m\u00e9decins de scruter le corps vivant afin d&rsquo;identifier des maladies, de surveiller leur progression ou de traiter des conditions m\u00e9dicales au niveau mol\u00e9culaire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Description<\/h3>\n\n\n\n<p>Solutionner \u00e9quation de diffusion par m\u00e9thode d&rsquo;optimisation (probl\u00e8me d&rsquo;optimisation) en utilisant un ajustement non lin\u00e9aire. Dans cette approximation, la solution est mod\u00e9lis\u00e9e par un mod\u00e8le de donn\u00e9es exp\u00e9rimental qui d\u00e9pend de certains param\u00e8tres empiriques : les coefficients de diffusion et d&rsquo;absorption. Ceux-ci peuvent \u00eatre d\u00e9termin\u00e9s ind\u00e9pendamment par ajustement (non lin\u00e9aire dans ce cas) \u00e0 l&rsquo;\u00e9quation de diffusion variable dans le temps. Pour trouver les param\u00e8tres optimaux de l\u2019ajustement, on fait appel \u00e0 un probl\u00e8me d\u2019optimisation.&nbsp;<\/p>\n\n\n\n<p><strong>Mandat<\/strong><\/p>\n\n\n\n<p>Re-designer&nbsp;une librairie d\u2019interpolation (lissage d&rsquo;une courbe) en utilisant une approche modulaire de type API. Environnement qui permet d&rsquo;ajouter de nouveaux algorithmes facilement avec un minimum d&rsquo;effort.<\/p>\n\n\n\n<p>J&rsquo;ai mis en place une architecture orient\u00e9e objet, une approche modulaire en d\u00e9veloppant une API de programmation facile \u00e0 utiliser. Cette nouvelle version de la biblioth\u00e8que pr\u00e9sentait : optimisation robuste pour le calcul&nbsp;\u00e0&nbsp;virgule flottante (deux fois plus rapide que la version originale), une hi\u00e9rarchie qui permet d&rsquo;impl\u00e9menter facilement de nouveaux algorithmes. Acc\u00e9l\u00e8re la phase de prototypage de nouveaux algorithmes num\u00e9riques de fit ainsi que la gestion de d\u00e9veloppement futur<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"architecture-api\">Architecture API<\/h4>\n\n\n\n<p>Ci-dessous diagramme UML (Unified Modeling Language) de l&rsquo;API de la biblioth\u00e8que num\u00e9rique. Le diagramme de class montre la d\u00e9pendance entre les types, un portrait global de l\u2019architecture. <\/p>\n\n\n\n<p>Hi\u00e9rarchie de class (type de base) afin de fournir des services de base pour la programmation de nouveaux algorithmes pour r\u00e9soudre le probl\u00e8me d\u2019optimisation. L\u2019utilisateur doit impl\u00e9menter les services de la \u2018class\u2019 de base pour ses besoins particuliers. De cette fa\u00e7on, l\u2019algorithme principale fait appel aux services de la \u2018class\u2019 de haut niveau, ind\u00e9pendant des diff\u00e9rentes impl\u00e9mentations. Ainsi on \u00e9vite de modifier l\u2019algorithme principale&nbsp;de l\u2019application par des d\u00e9tails d\u2019impl\u00e9mentations, donc plus facile \u00e0 maintenir, les changements sont localis\u00e9s.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"1030\" src=\"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg\" alt=\"\" class=\"wp-image-3165\" srcset=\"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg 815w, https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-237x300.jpg 237w, https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-768x971.jpg 768w, https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-558x705.jpg 558w, https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass.jpg 946w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple de Code<\/h3>\n\n\n\n<p>Presente quelques exemples de code et de programmation d&rsquo;algorithme.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-cpp\" data-line=\"\">class OptimizationSolver {\n\n  public:\n      \/\/ Default ctor\n      OptimizationSolver( std::vector&lt;float&gt; aVec, uint32 aMaxIter);\n      OptimizationSolver( std::vector&lt;float&gt; aAccuracy, \/*eps*\/ uint32 aMaxIter, \n                          std::shared_ptr&lt;OptimizationMethod&gt; aOpMeth);\n\n      \/\/ Force destructor to be virtual\n      virtual ~OptimizationSolver()=default;\n\n      \/\/ Solve methods\n      void solve( ObjectiveFunction &amp; aFunc, std::vector&lt;float&gt; aGuess, std::vector&lt;float&gt; aStep) const;\n      void solve( ObjectiveFunction &amp; aFunc, std::vector&lt;float&gt; aGuess, std::vector&lt;float&gt; aMin, \n                  std::vector&lt;float&gt; aMax) const;\n\n      \/\/ Boundary of the parameters\n      void setLowBound( std::vector&lt;float&gt; aLowBound) { mLowBound = aLowBound;}\n      void setHighBound( std::vector&lt;float&gt; aHighBound) { mHiBound = aHighBound;}\n      std::vector&lt;float&gt; getLowBound() const { return mLowBound;}\n      std::vector&lt;float&gt; getHighBound() const { return mHiBound;}\n\n      \/\/ Initialize parameters .... and overwrited in the subclass\n      virtual bool initialize( std::vector&lt;float&gt; aGuess, std::vector&lt;float&gt; aStep);\n\n  protected:\n      \/\/ Initial guess\n      mutable std::vector&lt;float&gt; mRoot;\n      mutable std::vector&lt;float&gt; mStep;\n\n      \/\/ Required accuracy of the solver\n      std::vector&lt;float&gt; mAccuracy;  \/\/ bestAccuracy_;\n  \n      \/\/ Maximum and real number of iterations\n      unsigned int mMaxIterations;\n      unsigned int mNbIterations;\n\n      \/\/ Maximum and evaluation number of ....\n      unsigned int mMaxEvaluations;\n      mutable unsigned int mEvaluationNumber;\n\n      \/\/ This method must be implemented in derived classes and contains the actual code which \n      \/\/ searches for the zeroes of the Objective Function. It assumes that:\n      \/\/  - xMin and xMax form a valid bracket\n      \/\/  - mRoot was initialized to a valid initial guess\n      virtual void solve( ObjectiveFunction &amp; aFunc, std::vector&lt;float&gt; aAccuracy) const = 0;\n\n      \/\/ Optimization method\n      boost::shared_ptr&lt;OptimizationMethod&gt; mOptMeth;\n\n  private:\n      \/\/ Boundary value  \n      std::vector&lt;float&gt; mLowBound;\n      std::vector&lt;float&gt; mHiBound;\n\n      \/\/ Boundary parameters almost fixed\n      bool mLowBoundEnforced;\n      bool mHiBoundEnforced;\n\n      \/\/ Fix the lower and upper bounds of ...\n      void enforcebounds( std::vector&lt;float&gt; aBounds) const;\n};<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Industrie Biotechnologie (Programmeur Scientifique) Imagerie Mol\u00e9culaire Art est un chef de file dans les produits d\u2019imagerie mol\u00e9culaire optique pour les industries des soins de sant\u00e9 et pharmaceutique. Mandat \u00e0 titre de programmeur scientifique (biotechnologie). Client: ART Inc. Technologies: C++, OO, Matlab, gnuplot, VTK visualizing tool, programmation algorithme num\u00e9rique, non-linear fit et optimization,Orient\u00e9-Objet, STL, boost Projet: [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":2885,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3489","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Industrie Biotechnologie - Elligno<\/title>\n<meta name=\"description\" content=\"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d&#039;optimisation).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Industrie Biotechnologie - Elligno\" \/>\n<meta property=\"og:description\" content=\"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d&#039;optimisation).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/\" \/>\n<meta property=\"og:site_name\" content=\"Elligno\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-14T14:46:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/\",\"url\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/\",\"name\":\"Industrie Biotechnologie - Elligno\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/elligno.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/ArtClass-815x1030.jpg\",\"datePublished\":\"2024-05-14T14:46:12+00:00\",\"dateModified\":\"2024-05-14T14:46:14+00:00\",\"description\":\"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d'optimisation).\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/#primaryimage\",\"url\":\"https:\\\/\\\/elligno.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/ArtClass-815x1030.jpg\",\"contentUrl\":\"https:\\\/\\\/elligno.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/ArtClass-815x1030.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/programmeur-biotechnologie\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/elligno.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Portfolio\",\"item\":\"https:\\\/\\\/elligno.com\\\/fr\\\/portfolio\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Industrie Biotechnologie\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/elligno.com\\\/fr\\\/\",\"name\":\"Elligno\",\"description\":\"Site dev elligno\",\"publisher\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/elligno.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#organization\",\"name\":\"Elligno Inc\",\"url\":\"https:\\\/\\\/elligno.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/elligno.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/elligno.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/favicon.png\",\"width\":256,\"height\":256,\"caption\":\"Elligno Inc\"},\"image\":{\"@id\":\"https:\\\/\\\/elligno.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Industrie Biotechnologie - Elligno","description":"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d'optimisation).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/","og_locale":"fr_FR","og_type":"article","og_title":"Industrie Biotechnologie - Elligno","og_description":"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d'optimisation).","og_url":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/","og_site_name":"Elligno","article_modified_time":"2024-05-14T14:46:14+00:00","og_image":[{"url":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/","url":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/","name":"Industrie Biotechnologie - Elligno","isPartOf":{"@id":"https:\/\/elligno.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/#primaryimage"},"image":{"@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/#primaryimage"},"thumbnailUrl":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg","datePublished":"2024-05-14T14:46:12+00:00","dateModified":"2024-05-14T14:46:14+00:00","description":"Programmeur scientifique (biotechnologie) pour un projet en imagerie mol\u00e9culaire (probl\u00e8me d'optimisation).","breadcrumb":{"@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/#primaryimage","url":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg","contentUrl":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/05\/ArtClass-815x1030.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/elligno.com\/fr\/portfolio\/programmeur-biotechnologie\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/elligno.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Portfolio","item":"https:\/\/elligno.com\/fr\/portfolio\/"},{"@type":"ListItem","position":3,"name":"Industrie Biotechnologie"}]},{"@type":"WebSite","@id":"https:\/\/elligno.com\/fr\/#website","url":"https:\/\/elligno.com\/fr\/","name":"Elligno","description":"Site dev elligno","publisher":{"@id":"https:\/\/elligno.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elligno.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/elligno.com\/fr\/#organization","name":"Elligno Inc","url":"https:\/\/elligno.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/elligno.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/06\/favicon.png","contentUrl":"https:\/\/elligno.com\/wp-content\/uploads\/2021\/06\/favicon.png","width":256,"height":256,"caption":"Elligno Inc"},"image":{"@id":"https:\/\/elligno.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/pages\/3489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/comments?post=3489"}],"version-history":[{"count":0,"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/pages\/3489\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/pages\/2885"}],"wp:attachment":[{"href":"https:\/\/elligno.com\/fr\/wp-json\/wp\/v2\/media?parent=3489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}