CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Remplacement d'un caractère

Pseudo supprimé
Pseudo supprimé 16 novembre 2010 à 18:48:12

Désolé pour le titre qui n'est pas des plus explicite.

En fait je suis en train d'écrire un programme pour trouver un motif spécifique dans une séquence donnée (c'est de la bioinfo). Mon problème est que j'aimerai ajouter a mon programme une fonction permettant de muter une ou plusieurs positions de mon motif pour savoir si des motifs dégénérés sont présents dans ma séquence d'intérêt.

Pour faire ces différentes mutations, j'utilise deux fonctions random, une pour la position et une autre qui choisit entre les nucléotides A, T, G et C. Mon problème est que je n'arrive pas a muter spécifiquement une seule position, soit le programme me mute tous mes T en A par exemple, soit je n'arrive a le faire muter que le premier T mais pas celui qui m'intéresse (par exemple le 3eme T)

Pseudo supprimé
Pseudo supprimé 16 novembre 2010 à 18:54:36

Erf Tab... Désolé pour le double post.

Je joins la première ébauche de mon programme qui se concentre juste sur l'incorporation des mutations.

import random
import string

seq_initial = 'ATGTACAG'
nucleotides = ['A', 'T', 'G', 'C']
i = 0

while i < 10:
seq_muta = seq_initial
j = random.randint(0, len(seq_initial)-1)
mutation = random.choice(nucleotides)
seq_muta = seq_muta.replace(seq_initial[j], mutation, j)
print(seq_muta)
i += 1

Le problème est que je ne sais pas comment faire pour remplacer spécifiquement la position j de ma séquence par le nucléotide muté. Donc si quelqu'un a une idée, je lui en serai reconnaissant.

String[]args
String[]args
Niveau 23
16 novembre 2010 à 23:04:59

J'ai regardé vite fait, et d'après ce que j'ai compris, le problème vient de la fonction str.replace qui marche pas comme tu le voudrais.
Avec deux arguments, la fonction remplace TOUTES les occurrences de seq_initial[j] dans seq_muta, et avec 3 arguments comme tu l'as présenté, il remplace les j premières occurences de seq_initial[j] dans seq_muta (et pas l'index de l'occurence qui t'intéresse).

Bref, en utilisant une autre méthode que replace, j'aurais mis :
seq_muta = seq_muta[0:j] + mutation + seq_muta[j+1:]
Ce qui t'économise par la même d'importer le module string. :o))
Bon après je suis pas sûr d'avoir compris l'énoncé mais c'est ce que j'ai compris en lisant ton code. :noel:

Pseudo supprimé
Pseudo supprimé 16 novembre 2010 à 23:34:38

Ca marche :fete: Merci beaucoup pour cette réponse rapide :)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment