shell实现DNA转录和翻译

来源:互联网 发布:黑马程序员有公司要么 编辑:程序博客网 时间:2024/05/21 22:34

查找不少于3000个碱基对的DNA序列保存到文件,编程将这些DNA序列翻译为氨基酸,将翻译好的氨基酸链保存到文件中,并计算每种氨基酸的含量。

翻译方法:DNA——>RNA——>氨基酸
#!/bin/basha=`cat DNA.txt`length=${#a}echo "DNA.txt文件中含脱氧核糖核酸个数为:"$lengthj=0for(( i=0;i<"$length";i++))doarray[$i]=${a:$j:1}  #从第j个位置每次取1赋给数组j=$(($j+1))   #j每次加1,移动位置case ${array[$i]} in     A) echo -n "U">> RNA.txt     ;;     T) echo -n "A">> RNA.txt     ;;     C) echo -n "G">> RNA.txt     ;;     G) echo -n "C">> RNA.txt     ;;     *) echo $i        echo ${array[$i]}esacdoneb=`cat RNA.txt`le=${#b}echo "RNA.txt文件中含核糖核酸个数为:" $lem=0for ((n=0;n<"$length";n++))doarr[$n]=${b:$m:1}  #30行m=$(($m+1))donek=0;sum=0;ben=0;liang=0;si=0;lu=0;ban=0;se=0;pu=0;zu=0;guan=0;zhong=0;jing=0;jia=0;yi=0;su=0;tian=0;lai=0;xie=0;bing=0;gu=0;gan=0;while(( $k<$length ))docase ${arr[$k]} inU)  case ${arr[$k+1]} in  U)    case ${arr[$k+2]} in    U) echo -n "苯丙氨酸——">> protein.txt       ben=$(($ben+1))     ;;    C) echo -n "苯丙氨酸——">> protein.txt       ben=$(($ben+1))     ;;    A) echo -n "亮氨酸—— " >> protein.txt       liang=$(($liang+1))     ;;    G) echo -n "亮氨酸——" >> protein.txt       liang=$((liang+1))     ;;    esac   ;;  C) echo -n "丝氨酸——" >> protein.txt     si=$(($si+1))   ;;  A)    case ${arr[$k+2]} in    U) echo -n "酪氨酸——">> protein.txt       lu=$(($lu+1))     ;;    C) echo -n "酪氨酸——">> protein.txt       lu=$(($lu+1))     ;;    A) echo -n "终止——">> protein.txt     zhong=$(($zhong+1))     ;;    G) echo -n "终止——">> protein.txt     zhong=$(($zhong+1))     ;;    esac   ;;  G)    case ${arr[$k+2]} in    U) echo -n "半胱氨酸——">> protein.txt       ban=$(($ban+1))     ;;    C) echo -n "半胱氨酸——">> protein.txt        ban=$(($ban+1))     ;;    A) echo -n "终止——">> protein.txt       zhong=$(($zhong+1))     ;;    G) echo -n "色氨酸——">> protein.txt       se=$(($se+1))     ;;    esac   ;;  esac;;C)case ${arr[$k+1]} in  U) echo -n "亮氨酸——" >> protein.txt     liang=$(($liang+1))   ;;  C) echo -n "脯氨酸——" >> protein.txt     pu=$(($pu+1))   ;;  A)    case ${arr[$k+2]} in    U) echo -n "组氨酸——">> protein.txt       zu=$(($zu+1))     ;;    C) echo -n "组氨酸——">> protein.txt       zu=$(($zu+1))     ;;    A) echo -n "谷胺酰胺——">> protein.txt     guan=$(($guan+1))     ;;    G) echo -n "谷胺酰胺——">> protein.txt      guan=$(($guan+1))     ;;    esac  ;;  G) echo -n "精氨酸——">> protein.txt        jing=$(($jing+1))  ;;  esac;;A)  case ${arr[$k+1]} in  U)    case ${arr[$k+2]} in    G) echo -n "(起始)甲硫氨酸——">> protein.txt       jia=$(($jia+1))     ;;    *) echo -n "异亮氨酸——">> protein.txt       yi=$(($yi+1))     ;;    esac   ;;  C) echo -n "苏氨酸——" >> protein.txt     su=$(($su+1))   ;;  A)    case ${arr[$k+2]} in    U) echo -n "天冬酰胺——">> protein.txt       tian=$(($tian+1))     ;;    C) echo -n "天冬酰胺——">> protein.txt       tian=$(($tian+1))     ;;    A) echo -n "赖氨酸——">> protein.txt     lai=$(($lai+1))     ;;    G) echo -n "赖氨酸——">> protein.txt     lai=$(($lai+1))     ;;    esac  ;;  G)    case ${arr[$k+2]} in    U) echo -n "丝氨酸——">> protein.txt       si=$(($si+1))     ;;    C) echo -n "丝氨酸——">> protein.txt        si=$(($si+1))     ;;    A) echo -n "精氨酸——">> protein.txt       jing=$(($jing+1))     ;;    G) echo -n "精氨酸——">> protein.txt       jing=$(($jing+1))     ;;    esac   ;;  esac;;G)  case ${arr[$k+1]} in  U) echo -n "(起始)缬氨酸——" >> protein.txt     xie=$(($xie+1))   ;;  C) echo -n "丙氨酸——" >> protein.txt     bing=$(($bing+1))   ;;  A)    case ${arr[$k+2]} in    U) echo -n "天冬酰胺——">> protein.txt       tian=$(($tian+1))     ;;    C) echo -n "天冬酰胺——">> protein.txt       tian=$(($tian+1))     ;;    A) echo -n "谷氨酸——">> protein.txt     gu=$(($gu+1))     ;;    G) echo -n "谷氨酸——">> protein.txt     gu=$(($gu+1))     ;;    esac  ;;  G) echo -n "甘氨酸——">> protein.txt       gan=$(($gan+1))  ;;  esac;;esack=$(($k+3))donesum=$(($ben+$liang+$si+$lu+$ban+$se+$pu+$zu+$guan+$jing+$jia+$yi+$su+$tian+$lai+$xie+$bing+$gu+$gan+$zhong))echo "文件protein.txt翻译得到的氨基酸总个数为:"$sum  "其中终止个数为"  $zhongecho "笨丙氨酸数:"    $benecho "亮氨酸数:"      $liangecho "丝氨酸数:"       $si  echo "酪氨酸数:"      $luecho "半胱氨酸数:"    $banecho "色氨酸数:"      $seecho "脯氨酸数:"      $puecho "组氨酸数:"      $zuecho "谷胺酰胺数:"    $guanecho "精氨酸数:"      $jingecho "甲硫氨酸数:"    $jiaecho "异亮氨酸数:"    $yiecho "苏氨酸数:"      $suecho "天冬酰胺数:"     $tianecho "赖氨酸数:"      $laiecho "缬氨酸数:"      $xieecho "丙氨酸数:"      $bingecho "谷氨酸数:"      $guecho "甘氨酸数:"      $gan                                  


DNA序列共3819个

https://www.ncbi.nlm.nih.gov/nuccore/1063713465?report=fasta中下载。

原创粉丝点击