#!/usr/bin/env python # -*-coding:Utf-8 -* #################### Telechargement d'un fichier profil HMM de Pfam (E. Jaspard - 2018) ######################## ######### Inspire de S. Chatterjee - https://github.com/sandipchatterjee/pfam-get-hmm/blob/master/pfam-get-hmm. ############# ################################################################################################################################ import urllib import urllib2 import sys #################### Construction de la requete sur la base d'un identifiant valide Pfam #################### # sys.argv = liste arguments passes au programme : sys.argv[0] = nom du programme (!) # sys.argv[1] = 1er argument, sys.argv[2] = 2eme argument, ... # len(sys.argv) : compte le nombre d'arguments TermesRecherches = [] if len(sys.argv) == 1: # Aucun argument entre => il n'y a que le nom du programme (!) print "Entrez un ou des identifiants valide(s) des familles Pfam - Exemple : EF-hand_1 ou Histone ou 14-3-3 ou Na_K-ATPase ou 7tm_1, ..." TermesRecherches.append(raw_input()) reponse = urllib2.urlopen('http://pfam.xfam.org/families?output=text') ################################################################################### ListeDesPages = [] for ligne in reponse: if '#' not in ligne and 'PF' in ligne: ListeDesPages.append(ligne.rstrip().split('\t')) reponse.close() listePagefiltree = [entree for entree in ListeDesPages if entree[1] in TermesRecherches] print "Recherche dans la liste des termes des familles Pfam (http://pfam.xfam.org/families)." print str(len(listePagefiltree))+" entree compatible avec les identifiants recherches." if listePagefiltree: for entree in listePagefiltree: numeroPFAM = entree[0] URLfichierHMM = urllib.urlopen("http://pfam.xfam.org/family/"+numeroPFAM+"/hmm") fichierDeSortie = open(numeroPFAM+'.hmm','wb') fichierDeSortie.write(URLfichierHMM.read()) fichierDeSortie.close() URLfichierHMM.close() ################################################################################### else: print "Essayez d'autres identifiants valides pour votre recherche."