Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Désordonner une chaîne

Bonjour, je suis un simple étudiant en Bac+2 et j'ai un petit projet à présenter mais j'ai un problème de taille au démarrage :

 

Je voudrais générer une chaîne de x caractères comprenant uniquement les caractères A, T, C, G. Jusque là, rien de bien compliqué, je me suis dit A=0 T=1 C=2 G=3 et je les génère par le hasard.

 

Là, ou ça se corse, je voudrais avoir un certain pourcentage de C et G par rapport au total des caractères et là je suis bloqué.

 

Admettons que je veule 60% de caractères C et G dans ma chaîne de longueur 20 par exemple. J'ai eu l'idée de générer une chaîne de 0.6*20=12 caractères pour les C et G et du coup 8 pour les A et T et de les concaténer et voilà le problème, j'obtiens :

 

CGGGCGCGCCGGAATTTATA

 

Je voudrais que ces caractères soient complètement mélangés ( ex : CCATGCGAGACTAGGGTTCG ) pour la suite de mon programme.

 

Comment faire intervenir le désordre avec cette chaine ?

 

Et là, je sèche, j'ajoute que je débute en Labview et que mon prof n'a pas su me répondre non plus, je m'en remets donc à vous 😕

 

Merci d'avance à ceux qui répondront !

0 Compliments
Message 1 sur 5
4 452 Visites
Message 2 sur 5
4 449 Visites

Bonjour CapitaineNemo,

 

Voilà une solution qui génère une chaîne de caractère à la taille souhaitée et qui contient une proportion paramétrable de C et G.

 

Dans mon VI, je suis parti du principe qu'on voulait autant de A que de T et autant de C que de G mais qu'on peut choisir la proportion de C+G par rapport à A+T. Lors des divisions pour calculer les nombre de lettres, j'ai priviliégier le A et le C en faisant la division entière et en ajoutant le reste au A et au C.

 

 Melanger Chaine.png

 

Ensuite on vient mélanger le tableau généré avec la fonction donné par @altenbach.

 

Je te laisse nous dire si ca te convient.

 

Si c'est bon pour toi, pense à marquer ta question comme résolue et a remercier les contributeurs.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 3 sur 5
4 430 Visites

@MaximeR : "... proportion paramétrable de C et G"

 

comprends pas ...  Pourquoi "proportion" ?

 

Perso, il me semblait avoir compris qu'il fallait simplement "mélanger"  ...

 

donc reprendre la totalité de l'entrée et simplement y inclure un ordre aléatoire.

 

EDIT

 

au temps pour moi, je dois encore avoir le cerveau dans la colle.

J'ai relu ... ok Maxime ... tu as raison.

0 Compliments
Message 4 sur 5
4 426 Visites

Salut,

Ci-dessous l'exemple de MaximeR modifié, à la place de la boucle For j'utilise les valeurs décimales des caractères ATCG:

 

Exp.png

 

A+

Reg
Message 5 sur 5
4 326 Visites