eg for Ric Sherlock’s example,  modified for unequal sample sizes:

Apologies for non-alignment, as seen on iPad anyway.

   ]'X Y'=: 'actg' {~ 2 30 ?@$ 4
catctaagtcgataatccacttacttccgg
cagcaaggacaggtgctaatacacactcgc
   [X =: 'actg' {~ 40?@$ 4
ttagcacttccctcagagttacccacactagctggtgcag

   fr1 each X;Y Nb. Absolute frequencies, using sorted nubs as base
+---------+--------+
|9 13 8 10|10 9 7 4|
+---------+--------+
   rfr1 each X;Y. NB. Relative freqs
+--------------------+------------------------------+
|0.225 0.325 0.2 0.25|0.333333 0.3 0.233333 0.133333|
+--------------------+------------------------------+

NB. Comparisons
   crfr X;Y Nb. Absolute
 9 13 8 10
10  9 7  4
   load'~/user/temp.ijs'
   crfr X;Y. NB. Relative 
   0.225 0.325      0.2     0.25
0.333333   0.3 0.233333 0.133333

You can supply your “alphabet” as Left argument..
   'tagc' fr1 X NB. In your preferred order!
10 9 8 13

fns below sign off,

Mike

NB. absolute frequencies for one set
fr1 =: 3 : 0
y fr1~ /:~ ~. y
:
alf =. x
ser =. y
<:@#/.~ alf, ser
)

NB. relative frequencies for one set
rfr1 =: (%+/)@:fr1

NB. compare frequencies
cfr =: 3 : 0
y cfr~ /:~ ~.;y
:
alf =. x
sers=. y
alf&fr1 every y
)

NB. compare relative frequencies
crfr =: 3 : 0
y crfr~ /:~ ~.;y NB. Default base is sorted nub of all inputs.
:
alf =. x
sers=. y
alf&rfr1 every y
)

Sent from my iPad

NB ... lost previous posts here!
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to