Suivi de réaction chimique par spectroscopie RMN

Slides:



Advertisements
Présentations similaires
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Advertisements

Réalisé par R. MARRAKHA. KHAYAR Khayar-marrakh Université Hassan-II Faculté des sciences Aïn chock Casablanca Professeurs assistants - département de physique.
DUT INFORMATIQUE ET GÉNIE INFORMATIQUE UE2 CONNAISSANCES ET COMPÉTENCES COMPLÉMENTAIRES EGO 4 ORGANISATION et GESTION LA CAPITALISATION ET L’ACTUALISATION.
Captez les Utilisation de Moodle dans le projet Mathéma-TIC Samuel Bernard Professeur de mathématique Département.
NF04 - Automne - UTC1 Version 09/2006 (E.L.) Cours 5-a Problèmes scalaires instationnaires d’ordre 1 en temps Domaines d’application Notions de schémas.
Chapitre 1: Les fonctions polynômes
Exploitation de mesures scientifiques.
DEBAT SCIENTIFIQUE.
Leçon 4: Comprendre les graphiques
temporelle – fréquentielle –Stabilité diagrammes de Bode / Nyquist
ELABORER UN CAHIER DES CHARGES Formuler une préconisation
Coloration de graphe, backtracking, branch and bound
Modélisation mathématique des systèmes asservis
Entraînement et évaluation d’une méthode de régression
Les Tableaux Mme DJEBOURI. D.
Métrologie Document de reference : “Incertitude en Science de la Nature” Cours : 360-ESZ-03 “Logiciels appliqués en sciences” La métrologie est la « science.
Thème 1 : Ondes et Matière.
SNMP - Comment calculer l'utilisation de la Bande passante
Algorithmique demander jeu du pendu.
Système de commande automatique Linéarité- L'équation des éléments
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Section 1.1 : Unités du système international (SI)
Importation des données satellite: SST/SSS (NetCDF; HDF)
Soutenance de Mémoire de Master En vue de l’obtention du diplôme de master En Physique des fluides et des transferts THEME Etude des champs dynamique.
Javadoc et débogueur Semaine 03 Version A16.
CHAPITRE 03 Analyse Spectrale
Plans d’expériences: Plans factoriels
Domaine: Relations R.A.:
Homographies Patrick Hébert & Denis Laurendeau (Dernière révision : septembre 2016)
Le choix optimal.
Approximation de Pi par la méthode de Monte Carlo
Concepts de base de la programmation
Présentation des EJB Enterprise Java Beans.
Création Et Modification De La Structure De La Base De Données
Cours N°10: Algorithmiques Tableaux - Matrices
Package R Markdown: Un outil pour générer des pages html avec R Studio
Biologie Moléculaire Travailler avec l’ADN.
Formation sur les bases de données relationnelles.
Chapitre 3 : Caractéristiques de tendance centrale
Atelier sous régional sur l'intégration des données administratives, des données de masse et des informations géospatiales pour la compilation des indicateurs.
Reconstitution de paléoclimats grâce à la palynologie:
Suivi de waypoints par un robot buggy autonome
Modélisation objet avec UML
Cours de physique générale II Ph 12
LA DESCRIPTION DU DIAGRAMME ÉNERGÉTIQUE
Information sur survies des patients en dialyse péritonéale, en France métropolitaine dans le RDPLF Année 2016.
Cours du Professeur TANGOUR
Programme financé par l’Union européenne
ANALYSE HARMONIQUE 1) Rappels et définitions 2) Lieux de Bode
1/12 STABILITE Etude d’exemples.
Spectroscopie RMN du proton
Langages de programmation TP11
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Chapitre 3: Les scriptes
MATHÉMATIQUES FINANCIÈRES I
Sera vu dans le prochain cours.
Reconnaissance de formes: lettres/chiffres
Biologie Moléculaire Travailler avec l’ADN.
Sommaire : Les capteurs de force. Les capteurs à jauges de contraintes
Les modules.
LE TORSEUR STATIQUE 1) Définition 2) Notation 3) Deux cas particuliers
Présentation des nouveaux programmes de mathématiques de première des séries technologiques Jessica Parsis.
3 COURS DE thermodynamique (Module Ph 21) 24/05/2019
Fonctions.
Pour en moduler l’ouverture et la complexité
Python Nicolas THIBAULT
Construire un graphique
Les équations de Maxwell (1865)
Enseignement de spécialité Physique Chimie Terminale Cycle terminal
Transcription de la présentation:

Suivi de réaction chimique par spectroscopie RMN Analyse de données de cinétique à l’aide du langage de programmation Python Suivi de réaction chimique par spectroscopie RMN Pierre-Alexandre Turgeon Université de Sherbrooke Pierre-Alexandre Turgeon

Mécanisme de réaction Cinétiques compétitives réversibles

Mécanisme de réaction Cinétiques compétitives réversibles

Mécanisme de réaction Cinétiques compétitives réversibles Habituellement, on intègre les lois de vitesses pour obtenir l’évolution temporelle de chacune des concentrations. Ici, il y a un petit problème… La solution de ce système d’équations différentielles est loin d’être triviale! En fait, même l’utilisation du logiciel Mathematica n’a pas permis d’obtenir la solution à ce système d’équation… Aujourd’hui, nous contournerons donc le problème et trouveront les constantes de vitesse autrement.

Traitement de données import numpy as np Importation des modules Les modules sont des « extensions » de Python qui permettent d’introduire des nouvelles fonctions qui ne sont pas présentes dans le langage de base. Les plus utilisés dans le domaine scientifique sont les suivants: Numpy : Il contient la majorité des fonctions mathématiques et permet de gérer les données sous forme de matrices et de vecteurs. Matplotlib : Permet de tracer les données Au début de votre code, vous devez inclure: import numpy as np import matplotlib.pyplot as plt

Traitement de données Importation des données Aller sur le site web et télécharger les fichiers RMN.txt et temps.txt. Le premier fichier contient tous les spectres RMN et le second contient le temps associé à chacun des spectres. Placez ces fichiers dans le même répertoire que votre script Python. Ajoutez ces lignes à votre code. La variable data va contenir tous les spectres sous forme d’un grand tableau (chaque colonne correspond à un spectre) alors que la variable temps sera un vecteur contenant le temps associé à chaque spectre. Dans la console tapez : data = np.loadtxt('RMN.txt') temps = np.loadtxt('temps.txt') np.shape(data)

Traitement de données ppm = data[:,0] spectres = data[:,1:] Séparation de l’axe x et des spectres La première colonne de la variable data est en réalité l’axe x, soit l’échelle des déplacements chimiques en ppm. Nous allons stocker l’axe x dans une variable qui lui est propre : Les spectres seront stockés dans leur propre variable aussi. On prend tous le reste des colonnes : ppm = data[:,0] spectres = data[:,1:]

Les spectres RMN plt.plot(ppm,spectres[:,0]) Tracer un spectre Il est maintenant possible de visualiser nos spectres RMN. Si on désire tracer le premier spectre de la série, on va dans la console et on tape : plt.plot(ppm,spectres[:,0])

Les spectres RMN plt.plot(ppm,spectres[:,0]) Tracer un spectre Il est maintenant possible de visualiser nos spectres RMN. Si on désire tracer le premier spectre de la série, on va dans la console et on tape : plt.plot(ppm,spectres[:,0])

Les spectres RMN plt.plot(ppm,spectres[:,0]) Tracer un spectre Il est maintenant possible de visualiser nos spectres RMN. Si on désire tracer le premier spectre de la série, on va dans la console et on tape : Si on veut tracer le 100e spectre e la série, on tape : plt.plot(ppm,spectres[:,0]) plt.plot(ppm,spectres[:,100])

Les spectres RMN plt.plot(ppm,spectres[:,0]) Tracer un spectre Il est maintenant possible de visualiser nos spectres RMN. Si on désire tracer le premier spectre de la série, on va dans la console et on tape : Si on veut tracer le 100e spectre e la série, on tape : plt.plot(ppm,spectres[:,0]) plt.plot(ppm,spectres[:,100])

Les spectres RMN furane1 = furane2 = maleic = Assignation des pics RMN Il faut maintenant assigner tous les pics RMN du spectre. Il y a deux pics associés au furane, un pic associé à l’anhydride maléique, 3 pics associés à la forme endo et 3 pics associés à la forme exo. furane1 = furane2 = maleic = endo1 = endo2 = endo3 = exo1 = exo2 = exo3 =

Les spectres RMN def integrale(x,y,x0,sigma): Intégration des pics Nous allons maintenant créé une fonction qui va nous permettre d’intégrer chacun des pics. Généralement, on inclus les fonctions au début du code. Pour créer une nouvelle fonction on écrit: Notre fonction aura besoin de 4 valeurs pour fonctionner. La variable x devra contenir l’axe x de notre spectre. La variable y devra contenir les valeurs d’intensité du spectre La variable x0 devra contenir la position du pic à intégré La variable sigma devra contenir la largeur approximative du pic à intégré (elle servira à déterminer les bornes d’intégration). def integrale(x,y,x0,sigma):

Les spectres RMN Intégration des pics On trouve les bornes inférieures et supérieures. On doit maintenant trouver leur position dans le vecteur de ppm : def integrale(x,y,x0,sigma): borne_inf = x0-sigma borne_sup = x0+sigma mini = np.abs(x-borne_inf).argmin() maxi = np.abs(x-borne_sup).argmin()

Les spectres RMN Intégration des pics On veut intégrer le pic grâce à la méthode des trapèzes, mais avant on doit faire une boucle sur tous les spectres de manière à trouver l’intégrale pour chaque temps de réaction. On trouve le nombre de spectres: On prépare le vecteur e qui va contenir la valeur des intégrales : On fait la boucle sur les « n » spectres : Notre fonction retourne le vecteur qui contient les aires : n = y.shape[1] aire = np.zeros(n) for i in range(n): aire[i] = np.trapz(spectres[mini:maxi,i], x = x[mini:maxi]) return aire

Les spectres RMN Intégration des pics def integrale(x,y,x0,sigma): borne_inf = x0-sigma borne_sup = x0+sigma mini = np.abs(x-borne_inf).argmin() maxi = np.abs(x-borne_sup).argmin() n = y.shape[1] aire = np.zeros(n) for i in range(n): aire[i] = np.trapz(spectres[mini:maxi,i], x = x[mini:maxi]) return aire

Les spectres RMN integrale(ppm,spectres,position,largeur) Intégration des pics On peut maintenant intégrer n’importe quel pic du spectre en utilisant la fonction suivante: Les positions sont déjà stockées dans les variables endo1, endo2, exo1, exo2, etc… Les largeurs devront être déterminées par l’expérimentateur. Pour les réactifs, une largeur de 0.075ppm donne de bons résultats. Pour les produits, une largeur de 0.02ppm donne de bons résultats. integrale(ppm,spectres,position,largeur)

Les spectres RMN Intégration des pics

Les spectres RMN Association entre les intégrales et les concentrations Les intégrales en RMN sont proportionnelles à la concentration de produit. Afin de vous aider à trouver la correspondance entre les intégrales et les concentrations voici les informations pertinentes: Qté d’anhydride maléique : 49mg Volume réactionnel : 500 microlitres

Détermination des constantes de vitesse Constantes kendo et kexo Les constantes kendo et kexo peuvent être déterminées à partir des taux initiaux de formation des produits endos et exos. Au départ, on peut approximer que [EN] et [EX] sont égales à 0. Donc : Vous pouvez faire une régression linéaire sur les quelques premiers points (à vous de déterminer combien) afin d’estimer le taux de réaction initial. Une même relation existe pour la formation du produit exo.

Détermination des constantes de vitesse Constante kendo- La constante kendo- correspond à la réaction inverse, c’est-à-dire le passe du produit endo au réactifs de départ. Il est possible de la déterminer en se plaçant au point maximum sur la courbe de concentration du produit endo. À ce point, son taux de variation est nul et il est permis d’écrire: Donc :

Détermination des constantes de vitesse Constante kexo- La constante kexo- peut être évaluée de façon similaire en prenant un point de référence sur la courbe de concentration du produit exo.