teaching:progappchim:bioinformatic

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
teaching:progappchim:bioinformatic [2016/03/15 11:54] – créée villersdteaching:progappchim:bioinformatic [2020/03/27 11:43] villersd
Ligne 1: Ligne 1:
 ====== Bioinformatique ====== ====== Bioinformatique ======
 Manipulations de séquences ADN, ARN, protéines,... Manipulations de séquences ADN, ARN, protéines,...
 +
 +FIXME : à compléter (différents formats, bases de données ?)
  
 ===== Compter les nucléotides d'une séquence ADN ===== ===== Compter les nucléotides d'une séquence ADN =====
  
-<sxh python; title : Counting_DNA_Nucleotides-01.py>+<code python Counting_DNA_Nucleotides-01.py>
 #!/usr/bin/env python #!/usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 14: Ligne 16:
  
 # utilisation d'une liste et de la méthode .count() # utilisation d'une liste et de la méthode .count()
-bases=["A","C","G","T"]+bases = ["A","C","G","T"]
 for base in bases: for base in bases:
-    print adn.count(base), +    print(adn.count(base),) 
-print+print()
  
 # Variante : # Variante :
 for c in 'ACGT': for c in 'ACGT':
-    print adn.count(c), +    print(adn.count(c),) 
-print+print()
  
 # variante un peu moins lisible # variante un peu moins lisible
Ligne 31: Ligne 33:
  
 # utilisation de la technique "list comprehension" # utilisation de la technique "list comprehension"
-count=[adn.count(c) for c in 'ACGT']+count = [adn.count(c) for c in 'ACGT']
 for val in count: for val in count:
-    print val, +    print(val,) 
-print+print()
  
 # autre "list comprehension", avec impression formatée → version "one line" # autre "list comprehension", avec impression formatée → version "one line"
-print "%d %d %d %d" % tuple([adn.count(X) for X in "ACGT"])+print("%d %d %d %d" % tuple([adn.count(X) for X in "ACGT"]))
  
 # count "à la main", sans utilisation de fonctions/librairie # count "à la main", sans utilisation de fonctions/librairie
Ligne 47: Ligne 49:
             count[i] +=1             count[i] +=1
 for val in count: for val in count:
-    print val, +    print(val,) 
-print+print()
  
 # count "à la main", avec .index() # count "à la main", avec .index()
Ligne 56: Ligne 58:
     count[ACGT.index(c)] += 1     count[ACGT.index(c)] += 1
 for val in count: for val in count:
-    print val, +    print(val,) 
-print+print()
  
 # utilisation de la librairie collections # utilisation de la librairie collections
Ligne 64: Ligne 66:
 for c in adn: for c in adn:
     ncount[c] += 1     ncount[c] += 1
-print ncount['A'], ncount['C'], ncount['G'], ncount['T']+print(ncount['A'], ncount['C'], ncount['G'], ncount['T'])
  
 # collections.Counter # collections.Counter
 from collections import Counter from collections import Counter
-for k,v in sorted(Counter(adn).items()): print v, +for k,v in sorted(Counter(adn).items()): 
-print+    print(v,) 
 +print()
  
 # avec un dictionnaire # avec un dictionnaire
Ligne 75: Ligne 78:
 for c in adn: for c in adn:
     freq[c] += 1     freq[c] += 1
-print freq['A'], freq['C'], freq['G'], freq['T']+print(freq['A'], freq['C'], freq['G'], freq['T'])
  
 # avec un dictionnaire et count(), impression différente # avec un dictionnaire et count(), impression différente
 dico={} dico={}
 for base in bases: for base in bases:
-    dico[base]=adn.count(base)+    dico[base] = adn.count(base)
 for key,val in dico.items(): for key,val in dico.items():
-    print "{} = {}".format(key, val) +    print("{} = {}".format(key, val)
-</sxh>+</code> 
 + 
 + 
 +===== Trouver un motif ===== 
 ++ lecture de fichier 
 + 
 +<code python Finding_a_Protein_Motif-01.py> 
 +#!/usr/bin/env python 
 +# -*- coding: utf-8 -*- 
 +""" 
 +La description complète et les caractéristiques d'une protéine particulière peuvent être obtenues via l'ID "uniprot_id" de la "UniProt database", en insérant la référence dans ce lien :  
 +http://www.uniprot.org/uniprot/uniprot_id 
 + 
 +On peut aussi obtenir la séquence peptidique au format FASTA via le lien : 
 +http://www.uniprot.org/uniprot/uniprot_id.fasta 
 +""" 
 + 
 +from Bio import SeqIO 
 +from Bio import ExPASy 
 +from Bio import SeqIO 
 + 
 +dic = {"UUU":"F", "UUC":"F", "UUA":"L", "UUG":"L", 
 +    "UCU":"S", "UCC":"S", "UCA":"S", "UCG":"S", 
 +    "UAU":"Y", "UAC":"Y", "UAA":"STOP", "UAG":"STOP", 
 +    "UGU":"C", "UGC":"C", "UGA":"STOP", "UGG":"W", 
 +    "CUU":"L", "CUC":"L", "CUA":"L", "CUG":"L", 
 +    "CCU":"P", "CCC":"P", "CCA":"P", "CCG":"P", 
 +    "CAU":"H", "CAC":"H", "CAA":"Q", "CAG":"Q", 
 +    "CGU":"R", "CGC":"R", "CGA":"R", "CGG":"R", 
 +    "AUU":"I", "AUC":"I", "AUA":"I", "AUG":"M", 
 +    "ACU":"T", "ACC":"T", "ACA":"T", "ACG":"T", 
 +    "AAU":"N", "AAC":"N", "AAA":"K", "AAG":"K", 
 +    "AGU":"S", "AGC":"S", "AGA":"R", "AGG":"R", 
 +    "GUU":"V", "GUC":"V", "GUA":"V", "GUG":"V", 
 +    "GCU":"A", "GCC":"A", "GCA":"A", "GCG":"A", 
 +    "GAU":"D", "GAC":"D", "GAA":"E", "GAG":"E", 
 +    "GGU":"G", "GGC":"G", "GGA":"G", "GGG":"G",
 + 
 +aminoacids = ''.join(sorted(list(set([v for k,v in dic.items() if v != "STOP"])))) 
 +print(aminoacids) 
 + 
 +# UniProt Protein Database access IDs 
 +proteins = ['A2Z669', 'B5ZC00', 'P07204_TRBM_HUMAN', 'P20840_SAG1_YEAST']  
 + 
 +handle = ExPASy.get_sprot_raw(proteins[0]) 
 +seq_record = SeqIO.read(handle, "swiss"
 +handle.close() 
 +print() 
 +print(seq_record) 
 + 
 +</code>
  
 ===== Références ===== ===== Références =====
Ligne 95: Ligne 148:
   * [[https://en.wikipedia.org/wiki/List_of_open-source_bioinformatics_software]]   * [[https://en.wikipedia.org/wiki/List_of_open-source_bioinformatics_software]]
   * [[http://www.amberbiology.com/]], "Python For The Life Sciences. A gentle introduction to Python for life scientists" (à paraître)   * [[http://www.amberbiology.com/]], "Python For The Life Sciences. A gentle introduction to Python for life scientists" (à paraître)
 +  * références sur la lecture de fichiers :
 +    * [[http://www.uniprot.org/help/programmatic_access#id_mapping_python_example]]
 +    * [[http://www.python-simple.com/python-biopython/Lecture-ecriture-sequences.php]]
 +  * Articles de la revue "Science in School" :
 +    * [[https://www.scienceinschool.org/2010/issue17/bioinformatics|Bioinformatics with pen and paper: building a phylogenetic tree]] Cleopatra Kozlowski, 07/12/2010
 +    * [[https://www.scienceinschool.org/2014/issue29/online_bioinf|Using biological databases to teach evolution and biochemistry]], Germán Tenorio, 02/06/2014
  • teaching/progappchim/bioinformatic.txt
  • Dernière modification : 2022/09/22 16:59
  • de villersd