@@ -17,20 +17,20 @@ let alu = "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\
17
17
GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\
18
18
AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\
19
19
AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA" B
20
- let iubvalues = [ 0.27 ; 0.12 ; 0.12 ; 0.27 ] @ List.replicate 12 0.02
20
+ let iubvalues = [ 0.27 ; 0.12 ; 0.12 ; 0.27 ] @ List.replicate 12 0.02
21
21
let iub = Seq.zip " acgtBDHKMNRSVWY" B iubvalues
22
22
23
23
let homosapien =
24
- [ 'a' B, 0.3029549426680
25
- 'c' B, 0.1979883004921
26
- 'g' B, 0.1975473066391
27
- 't' B, 0.3015094502008 ]
24
+ [ 'a' B, 0.3029549426680
25
+ 'c' B, 0.1979883004921
26
+ 'g' B, 0.1975473066391
27
+ 't' B, 0.3015094502008 ]
28
28
29
29
let os = new BufferedStream( Console.OpenStandardOutput(), 1 <<< 16 )
30
30
31
31
let repeatFasta alu n =
32
32
let r = Array.length alu
33
- let s = Array.concat [ alu; alu]
33
+ let s = Array.concat [ alu; alu ]
34
34
for j in 0 .. cols.. n - cols do
35
35
os.Write( s, j % r, cols)
36
36
os.WriteByte( '\n' B)
@@ -45,6 +45,7 @@ let randomFasta src n =
45
45
src
46
46
|> Seq.scan f ( 0 uy, 0.0 , 0 )
47
47
|> Seq.toArray
48
+
48
49
/// lookup table optimization
49
50
let lut =
50
51
let arr = Array.zeroCreate LUTLEN
@@ -56,6 +57,7 @@ let randomFasta src n =
56
57
j <- j + 1
57
58
if j <> v then arr.[ j - 1 ] <- 0 uy, i
58
59
arr
60
+
59
61
let lookup x =
60
62
match lut.[ x * ( LUTLEN - 1 ) / IM] with
61
63
| 0 uy, p ->
@@ -64,8 +66,10 @@ let randomFasta src n =
64
66
if float ( x) / float ( IM) < b then a
65
67
else i
66
68
| c, p -> c
69
+
67
70
/// write output one line at a time
68
71
let buf = Array.zeroCreate ( cols + 1 )
72
+
69
73
for x in n..(- cols).. 1 do
70
74
let e =
71
75
if x < cols then x
@@ -82,8 +86,7 @@ let main args =
82
86
let n =
83
87
try
84
88
int args.[ 0 ]
85
- with
86
- | _ -> 2500000
89
+ with _ -> 2500000
87
90
printfn " >ONE Homo sapiens alu"
88
91
repeatFasta alu ( 2 * n)
89
92
printfn " >TWO IUB ambiguity codes"
0 commit comments