-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathADN_to_ARN.sh
71 lines (53 loc) · 1.74 KB
/
ADN_to_ARN.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
read -p "Introduce el archivo: " ADN
ADN_to_show=$(grep -v ">" "${ADN}" | tr -d "\n") # ADN sin cabecera
lenght=$(echo "$ADN_to_show" | wc -L ) # Longitud total de la molécula introducida
echo "A continuación se muestra la secuencia de ADN y su correspondiente en ARN:"
echo "5'-"$ADN_to_show"-3'"
echo ""
ARN=$(echo "$ADN_to_show" | tr T U) # Cambio de T a U para pasar la secuencia de ADN a ARN
echo "5'-"$ARN"-3'"
ARN_to_count=$(echo "${ARN}" | fold -1) # ARN sin cabecera con 1 letra por linea
# Variables para conteo de bases
A_count=0
C_count=0
U_count=0
G_count=0
N_count=0
# Lectura base a base de la secuencia y conteo de cada base
for n in $ARN_to_count ;
do
if [[ $n == "A" ]] ;
then
A_count=$(($A_count + 1))
elif [[ $n == "C" ]]
then
C_count=$(($C_count + 1))
elif [[ $n == "G" ]]
then
G_count=$(($G_count + 1))
elif [[ $n == "U" ]]
then
U_count=$(($U_count + 1))
else
N_count=$(($N_count + 1))
fi
done
# Calculo del porcentaje que supone cada base
A_porcentage=`echo "scale=4; $A_count / $lenght * 100" | bc -l`
C_porcentage=`echo "scale=4; $C_count / $lenght * 100" | bc -l`
G_porcentage=`echo "scale=4; $G_count / $lenght * 100" | bc -l`
U_porcentage=`echo "scale=4; $U_count / $lenght * 100" | bc -l`
N_porcentage=`echo "scale=4; $N_count / $lenght * 100" | bc -l`
# Resultados
echo ""
echo "La composición de bases de esta molécula de ARN es:"
echo ""
echo "Adenina: " $A_count"/"$lenght "("$A_porcentage"%)"
echo "Citosina: " $C_count"/"$lenght "("$C_porcentage"%)"
echo "Guanina: " $G_count"/"$lenght "("$G_porcentage"%)"
echo "Uracilo: " $U_count"/"$lenght "("$U_porcentage"%)"
echo "Ns: " $N_count"/"$lenght "("$N_porcentage"%)"