DNA através dos olhos de um programador

De um tradutor: Como eu não sou biólogo, pode haver imprecisões na tradução dos termos (e não apenas :). O original está aqui .

Se você é um martelo, verá um prego em tudo


Estes são apenas os pensamentos do programador sobre o DNA. Eu não sou um geneticista molecular.

Código fonte


Localizado aqui . Isso não é uma piada. As fontes podem ser visualizadas usando um conjunto maravilhoso de scripts Perl chamado " Ensembl ". O genoma humano tem aproximadamente 3 gigabytes, que podem ser reduzidos a 750 megabytes se a casca for descartada. É um pouco triste que sejam apenas 2,8 navegadores Mozilla Firefox .

O DNA provavelmente não é como o código-fonte C, mas como um bytecode para uma máquina virtual chamada núcleo celular. É altamente duvidoso que haja códigos-fonte que possam ser compilados nesse bytecode: o que vemos é tudo o que temos.

DNA A linguagem do DNA é digital, mas não binária. O código binário usa 0 e 1 (e é por isso que é chamado binário), o DNA usa 4 valores: T, C, G e A.

Enquanto um byte binário consiste principalmente em 8 dígitos binários, um "byte" de DNA (referido como códon) contém 3 caracteres. E como cada caractere pode ter um dos quatro valores, o códon de DNA possui 64 valores possíveis, em contraste com 256 valores de bytes binários.

Um exemplo típico de um códon de DNA é "GCC", que codifica o aminoácido Alanina. A combinação de um grande número desses aminoácidos é chamada de polipeptídeo ou proteína e é um componente quimicamente ativo de todos os seres vivos. Leia mais sobre códons.

Código independente da posição


O código das bibliotecas conectadas dinamicamente (.so nos sistemas Unix, .dll no Windows) não pode usar endereços estáticos dentro de si, pois esse código pode estar localizado em diferentes partes da memória em diferentes situações. O DNA também tem uma função semelhante chamada transposição de código:
Quase metade do genoma humano consiste em elementos genéticos transponíveis (ou "móveis"). Esses elementos foram descobertos pela primeira vez na década de 1940 pela Dra. Barbara McClintock ao estudar os padrões únicos de herança encontrados nas cores do milho indiano. A idéia do DNA móvel é que algumas regiões são instáveis ​​e "transponíveis", ou seja, elas podem se mover - dentro e entre os cromossomos.

Compilação condicional


20000-30000 , – , -, .

, («») , , #ifdef . . #if/#endif.

" " – . #ifdef, .

, – , . , . , (fork()) , . .

( ) , . ( ).

, , . , , «» , .

:


, , .

, Linux, , , ( ), . - if (numcpus > 1), - nop-. , nop- , .

, , . (« ») (« »). «» , .

, , , , .

, , – «» – , , , .

, .

, , , .

«» , , ( )


( ). , . «».

, 97% . . , , , C. 3%, , «». , «» «».

-. C, ( /*) (*/). . , , , , ! «GT», /*, «AG», , , */.

, - , , , HTML, : – .

, :

 <!--     ----  --> 
     |        |          |          |       |         |
 1     *     1      **   2

*   
**  

, . - , , . , .

, . , «» ( ) «» () .

? vim/emacs. , , , . , .

– , ( ), «» (folding propensity). , .

RLL- MFM-. . 0 « » 1 «».

000000 — . , — ? 6 5? , , .

« , , , » , , «0011» – , , «00011» «00111». , , . « » (Run Length Limiting, RLL) .

, () , . , , .

, – ! « » « », , «» « » (stem-loop potential). , .

: , . , « » , .

fork() fork- ()


unix-, «» – . , . , , fork() () , .

unix, , fork. , . . ulimit (watchdogs) . , .

, – " ". , . , (« ») .

, . , , -, , , ?

,


– , – « ». , «». T A, C – G. , , RAID-1.

, – , – Y-, . , , . , , . .

API,


, ́ -. 2001-2002 , , , , , ( Nature 28 2001, M. Kimura, T. Ohta Science 26 2002).

, , «» ́. , , , .

,


, , - , , , - . « Nimda!»

, . .

. , , .

: .c -> .o -> a.out/.exe


, , . , , , « ».

, , , , .c- .o, (a.out/exe). , , , .

, . , , - . , , ́, .

, , , .

, aka « »


. , , ASCII-, . .

«» « » , . . (, ), , «», .

, (SCID, Severe Combined Immunodefeciency) – , , , , . , .

«» , , . , , – , Microsoft!

, , , , , .


, . . , :
, , , , , .

, . , , , , .


.

-:


, ( – ) . « » . 4 : U, C, G A – , «» 2 . .

, 6 64 , 20 . , UCU, UCC, UCA UCG – , UGG .

, , «» (UCU -> UCC) . "Metamagical Themas" (Douglas Hofstadter).

: /* */


. , , , . , , , . .

« ». , – . H3 H4.

, , . .

, , , , . H3 H4 . . , , .
1 - 80 , :

                 -        
 3            135                 0.00
 4            101                 0.00
             51                  0.13
-    136                 2.79



, , . : , , «».

, , . , .

, H3 H4 , «» , .

:


...0 0000 0001 0000 0010 0000 0011 0...

, , 8- 1, 2 3. , , . , . :

...00 0000 0010 0000 0100 0000 0110 ...

2, 4, 6! , , , . , , , ( ) . !

6, 3 .

: –


-, . . , . , . , – , .

- (« »), . , , . !

. , , , . , , .

-, , , , , , – .

Makefile


, , , . tar-, , . ?

. . , , « », « ». , , , , , , .

1983, . , makefile, «HOX» .

, «» «» , . , «HOX» , « » ?

, HOX-B6 , antennapedia .


, . («» ) makefile- . , « » , , «» .

:


, («»), ( , ). . «» – .

. , , «» .

, , .so LD_PRELOAD . , . .

, . , « », , .

Source: https://habr.com/ru/post/pt410103/


All Articles