Suite

Exécuter l'outil de boîte à outils Python à la fois autonome à partir d'autres outils dans la même boîte à outils Python ?

Exécuter l'outil de boîte à outils Python à la fois autonome à partir d'autres outils dans la même boîte à outils Python ?


J'ai créé une boîte à outils Python pour le travail qui contient deux outils. Ces outils utilisent le modèle de boîte à outils et ont donc un init, getParameterInfo, etc.

Je veux pouvoir exécuter un outil à la fois de manière autonome et l'appeler dans d'autres outils de cette boîte à outils. Je n'arrive pas à obtenir les paramètres corrects cependant.

class foo(object) def __init__(self) #truc def getParameterInfo(self): # liste les paramètres de l'outil d'interface utilisateur def execute(self, parameters, messages) print parameter[0] return class bar(object) def __init__(self) # stuff def getParameterInfo(self): # liste des paramètres pour l'outil d'interface utilisateur def execute(self, parameters, messages) foo("hello, world) return

J'ai essayé d'ajouter un paramètre au init(self, paramètre) ou la classe foo mais je n'arrive pas à le faire fonctionner.

Je suis nouveau dans la programmation orientée objet (POO) et ArcGIS en général.


L'option la plus simple est d'avoir votreexécuterméthode appelle une fonction au lieu de faire le traitement réel. Cela le rend facilement appelable par n'importe quel outil.

class Foo(object) def __init__(self) #truc def getParameterInfo(self): # liste les paramètres de l'outil d'interface utilisateur def execute(self, parameters, messages) somefunc(parameters[0].value, parameters[1].value) class Bar(object) def __init__(self) #truc def getParameterInfo(self): # liste des paramètres pour l'outil d'interface utilisateur def execute(self, parameters, messages): somefunc(parameters[0].value, parameters[1].value) otherfunc (parameters[2].value, parameters[3].value) return def somefunc(arg1, arg2) : #faire quelque chose return def otherfunc(arg1, arg2) : #faire autre chose return

Si vous voulez que ces fonctions soient contenues dans les classes d'outils :

class Foo(object) def __init__(self) #truc def getParameterInfo(self): # liste les paramètres de l'outil d'interface utilisateur def execute(self, parameters, messages) self.somefunc(parameters[0].value, parameters[1].value ) def somefunc(self, arg1, arg2): #do quelque chose return class Bar(object) def __init__(self) #truc def getParameterInfo(self): # liste des paramètres pour l'outil d'interface utilisateur def execute(self, parameters, messages): foo = Foo() foo.somefunc(parameters[0].value, parameters[1].value) self.anotherfunc(parameters[2].value, parameters[3].value) return def otherfunc(self, arg1, arg2) : #faire autre chose retour

Quel(s) outil(s) de construction recommandez-vous pour python ? [fermé]

Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle soit sur le sujet pour Stack Overflow.

Je démarre un projet python de petite/moyenne taille, probablement en développement piloté par les tests. Mes arrière-plans sont plus en C et java qu'en python (j'ai utilisé ant et makefile)

Je sais qu'en python, vous n'aurez peut-être pas besoin d'un outil de construction, mais je le ferai, car j'utiliserai cython et PyInstaller (le truc devrait fonctionner sur quelques UNIX différents, sans dépendre directement de python) et j'aimerais la commodité de sélectionner les tests depuis la CLI, de créer la documentation, peut-être de vérifier les dépendances, etc.

Quelqu'un se plaint que Python manque d'un outil de création. Je sais que peu d'outils existent, comme scon et paver, mais j'aimerais entendre de vrais utilisateurs et pas seulement leur site Web. Est-ce que quelqu'un utilise un pavé?

Qu'en est-il du setup.py habituel fourni avec de nombreux packages ? J'en ai examiné quelques-uns pour voir s'il y a un usage commun, mais je n'ai rien trouvé d'intéressant (peut-être que j'ai utilisé les mauvais exemples)

Recommandez-vous de vous en tenir à des choses que je connais déjà (ant et Makefile) au moins pour commencer ? Si oui, y a-t-il une extension de fourmi que vous recommandez pour python (+cython+pyinstaller+pyUnit) ?

EDIT: pour éviter d'autres réponses comme celle de jwp, notez que, pour ce projet, j'ai absolument besoin que mon programme soit un exécutable autonome car il est absolument impossible pour avoir une machine virtuelle python sur la plate-forme cible où l'exécutable s'exécutera. J'ai exactement le même matériel disponible pour la compilation, donc heureusement, je n'ai pas besoin de compiler de manière croisée (mais je ferais le développement sur un Linux plus convivial).

J'aimerais aussi tester si mon code compile en Cython depuis le début, pas pour optimiser prématurément, mais juste pour être sûr que je ne vais pas trop loin avec l'utilisation de fonctionnalités incompatibles, ce qui nécessiterait un refactoring douloureux si Cython serait sérieusement nécessaire.


Il s'agit d'un problème après que Visual Studio a effectué une mise à jour pour l'optimisation.

J'ai confirmé que le correctif est :

Ouvrir l'élément de menu : - Outils - Options - Environnement - Dans l'onglet Général - DÉSACTIVER/décocher - "Optimiser le rendu pour les écrans avec différentes densités de pixels"

J'utilise Visual Studio 2017, Pour récupérer la boîte à outils SSIS, cliquez avec le bouton droit sur la surface de conception SSIS dans le projet et sélectionnez SSIS Toolbox, veuillez consulter ce lien. Cela l'a résolu pour moi

Une image vaut mille mots

Je pense que vous devriez télécharger et installer l'extension Integration Services Projects :

Étant donné que dans Visual Studio 2019, pour les projets Analysis Services, Integration Services ou Reporting Services, vous devez installer la ou les extensions appropriées à partir de la place de marché.

Vous pouvez vous référer à la documentation officielle suivante pour plus d'informations :


Je suis très heureux que vous ayez demandé ! Je travaillais justement à expliquer cette chose même dans notre wikibook (qui est évidemment incomplet). Nous travaillons avec des novices Python et avons dû en aider quelques-uns à travers exactement ce que vous demandez !

Python en ligne de commande sous Windows :

Enregistrez votre fichier de code python quelque part, en utilisant "Enregistrer" ou "Enregistrer sous" dans votre éditeur. Appelons-le « first.py » dans un dossier, comme « pyscripts » que vous créez sur votre bureau.

Ouvrir un rapide (un shell 'cmd' Windows qui est une interface texte dans l'ordinateur) :

démarrer > exécuter > "cmd" (dans la petite case). D'ACCORD.

Accédez à l'emplacement de votre fichier python, en utilisant les commandes 'cd' (changer de répertoire) et 'dir' (pour afficher les fichiers dans le répertoire, pour vérifier votre tête). Pour notre exemple quelque chose comme,

> cd C:Documents and SettingsGreggDesktoppyscripts

'python' n'est pas reconnu comme une commande interne ou externe, un programme opérationnel ou un fichier batch.

ensuite python (les interprète programme qui peut traduire Python en « instructions informatiques ») n'est pas sur votre chemin (voir Mettre Python dans votre chemin ci-dessous). Ensuite, essayez de l'appeler comme ceci (en supposant que Python2.6, installé à l'emplacement habituel):

(Utilisateurs avancés : au lieu de first.py, vous pouvez écrire le chemin complet de first.py dans C:Documents and SettingsGreggDesktoppyscriptsfirst.py)

Mettre Python sur votre chemin

Afin d'exécuter des programmes, votre système d'exploitation recherche à divers endroits et essaie de faire correspondre le nom du programme / de la commande que vous avez tapé avec certains programmes en cours de route.

panneau de configuration > système > avancé > |Variables d'environnement| > variables système -> Chemin

cela doit inclure : C:Python26 (ou équivalent). Si vous le mettez à l'avant, ce sera le premier endroit regardé. Vous pouvez également l'ajouter à la fin, ce qui est peut-être plus sain.

Ensuite, redémarrez votre invite et essayez de taper « python ». Si tout a fonctionné, vous devriez obtenir une invite ">>>".


Les interfaces des utilisateurs

Pour les interfaces utilisateur, vous avez trois options :

  • Vous pouvez facilement utiliser les dialogues et menus génériques et natifs via l'API. C'est bon pour les dialogues de confirmation et d'autres entrées utilisateur de base.
  • Vous pouvez également ouvrir une vue Web à partir d'un script Python, puis utiliser HTML5 pour l'interface utilisateur. Lorsque vous utilisez des vues Web à partir de Python, vous pouvez échanger des messages entre la vue Web et le processus Python qui l'a engendré. L'interface utilisateur ne sera pas native, mais c'est toujours une bonne option à avoir.
  • Il y a quelque prise en charge des interfaces utilisateur Android natives, mais je ne sais pas si cela fonctionne bien, je ne l'ai tout simplement jamais utilisé.

Vous pouvez mélanger les options, vous pouvez donc avoir une vue Web pour l'interface principale tout en utilisant des dialogues natifs.


Installation silencieuse sous Windows

L'installation silencieuse est effectuée sans aucune interface utilisateur. Il peut être utilisé par les administrateurs réseau pour installer PyCharm sur un certain nombre de machines et éviter d'interrompre les autres utilisateurs.

Pour effectuer une installation silencieuse, exécutez le programme d'installation avec les commutateurs suivants :

/CONFIG : Spécifiez le chemin d'accès au fichier de configuration silencieux

/D : Spécifiez le chemin d'accès au répertoire d'installation

Ce paramètre doit être le dernier dans la ligne de commande et il ne doit pas contenir de guillemets même si le chemin contient des espaces vides.

Pour vérifier les problèmes pendant le processus d'installation, ajoutez le commutateur /LOG avec le chemin et le nom du fichier journal entre les paramètres /S et /D. Le programme d'installation générera le fichier journal spécifié. Par example:

Fichier de configuration silencieux

Le fichier de configuration silencieux définit les options d'installation de PyCharm. Avec les options par défaut, l'installation silencieuse est effectuée uniquement pour l'utilisateur actuel : mode=user . Si vous souhaitez installer PyCharm pour tous les utilisateurs, modifiez la valeur de l'option de mode d'installation en mode=admin et exécutez le programme d'installation en tant qu'administrateur.

Le fichier de configuration silencieuse par défaut est unique pour chaque produit JetBrains. Vous pouvez le modifier pour activer ou désactiver diverses options d'installation si nécessaire.

Il est possible d'effectuer une installation silencieuse sans le fichier de configuration. Dans ce cas, omettez le commutateur /CONFIG et exécutez le programme d'installation en tant qu'administrateur. Sans le fichier de configuration silencieux, le programme d'installation ignorera toutes les options supplémentaires : il ne créera pas de raccourcis sur le bureau, n'ajoutera pas d'associations ou ne mettra pas à jour la variable PATH. Cependant, il créera toujours un raccourci dans le menu Démarrer sous JetBrains .


Désinstallez/désactivez CodeRush ou tous les autres modules complémentaires un par un jusqu'à ce qu'il fonctionne correctement. La plupart du temps, l'un d'eux est le problème.

J'ai la même configuration que toi, dans mon cas c'était DxCore

D'accord, la question est un peu plus ancienne, mais par souci d'exhaustivité : vous n'avez rien à désinstaller.

  1. démarrez visual studio à partir de la ligne de commande en utilisant : devenv.exe /SafeMode
  2. installez l'élément dans la boîte à outils en utilisant la procédure commune (Choisissez des éléments.)

vs ne devrait pas planter de cette façon. après le redémarrage de visual studio sans le commutateur SafeMode, les éléments ajoutés sont toujours disponibles.

Pour moi, c'était Visual Studio 2008 Power Commands

ÉDITER: J'ai également eu ce problème avec d'autres extensions gratuites. Je ne peux tout simplement pas me rappeler lequel était l'autre :(

EDIT2: Je viens de me souvenir, j'ai installé le SilverLight Tools 2 ou 2 beta. Cela a causé ce problème. Il a également foutu DataAnnotations avec une ancienne version et a foiré Entity Framework pour moi. J'ai fini par devoir réinstaller ma machine.


Exécuter l'outil de boîte à outils Python à la fois autonome à partir d'autres outils dans la même boîte à outils Python ? - Systèmes d'information géographique

Les dossiers stockés ici correspondent aux dossiers trouvés dans une installation Galaxy standard. Sont inclus les fichiers d'outils (à la fois le code d'origine et les wrappers .xml) pour l'analyse métabolomique et les fichiers de configuration Galaxy d'une installation fonctionnelle de Galaxy. Tous les fichiers de configuration n'ont pas été modifiés, mais tous sont inclus ici par souci d'exhaustivité.

La version Galaxy sur laquelle ces fichiers ont été testés provient de la branche Master sur Github : commit c429777c93680dcee449fe410f5360afbe673758.

La version MI-Pack utilisée par la publication GigaScience est le commit Github : 06ce0ace643ee1cf1d27550769a5272b7ea50825

Disponibilité et exigences

###Langages de programmation (les versions données ont été utilisées pour le développement, d'autres versions peuvent également être compatibles) :

###Toutes les restrictions d'utilisation par les non-universitaires :

###Machine virtuelle pré-installée (spécifique à la publication) Une implémentation de machine virtuelle a été créée pour prendre en charge la réutilisation par la communauté ainsi que pour agir comme un instantané de reproductibilité du travail dans la publication GigaScience. Celui-ci sera disponible via le référentiel GigaDB (détails d'adhésion à suivre). Vous pouvez utiliser la machine virtuelle dans VMWare ou VirtualBox, il existe un disque dur virtuel (fichier VMDK) qui convient aux deux systèmes, mais nous avons dû créer des fichiers de métadonnées distincts pour chacun (fichiers MF et OVF). Pour importer dans l'un ou l'autre système, vous avez besoin que le VMDK se trouve dans le même dossier que les fichiers MF et OVF correspondants.

Les instructions d'installation pour recréer la machine virtuelle sont disponibles ci-dessous. Ils sont assez complexes et peuvent impliquer beaucoup de dépannage, il est donc conseillé de travailler directement à partir de la machine virtuelle dans la mesure du possible. Nous visons à partager la VM via Amazon AWS pour un accès sans téléchargement. L'installation GalaxyM a un utilisateur déjà enregistré et deux workflows ont été stockés/publiés. Si vous souhaitez accéder au compte utilisateur d'origine, les informations de connexion sont :

Emplacement des données dans les travaux publiés :

Une fois connecté en tant qu'utilisateur galaxym sur le système Ubuntu, les spectres de masse peuvent être trouvés dans :

Les pipelines/workflows utilisent également des fichiers CSV pour certaines instructions et ceux-ci peuvent être trouvés dans le dossier GalaxyM-TestData mentionné ci-dessus. Consultez les historiques publiés ou les workflows pour savoir où utiliser ces fichiers.

Instructions d'installation pour Ubuntu 14.04LTS 64 bits

###Étape 0. Mettez à jour le gestionnaire de paquets

Vous devrez peut-être l'exécuter avec des privilèges de superutilisateur, je suppose que vous le faites, mes commandes commenceront par "sudo". Cela vous oblige à fournir votre mot de passe et Ubuntu vérifiera que vous disposez des privilèges de superutilisateur

Si vous utilisez une version 64 bits (amd) d'Ubuntu (14.04), il peut être problématique d'installer WINE car il attend une architecture i386. Une solution de contournement est :

Dans tous les cas, vous devriez commencer par

Vous pouvez consulter les instructions officielles ici.

Si vous utilisez Ubuntu 64 bits, il y a des problèmes avec WINE et Python2.7 parfois. Le VIN est notoirement difficile. Certaines personnes sympathiques ont configuré un référentiel Ubuntu WINE et il est donc conseillé de le configurer en premier :

Pour configurer le référentiel WINE/Ubuntu :

Il est alors conseillé d'installer la dernière version de WINE (mise à disposition par le nouveau référentiel). Je vais installer WINE1.7 mais vous pouvez vérifier quelles versions sont disponibles en utilisant :

Nous effectuons ensuite le « apt-get install » standard sur la version WINE que nous avons choisie. Lors de l'exécution de la commande, le gestionnaire de packages vous demandera si vous êtes sûr de vouloir installer le package - tapez Y pour confirmer.

Une fois le téléchargement de tous les packages terminé, il peut vous présenter un contrat d'utilisateur final pour le logiciel Microsoft que vous pouvez faire défiler à l'aide des touches fléchées et sélectionner les options « oui »/« non » en appuyant sur Tab puis sur Entrée ou Espace pour sélectionner . Après avoir accepté, une autre installation se poursuivra. Sur mon installation la plus récente de WINE1.7, rien de tout cela ne s'est produit, mais lors des tentatives précédentes, cela s'est produit.

IMPORTANT : Vous devez forcer wine à tout installer en mode 32 bits. Pour que WINE s'exécute en 32 bits, supprimez le dossier .wine de votre répertoire personnel (ou déplacez-le vers, par ex.

/.wine_backup) qui supprimera tous les logiciels et données installés de WINE. Définissez ensuite la variable système WINEARCH en mettant à jour votre

/.profile avec la ligne export WINEARCH=win32 (placer en fin de fichier). Essayez ensuite d'installer le logiciel comme suit. si vous ne le faites pas, vous obtiendrez probablement des erreurs de la part des outils SimStitch du type « Identifiant de fichier non valide » - c'est parce qu'ils ne peuvent pas utiliser l'outil MSFileReader pour ouvrir les données DIMS. Notez que si c'est la première fois que wine est installé et qu'il n'a pas encore été configuré, le dossier .wine n'aura pas encore été créé et n'aura donc pas besoin d'être supprimé.

###Étape 2. Installez les packages Windows dans WINE

Télécharger les packages : Python 2.7, 32 bits

Télécharger les packages : numpy 1.8.1

Télécharger les packages : scipy 0.14.0

Télécharger les packages : comtypes 0.6.1

Télécharger le logiciel : MSFileReader 3.0 sp2

Pour MSFileReader, vous devez vous rendre sur le site de ThermoFisher et vous inscrire ( https://thermo.flexnetoperations.com/control/thmo/RegisterMemberToAccount ) puis attendre qu'un identifiant vous soit envoyé par e-mail… puis vous pouvez télécharger le logiciel en suivant le lien dans l'e-mail - qui vous mènera à une liste de produits, MSFileReader est sous Logiciel utilitaire - j'ai choisi d'utiliser la version 3.0 sp2

Extrayez le fichier .zip téléchargé dans votre

/wine-soft dossier pour rejoindre les autres packages. Il produira quelques dossiers, un pour l'architecture x86 standard et un pour 64 bits. WINE fonctionne sur 32 bits, donc le fichier que vous recherchez est MSFileReader.exe dans le dossier standard (non 64 bits).

Installer les packages : python2.7 WINE ne peut pas installer directement les fichiers .MSI. Vous devez utiliser la commande msiexec (voir ci-dessous). Lorsqu'il est présenté avec l'interface graphique d'installation Python, acceptez simplement les valeurs par défaut. Mise à jour : pour Ubuntu 14.04, il peut vous être demandé de confirmer l'installation du programme d'installation de Wine MONO et de Wine Gecko, etc.

Installer des packages : comtypes

Installez le logiciel : MSFileReader 3.0 sp2 Ci-dessous, j'imprime le chemin complet pour plus de clarté. Si vos fichiers téléchargés/extraits ressemblent aux miens, cela peut vous aider. Si votre système de fichiers ne ressemble pas à ceci, remplacez mes directions de chemin par l'endroit où vous avez stocké la version 32 bits « autonome » de MSFileReader.exe

Installez visual C en utilisant winetricks (NB : cela ne fonctionnera pas en Chine. download.microsoft.com n'est pas accessible, testé le 7 août 2015)

À ce stade, Wine peut produire des erreurs car il ne peut pas enregistrer le XRawFile2.dll requis pour MSFileReader. Vous avez peut-être déjà installé winetricks lors de l'étape précédente lorsque vous avez installé wine 1.7 mais au cas où vous ne l'auriez pas fait, vous pouvez l'installer en utilisant apt-get. Ensuite, vous devez installer Visual C. Ces deux étapes peuvent être effectuées comme suit (l'installation de vc vous demandera d'accepter divers accords, etc., dites simplement oui!):

###Étape 3: Installer le package python MI-Pack Téléchargez le package python MI-Pack à partir de https://github.com/Viant-Metabolomics/MI-Pack (il existe déjà une version installée sur la machine virtuelle GalaxyM, le package d'origine se trouvent dans /home/galaxym/Galaxy_MI_Pack/MI_Pack_Python_package/ ) et installez-les comme vous le feriez pour n'importe quel package Python standard. C'est-à-dire:

Ensuite, si vous avez plusieurs cœurs de traitement sur votre système et que vous souhaitez utiliser le traitement parallèle pour accélérer, par ex. Recherche de formule empirique, installez Parallel Python. Cela peut être téléchargé à partir de parallelpython.com ou il existe une version dans le dossier MI-Pack sur la VM. Installez ce package de la même manière que MI-Pack ( sudo python setup.py install ). Il n'est PAS nécessaire d'avoir installé python parallèle pour que MI-Pack fonctionne, mais il est conseillé si vous avez plusieurs cœurs.

Vous pouvez consulter les instructions sur Get Galaxy.

Lors du téléchargement, la distribution Galaxy (en utilisant les paramètres suivants) créera un dossier appelé galaxy dans le répertoire à partir duquel vous appelez la commande. Donc, si vous copiez ces instructions textuellement, assurez-vous que vous êtes dans un répertoire à partir duquel vous êtes heureux de travailler. Je serai dans le répertoire personnel de mon utilisateur /home/galaxym .

###Étape 5 : Ajoutez GalaxyM à Galaxy

Obtenez la dernière version de GalaxyM depuis github.

répertoire galaxy/tools/ avec GalaxyM/tools/

répertoire galaxy/test-data/ avec GalaxyM/test-data/

répertoire galaxy/tool-data/ avec GalaxyM/tool-data/

Modifier/remplacer/créer galaxy/config/tool_conf.xml avec [le contenu de] GalaxyM/config/tool_conf.xml

Modifiez/remplacez/créez galaxy/config/datatypes_conf.xml avec les balises d'extension de type de données SQLite de GalaxyM/config/datatypes_conf.xml (ou copiez simplement le fichier GalaxyM dans votre répertoire galaxy/config/).

Copiez le fichier de définitions de type binaire Galaxy-M de GalaxyM/lib/galaxy/datatypes/galaxym.py dans le répertoire galaxy/lib/galaxy/datatypes/.

Copiez les fichiers de la page d'accueil Galaxy-M de GalaxyM/static/ dans le répertoire galaxy/static/.

Si vous exécutiez déjà Galaxy, redémarrez maintenant.

NB : pour exécuter Galaxy, vous devez appeler le script bash run.sh dans le dossier principal de galaxy, par ex.

S'il est exécuté de cette manière, Galaxy peut être arrêté avec la commande Ctrl-C.

###Étape 6. Exécution du compilateur MATLAB (MCR)

Le runtime MATLAB est un ensemble autonome de bibliothèques partagées qui permet l'exécution d'applications ou de composants MATLAB compilés sur des ordinateurs sur lesquels MATLAB n'est pas installé. Chaque version comprend des exécutables pour la plupart des outils

Pas besoin de définir des variables d'environnement sur votre chemin.

Le pipeline LC-MS utilise XCMS pour un traitement initial de sélection et d'alignement des pics. Cela nécessite « R » et divers packages. R peut être installé en utilisant :

Ensuite, vous devez exécuter R et installer Hmisc, XCMS et CAMERA

Depuis la ligne de commande, lancez R en tapant simplement :

NB : il est conseillé de lancer sudo car divers packages se plaignent de ne pas pouvoir écrire dans différents répertoires. Ensuite, dans R, utilisez install.packages pour installer Hmisc.

Si des erreurs apparaissent, dire que par ex. "L'installation des packages 'ggplot2' avait un statut de sortie différent de zéro", vérifiez votre version R et si elle est inférieure à 3.1 (Ubuntu 14.04LTS apt-get base R est 3.0.2), alors vous devrez effectuer une mise à niveau. Nous avons suivi ces instructions pour la machine virtuelle publiée pour prendre en charge ce package (http://sysads.co.uk/2014/06/install-r-base-3-1-0-ubuntu-14-04/)

XCMS et CAMERA sont installés à partir de Bioconductor donc la commande est légèrement différente

Les ensembles de données de test (LCMS et DIMS) peuvent être obtenus à partir de leurs ensembles de données plus volumineux dans Metabolights (DIMS : Accession MTBLS79 LCMS : Accession MTBLS146) ou à partir de GigaDB (accession à suivre). Dans le cas de l'ensemble de données DIMS, l'accession MetaboLights n'inclut pas les fichiers .dat nécessaires qui permettent le traitement SimStitch, donc le référentiel GigaDB est requis (ou contactez Viant Lab). Téléchargez les ensembles de données et, si vous souhaitez copier le papier GalaxyM, passez à

/GalaxyM-TestData (avec les sous-dossiers DIMS_DATA et LCMS_DATA pour chaque modalité).

à partir de la ligne de commande Linux, démarrez Galaxy s'il n'est pas déjà en cours d'exécution en tapant :

Pour interagir avec Galaxy, ouvrez un navigateur Web et pointez-le sur votre serveur. Si vous avez accès à un navigateur sur le même système que Galaxy, vous pouvez le charger et saisir 127.0.0.1:8080 dans la barre d'adresse. 127.0.0.1 signifie localhost et le navigateur parle au système sur lequel il s'exécute. Alternativement, si vous exécutez le serveur sur un système distant (dans le cloud peut-être), vous devrez vous assurer que le fichier galaxy.ini ( galaxy/config/galaxy.ini ) a la ligne host = 0.0.0.0 plutôt que l'hôte par défaut = 127.0.0.1 . Cette ligne indique à Galaxy de s'attendre à du trafic provenant d'Internet plutôt que de simplement des demandes locales. Ce paramètre a déjà été modifié dans le fichier GalaxyM (vous souhaiterez peut-être le remplacer par 127.0.0.1 si vous souhaitez protéger votre serveur Galaxy du grand Web).

Espérons que la page de destination principale de Galaxy vous sera présentée. Il devrait y avoir une liste d'outils dans le panneau de gauche, une page d'accueil au milieu et un historique dans le côté droit.

###Installez Matlab (facultatif : développement d'outils et utilisation du code source le plus récent)

7a) installez Java RunTime Environment et WebStart. Cela vous permet d'utiliser les programmes d'installation Matlab téléchargés sur le site Web de Mathworks. Alternativement, vous pouvez simplement télécharger les fichiers du produit directement. Pour installer Java JRE, vérifiez d'abord quelle version est disponible :

Dans les résultats, vous devriez voir des packages avec des noms tels que openjdk-6-jre . Le numéro indique la version Java. Je vais installer le dernier disponible dans ma liste de paquets, la version 7.

Pour utiliser l'agent de téléchargement de Mathworks, vous aurez également besoin de Java Webstart. Sur Ubuntu, vous pouvez le télécharger à partir du référentiel apt-get comme suit :

7b) Téléchargez Matlab et Statistics Toolbox (version 2014a) à l'aide de l'agent de téléchargement Dans votre compte de site Web Mathworks, accédez à vos licences et démarrez le processus de téléchargement des produits. Le site vous propose d'utiliser leur agent de téléchargement basé sur Java « webstart », mais il existe des alternatives. Le site Web essaiera de voir que Java est installé avant le téléchargement. S'il ne trouve pas votre Java JRE mais que vous l'avez installé à l'étape précédente, cliquez simplement sur « j'ai java » et continuez. Un fichier appelé Download Agent commencera à se télécharger.

Votre navigateur Internet peut vous demander si vous souhaitez ouvrir avec IcedTea - n'hésitez pas à le faire. Vous pouvez également télécharger le fichier, puis l'ouvrir avec IcedTea. En théorie, vous devriez pouvoir le faire via la ligne de commande en utilisant 'javaws /path/to/my/file' mais j'ai trouvé que cela produisait une erreur. Cependant, il suffit d'ouvrir un navigateur de fichiers et de double-cliquer sur le fichier pour l'ouvrir automatiquement avec l'outil Iced Tea.

Suivez simplement toutes les valeurs par défaut pour installer Matlab. La seule exception sera que Matlab essaiera de créer un dossier appelé /usr/local/MATLAB/R2014a mais vous n'avez peut-être pas démarré le processus avec les privilèges de superutilisateur et le programme d'installation ne sera donc pas autorisé à le faire. S'il y a une erreur, utilisez simplement les commandes suivantes (sur la ligne de commande), puis dites-lui d'essayer à nouveau :

Bien sûr, vous devez vous assurer que vous avez créé le même chemin que le programme d'installation voulait faire ou que vous modifiez le chemin lors de l'exécution du programme d'installation. En supposant que cela vous permette de progresser et que vous puissiez activer votre logiciel, etc., c'est une bonne idée de revenir en arrière et de modifier les autorisations sur ce dossier, en annulant le chmod 777 que nous venons de faire pour permettre à quiconque (y compris l'installateur) d'écrire à cet endroit.

Maintenant, pour plus de facilité, vous devez mettre un lien symbolique entre le binaire matlab que vous voudrez exécuter et le répertoire /usr/local/bin qui contient la plupart de ces programmes. Ceci est facultatif, mais cela signifie que vous pouvez simplement taper matlab sur la ligne de commande et Linux saura ce que vous voulez dire.

NB : pour certaines versions d'Ubuntu 64 bits (13.10 par exemple), Matlab déclare une erreur lors de son exécution - 'blah blah blah... /lib64/libc.so.6: not found'. Techniquement, il fonctionnera et semble effectuer les tâches GalaxyM, mais cet avertissement est considéré comme une erreur par Galaxy et donc, malgré le stockage de la sortie correcte dans l'historique, il apparaît en rouge (c'est-à-dire un travail échoué) et ce n'est pas très utile. Une solution de contournement consiste à trouver le fichier libc.so.6 et à placer un lien symbolique à l'emplacement recherché par Matlab.

Trouvez d'abord le fichier libc.so.6 :

Dans mon cas, cela produit le résultat : /lib/x86_64-linux-gnu/libc.so.6 L'étape suivante consiste à créer le lien symbolique entre ce résultat (où se trouve réellement le fichier) et le répertoire que Matlab le recherche ( /lib64/libc.so.6 )

###Installer PLS Toolbox (Facultatif : développement d'outils et utilisation du code source le plus récent)

Connectez-vous au site Web Eigenvector.com et accédez aux téléchargements de logiciels. Choisissez votre version (nous utilisons 7.0.3) et téléchargez le fichier .zip. En supposant que vous l'ayez téléchargé dans le dossier /home/your_user/Downloads (et qu'il s'agit de la version 7.0.3 et que vous placez votre installation Matlab dans l'emplacement par défaut), vous pouvez le décompresser et le placer dans le dossier Matlab toolbox comme suit :

Nous devons maintenant exécuter le programme d'installation qui est un script matlab. Ouvrez Matlab depuis la ligne de commande :

Une fois dans l'environnement Matlab, vous devrez spécifier l'emplacement de votre dossier PLS_Toolbox (c'est-à-dire /usr/local/MATLAB/R2014a/toolbox/PLS_Toolbox_802/ ) afin que Matlab sache où se trouvent les scripts PLS. En utilisant l'interface graphique, cela peut être fait à partir des menus déroulants : Fichier-> Définir le chemin -> Ajouter avec des sous-dossiers. Ou cela peut être fait à partir de la ligne de commande Matlab comme suit :

Une fois PLS_Toolbox ajouté au chemin, revenez à la ligne de commande matlab et tapez evriinstall pour exécuter l'assistant d'installation.

Ici, il vous sera demandé un code de licence - disponible à partir de la page de téléchargement sur le site Web d'Eigenvector. Accepter toutes les valeurs par défaut devrait être bien, mais si vous souhaitez vraiment avoir exactement la version 7.0.3 pour copier l'installation d'origine de GalaxyM, vous pouvez décocher la case (sous l'endroit où vous entrez le code de licence) qui propose de rechercher des mises à jour et les nouvelles versions de code, etc.


10 réponses 10

Indépendamment de ce qui complète la phrase "Python vs. ", la réponse sera toujours Python.

Très peu de personnes qui envisagent sérieusement d'utiliser l'optimisation en production utilisent MATLAB, et celles qui le font ont hâte de s'en éloigner.

Quant à savoir pourquoi, il y a beaucoup de raisons. MATLAB c'est :

pas orienté objet, donc c'est un très mauvais choix pour les logiciels complexes

Difficile à distribuer les calculs, et a une licence très chère pour le faire

très difficile à interagir avec

presque impossible d'embaucher des programmeurs professionnels pour

Sérieusement, si vous voulez pouvoir utiliser votre propre code après votre doctorat, n'utilisez pas de packages commerciaux.

Du point de vue de la programmation, j'ai une expérience personnelle des goulots d'étranglement. J'ai écrit la toute première version de mon solveur dans MATLAB, et j'ai pu résoudre des problèmes de

5 variables en temps raisonnable. Le passage à C++ a augmenté cela à 200 variables. La réécriture du solveur en C++ une fois que j'ai eu de l'expérience a augmenté cela à 100 000 variables, et l'embauche de développeurs professionnels a augmenté cela à > 1 000 000 de variables.

Ce qui est intéressant ici, c'est qu'avec l'expérience que j'ai maintenant, 10 ans plus tard, je sais que je n'aurais jamais pu faire évoluer notre logiciel au-delà de 100 variables dans MATLAB, mais j'aurais pu l'avoir en Python.

Je suis d'accord avec tout ce que Nikos a dit et j'ajoute quelques couleurs à certaines des raisons :

  • Python est gratuit et open-source mais pas Matlab. N'importe qui peut écrire des codes en Python et les partager avec d'autres qui peuvent facilement exécuter ce code (car c'est un logiciel gratuit) mais vos codes Matlab ne peuvent être exécutés que par ceux qui ont une licence.
  • Juste parce que Python est open source et gratuit, cela signifie qu'il est largement disponible pour un public plus large. Et quand on parle de projets dans l'industrie, dépenser de l'argent sur un logiciel, IMO, n'est pas justifiable lorsqu'il existe une alternative largement accessible.
  • Il est plus logique de ne pas lier un morceau de code à une personne. Comme il y a de plus en plus d'utilisateurs Python, presque tout le monde peut lire et modifier votre code Python dans une entreprise, mais si vous quittez un endroit et qu'il n'y en a pas beaucoup qui maîtrisent Matlab, c'est une grosse perte pour l'entreprise. Cela peut être facilement évité en utilisant des langages de programmation à usage général tels que Python.
  • N'oubliez pas que le travail dans l'industrie ne se concentre pas uniquement sur les opérations matricielles et vectorielles. Alors, ma suggestion : commencez progressivement à sortir de la zone de confort de Matlab.

Nikos Kazazakis et EhsanK vous ont donné de bonnes raisons d'utiliser Python. Je vais me concentrer sur votre remarque concernant la nécessité d'utiliser un package/bibliothèque supplémentaire en Python pour les opérations matricielles et vectorielles. Dans les projets industriels, vous rencontrerez de nombreux défis et choses que vous voulez faire, mais que vous ne voulez pas (et ne devriez pas) mettre en œuvre. Actuellement, je travaille sur un logiciel de planification d'itinéraires, la plupart de ce que je fais n'est malheureusement pas un travail d'optimisation de base, mais tout ce qu'il faut pour le rendre utile pour les clients. Faire des importations à partir de diverses sources de données, intégrer les données dans des objets (le faire dans un langage non orienté objet serait ennuyeux), rendre votre produit disponible via une API, etc. C'est-à-dire que j'utilise beaucoup de choses qui ne sortent pas de la boîte. L'ajout de numpy à cette liste d'importations pour le travail d'optimisation ne vous fera pas mal.

Tout cela pour dire : avoir besoin d'importer une bibliothèque supplémentaire pour les fonctionnalités ne devrait pas être utilisé pour déterminer l'utilité d'un langage la plupart du temps).

Je travaille pour une entreprise qui propose un solveur d'optimisation commerciale. Le solveur offre des interfaces à la fois à MATLAB et à Python pour résoudre les problèmes définis dans ces langages.

Nous ne recevons qu'une ou deux requêtes sur l'interfaçage de MATLAB avec notre produit par an, mais nous recevons plusieurs fois ce nombre de questions sur l'interfaçage de Python avec notre produit.

De nombreuses entreprises de premier plan et autres que la Colombie-Britannique utilisent déjà Python de manière intensive. Si j'étais vous, je me concentrerais sur ma connaissance de Python, pas seulement à des fins d'optimisation, mais c'est aussi très utile dans d'autres domaines de l'informatique.

MATLAB est un langage construit sur une bibliothèque. Python (with NumPy & numba) is a language with a library built under it.

Neither is ideal. Like all languages, both have a few quirks, due to their history.

My suggestion: Door Number 3, Julia.

In either case (MATLAB, Python, Julia), you should ask yourself:

  1. Is your immediate goal to master the math, or to master how to program il?
  2. Is your long-term career goal academia, or industry?
  3. Is it important to you that other people can run your code (e.g. github repo)?
  4. Is your code all short, or might it grow into a large (many 1000-line, 100's of functions) code?

If your answers are: 1: math, 2: academia, 3: no, 4: all short, then MATLAB is fine. It is an excellent tool. I love it for doing something fast and not fussing with things it's an industry standard in DSP and radar and other problems that rely very heavily on linear algebra. There is a lot of code written in it it will be around for a long time to come.

Nevertheless, if those are not your answers, then between the two, I definitely suggest Python over MATLAB. You will become a much better programmer, and your job prospects will be much better, too. If your code gets long, beware that managing a large (many 1000-lines) MATLAB code is a nightmare IMO (namespaces, anyone?). If you find you have to use MATLAB at some later date, it will be easy. Conversely, if you learn MATLAB and later on find you need to learn Python + NumPy + numba, then you will probably find this very difficult.

This is all the more true if we are talking about optimization, which is at least tangential to machine learning (ML). MATLAB is trying to compete in this space, but if you look online for job ads, they are almost all asking for Python, not MATLAB. In fact, in ML, you will find (in my experience) more job ads asking for Julia than for MATLAB.

But again (and yes it is just my personal opinion), I would suggest you take a look at Julia. I have not been as excited about a language after trying Julia since. well, since I started learning Python 18 years ago. I use all three at work, and Julia is my first choice most of the time I think the language is truly going places. But, I'm a risk-taker. It's not the safe move. If you want safe, the safe move is Python.

Disclosure: I have no interests, financial or otherwise, in MATLAB, Python, or Julia, other than my own experience using them for work/research.


Introduction

Computational structure-based drug discovery has steadily gained traction partially thanks to the constant improvements in available software, now often free and open source. Protein-ligand docking in particular is now a standard tool employed in the early stages of drug discovery pipelines in order to screen possible drugs acting on a known target of interest.

Protein-ligand docking consists of the prediction of binding modes and binding affinity of a (flexible) ligand to a target of known structure. The performance of docking programs is often assessed by their ability to reproduce the crystallographic pose of the bound ligand. A common metric to evaluate the difference between the predicted binding pose and the crystallographic pose is the heavy-atoms root mean square displacement (RMSD) [1], although other metrics have been suggested [2]. RMSD calculations are also used in other contexts, for example for the evaluation of diversity in generated conformers [3].

Many simple scripts to compute RMSDs are based on the assumption of a direct one-to-one mapping between atoms of different conformers of the same ligand. In different words, atoms are often assumed to be labelled according to their position in a coordinate file (or data structure) and they are paired according to such label. This assumption breaks down when such labels are not conserved—i.e. the order of atoms is different in the two structures being compared—and/or for symmetric molecules. In the case of symmetric molecules, different binding poses can be chemically identical but different in terms of atom-atom mapping. Since molecular connectivity is naturally represented by graphs (atoms as vertices and bonds as edges), tools from graph theory can be used to obtain the correct atom-atom mapping for two different conformers of the same molecule, thus avoiding the problems outlined above.

Here we present a new Python tool, spyrmsd , for the calculation of symmetry-corrected RMSDs based on graph isomorphisms.


What are active and passive IDS?

Intrusion Detection Systems (IDS) only need to identify unauthorized access to a network or data in order to qualify for the title. A passive IDS will record an intrusion event and generate an alert to draw an operator’s attention. The passive IDS can also store information on each detected intrusion and support analysis. An active IDS is also known as an Intrusion Prevention System (IPS) or an Intrusion Detection and Prevention System (IDPS) because as well as spotting an intrusion, it implements automated actions to block out the intruder and protect resources.


Voir la vidéo: Astuces faciles Windows: utiliser la boîte de dialogue EXECUTER