{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "pycharm": { "is_executing": false } }, "outputs": [ { "name": "stdout", "text": [ "a\nab\nabc\nb\nbc\nbcd\nc\ncd\ncde\nd\nde\ndef\ne\nef\nf\n" ], "output_type": "stream" } ], "source": "original_seq \u003d [\u0027a\u0027,\u0027b\u0027,\u0027c\u0027,\u0027d\u0027,\u0027e\u0027,\u0027f\u0027]\nmin_len \u003d 1\nmax_len \u003d 3\n\n\ncontig_seqs \u003d list()\n\nfor st in range(len(original_seq)):\n min_fin_index \u003d st + min_len\n max_fin_index \u003d min(st + max_len, len(original_seq)) + 1\n\n for fin in range(min_fin_index, max_fin_index):\n seq \u003d original_seq[st:fin]\n contig_seqs.append(seq)\n\nfor cs in contig_seqs:\n print(\u0027\u0027.join(cs))\n" }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": "from scipy import stats\nimport heapq # to extract n largest values with nlargest()\n\n# PARAMS\n\nseq \u003d [\u0027a\u0027,\u0027b\u0027,\u0027c\u0027,\u0027d\u0027,\u0027e\u0027,\u0027f\u0027,\u0027e\u0027] # trials\nN \u003d 2 # N as in N-Back\n\n\ntrials \u003d len(seq)\n\ndef count_targets_and_lures():\n # the first trials are distractors\n mask \u003d \u0027D\u0027 * N\n for index in range(N, trials):\n if seq[index] \u003d\u003d seq[index - N]:\n mask +\u003d \u0027T\u0027\n elif seq[index] in seq[index - N - 1:index - N + 1]:\n mask +\u003d \u0027L\u0027\n else:\n mask +\u003d \u0027D\u0027\n return mask.count(\u0027T\u0027), mask.count(\u0027L\u0027)\n\n\ntargets,lures \u003d count_targets_and_lures()\ntargets_norm \u003d stats.norm(targets, 0.5)\nskewness_norm \u003d stats.norm(0, 0.5)\n\ndef skewness_cost(choices):\n even_ratio \u003d len(seq) / len(choices)\n costs \u003d {c: abs(seq.count(c) - even_ratio) for c in choices}\n max_deviation_from_even_dist \u003d max(list(costs.values()))\n cost \u003d 1.0 - (skewness_norm.pdf(max_deviation_from_even_dist) / skewness_norm.pdf(0))\n return cost\n\n\n\ndef lures_ratio_cost():\n return 1.0 - targets_norm.pdf(targets)\n\n\ndef targets_ratio_cost():\n return 1.0 - targets_norm.pdf(targets)\n\ndef ralph2014_skewness(choices):\n freqs \u003d [float(seq.count(c)) for c in choices]\n ralph_skewed \u003d sum(heapq.nlargest(int(len(choices) / 2), freqs)) \u003e (trials * 2 / 3)\n return ralph_skewed", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n" } } } ], "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" }, "kernelspec": { "name": "python3", "language": "python", "display_name": "Python 3" } }, "nbformat": 4, "nbformat_minor": 0 }