Poster un nouveau sujet Poster une réponse
Ribosome TI
Auteur Message
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 06 Déc 2011, 10:53   Citer 

Salut bande de geeks.

Je vous présente mon dernier programme, qui convertit les séquences d'ADN en ARNmessager puis, tel un virtuose ribosome, vous donne la séquence peptidique qui sera traduite.

En gros, il fait le code génétique, mais avec un max d'options:
________________________________________________________________________________

- Une présentation graphique inégalaaaable (avec "seulement" 3000 octets)

- Le choix de l'affichage des acides aminés en 1 lettre ou en 3 lettres.

- La possibilité de choisir la polarité de l'ADN, ou de partir d'un brin d'ARN directement.

- Il gère les codons-STOP.

________________________________________________________________________________

[img]Je vous présente mon dernier programme, qui convertit les séquences d'ADN en ARNmessager puis, tel un virtuose ribosome, vous donne la séquence peptidique qui sera traduite.

En gros, il fait le code génétique, mais avec un max d'options:
________________________________________________________________________________


________________________________________________________________________________

téléchargez donc ! http://www.mediafire.com/?ocoyjh99byuvc6j glasses.gif
________________________________________________________________________________

Ah oui, et pour ceux qui n'ont pas de cable, voilà le code du programme.
Je pense qu'il n'y a plus grand chose à dire question optimisation, mais on peut toujours regarder.

- Je rappelle que les lettres minuscules sont trouvables soit en faisant [2nde]+une touche soit dans le menu [vars][5] et en fouillant.

- LADN est la liste ADN, le premier L se trouvant dans le catalogue.

- si vous avez une TI 82 non stats, ce programme ne peut pas marcher chez vous.


Code

:4->dim(LADN
:Lbl 0
:ClrHome
:FnOff :AxesOff:Split:ClrDraw
:Simul
:-19->Xmin:2->Xmax:-3->Ymin:3->Ymax
:If LADN(1:Then
:RecallPic 6
:Else
:DrawInv 2sin(X-$.5)-1  // $ est le symbole "pi"
:DrawInv 2cos(X)-1
:DrawInv 2cos(X
:DrawInv 2sin(X-$.5
:Horizontal 3
:Vertical -19
:Vertical 2
:Vertical -18
:{-17.8,2,-17.4,2,-17.8,.8,-17.4,.8,-17.8,-2.2,-17.4,-2.2,-1.8,-2.8,.4,-2.6,
0,-2.2,-1,-2.2,-1.1,-.8,.9,-.6,-1.8,-.4,1.3,.2,-1.5,.4,.2,.8,-1.1,2.2,.6,2.6,
-1.5,2.6,.2,3->L1
:For(A,1,40,4
:Line(L1(A),L1(A+1),L1(A+2),L1(A+3
:End
:StorePic 6
:{1,1,0->LADN
:End
:Text(2,9,"ADN cOnverter
:Text(9,9,"(c)2011 Persa1teas
:Text(23,9,"Quitter
:1->C
:Repeat K=105
:getKey->K
:C+(K=34 and C<3)-(K=25 and C>1)->C
:Line(-18.5,2.1,-17.4,2.1,(C=1
:Line(-18.5,.9,-17.4,.9,(C=2
:Line(-18.5,-2.1,-17.4,-2.1,(C=3
:End
:If C=3:Goto Z
:If C=2:Then
:ClrDraw
:RecallPic 6
:Text(2,9,"par Persa1teas
:Text(8,9,"reMercieMents a A1ex   
:Text(14,9,"FerrarO.
:Text(22,9,"Espace TI:FOruM
:Pause
:End
:If C=1:Then
:ClrDraw
:RecallPic 6
:Text(2,9,"entrer seQ (ADN)
:Text(9,9,"entrer seQ (ARN)
:Text(22,9,"OptiOns
:1->C
:Repeat K=105
:getKey->K
:C+(K=34 and C<3)-(K=25 and C>1)->C
:Line(-18.5,2.1,-17.4,2.1,(C=1
:Line(-18.5,.9,-17.4,.9,(C=2
:Line(-18.5,-2.1,-17.4,-2.1,(C=3
:End
:If C=3:Then
:ClrDraw
:RecallPic 6
:Text(2,9,"NOMS:
:Text(9,9,"POLARITE ADN-ARN:
:1->C
:Lbl 8
:If LADN(2:Then
:Text(2,30,"3 Lettres 
:Else
:Text(2,30,"1 Lettre     
:End
:If LADN(3:Then
:Text(15,9,"NeGatiF     
:Else
:Text(15,9,"POsitiF 
:End
:Text(22,9,"RETOUR
:Repeat K=105
:getKey->K
:C+(K=34 and C<3)-(K=25 and C>1)->C
:Line(-18.5,2.1,-17.4,2.1,(C=1
:Line(-18.5,.9,-17.4,.9,(C=2
:Line(-18.5,-2.1,-17.4,-2.1,(C=3
:End
:If C=1:not(LADN(2->LADN(2
:If C=2:not(LADN(3->LADN(3
:If C=3:Goto 0
:Goto 8
:End
:C=1->LADN(4
:Input "SeQuence ?      ",Str0
:3iPart(length(Str0)/3
:sub(Str0,1,Ans->Str0
:ClrHome:ClrDraw:RecallPic 6
:If LADN(3) or LADN(4:Disp "Transcr[b]i[/b]pt[b]i[/b]On...
:length(Str0->L
:If LADN(4)LADN(3:Then
:" ->Str7
:Output(4,6,"/
:Output(4,7,L
:For(A,1,L
:Output(4,2,A
:sub(Str0,A,1->Str9
:If Str9="T
:"U->Str9
:Str7+Str9->Str7
:End
:sub(Str7,2,L->Str0
:End
:If LADN(4) xor LADN(3:Then
:" ->Str7
:Output(4,1,"     /
:Output(4,7,L
:For(A,1,L
:Output(4,1,A
:sub(Str0,A,1->Str9
:If Str9="A":"U->Str8
:If Str9="T" or Str9="U":"A->Str8
:If Str9="C":"G->Str8
:If Str9="G":"C->Str8
:Str7+Str8->Str7
:End
:sub(Str7,2,L->Str0
:End
:ClrHome
:Disp "Press [enter]...
:Text(2,9,"ARNn       cOdant:
:Text(2,23,"n
:1->A
:Line(-17.4,.8,-3.6,.8
:Line(-18.1,-2.2,-3.6,-2.2
:Line(-3.6,.8,-3.6,-2.2
:Pt-On(-17.8,.5
:Pt-On(-17.8,-2
:Pt-On(-3.8,-2
:Pt-On(-3.8,.5
:Str0->Str9
:Repeat 13<length(Str9
:Str9+" ->Str9
:End
:Repeat K=105
:getKey->K
:Text(14,9,sub(Str9,A,14
:A+(K=26 and A<L-13)-(K=24 and A>1->A
:If A>1:Then
:Text(13,5,"..
:Else
:Text(13,5,"    
:End
:If A<L-13:Then
:Text(13,65,"..
:Else
:Text(13,65,"   
:End
:Line(-15.5,-1.6,-17.2,-1.6,(A>1
:Line(-17,-1.4,-17,-1.8,(A>1
:Line(-6.2,-1.6,-4.4,-1.6,(A<L-13
:Line(-4.7,-1.4,-4.7,-1.8,(A<L-13
:End
:ClrHome
:Str9->Str0
:"H2N-->Str1   // il y a bien "moins" puis "sto"
:LADN(2->J
:Output(4,6,"/"
:Output(4,7,L
:For(A,1,L,3
:Output(4,2,A
:sub(Str0,A,1->Str7
:sub(Str0,A+1,1->Str8
:sub(Str0,A+2,1->Str9
:0->K
:If Str9="A" or Str9="G
:1->K
:Str7+Str8->Str5
:If Str5="AA
:Then
:If K:Then
:"K
:If J:"Lys
:Else
:"N
:If J:"Asn
:End:End
:If Str5="CA
:Then
:If K:Then
:"Q
:If J:"G1n
:Else
:"H
:If J:"His
:End:End
:If Str5="CG" or Str5="AG" and K:Then
:"R
:If J:"ArG
:End
:If Str5="CU" or Str5="UU" and K:Then
:"L
:If J:"Leu
:End
:If Str5="CC
:Then
:"P
:If J:"PrO
:End
:If Str5="GC
:Then
:"A
:If J:"A1a
:End
:If Str5="GA
:Then
:If K:Then
:"E
:If J:"G1u
:Else
:"D
:If J:"Asp
:End:End
:If Str5="GG
:Then
:"G
:If J:"G1y
:End
:If Str5="GU
:Then
:"V
:If J:"Va1
:End
:If Str5="UC" or Str5="AG" and not(K:Then
:"S
:If J:"Ser
:End
:If Str5+Str9="UGG
:Then
:"W
:If J:"Trp
:End
:If Str5="UG" and not(K:Then
:"C
:If J:"Cys
:End
:If Str5="UU" and not(K
:Then
:"F
:If J:"PHe
:End
:If Str5="UA" and not(K:Then
:"Y
:If J:"Tyr
:End
:If Str5="UA" and K or Str5+Str9="UGA
:"COOH   H2N
:If Str5+Str9="AUG
:Then
:"M
:If J:"Met
:End
:If Str5="AU" and Str9=/="G    // "égal barré"
:Then
:"I
:If J:"I1e
:End
:If Str5="AC
:Then
:"T
:If J:"THr
:End
:Str1+Ans+"-->Str1    // pareil: "moins" puis "sto"
:End:ClrHome
:Str1+"COOH->Str1
:Output(3,1,"<--          -->  // là, c'est des vrais "moins" et "supérieur"
:Pause Str1
:End
:Goto 0
:Lbl Z
:DelVar L1DelVar Str9DelVar Str8DelVar Str7DelVar Str0DelVar Str5
:Full:ZStandard:AxesOn
:Output(1,1,"ADN cOnverter byPersa1teas.
:Output(4,1,"Resu1tats sauvesdans Str1.   // n'écrivez pas Str1 en minuscules, c'est pas la peine... ;)



 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 06 Déc 2011, 12:27   Citer 

La présentation est excellente. bigmouth.gif
Je n'y ai pas d'utilité mais tu m'intéresses.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 06 Déc 2011, 12:40   Citer 

Vraiment bien fait et de qualité ton programme.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 06 Déc 2011, 15:57   Citer 

Merci
glasses.gif

linkakro, qu'est-ce que tu veux dire par curieux ?

PS: Sangohan, le temps que je poste cette réponse et ton avatar a disparu...

 Adresse email Haut de page Bas de page 
 
l'amiral
Invité
Posté le : Dim 21 Jan 2018, 9:10   Citer 

Y aurait il possibilité de faire une traduction de l'adn en chiffre avec A=0
T=1 C=2 et G=3 ?
Merci d'avance les gars

  Haut de page Bas de page 
 
Mingerton



Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Dim 21 Jan 2018, 19:51   Citer 

Ouais ca se fait, ca peut être plutôt long par contre selon la taille de la chaîne d'ADN.


Code
Prompt Str1   //Str1 est la chaine de nucléotides
"         //guillemet et un espace
For(I,1,length(Str1
Ans+sub("0123",inString("ATCG",sub(Str1,I,1)),1
End
sub(Ans,2,length(Ans)-1



----------------------
Mes articles
Mes programmes en ligne (je termine peu de projets)

Guide traduction Algo-Basic, par Linkakro
Catalogue des fonctions 82/83/84 FR/EN
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink