Data update

This commit is contained in:
Ingy döt Net 2024-10-16 18:07:41 -07:00
parent 81fd053722
commit 52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions

View file

@ -0,0 +1,36 @@
#include <stdio.h>
int main(void) {
char dna[] = "CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG"
"CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG"
"AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT"
"GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT"
"CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG"
"TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA"
"TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT"
"CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG"
"TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC"
"GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT";
int c_count = 0, t_count = 0, a_count = 0, g_count = 0, total;
for (total = 0; dna[total]; total++) {
if (total % 50 == 0)
printf("\n%3d - %3d: %c", total + 1, total + 50, dna[total]);
else if (total % 5 == 0)
printf(" %c", dna[total]);
else
printf("%c", dna[total]);
switch (dna[total]) {
case 'C': c_count++; break;
case 'T': t_count++; break;
case 'A': a_count++; break;
case 'G': g_count++; break;
}
}
printf("\n\nC count: %3d\nT count: %3d\nA count: %3d\nG count: %3d\n Total: %3d\n\n",
c_count, t_count, a_count, g_count, total);
return 0;
}

View file

@ -0,0 +1,53 @@
# by Artyom Bologov
H
,j
# Repeat the line 5 times
t0
t0
t0
t0
# Split the line in chunks of 50
1s/[ACGT]\{0,50\}/&\
/g
# Count every base by leaving X letters on each row
$-3s/[^A]//g
$-2s/[^C]//g
$-1s/[^G]//g
$s/[^T]//g
# Turn all letters into i's
$-3s/A/i/g
$-2s/C/i/g
$-1s/G/i/g
$s/T/i/g
# unary -> decimal (up to 10^10)
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
,p
g/i/s/[ ]$/ 0 /g
g/i/s/[ ][ ]/ 0 /g
g/i/s/[ ][ ]/ 0 /g
g/i/s/[ ]iiiiiiiii\>/ 9 /g
g/i/s/[ ]iiiiiiii\>/ 8 /g
g/i/s/[ ]iiiiiii\>/ 7 /g
g/i/s/[ ]iiiiii\>/ 6 /g
g/i/s/[ ]iiiii\>/ 5 /g
g/i/s/[ ]iiii\>/ 4 /g
g/i/s/[ ]iii\>/ 3 /g
g/i/s/[ ]ii\>/ 2 /g
g/i/s/[ ]i\>/ 1 /g
g/[ ]/s///g
g/^0\{1,\}\([0-9]\)/s//\1/
$-3s/.*/A &/g
$-2s/.*/C &/g
$-1s/.*/G &/g
$s/.*/T &/g
,p
Q

View file

@ -0,0 +1,106 @@
PROGRAM DNABaseCount;
(*)
Free Pascal Compiler version 3.2.2 [2024/05/01] for x86_64
Free to use, as is, experimental
directives:
https://www.freepascal.org/docs-html/prog/progch1.html
The free and readable alternative at C/C++ speeds
compiles natively to almost any platform, including raspberry PI *
Can run independently from DELPHI / Lazarus
https://www.freepascal.org/advantage.var
(*)
{$IFDEF FPC}
{$LONGSTRINGS ON} (*) aka {H+} = ansistrings (*)
{$RANGECHECKS ON} (*) aka {$R+} (*)
{$S+} (*) stack checking on (*)
{$TYPEDADDRESS ON} (*) aka {$T+} (*)
{$ELSE}
{$APPTYPE CONSOLE}
{$ENDIF}
{$MACRO ON}
{$DEFINE crlf := #13#10 }
{$DEFINE tab := #9 }
{$DEFINE xy := x * y }
USES
crt,
SysUtils
;
FUNCTION DnaCount ( S: string; var total: integer; a: char ) : integer;
BEGIN
DnaCount := length ( S.Split ( a ) ) - 1 ;
total := total + Dnacount ;
END;
FUNCTION Print ( S: string ; start: integer ; len: integer ) : string;
BEGIN
Print := '' ;
FOR start := 0 TO length (S) DO
Print := Print + ( copy ( S, start * len + 1, len ) + ' ' );
END;
VAR
dna: string =
'CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG' +
'CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG' +
'AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT' +
'GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT' +
'CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG' +
'TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA' +
'TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT' +
'CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG' +
'TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC' +
'GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT' ;
x : integer ;
y : integer = 0 ;
S : string = 'ACGT' ;
base : char = ' ' ;
total : integer = 0 ;
width : integer = 10 ;
BEGIN
y:= length( dna ) div width ;
Writeln ( crlf , crlf , 'Sequence:' , crlf );
FOR x:= 0 TO ( length( dna ) div y ) - 1 DO
Writeln ( xy: 3 , ': ': 3 , Print( copy( dna, xy + 1, y ), 0, width ) );
Writeln( crlf , crlf , 'Base' , tab , 'Count' , crlf );
FOR base IN S DO
Writeln ( base:4, DnaCount( dna, total, base ): width + 4 ) ;
Writeln ( crlf , crlf , 'Total:', tab, total, crlf );
END. (*) Of PROGRAM DNABaseCount.pas (*)
(*)