IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Programmation Python angles entre deux vecteurs


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Programmation Python angles entre deux vecteurs
    Bonjour !
    Etant débutant en Python, je souhaiterais ecrire un programme permettant de calculer l'angle entre deux vecteurs, sachant que les coordonnées X Y et Z des points sont stockeés dans un fichier.
    Je souhaite cela pour calculer par moi meme les angles Psi et Phi dans une chaine peptidique, pour ceux qui ont fait ou font de la bio.
    Merci vraiment d'avance, je suis en galère....!!! Et assez pressé en +..!!
    Mon probleme s'adresse donc a ceux qui savent coder en python... Car la formule est assez simple :
    le cosinus de l'angle formé entre 2 vecteurs est, par définition, le rapport du produit scalaire des vecteurs sur le produit des normes :
    cos a = (XaXb+YaYb+ZaZb) / sqrt((Xa²+Ya²+Za²)(Xb²+Yb²+Zb² )).
    J'ai surtout besoin d'aide pour ouvrir le fichier, lire a la bonne ligne et à la bonne colonne les coordonnées, et les inserer dans le programme, qu'il faut construire grace à ce calcul.
    Merci !

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Sans exemple, ça va être difficile ! Tu as la fonction fromfile de Numpy qui devrait t'aider, mais sans information supplémentaire, ça va être difficile

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Plus de precisions
    C'est vrai que je n'ai pas été clair... En fait je dispose d'un fichier .pdb (un fichier texte si vous voulez) avec des caracteres en colonnes :
    ATOM, position de l'atome, types d'atome, type de chaine, position de l'acide aminé, et enfin position x, position Y, position Z, (et puis deux autres parametres).
    Voci le debut du fichier :

    HEADER LYASE 29-FEB-08 3CEP
    COMPND TRYPTOPHAN SYNTHASE ALPHA CHAIN;
    EXPDTA X-RAY DIFFRACTION
    ATOM 1 N GLU A 2 35,805 24,256 31,666 1.00 29,78
    ATOM 2 CA GLU A 2 35,369 23,644 30,375 1.00 29,85
    ATOM 3 C GLU A 2 35,184 24,697 29,275 1.00 29,55

    J'aurai besoin d'aide pour recupérer les positions X Y et Z pour certaines lignes, et appliquer ma fonction pour calculer l'angle. Exemple ici pour la ligne 1 :
    X : 35,805 Y : 24,256 Z : 31,666.

    Merci beaucoup par avance.

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    OK, donc tu peux lire ligne par ligne (for line in open(f)) puis splitter la ligne (line.split()). Si le nombre de découpages est assez important (ie c'est un atome et non un en-tête), tu récupères les éléments [6], [7] et [8] dans ta liste et tu les convertis en flottant (fonction float()).

Discussions similaires

  1. Angle entre deux vecteurs
    Par cedji dans le forum MATLAB
    Réponses: 1
    Dernier message: 01/07/2013, 12h57
  2. Angles entre deux vecteurs - résultats incompréhensibles
    Par nono2801 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 04/05/2011, 09h56
  3. [GLSL] Calculer un angle entre deux vecteurs.
    Par who_knows dans le forum OpenGL
    Réponses: 5
    Dernier message: 05/05/2010, 17h40
  4. Calcul d'angle entre deux vecteurs
    Par feynman dans le forum Fortran
    Réponses: 8
    Dernier message: 22/09/2007, 13h59
  5. Convolution cyclique entre deux vecteurs
    Par valencfaty dans le forum Mathématiques
    Réponses: 1
    Dernier message: 28/01/2007, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo