Yes, that’s me.  

Sorry about the “Nb”s ... I was adding comments and trying to make the lines 
runnable.

I should have said that I wrote these example functions just for this 
discussion. They’re not well tested, nor, likely/possibly, proof against edge 
conditions such as empty datasets.

BTW, I guess the “alphabet” for trigrams of DNA sequences has 4^3 = 64 elements.

Mike



Sent from my iPad

> On 12 Oct 2019, at 21:00, 'Jim Russell' via Programming 
> <programm...@jsoftware.com> wrote:
> 
> 
> 
>> On Oct 12, 2019, at 1:52 PM, 'Mike Day' via Programming 
>> <programm...@jsoftware.com> wrote:
>> 
>> Sorry, I wasn’t considering trigrams in my off the cuff stuff,
>> 
>> Mike
> 
> Thanks Mike (Day?). Can’t always tell with fourm replies until I reply…
> 
> I appreciate (and am still studying) your stuff, and learning a lot from all 
> these exchanges.  I converted your reply to a script also, and so far have 
> {with my comments enclosed like this}:
> 
> NB.> eg for Ric Sherlock’s example, modified for unequal sample sizes:
> NB.> Apologies for non-alignment, as seen on iPad anyway.
> 
> NB. {Defs moved to front, earlier results commented, and expected to
> NB. change -- due to ?, but kept to sompare shape and type.}
> NB. {Still trying to understand the monad/duad stuff...}
> NB. {Changed a couple of Nb.'s t0 NB.}
> 
> 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
> )
> ]'X Y'=: 'actg' {~ 2 30 ?@$ 4
> tttgcctataaacaatgcagaccagcacgt
> ggcttcaacgactccagagtcttgctgagt
> NB.catctaagtcgataatccacttacttccgg
> NB.cagcaaggacaggtgctaatacacactcgc
> [X =: 'actg' {~ 40?@$ 4
> attaggtgccgacagaagtggccaacctcatcgacaaagg
> NB.ttagcacttccctcagagttacccacactagctggtgcag
> [each NB. in Z?
> [&.>
> fr1 each X;Y NB. Absolute frequencies, using sorted nubs as base
> +----------+-------+
> |13 10 11 6|6 8 8 8|
> +----------+-------+
> NB.+---------+--------+
> NB.|9 13 8 10|10 9 7 4|
> NB.+---------+--------+
> rfr1 each X;Y NB. Relative freqs
> +---------------------+------------------------------+
> |0.325 0.25 0.275 0.15|0.2 0.266667 0.266667 0.266667|
> +---------------------+------------------------------+
> NB.+--------------------+------------------------------+
> NB.|0.225 0.325 0.2 0.25|0.333333 0.3 0.233333 0.133333|
> NB.+--------------------+------------------------------+
> NB. Comparisons
> crfr X;Y NB. Absolute
> 0.325 0.25 0.275 0.15
> 0.2 0.266667 0.266667 0.266667
> NB.9 13 8 10
> NB.10 9 7 4
> NB. load'~/user/temp.ijs'
> crfr X;Y NB. Relative
> 0.325 0.25 0.275 0.15
> 0.2 0.266667 0.266667 0.266667
> NB. 0.225 0.325 0.2 0.25
> NB.0.333333 0.3 0.233333 0.133333
> NB.You can supply your “alphabet” as Left argument..
> 'tagc' fr1 X NB. In your preferred order!
> 6 13 11 10
> NB.10 9 8 13
> NB.fns below sign off,{now moved to front}
> NB.Mike
> NB.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to