Commit 5ad1e248 authored by Aymeric BLONDEL's avatar Aymeric BLONDEL
Browse files

avec tar.gz ok

parent 6cd90e46
......@@ -2,4 +2,5 @@ __pycache__
MANIFEST
build
*.pyc
*.egg
MANIFEST
......@@ -17,7 +17,7 @@ some functions have been modified to accommodate the software
License:
Copyright (C) 2013 Aymeric Blondel
Copyright (C) 2015 Aymeric Blondel
Author - Aymeric Blondel - aymeric.blondel@univ-nantes.fr
......@@ -167,7 +167,7 @@ class Canvas_principal(Frame):
def initCanvas(self):
'''Initialisation Of color Object'''
self.C=Color('C_name','C_base','C_space','C_illuminant','C_trans','C_normalized','C_concentration')
print install_path
#print install_path
self.C.get_ini_value(install_path+"/ini/copremo.ini")
self.S=Spec.Spectral('input_file',install_path+"/ini/copremo.ini")
#self.C.get_ini_value(install_path+"/ini/copremo.ini")
......@@ -582,14 +582,16 @@ class Application(Frame):
"in multiple colorimetric space \n"\
"If you want to change the settings, go to options "\
"several parameters are changed as "\
"the colorimetric space, concentration, illuminant, fwhm value.").pack(padx =10, pady =10)
"the colorimetric space, concentration, illuminant, fwhm value.\n"\
"Full Documentation on http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/post.php?post=2164").pack(padx =10, pady =10)
def about(self):
'''Window message of the autor and licence type'''
msg =Toplevel(self)
Message(msg, width =200, aspect =100, justify =CENTER,
text ="CoPreMo\n\n(C) Aymeric Blondel, Mai 2013.\n"\
text ="CoPreMo\n\n(C) Aymeric Blondel,2015.\n"\
"Marches Project.\n"\
"http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/post.php?post=2164\n"\
"Licence = GPL").pack(padx =10, pady =10)
if __name__ == '__main__':
......
......@@ -6,7 +6,170 @@ Home-page: http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/?p=2159
Author: Aymeric Blondel Project Marches
Author-email: aymeric.blondel@univ-nantes.fr
License: http://www.gnu.org/licenses/gpl.html
Description: coucou
Description: ====== Copremo : Python Package for COlor PREdiction of MOlecules ======
Copremo réalisé dans le cadre du projet [[http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/|Marches]] est un logiciel libre écrit en python et possédant une interface graphique. Il a pour but de simuler les spectres d'absorption et de transmittance et finalement de quantifier la couleur d'un colorant telle que perçue par l'oeil humain dit standard. Ces déterminations se font sur base du spectre d'absorption obtenu expérimentalement ou théoriquement.
La couleur est une perception liée à trois paramètres physiologiques : la nature de l'objet éclairé, la lumière qui éclaire l'objet et le capteur (l'oeil) qui reçoit le message et qui le communique au cerveau par l'intermédiaire d'impulsion électriques. La lumière est générée par un illuminant (p.ex. D65 l'illuminant standard correspondant à la lumière du jour). Elle interagit ensuite avec la matière/objet. L'œil humain décompose la lumière reçue en trois signaux électriques envoyés au cerveau qui, à son tour seulement, crée la sensation de couleur.
Lorsque la lumière frappe un objet, trois scénarios sont possibles: elle peut être absorbée par cet objet et son énergie se transforme en chaleur; elle peut traverser l'objet; et elle peut être réfléchie par l'objet. Souvent ces scénarii se déroulent de manière simultanée. Tout objet qui absorbe une partie de la lumière incidente visible (380 nm-800 nm) et qui réfléchit le reste est coloré. Par exemple, les feuilles vertes dont pigment est la chlorophylle, absorbent les longueurs d'onde les plus courtes (bleu) et les plus longues (rouge) du spectre visible, et elles réfléchissent les longueurs d'onde centrales (vert). De même, les carottes contiennent un pigment appelé β-carotène qui absorbe les longueurs d'ondes entre le violet et le vert. Elles réfléchissent ce qui reste, c'est-à-dire les longueurs d'onde allant du rouge au vert, donnant ainsi leur couleur orangée caractéristique.
Le site actif d'un colorant est appelé chromophore, c'est dans ce site que l’excitation électronique a lieu: le chromophore absorbe de l’énergie lumineuse et passe d'un état électronique fondamental à un état électronique excité. Pour prédire la couleur, il suffit donc de mesurer ou de calculer le spectre d'absorption du composé étudié. Ce spectre est en fait la lumière qui sera réfléchie par l'objet ou absorbée par la solution. En prenant l'inverse de ce spectre d'absorption (transmittance), on détermine donc la gamme des longueurs d'onde détectée par l'œil et on peut déterminer la couleur de l'objet/de la solution. Copremo a pour objectif de convertir ces spectres d'absorption en spectre de transmittance afin d'en déduire leur couleur. Les spectres d'absorption peuvent être obtenus de trois manières différentes :
* A partir d'une mesure provenant d'un spectrophotomètre ou de données présentes sur le web sous forme d'un fichier .csv;
* A partir des énergies d'excitation obtenue à l'aide du logiciel Gaussian09 et figurant dans un fichier .log;
* A partir du spectre vibronique d'absorption obtenu via le logiciel FCclasses situé dans le fichier fort.18 (données en eV). Ce dernier fichier doit être converti en nm avant son utilisation dans Copremo avec l'extension .fcuv.
Chaque couleur est caractérisée par un point dans un espace multi-dimensionnel colorimétrique de référence. Il existe plusieurs espaces de couleur, par example RGB, XYZ, LAB et HTML. Copremo calcule ces valeurs et fournit une image de la couleur perçue par l'oeil humain en présence de la lumière du jour.
====== Description de Copremo ======
Ce package est un logiciel libre sous la GNU GPL License (voir ci-dessous).
Copremo peut s'utiliser de deux manières différentes:
- en tant que logiciel disposant d'une interface graphique rapidement utilisable pour prédire la couleur d'un composé à partir d'une des trois manières citées ci-dessus (fichier .csv, .log ou .fcuv).
- en tant que package python à utiliser dans vos propres programmes/scripts.
===== License =====
//This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Copremo. If not, see <http://www.gnu.org/licenses/>.//
===== Citation =====
Si vous utilisez Copremo pour obtenir des résultats de publications, merci d'en faire mention de cette manière:
A.Blondel,Copremo,Université de Nantes, 2015.
===== Prérequis =====
L'installation préalable de Copremo nécessite
* Python 2.X ou X > 7
* Numpy
* Matplotlib
* pyhton-setuptools
* python-pip
Copremo utilise également deux bibliothèques annexes sous licence LGPL: Colorpy [3] et cclib [4].
* Colorpy [3] est fourni avec Copremo
* Cclib [4] sera installé automatiquement par setuptools.
Copremo fonctionne a été testé sur Mac et sur plusieurs distribution Linux (fedora, Ubuntu, opensuse).
Windows 7 n'a pas encore été validé.
===== Telechargement =====
http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/wp-admin/post.php?post=215
===== Installation =====
<code>
tar -xvz Copremo-1.3.tar.gz
python setup.py install
</code>
Si une erreur vous indique qu'il ne peut importer numpy ou matplotlib, c'est que vous avez oublié de les installer. \\ Si vous avez déjà un environnement python-pip vous pouvez les installer rapidement :
<code>
pip install numpy
pip install matplotlib
</code>
Ensuite refaire l'étape d'installation précédente. Celui-ci devrait installer cclib [4] automatiquement si ce package n'est pas déjà installé et installer copremo dans la foulée.
Lancer le logiciel <code> python Copremo </code>
<code>
./Copremo
</code>
Le logiciel Copremo s'ouvre.
===== Procédure pour prédire la couleur à partir d'un calcul Gaussian =====
La procédure en cinq étapes décrite ci-dessous a été utilisée précédemment [1].
En considérant le colorant/pigment de votre choix, suivez les cinq étapes ci-dessous afin de visualiser la couleur par l'oeil humain de votre molécule:\\
- Calculer les énergies de transition veriticales avec Gaussian09.
- Créer le spectre d'absorption dans le domaine visible [400 800nm ]en interpolant les données provenant de Gaussian09 a l'aide de la classe Spectre du package Copremo.
- Déterminer le spectre de transmittance.
- Estimer la couleur associée à votre molécule (XYZ, RGB, LAB) à l'aide de la classe Color du package Copremo qui utilise des fonctions de la bibliothèque Colorpy [3]
- Visualiser le code couleur héxadecimal de la molécule dans l'interface graphique de Copremo.
Le logiciel Copremo possède de nombreuses autres possibilités qui sont expliquées ci-dessous à l'aide des différents tests de validation.
===== GUICopremo =====
L'interface graphique de Copremo se base sur les API Copremo et Spectral
==== Valeurs initials ====
Un fichier ini disposent de paramètres initiaux, dans le répertoires ini.
Les paramètres suivant peuvent être changé par l'utilisateur a sa convenance.
Paramètres par défaut :
|Parametre|Valeur par défaut|Commentaires|
|color_display|absorbance|2 valeurs possibles absorbance ou transmittance|
|normalized|True | Normalisation du spectre True ou Flase|
|concentration|1| Concentration relative (Valeur entre 0 et 1)|
|space | XYZ|Espace colorimétrique (Valeur possibles RGB, RGB24, Hexa, LAB, xyY)|
|energytype |eV |Unité de travail pour l'élargissement nm/ev|
|scaling_energy | -1. |Facteur d'échelle pour les énergies <0 pas de mise à l'échelle|
|scaling_intensity |-1.|Point de départ pour les intensités <0 pas de mise à l'échelle|
|fstart | 0.5|Point de départ pour le calcul du spectre (0.5Ev)|
|fend |5.|Point final pour le calcul du spectre (0.5Ev)|
|fstep |0.01|Pas pour le calcul du spectre|
|gamma |0.60| Longueur à mi-hauteur (FWHM|
|gmix |100|Mixage gaussienne/lorentzienne: 100=100%G, 0=100%L|
==== Fichiers d'entrée ====
* **.csv** : La première ligne du fichier csv n'est pas prise en compte. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La seconde correspond à l'intensité à cette longueur d'onde.
* **.log**: Copremo permet d'utiliser comme entrée un fichier Gaussian09 et le traiter afin d'extraire les données permettant de réaliser les spectres nécessaires pour l'approximation de la couleur de la molécule. Ce fichier .log doit contenir les résultats d'un calcul d'energie d'excitation (CIS, TD-DFT,...).
* **.uv** : Fichier réalisable à l'aide d'une fonction de la classe Spectral à partir d'un fichier Gaussian09. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La deuxième colonne correspond à l'énergie d'éxcitation et la troisième à l'intensité à cette longueur d'onde.
* **.fcuv**: Copremo peut également lire les fichiers issus de FCclasses (cf ci-dessous) après conversion des nm en eV,on nommera ce fichier .fcuv.
opremo API =====
Copremo dispose d'une Api. Celle-ci est composé de 2 classes normalisés Color et Spectral.
==== Class Color Test ====
* Test 1 :Utiliser Color.py en mode ligne de commande pour donner la valeur hexadécimale correspondant à la couleur du colorant étudié, par exemple CuSO4 (vérif2). <code> python Color.py -i ../../test/verif2/CuSO4.csv -s Hexa </code>
* Test 2 : Utiliser un petit script python test_color.py pour réaliser les fichiers .png de prédiction des couleurs pour les fichiers .csv de test/verif1 <code> python test_Color.py all</code>
==== Classe Color docs ====
* [[Docs/Color.html|Classe Color Doc]]
====Classe Spectral test ====
* Test 1 : Utiliser Spectral.py en mode ligne de commande pour obtenir le spectre du fichier .log de test Color.log (verif4) sous forme .uv (Color.log.uv). Il ne vous restera plus qu'à l'ouvrir avec le GUI. <code>python Spectral.py -i ../../test/verif4/color.log -a</code>
* Test 2 : Utiliser un petit script python test_spectral.py pour réaliser les fichiers .uv correspondants au fichier .log de test/verif4 <code>python test_Spectral.py all</code>
====Classe Spectral docs ====
* [[Docs/Spectral.html|Classe Spectral Doc]]
===== References =====
* [1] :Beck, M. E. (2005), Estimation of physiologically perceived color from TDDFT-derived excitation spectra. Int. J. Quantum Chem., 101: 683–689. doi: 10.1002/qua.20326
* [2]: Beyond λ[lambda]max: Transforming Visible Spectra into 24-Bit Color Values Darren L. Williams, Thomas J. Flaherty, Casie L. Jupe, Stephanie A. Coleman, Kara A. Marquez, and Jamie J. Stanton Journal of Chemical Education 2007 84 (11), 1873
* [3]: M. Kness, “ColorPy-A Python package for handling physical descriptions of color and light spectra,” MarkKness.net, accessed on 08/06/2013 at http://markkness.net/colorpy/ColorPy.htm
* [4]: O'boyle, N. M., Tenderholt, A. L. and Langner, K. M. (2008), cclib: A library for package-independent computational chemistry algorithms. J. Comput. Chem., 29: 839–845. doi: 10.1002/jcc.20823
Platform: UNKNOWN
Classifier: Development Status :: 1 - Release
......
......@@ -3,7 +3,6 @@ Copremo.ico
MANIFEST.in
README.rst
ez_setup.py
setup.cfg
setup.py
Copremo.egg-info/PKG-INFO
Copremo.egg-info/SOURCES.txt
......@@ -13,6 +12,9 @@ Copremo.egg-info/top_level.txt
dist/Copremo-1.0.tar.gz
docs/copremo_doc_french.pdf
docs/copremo_image/1mcocl2.csvtransmittance_color.png
docs/copremo_image/EA1022_chemdraw.png
docs/copremo_image/P1_chemdraw.png
docs/copremo_image/bleu_chemdraw.png
docs/copremo_image/copremo_gui.png
docs/copremo_image/cuso4.csvtransmittance_color.png
docs/copremo_image/ea1022.csvtransmittance_color.png
......@@ -23,6 +25,7 @@ docs/copremo_image/p1-1.csvtransmittance_color.png
docs/copremo_image/p1-3.csvtransmittance_color.png
docs/copremo_image/p1-4.csvtransmittance_color.png
docs/copremo_image/violet.csvtransmittance_color.png
docs/copremo_image/violet_chemdraw.png
ini/cam_medium.gif
ini/copremo.ini
ini/uv.inp
......
......@@ -6,7 +6,170 @@ Home-page: http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/?p=2159
Author: Aymeric Blondel Project Marches
Author-email: aymeric.blondel@univ-nantes.fr
License: http://www.gnu.org/licenses/gpl.html
Description: coucou
Description: ====== Copremo : Python Package for COlor PREdiction of MOlecules ======
Copremo réalisé dans le cadre du projet [[http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/|Marches]] est un logiciel libre écrit en python et possédant une interface graphique. Il a pour but de simuler les spectres d'absorption et de transmittance et finalement de quantifier la couleur d'un colorant telle que perçue par l'oeil humain dit standard. Ces déterminations se font sur base du spectre d'absorption obtenu expérimentalement ou théoriquement.
La couleur est une perception liée à trois paramètres physiologiques : la nature de l'objet éclairé, la lumière qui éclaire l'objet et le capteur (l'oeil) qui reçoit le message et qui le communique au cerveau par l'intermédiaire d'impulsion électriques. La lumière est générée par un illuminant (p.ex. D65 l'illuminant standard correspondant à la lumière du jour). Elle interagit ensuite avec la matière/objet. L'œil humain décompose la lumière reçue en trois signaux électriques envoyés au cerveau qui, à son tour seulement, crée la sensation de couleur.
Lorsque la lumière frappe un objet, trois scénarios sont possibles: elle peut être absorbée par cet objet et son énergie se transforme en chaleur; elle peut traverser l'objet; et elle peut être réfléchie par l'objet. Souvent ces scénarii se déroulent de manière simultanée. Tout objet qui absorbe une partie de la lumière incidente visible (380 nm-800 nm) et qui réfléchit le reste est coloré. Par exemple, les feuilles vertes dont pigment est la chlorophylle, absorbent les longueurs d'onde les plus courtes (bleu) et les plus longues (rouge) du spectre visible, et elles réfléchissent les longueurs d'onde centrales (vert). De même, les carottes contiennent un pigment appelé β-carotène qui absorbe les longueurs d'ondes entre le violet et le vert. Elles réfléchissent ce qui reste, c'est-à-dire les longueurs d'onde allant du rouge au vert, donnant ainsi leur couleur orangée caractéristique.
Le site actif d'un colorant est appelé chromophore, c'est dans ce site que l’excitation électronique a lieu: le chromophore absorbe de l’énergie lumineuse et passe d'un état électronique fondamental à un état électronique excité. Pour prédire la couleur, il suffit donc de mesurer ou de calculer le spectre d'absorption du composé étudié. Ce spectre est en fait la lumière qui sera réfléchie par l'objet ou absorbée par la solution. En prenant l'inverse de ce spectre d'absorption (transmittance), on détermine donc la gamme des longueurs d'onde détectée par l'œil et on peut déterminer la couleur de l'objet/de la solution. Copremo a pour objectif de convertir ces spectres d'absorption en spectre de transmittance afin d'en déduire leur couleur. Les spectres d'absorption peuvent être obtenus de trois manières différentes :
* A partir d'une mesure provenant d'un spectrophotomètre ou de données présentes sur le web sous forme d'un fichier .csv;
* A partir des énergies d'excitation obtenue à l'aide du logiciel Gaussian09 et figurant dans un fichier .log;
* A partir du spectre vibronique d'absorption obtenu via le logiciel FCclasses situé dans le fichier fort.18 (données en eV). Ce dernier fichier doit être converti en nm avant son utilisation dans Copremo avec l'extension .fcuv.
Chaque couleur est caractérisée par un point dans un espace multi-dimensionnel colorimétrique de référence. Il existe plusieurs espaces de couleur, par example RGB, XYZ, LAB et HTML. Copremo calcule ces valeurs et fournit une image de la couleur perçue par l'oeil humain en présence de la lumière du jour.
====== Description de Copremo ======
Ce package est un logiciel libre sous la GNU GPL License (voir ci-dessous).
Copremo peut s'utiliser de deux manières différentes:
- en tant que logiciel disposant d'une interface graphique rapidement utilisable pour prédire la couleur d'un composé à partir d'une des trois manières citées ci-dessus (fichier .csv, .log ou .fcuv).
- en tant que package python à utiliser dans vos propres programmes/scripts.
===== License =====
//This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Copremo. If not, see <http://www.gnu.org/licenses/>.//
===== Citation =====
Si vous utilisez Copremo pour obtenir des résultats de publications, merci d'en faire mention de cette manière:
A.Blondel,Copremo,Université de Nantes, 2015.
===== Prérequis =====
L'installation préalable de Copremo nécessite
* Python 2.X ou X > 7
* Numpy
* Matplotlib
* pyhton-setuptools
* python-pip
Copremo utilise également deux bibliothèques annexes sous licence LGPL: Colorpy [3] et cclib [4].
* Colorpy [3] est fourni avec Copremo
* Cclib [4] sera installé automatiquement par setuptools.
Copremo fonctionne a été testé sur Mac et sur plusieurs distribution Linux (fedora, Ubuntu, opensuse).
Windows 7 n'a pas encore été validé.
===== Telechargement =====
http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/wp-admin/post.php?post=215
===== Installation =====
<code>
tar -xvz Copremo-1.3.tar.gz
python setup.py install
</code>
Si une erreur vous indique qu'il ne peut importer numpy ou matplotlib, c'est que vous avez oublié de les installer. \\ Si vous avez déjà un environnement python-pip vous pouvez les installer rapidement :
<code>
pip install numpy
pip install matplotlib
</code>
Ensuite refaire l'étape d'installation précédente. Celui-ci devrait installer cclib [4] automatiquement si ce package n'est pas déjà installé et installer copremo dans la foulée.
Lancer le logiciel <code> python Copremo </code>
<code>
./Copremo
</code>
Le logiciel Copremo s'ouvre.
===== Procédure pour prédire la couleur à partir d'un calcul Gaussian =====
La procédure en cinq étapes décrite ci-dessous a été utilisée précédemment [1].
En considérant le colorant/pigment de votre choix, suivez les cinq étapes ci-dessous afin de visualiser la couleur par l'oeil humain de votre molécule:\\
- Calculer les énergies de transition veriticales avec Gaussian09.
- Créer le spectre d'absorption dans le domaine visible [400 800nm ]en interpolant les données provenant de Gaussian09 a l'aide de la classe Spectre du package Copremo.
- Déterminer le spectre de transmittance.
- Estimer la couleur associée à votre molécule (XYZ, RGB, LAB) à l'aide de la classe Color du package Copremo qui utilise des fonctions de la bibliothèque Colorpy [3]
- Visualiser le code couleur héxadecimal de la molécule dans l'interface graphique de Copremo.
Le logiciel Copremo possède de nombreuses autres possibilités qui sont expliquées ci-dessous à l'aide des différents tests de validation.
===== GUICopremo =====
L'interface graphique de Copremo se base sur les API Copremo et Spectral
==== Valeurs initials ====
Un fichier ini disposent de paramètres initiaux, dans le répertoires ini.
Les paramètres suivant peuvent être changé par l'utilisateur a sa convenance.
Paramètres par défaut :
|Parametre|Valeur par défaut|Commentaires|
|color_display|absorbance|2 valeurs possibles absorbance ou transmittance|
|normalized|True | Normalisation du spectre True ou Flase|
|concentration|1| Concentration relative (Valeur entre 0 et 1)|
|space | XYZ|Espace colorimétrique (Valeur possibles RGB, RGB24, Hexa, LAB, xyY)|
|energytype |eV |Unité de travail pour l'élargissement nm/ev|
|scaling_energy | -1. |Facteur d'échelle pour les énergies <0 pas de mise à l'échelle|
|scaling_intensity |-1.|Point de départ pour les intensités <0 pas de mise à l'échelle|
|fstart | 0.5|Point de départ pour le calcul du spectre (0.5Ev)|
|fend |5.|Point final pour le calcul du spectre (0.5Ev)|
|fstep |0.01|Pas pour le calcul du spectre|
|gamma |0.60| Longueur à mi-hauteur (FWHM|
|gmix |100|Mixage gaussienne/lorentzienne: 100=100%G, 0=100%L|
==== Fichiers d'entrée ====
* **.csv** : La première ligne du fichier csv n'est pas prise en compte. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La seconde correspond à l'intensité à cette longueur d'onde.
* **.log**: Copremo permet d'utiliser comme entrée un fichier Gaussian09 et le traiter afin d'extraire les données permettant de réaliser les spectres nécessaires pour l'approximation de la couleur de la molécule. Ce fichier .log doit contenir les résultats d'un calcul d'energie d'excitation (CIS, TD-DFT,...).
* **.uv** : Fichier réalisable à l'aide d'une fonction de la classe Spectral à partir d'un fichier Gaussian09. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La deuxième colonne correspond à l'énergie d'éxcitation et la troisième à l'intensité à cette longueur d'onde.
* **.fcuv**: Copremo peut également lire les fichiers issus de FCclasses (cf ci-dessous) après conversion des nm en eV,on nommera ce fichier .fcuv.
opremo API =====
Copremo dispose d'une Api. Celle-ci est composé de 2 classes normalisés Color et Spectral.
==== Class Color Test ====
* Test 1 :Utiliser Color.py en mode ligne de commande pour donner la valeur hexadécimale correspondant à la couleur du colorant étudié, par exemple CuSO4 (vérif2). <code> python Color.py -i ../../test/verif2/CuSO4.csv -s Hexa </code>
* Test 2 : Utiliser un petit script python test_color.py pour réaliser les fichiers .png de prédiction des couleurs pour les fichiers .csv de test/verif1 <code> python test_Color.py all</code>
==== Classe Color docs ====
* [[Docs/Color.html|Classe Color Doc]]
====Classe Spectral test ====
* Test 1 : Utiliser Spectral.py en mode ligne de commande pour obtenir le spectre du fichier .log de test Color.log (verif4) sous forme .uv (Color.log.uv). Il ne vous restera plus qu'à l'ouvrir avec le GUI. <code>python Spectral.py -i ../../test/verif4/color.log -a</code>
* Test 2 : Utiliser un petit script python test_spectral.py pour réaliser les fichiers .uv correspondants au fichier .log de test/verif4 <code>python test_Spectral.py all</code>
====Classe Spectral docs ====
* [[Docs/Spectral.html|Classe Spectral Doc]]
===== References =====
* [1] :Beck, M. E. (2005), Estimation of physiologically perceived color from TDDFT-derived excitation spectra. Int. J. Quantum Chem., 101: 683–689. doi: 10.1002/qua.20326
* [2]: Beyond λ[lambda]max: Transforming Visible Spectra into 24-Bit Color Values Darren L. Williams, Thomas J. Flaherty, Casie L. Jupe, Stephanie A. Coleman, Kara A. Marquez, and Jamie J. Stanton Journal of Chemical Education 2007 84 (11), 1873
* [3]: M. Kness, “ColorPy-A Python package for handling physical descriptions of color and light spectra,” MarkKness.net, accessed on 08/06/2013 at http://markkness.net/colorpy/ColorPy.htm
* [4]: O'boyle, N. M., Tenderholt, A. L. and Langner, K. M. (2008), cclib: A library for package-independent computational chemistry algorithms. J. Comput. Chem., 29: 839–845. doi: 10.1002/jcc.20823
Platform: UNKNOWN
Classifier: Development Status :: 1 - Release
......
coucou
====== Copremo : Python Package for COlor PREdiction of MOlecules ======
Copremo réalisé dans le cadre du projet [[http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/|Marches]] est un logiciel libre écrit en python et possédant une interface graphique. Il a pour but de simuler les spectres d'absorption et de transmittance et finalement de quantifier la couleur d'un colorant telle que perçue par l'oeil humain dit standard. Ces déterminations se font sur base du spectre d'absorption obtenu expérimentalement ou théoriquement.
La couleur est une perception liée à trois paramètres physiologiques : la nature de l'objet éclairé, la lumière qui éclaire l'objet et le capteur (l'oeil) qui reçoit le message et qui le communique au cerveau par l'intermédiaire d'impulsion électriques. La lumière est générée par un illuminant (p.ex. D65 l'illuminant standard correspondant à la lumière du jour). Elle interagit ensuite avec la matière/objet. L'œil humain décompose la lumière reçue en trois signaux électriques envoyés au cerveau qui, à son tour seulement, crée la sensation de couleur.
Lorsque la lumière frappe un objet, trois scénarios sont possibles: elle peut être absorbée par cet objet et son énergie se transforme en chaleur; elle peut traverser l'objet; et elle peut être réfléchie par l'objet. Souvent ces scénarii se déroulent de manière simultanée. Tout objet qui absorbe une partie de la lumière incidente visible (380 nm-800 nm) et qui réfléchit le reste est coloré. Par exemple, les feuilles vertes dont pigment est la chlorophylle, absorbent les longueurs d'onde les plus courtes (bleu) et les plus longues (rouge) du spectre visible, et elles réfléchissent les longueurs d'onde centrales (vert). De même, les carottes contiennent un pigment appelé β-carotène qui absorbe les longueurs d'ondes entre le violet et le vert. Elles réfléchissent ce qui reste, c'est-à-dire les longueurs d'onde allant du rouge au vert, donnant ainsi leur couleur orangée caractéristique.
Le site actif d'un colorant est appelé chromophore, c'est dans ce site que l’excitation électronique a lieu: le chromophore absorbe de l’énergie lumineuse et passe d'un état électronique fondamental à un état électronique excité. Pour prédire la couleur, il suffit donc de mesurer ou de calculer le spectre d'absorption du composé étudié. Ce spectre est en fait la lumière qui sera réfléchie par l'objet ou absorbée par la solution. En prenant l'inverse de ce spectre d'absorption (transmittance), on détermine donc la gamme des longueurs d'onde détectée par l'œil et on peut déterminer la couleur de l'objet/de la solution. Copremo a pour objectif de convertir ces spectres d'absorption en spectre de transmittance afin d'en déduire leur couleur. Les spectres d'absorption peuvent être obtenus de trois manières différentes :
* A partir d'une mesure provenant d'un spectrophotomètre ou de données présentes sur le web sous forme d'un fichier .csv;
* A partir des énergies d'excitation obtenue à l'aide du logiciel Gaussian09 et figurant dans un fichier .log;
* A partir du spectre vibronique d'absorption obtenu via le logiciel FCclasses situé dans le fichier fort.18 (données en eV). Ce dernier fichier doit être converti en nm avant son utilisation dans Copremo avec l'extension .fcuv.
Chaque couleur est caractérisée par un point dans un espace multi-dimensionnel colorimétrique de référence. Il existe plusieurs espaces de couleur, par example RGB, XYZ, LAB et HTML. Copremo calcule ces valeurs et fournit une image de la couleur perçue par l'oeil humain en présence de la lumière du jour.
====== Description de Copremo ======
Ce package est un logiciel libre sous la GNU GPL License (voir ci-dessous).
Copremo peut s'utiliser de deux manières différentes:
- en tant que logiciel disposant d'une interface graphique rapidement utilisable pour prédire la couleur d'un composé à partir d'une des trois manières citées ci-dessus (fichier .csv, .log ou .fcuv).
- en tant que package python à utiliser dans vos propres programmes/scripts.
===== License =====
//This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Copremo. If not, see <http://www.gnu.org/licenses/>.//
===== Citation =====
Si vous utilisez Copremo pour obtenir des résultats de publications, merci d'en faire mention de cette manière:
A.Blondel,Copremo,Université de Nantes, 2015.
===== Prérequis =====
L'installation préalable de Copremo nécessite
* Python 2.X ou X > 7
* Numpy
* Matplotlib
* pyhton-setuptools
* python-pip
Copremo utilise également deux bibliothèques annexes sous licence LGPL: Colorpy [3] et cclib [4].
* Colorpy [3] est fourni avec Copremo
* Cclib [4] sera installé automatiquement par setuptools.
Copremo fonctionne a été testé sur Mac et sur plusieurs distribution Linux (fedora, Ubuntu, opensuse).
Windows 7 n'a pas encore été validé.
===== Telechargement =====
http://www.sciences.univ-nantes.fr/CEISAM/erc/marches/wp-admin/post.php?post=215
===== Installation =====
<code>
tar -xvz Copremo-1.3.tar.gz
python setup.py install
</code>
Si une erreur vous indique qu'il ne peut importer numpy ou matplotlib, c'est que vous avez oublié de les installer. \\ Si vous avez déjà un environnement python-pip vous pouvez les installer rapidement :
<code>
pip install numpy
pip install matplotlib
</code>
Ensuite refaire l'étape d'installation précédente. Celui-ci devrait installer cclib [4] automatiquement si ce package n'est pas déjà installé et installer copremo dans la foulée.
Lancer le logiciel <code> python Copremo </code>
<code>
./Copremo
</code>
Le logiciel Copremo s'ouvre.
===== Procédure pour prédire la couleur à partir d'un calcul Gaussian =====
La procédure en cinq étapes décrite ci-dessous a été utilisée précédemment [1].
En considérant le colorant/pigment de votre choix, suivez les cinq étapes ci-dessous afin de visualiser la couleur par l'oeil humain de votre molécule:\\
- Calculer les énergies de transition veriticales avec Gaussian09.
- Créer le spectre d'absorption dans le domaine visible [400 800nm ]en interpolant les données provenant de Gaussian09 a l'aide de la classe Spectre du package Copremo.
- Déterminer le spectre de transmittance.
- Estimer la couleur associée à votre molécule (XYZ, RGB, LAB) à l'aide de la classe Color du package Copremo qui utilise des fonctions de la bibliothèque Colorpy [3]
- Visualiser le code couleur héxadecimal de la molécule dans l'interface graphique de Copremo.
Le logiciel Copremo possède de nombreuses autres possibilités qui sont expliquées ci-dessous à l'aide des différents tests de validation.
===== GUICopremo =====
L'interface graphique de Copremo se base sur les API Copremo et Spectral
==== Valeurs initials ====
Un fichier ini disposent de paramètres initiaux, dans le répertoires ini.
Les paramètres suivant peuvent être changé par l'utilisateur a sa convenance.
Paramètres par défaut :
|Parametre|Valeur par défaut|Commentaires|
|color_display|absorbance|2 valeurs possibles absorbance ou transmittance|
|normalized|True | Normalisation du spectre True ou Flase|
|concentration|1| Concentration relative (Valeur entre 0 et 1)|
|space | XYZ|Espace colorimétrique (Valeur possibles RGB, RGB24, Hexa, LAB, xyY)|
|energytype |eV |Unité de travail pour l'élargissement nm/ev|
|scaling_energy | -1. |Facteur d'échelle pour les énergies <0 pas de mise à l'échelle|
|scaling_intensity |-1.|Point de départ pour les intensités <0 pas de mise à l'échelle|
|fstart | 0.5|Point de départ pour le calcul du spectre (0.5Ev)|
|fend |5.|Point final pour le calcul du spectre (0.5Ev)|
|fstep |0.01|Pas pour le calcul du spectre|
|gamma |0.60| Longueur à mi-hauteur (FWHM|
|gmix |100|Mixage gaussienne/lorentzienne: 100=100%G, 0=100%L|
==== Fichiers d'entrée ====
* **.csv** : La première ligne du fichier csv n'est pas prise en compte. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La seconde correspond à l'intensité à cette longueur d'onde.
* **.log**: Copremo permet d'utiliser comme entrée un fichier Gaussian09 et le traiter afin d'extraire les données permettant de réaliser les spectres nécessaires pour l'approximation de la couleur de la molécule. Ce fichier .log doit contenir les résultats d'un calcul d'energie d'excitation (CIS, TD-DFT,...).
* **.uv** : Fichier réalisable à l'aide d'une fonction de la classe Spectral à partir d'un fichier Gaussian09. Ensuite deux colonnes de valeurs séparées par un « ; ». La première colonne correspond à la longueur d'onde en nm. La deuxième colonne correspond à l'énergie d'éxcitation et la troisième à l'intensité à cette longueur d'onde.
* **.fcuv**: Copremo peut également lire les fichiers issus de FCclasses (cf ci-dessous) après conversion des nm en eV,on nommera ce fichier .fcuv.
opremo API =====
Copremo dispose d'une Api. Celle-ci est composé de 2 classes normalisés Color et Spectral.
==== Class Color Test ====
* Test 1 :Utiliser Color.py en mode ligne de commande pour donner la valeur hexadécimale correspondant à la couleur du colorant étudié, par exemple CuSO4 (vérif2). <code> python Color.py -i ../../test/verif2/CuSO4.csv -s Hexa </code>
* Test 2 : Utiliser un petit script python test_color.py pour réaliser les fichiers .png de prédiction des couleurs pour les fichiers .csv de test/verif1 <code> python test_Color.py all</code>
==== Classe Color docs ====
* [[Docs/Color.html|Classe Color Doc]]
====Classe Spectral test ====
* Test 1 : Utiliser Spectral.py en mode ligne de commande pour obtenir le spectre du fichier .log de test Color.log (verif4) sous forme .uv (Color.log.uv). Il ne vous restera plus qu'à l'ouvrir avec le GUI. <code>python Spectral.py -i ../../test/verif4/color.log -a</code>
* Test 2 : Utiliser un petit script python test_spectral.py pour réaliser les fichiers .uv correspondants au fichier .log de test/verif4 <code>python test_Spectral.py all</code>
====Classe Spectral docs ====
* [[Docs/Spectral.html|Classe Spectral Doc]]
===== References =====
* [1] :Beck, M. E. (2005), Estimation of physiologically perceived color from TDDFT-derived excitation spectra. Int. J. Quantum Chem., 101: 683–689. doi: 10.1002/qua.20326
* [2]: Beyond λ[lambda]max: Transforming Visible Spectra into 24-Bit Color Values Darren L. Williams, Thomas J. Flaherty, Casie L. Jupe, Stephanie A. Coleman, Kara A. Marquez, and Jamie J. Stanton Journal of Chemical Education 2007 84 (11), 1873
* [3]: M. Kness, “ColorPy-A Python package for handling physical descriptions of color and light spectra,” MarkKness.net, accessed on 08/06/2013 at http://markkness.net/colorpy/ColorPy.htm
* [4]: O'boyle, N. M., Tenderholt, A. L. and Langner, K. M. (2008), cclib: A library for package-independent computational chemistry algorithms. J. Comput. Chem., 29: 839–845. doi: 10.1002/jcc.20823
No preview for this file type
docs/copremo_image/copremo_gui.png

310 KB | W: | H:

docs/copremo_image/copremo_gui.png

95.5 KB | W: | H:

docs/copremo_image/copremo_gui.png
docs/copremo_image/copremo_gui.png
docs/copremo_image/copremo_gui.png
docs/copremo_image/copremo_gui.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -14,3 +14,4 @@ fstep = 0.01
gamma = 0.60
gmix = 100
......@@ -19,7 +19,7 @@ some functions have been modified to accommodate the software
License:
Copyright (C) 2013 Aymeric Blondel
Copyright (C) 2015 Aymeric Blondel
Author - Aymeric Blondel - aymeric.blondel@univ-nantes.fr
......@@ -134,7 +134,7 @@ class Color(object):
>>>absorbance
'''
config.read(file_ini)
print config.sections()
#print config.sections()
#config.set("book", "title", "the python standard library")
if config.get("copremo","color_display")=="absorbance":
self.put_trans(False)
......@@ -279,7 +279,7 @@ class Color(object):
print str(a).strip()
print "illuminant is:", C.get_illuminant()
elif o in ("-l", "--license"):
print "<program> Copyright (C) 2013 Aymeric Blondel"
print "<program> Copyright (C) 2015 Aymeric Blondel"
print "This program comes with ABSOLUTELY NO WARRANTY; see <http://www.gnu.org/licenses/>. for more details"
print "This is free software, and you are welcome to redistribute it"
print "under certain conditions; see <http://www.gnu.org/licenses/>. for more details"
......
......@@ -17,7 +17,7 @@ some functions have been modified to accommodate the software
License:
Copyright (C) 2013 Aymeric Blondel
Copyright (C) 2015 Aymeric Blondel
Author - Aymeric Blondel - aymeric.blondel@univ-nantes.fr
......@@ -340,6 +340,7 @@ class Spectral(object):
#for i in range(len(data.etenergies)): # For each transition
GLOGUV.EEV=GLOGUV.convertor(data.etenergies[:], "cm-1","eV")
GLOGUV.Lambda=cclib.parser.utils.convertor(data.etenergies[:], "cm-1","nm")
#print GLOGUV.Lambda