Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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 (*)
|
||||
|
||||
(*)
|
||||
Loading…
Add table
Add a link
Reference in a new issue