Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul avec des lettres dans une cellule

9 réponses
Avatar
Delasouris
Bonjour à tous,
Je n'utilise Excel qu'avec les fonctions statistiques classiques incluent
dans le logiciel. Cependant je me suis dit qu'il était peut-être possible
d'utiliser le tableur pour la biologie moléculaire directement avec les
petites séquences (< à 100 caractères ou bases) entrées dans une cellule.
D'habitude j'utilise les petits logiciels gratuits, mais avec l'augmentation
du nombre de séquences et le besoin de classer, distribuer et ranger en
sécurité les données, l'utilisation d'excel me semble incontournable
maintenant.

Les 4 bases sont A, T, G et C.

Le calcul de température de fusion (Tm) que j'aimerais faire s'appuie sur la
formule suivante:

Tm=69,3 + 0,4 x (%GC) - 650/L

par exemple la séquence GAATTCGATACCATAGACATTGGCA

%GC = 40
L = 25

=> Tm = 69,3 + 0,4x40 - 650/25 = 69,3 + 16 - 26 = 59,3°C

Il me faut donc différencier les A & T des G & C pour les compter et
calculer le % de GC dans la séquence et calculer le nombre total de
caractères (sans les espaces!) dans la cellule qui contient ma séquence pour
calculer L qui correspond à la longeur dans la formule...
et ça c'est au-dessus de mes compétences;-)
Pouvez-vous m'aider à écrire cette fonction dans excel ou m'indiquer un
endroit ou trouver l'information? Je pense que cela aidera aussi d'autres
chercheurs.
En vous remerciant par avance
Salutations distinguées
Marc

9 réponses

Avatar
JpPradier
Bonjour Marc

Pour la longueur de la séquence ( placée en A1 ) sans les espaces :

=Nbcar(Substitue(A1;" ";"")

Pour le nombre de GC :

=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE($A$1;"G";"");"C";""))

Si tu veux plus, il faudra que tu donne un peu plus de détail sur l'organisation de ta
feuille.

j-p
Avatar
Delasouris
Merci J-P !
Je vais tenter de mettre en pratique ta solution.
Qu'entends-tu par l'organisation de la feuille?
Marc


Bonjour Marc

Pour la longueur de la séquence ( placée en A1 ) sans les espaces :

=Nbcar(Substitue(A1;" ";"")

Pour le nombre de GC :

=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE($A$1;"G";"");"C";""))

Si tu veux plus, il faudra que tu donne un peu plus de détail sur l'organisation de ta
feuille.

j-p




Avatar
JpPradier
"Delasouris" a écrit dans le message de news:

Merci J-P !
Je vais tenter de mettre en pratique ta solution.
Qu'entends-tu par l'organisation de la feuille?


Je veux dire comment sont placées les séquences dans la feuille, si il y a des espaces...
Par exemple si dans ta séquence, il n'y a pas autant de G que de C, tu calcules comment ?
Remarque, c'est peut-etre impossible, j'y connais rien aux séquences de molécules ;-))

j-p

Avatar
Delasouris
Je viens de tester la formule... ça marche partiellement. Il semble qu'il
faille que les lettres soient en majuscule pour discerner AT de GC ! Ce qui
peut être intéressant pour discerner deux zones de calcul dans la séquence
(Tm1 et Tm2).
_________________Tm2______________________________
GAATTCGATACCATAGACATTGGCA ATATTATTTTTTATATTAT

----------Tm1---------------
Mais je pense faire plus simple en recopiant la partie Tm1 de la séquence
dans la cellule voisine. J'espère que l'attribution de couleurs ou autres
variables à l'aspect des lettres ne sera pas un handicap, ni l'absence d'une
des lettres dans la séquence, cela arrive souvent.
Encore merci
Marc


Bonjour Marc

Pour la longueur de la séquence ( placée en A1 ) sans les espaces :

=Nbcar(Substitue(A1;" ";"")

Pour le nombre de GC :

=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE($A$1;"G";"");"C";""))

Si tu veux plus, il faudra que tu donne un peu plus de détail sur l'organisation de ta
feuille.

j-p




Avatar
JpPradier
"Delasouris" a écrit dans le message de news:

Je viens de tester la formule... ça marche partiellement. Il semble qu'il
faille que les lettres soient en majuscule pour discerner AT de GC ! Ce qui


Ah ! tu vois que tu ne dis pas tout ;-)
La couleur ou le format ( Gras-Italique ....) n'influe pas sur le résultat, mais la casse
oui. Pour s'en affranchir, on peut utiliser Majuscule(A1) qui passe tout en majuscule par
exemple et l'intégrer à la formule :

=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE(MAJUSCULE($A$1);"G";"");"C";""))

j-p

Avatar
Delasouris
Merci encore JP, c'est génial, finalement j'utilise la différence de casse et
c'est très pratique. Si j'avais su que c'était possible avant!!! Je vais
avoir pas mal de saisie à faire (copier/coller). Il me faut juste trouver le
moyen simple de transformer des majuscules clavier en minuscules dans word ou
excel au choix.
Une dernière question, la copie incrémentée des formules complexes ne semble
pas fonctionner... par exemple :
=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE($A$1;"G";"");"C";""))+C1
donne
=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE($A$1;"G";"");"C";""))+C2
au lieu de
=NBCAR($A$2)-NBCAR(SUBSTITUE(SUBSTITUE($A$2;"G";"");"C";""))+C2

Faut-il reécrire chaque ligne?
Encore merci pour cet outil tout simple mais si précieux!
Marc




"Delasouris" a écrit dans le message de news:

Je viens de tester la formule... ça marche partiellement. Il semble qu'il
faille que les lettres soient en majuscule pour discerner AT de GC ! Ce qui


Ah ! tu vois que tu ne dis pas tout ;-)
La couleur ou le format ( Gras-Italique ....) n'influe pas sur le résultat, mais la casse
oui. Pour s'en affranchir, on peut utiliser Majuscule(A1) qui passe tout en majuscule par
exemple et l'intégrer à la formule :

=NBCAR($A$1)-NBCAR(SUBSTITUE(SUBSTITUE(MAJUSCULE($A$1);"G";"");"C";""))

j-p





Avatar
JpPradier
Bonjour Marc

Pour la recopie incrémentée, il faut changer la référence absolue en référence relative :
tu remplaces $A$1 par $A1 si c'est de la recopie en ligne ou A$1 si c'est de la recopie en
colonne ou carrement A1 si c'est les deux.
Pour le changement de casse, c'est possible directement dans Word. Dans Excel, il faut
passer par une petite macro.

j-p
Avatar
Delasouris
Alors là merci de tout coeur JP... ça "fonctionne" ;-) super bien... et tu
m'as permis de comprendre en peu de temps des petits trucs d'écriture de
fonctions dans excel. Je pense que de nombreux étudiants et chercheurs
utiliseront cette fonction en la recopiant dans leurs tableurs. Je vais
tenter de la transformer en Fonction "Tm" et la faire apparaitre dans le menu
déroulant comme pour les sommes etc. En fait c'est très amusant de sortir de
son domaine de compétences au travers de l'aide que tu m'as donnée.
Encore merci
Marc

"JpPradier" wrote:

Bonjour Marc

Pour la recopie incrémentée, il faut changer la référence absolue en référence relative :
tu remplaces $A$1 par $A1 si c'est de la recopie en ligne ou A$1 si c'est de la recopie en
colonne ou carrement A1 si c'est les deux.
Pour le changement de casse, c'est possible directement dans Word. Dans Excel, il faut
passer par une petite macro.

j-p




Avatar
JpPradier
:-) Bienvenue ! et n'hésite pas à revenir.

j-p

"Delasouris" a écrit dans le message de news:

Alors là merci de tout coeur JP... ça "fonctionne" ;-) super bien... et tu
m'as permis de comprendre en peu de temps des petits trucs d'écriture de
fonctions dans excel. Je pense que de nombreux étudiants et chercheurs
utiliseront cette fonction en la recopiant dans leurs tableurs. Je vais
tenter de la transformer en Fonction "Tm" et la faire apparaitre dans le menu
déroulant comme pour les sommes etc. En fait c'est très amusant de sortir de
son domaine de compétences au travers de l'aide que tu m'as donnée.
Encore merci
Marc

"JpPradier" wrote:

Bonjour Marc

Pour la recopie incrémentée, il faut changer la référence absolue en référence
relative :


tu remplaces $A$1 par $A1 si c'est de la recopie en ligne ou A$1 si c'est de la
recopie en


colonne ou carrement A1 si c'est les deux.
Pour le changement de casse, c'est possible directement dans Word. Dans Excel, il faut
passer par une petite macro.

j-p