Advertisement
Guest User

Partie 5, 15h10 21avril

a guest
Apr 21st, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.27 KB | None | 0 0
  1. import urllib.request
  2. import sys
  3.  
  4.  
  5. def check_importMIMAT(MIMAT): # Micro ARN
  6.     print("Verification de la récupération du µARN en cours... Database : mirbase")
  7.     weblink = "http://www.mirbase.org/cgi-bin/get_seq.pl?acc="+MIMAT
  8.     final = urllib.request.urlopen(weblink)
  9.     data_uARN= final.read()
  10.     final.close()
  11.        
  12.     if len(data_uARN) != 0 : # Si l'iD fournie est juste, len(data) ne sera pas nulle
  13.         return True # Renvoie True
  14.     else:
  15.         print("Problème dans la création du fichier MIMAT.")
  16.    
  17. def check_importBC_seq(BC_seq): # Sequence
  18.     print("Verification de la récupération de la sequence en cours... Database : EBI")
  19.     weblink = "http://www.ebi.ac.uk/ena/data/view/"+BC_seq
  20.     weblink += "&display=fasta"
  21.     final = urllib.request.urlopen(weblink)
  22.     data_BC_seq = final.read()
  23.     data_BC_seq_test = data_BC_seq.decode("utf-8")
  24.     final.close()
  25.  
  26.     if "not found" not in data_BC_seq_test :# Si l'iD fournie est juste, len(data) ne sera pas nulle
  27.         return True # Renvoie True
  28.     else:
  29.         print("Problème dans la création du fichier EBI.") # Sinon renvoie False
  30.  
  31. def check_importBC_fiche(BC_fiche): # Fiche
  32.     print("Verification de la récupération de la fiche en cours... Database : ENA")
  33.     weblink = "http://www.ebi.ac.uk/ena/data/view/"+BC_fiche
  34.     weblink += "&display=text"
  35.     final = urllib.request.urlopen(weblink)
  36.     data_BC_fiche = final.read()
  37.     data_BC_fiche_test = data_BC_fiche.decode("utf-8")
  38.     final.close()
  39.  
  40.     if "not found"  not in data_BC_fiche_test : # Si l'iD fournie est juste, len(data) ne sera pas nulle
  41.         return True #Renvoit True si ID correct.
  42.     else:
  43.         print("Problème dans la création de la fiche ENA.") #Renvoit True si ID incorrect.
  44.                
  45. def import_MIMATseq(): # Si on ne le précise pas, b vaudra 0 de base
  46.    
  47.     weblink = "http://www.mirbase.org/cgi-bin/get_seq.pl?acc="+MIMAT # Recrée une adresse complète mirbase via l'id fournie
  48.     final = urllib.request.urlopen(weblink)
  49.     data = final.read()
  50.     string = data.decode("utf-8") # Permet de convertir via utf8
  51.     string = string.replace('<pre>','') # Supprime les balises <pre> par rien
  52.     seq_string = string.replace('</pre>','') #Supprime les balises <\pre> par rien
  53.     final.close()
  54.  
  55.  
  56.     return seq_string # Renvoie la séquence fasta sous forme de string
  57.  
  58. def import_BC_seq (): # Si on ne le précise pas, b vaudra 0 de base
  59.    
  60.     weblink = "http://www.ebi.ac.uk/ena/data/view/"+BC_seq # Recrée une adresse complète EBI via l'ID fournie
  61.     weblink += "&display=fasta"
  62.     final = urllib.request.urlopen(weblink)
  63.     data = final.read()
  64.     string = data.decode("utf-8") # Permet de convertir via utf8
  65.     string = string.replace('<pre>','') # Supprime les balises <pre> par rien
  66.     seq_string = string.replace('</pre>','') #Supprime les balises <\pre> par rien
  67.     final.close()
  68.  
  69.     return seq_string # Renvoie la séquence fasta sous forme de string
  70.  
  71. def import_BC_fiche (): # Si on ne le précise pas, b vaudra 0 de base
  72.    
  73.     weblink = "http://www.ebi.ac.uk/ena/data/view/"+BC_fiche # Recrée une adresse complète EBI via l'ID fournie
  74.     weblink += "&display=text"
  75.     final = urllib.request.urlopen(weblink)
  76.     data = final.read()
  77.     string = data.decode("utf-8") # Permet de convertir via utf8
  78.     string = string.replace('<pre>','') # Supprime les balises <pre> par rien
  79.     fiche_string = string.replace('</pre>','') #Supprime les balises <\pre> par rien
  80.     final.close()
  81.  
  82.     return fiche_string # Renvoie la séquence fasta sous forme de string
  83.  
  84. def create_file_micro():
  85.  
  86.     f = open(MIMAT+"seq.txt","w") # Ouvre le fichier "Séquence_mirbase.txt" en mode ajout ("a" = append)
  87.     f.write(import_MIMATseq()[2:]) # écrit dans le fichier la séquence, nécéssite le [2:] pour pas avoir un saut de ligne
  88.     f.write('\n') # Saut à la ligne après l'ajout de séquence pour la lisibilité en cas d'import multiple de séquence
  89.     f.close()   # Fermeture de fenêtre          
  90.  
  91. def create_file_seq():
  92.  
  93.     f = open(BC_seq+"seq.txt","w")
  94.     f.write(import_BC_seq()) # Idem que Verification mirbase sauf qu'on ajoute l'argument 1 pour la BD Ncbi
  95.     f.write('\n')
  96.     f.close()
  97.  
  98. def create_file_fiche():
  99.    
  100.     f = open(BC_fiche+"fiche.txt","w")
  101.     f.write(import_BC_fiche()) # Idem que Verification mirbase sauf qu'on ajoute l'argument 1 pour la BD Ncbi
  102.     f.write('\n')
  103.     f.close()
  104.  
  105.  
  106.        
  107.  
  108.  
  109.  
  110. ################################################################################
  111.  
  112. MIMAT=input("Step1-Veuillez indiquer un ID au format mirbase contenant votre microARN (Ex: MIMAT0000128) :") #"mmu-mir-30a.fas" MIMAT0000128 file_uARN
  113. BC_seq=input("Step2-Veuillez indiquer un ID au format  au format fasta contentant uniquement votre sequence (Ex :BC058693) :") #"smad1.fas" BC058693 file_utr_fas
  114. BC_fiche=input("Step3-Veuillez indiquer un ID au format ENA contentant votre sequence afin d'isoler le CDS (Ex : BC058693) : ")#"smad1_ENA.txt" BC058693 file_ena
  115.  
  116.        
  117.  
  118. if check_importMIMAT(MIMAT) is True:
  119.     import_MIMATseq()
  120.     create_file_micro()
  121.  
  122. if check_importBC_seq(BC_seq) is True:
  123.     import_BC_seq
  124.     create_file_seq()
  125.    
  126. if check_importBC_fiche(BC_fiche) is True:
  127.     import_BC_fiche
  128.     create_file_fiche()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement