Previous changeset 0:59f859ea3122 (2017-02-27) |
Commit message:
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/collapse_pop commit 1e75b0df5680c0cdd8b2b3e5d4c1f8077b430944" |
added:
collapse_pops.py collapse_pops.xml static/images/flowtools/liz_colorcode.png test-data/input.flowclr test-data/output.flowclr |
removed:
collapse_pop/collapse_pops.py collapse_pop/collapse_pops.xml collapse_pop/static/images/flowtools/liz_colorcode.png collapse_pop/test-data/input.flowclr collapse_pop/test-data/output.flowclr |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pop/collapse_pops.py --- a/collapse_pop/collapse_pops.py Mon Feb 27 12:43:35 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
[ |
@@ -1,110 +0,0 @@ -#!/usr/bin/env python -###################################################################### -# Copyright (c) 2016 Northrop Grumman. -# All rights reserved. -###################################################################### - -from __future__ import print_function -import sys -import pandas as pd - -from argparse import ArgumentParser - - -def is_int(s): - try: - int(s) - return True - except ValueError: - return False - - -def collapse_populations(in_file, out_file, populations, collapse_in, exit_code): - df = pd.read_table(in_file, dtype={'Population': object}) - df['new_population'] = df.Population - - for i, sets_pop in enumerate(populations): - df.loc[df['Population'].isin(sets_pop), ['new_population']] = collapse_in[i] - - df.Population = df.new_population - df.drop(['new_population'], inplace=True, axis=1) - - df.to_csv(out_file, sep="\t", index=False) - - sys.exit(exit_code) - - -if __name__ == "__main__": - parser = ArgumentParser( - prog="ExtractPop", - description="Extract events associated to given population numbers.") - - parser.add_argument( - '-i', - dest="input_file", - required=True, - help="File location for the text file.") - - parser.add_argument( - '-p', - dest="pops", - required=True, - action='append', - help="List of populations to collapse.") - - parser.add_argument( - '-o', - dest="output_file", - required=True, - help="Name of the output file.") - - parser.add_argument( - '-c', - dest="collapse_pop", - required=True, - action='append', - help="What to collapse the populations in.") - - args = parser.parse_args() - - # check populations - default_values_pop = ["i.e.:2,3,11,25", "default", "Default"] - default_values_col = ["i.e.:4", "default", "Default"] - pops = [p for p in args.pops] - popc = [pc.strip() for pc in args.collapse_pop] - exit_code = 0 - # Check sets of pops to collapse - populations = [] - total_pops = [] - for pop_set in pops: - if pop_set not in default_values_pop: - tmp_pops = pop_set.split(",") - for popn in tmp_pops: - if not is_int(popn): - sys.exit(6) - else: - total_pops.append(int(popn)) - strp_pops = [p.strip() for p in tmp_pops] - populations.append(strp_pops) - else: - sys.exit(4) - if len(total_pops) != len(set(total_pops)): - sys.exit(7) - # Check pops to collapse in - collapse_in = [] - for col_pop in popc: - if col_pop not in default_values_col: - if not is_int(col_pop): - sys.exit(6) - else: - if int(col_pop) > 40: - exit_code = 2 - collapse_in.append(col_pop) - else: - sys.exit(6) - if len(collapse_in) != len(set(collapse_in)): - exit_code += 3 - - collapse_populations(args.input_file, args.output_file, populations, collapse_in, exit_code) - - sys.exit(0) |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pop/collapse_pops.xml --- a/collapse_pop/collapse_pops.xml Mon Feb 27 12:43:35 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
[ |
@@ -1,89 +0,0 @@ -<tool id="collapse_populations" name="Collapse populations" version="1.0"> - <description>from FLOCK or Cross Sample analysis.</description> - <requirements> - <requirement type="package" version="0.17.1">pandas</requirement> - </requirements> - <stdio> - <exit_code range="2" level="warning" description="The color code only allows populations between 1 and 40." /> - <exit_code range="3" level="warning" description="The same population to collapse into is being used several times." /> - <exit_code range="4" level="fatal" description="Please provide a comma separated list of populations to collapse." /> - <exit_code range="5" level="warning" description="The color code only allows populations between 1 and 40, and the same population to collapse into is being used several times." /> - <exit_code range="6" level="fatal" description="The populations must be integers (i.e,: 1,2,4.)" /> - <exit_code range="7" level="fatal" description="The same population is being collapsed into 2 different populations." /> - </stdio> - <command><![CDATA[ - python $__tool_directory__/collapse_pops.py -o "${output}" -i "${input}" -p "${population}" -c "${collapse}" - #for $repeats in $repeat_option - -p "${repeats.population}" - -c "${repeats.collapse}" - #end for - ]]> - </command> - <inputs> - <param format="flowclr" name="input" type="data" label="Source file"/> - <param name="population" type="text" label="Collapse the following populations:" value="i.e.:2,3,11,25"/> - <param name="collapse" type="text" label="Into population:" value="i.e.:4"/> - <repeat name="repeat_option" title="more populations to manipulate:"> - <param name="population" type="text" label="Collapse the following populations:" value="i.e.:2,3,11,25"/> - <param name="collapse" type="text" label="Into population:" value="i.e.:4"/> - </repeat> - </inputs> - <outputs> - <data format="flowclr" name="output" label="${input.name} with renamed populations"/> - </outputs> - <tests> - <test> - <param name="input" value="input.flowclr"/> - <param name="population" value="2,3,4"/> - <param name="collapse" value="1"/> - <output name="output" file="output.flowclr"/> - </test> - </tests> - <help><![CDATA[ - This tool collapses several populations into one. - ------ - -.. class:: warningmark - -Tip: You can use this tool to assign specific colors to your populations in the FLOCK and Cross Sample overview tools. The color scheme we use is the following: - -.. image:: static/images/liz_colorcode.png - ------ - -**Input** - -FLOCK or Cross Sample output - a table of the fluorescence intensities for each event and the population associated with each. - -**Output** - -The input file with selected populations replaced by the indicated population. - ------ - -**Example** - -*Input* - fluorescence intensities per marker and population ID per event:: - - Marker1 Marker2 Marker3 Population - 34 45 12 1 - 33 65 10 5 - 19 62 98 2 - 12 36 58 1 - -*Populations selected:* 2, 5 - -*Collapse into population:* 3 - -*Output* - fluorescence intensities per marker and population ID per event:: - - Marker1 Marker2 Marker3 Population - 34 45 12 1 - 33 65 10 3 - 19 62 98 3 - 12 36 58 1 - - ]]> - </help> -</tool> |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pop/static/images/flowtools/liz_colorcode.png |
b |
Binary file collapse_pop/static/images/flowtools/liz_colorcode.png has changed |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pop/test-data/input.flowclr --- a/collapse_pop/test-data/input.flowclr Mon Feb 27 12:43:35 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,1000 +0,0 @@\n-FSC\tSSC\tCD4\tCCR3\tCD8\tCCR7\tPopulation\n-672\t913\t185\t272\t264\t239\t25\n-369\t193\t0\t208\t32\t600\t4\n-590\t885\t113\t253\t262\t253\t21\n-369\t83\t534\t288\t586\t454\t8\n-287\t127\t0\t0\t568\t434\t11\n-400\t112\t545\t2\t680\t498\t3\n-460\t97\t528\t224\t643\t367\t8\n-592\t226\t572\t278\t639\t364\t13\n-359\t109\t139\t121\t626\t576\t11\n-665\t1023\t266\t211\t215\t219\t25\n-669\t928\t149\t211\t228\t185\t21\n-420\t115\t540\t244\t620\t521\t8\n-543\t296\t478\t69\t242\t208\t22\n-363\t171\t17\t469\t227\t470\t9\n-715\t1023\t207\t158\t279\t275\t25\n-828\t1023\t209\t326\t308\t272\t25\n-347\t91\t483\t87\t570\t528\t3\n-654\t1023\t104\t265\t289\t242\t25\n-366\t99\t484\t249\t645\t221\t13\n-315\t137\t70\t148\t104\t471\t4\n-379\t208\t82\t65\t668\t275\t6\n-385\t142\t526\t220\t652\t310\t8\n-622\t1023\t145\t241\t216\t266\t21\n-600\t1023\t151\t150\t284\t206\t21\n-450\t154\t552\t433\t695\t368\t13\n-405\t225\t85\t211\t163\t547\t4\n-430\t212\t534\t498\t646\t266\t13\n-729\t1023\t201\t288\t289\t301\t25\n-391\t127\t134\t127\t496\t624\t11\n-620\t1023\t164\t301\t217\t267\t25\n-718\t1023\t220\t273\t292\t165\t25\n-340\t78\t517\t283\t685\t532\t8\n-1023\t1023\t519\t526\t592\t406\t19\n-744\t1023\t174\t243\t223\t146\t25\n-667\t469\t406\t35\t199\t261\t22\n-356\t127\t489\t142\t641\t532\t3\n-696\t869\t462\t704\t588\t503\t19\n-367\t138\t72\t113\t650\t545\t11\n-655\t1023\t202\t296\t198\t171\t21\n-726\t325\t371\t270\t200\t285\t22\n-412\t206\t156\t45\t201\t564\t4\n-866\t1023\t181\t312\t333\t192\t25\n-705\t1023\t125\t177\t215\t233\t25\n-414\t194\t29\t40\t556\t556\t11\n-358\t93\t508\t116\t601\t488\t3\n-428\t220\t77\t304\t732\t352\t7\n-417\t191\t4\t175\t645\t549\t11\n-410\t97\t535\t264\t633\t429\t8\n-595\t974\t186\t252\t246\t206\t21\n-432\t208\t552\t35\t613\t273\t3\n-737\t1023\t177\t310\t239\t216\t25\n-729\t1023\t164\t152\t233\t137\t21\n-268\t116\t0\t0\t52\t447\t4\n-721\t1015\t163\t218\t254\t189\t25\n-346\t103\t540\t286\t692\t595\t8\n-429\t118\t33\t75\t655\t566\t11\n-434\t254\t123\t440\t43\t591\t9\n-750\t388\t533\t32\t252\t643\t22\n-331\t84\t489\t0\t677\t621\t3\n-398\t117\t528\t89\t618\t534\t3\n-678\t985\t271\t174\t287\t97\t21\n-375\t92\t531\t128\t637\t549\t3\n-962\t1023\t429\t352\t298\t339\t26\n-669\t1021\t141\t259\t272\t250\t25\n-466\t527\t144\t137\t230\t211\t12\n-428\t89\t495\t450\t621\t342\t13\n-360\t100\t90\t258\t612\t194\t7\n-335\t140\t528\t160\t656\t570\t8\n-363\t82\t513\t0\t584\t570\t3\n-341\t167\t106\t278\t183\t515\t4\n-395\t106\t555\t222\t631\t545\t8\n-299\t84\t483\t222\t643\t496\t8\n-407\t100\t508\t643\t606\t313\t13\n-460\t149\t560\t416\t644\t278\t13\n-670\t1023\t200\t332\t295\t265\t25\n-778\t1003\t133\t232\t263\t230\t25\n-794\t1023\t166\t294\t255\t222\t25\n-296\t182\t37\t177\t0\t563\t4\n-449\t175\t528\t262\t601\t262\t13\n-421\t160\t384\t165\t639\t542\t8\n-343\t107\t484\t181\t659\t541\t8\n-868\t1023\t203\t252\t252\t246\t25\n-385\t140\t95\t524\t623\t627\t9\n-428\t350\t83\t623\t0\t302\t16\n-705\t1023\t177\t252\t283\t266\t25\n-448\t241\t551\t551\t619\t310\t13\n-322\t136\t492\t263\t638\t456\t8\n-364\t88\t0\t112\t178\t450\t4\n-670\t1010\t173\t230\t248\t282\t25\n-601\t923\t142\t228\t230\t186\t21\n-372\t95\t550\t236\t650\t443\t8\n-617\t1023\t207\t72\t324\t276\t21\n-636\t467\t354\t190\t289\t272\t22\n-698\t1023\t161\t263\t288\t261\t25\n-393\t86\t549\t108\t721\t522\t3\n-305\t99\t472\t490\t619\t448\t13\n-370\t75\t514\t409\t629\t337\t13\n-360\t128\t106\t234\t600\t425\t7\n-710\t486\t402\t300\t124\t258\t22\n-671\t1023\t113\t249\t281\t283\t25\n-739\t1023\t250\t293\t303\t300\t25\n-367\t179\t25\t348\t573\t399\t7\n-315\t92\t472\t241\t559\t460\t8\n-323\t82\t510\t367\t646\t463\t8\n-721\t1023\t192\t244\t277\t281\t25\n-702\t932\t429\t292\t316\t300\t25\n-328\t75\t419\t554\t556\t464\t13\n-628\t962\t238\t288\t283\t233\t25\n-337\t120\t531\t216\t671\t580\t8\n-496\t133\t534\t230\t597\t276\t13\n-402\t119\t487\t376\t563\t350\t13\n-325\t84\t474\t96\t645\t423\t3\n-764\t518\t393\t157\t302\t291\t22\n-409\t205\t158\t383\t296\t640\t9\n-327\t101\t516\t57\t677\t602\t3\n-385\t151\t555\t12\t670\t565\t3\n-609\t1017\t140\t192\t285\t252\t21\n-563\t971\t225\t221\t260\t162\t21\n-360\t106\t510\t282\t658\t442\t8\n-306\t126\t0\t278\t4\t544\t4\n-352\t108\t535\t119\t604\t477\t3\n-722\t1023\t201\t315\t247\t234\t25\n-375\t156\t69\t423\t201\t646\t9\n-313\t152\t27\t58\t0\t395\t4\n-397\t108\t550\t258\t680\t528\t8\n-419\t229\t131\t230\t665\t332\t7\n-391\t191\t143\t320\t564\t330\t7\n-337\t119\t529\t127\t629\t534\t3\n-262\t106\t0\t161\t71\t452\t4\n-404\t100\t527\t65\t640\t548\t3\n-647\t1023\t0\t270\t259\t295\t25\n-400\t140\t44\t0\t559\t616\t11\n-724\t1023\t200\t267\t279\t267\t25\n-318\t85\t497\t0\t642\t551\t3\n-783\t1023\t102\t263\t259\t340\t25\n-305\t79\t462\t114\t655\t555\t3\n-361\t105\t510\t156\t592\t498\t3\n-391\t118\t549\t122\t648\t514\t3\n-657\t1023\t158\t186\t265\t50\t21\n-358\t244\t61\t137\t686\t403\t6\n-694\t433\t494\t263\t258\t273\t22\n-671\t1023\t200\t223\t278\t266\t25\n-623\t1001\t166\t295\t287\t218\t21\n-377\t171\t487\t291\t544\t287\t13\n-343\t134\t512\t125\t644\t306\t3\n-453\t21'..b'\t423\t8\n-528\t413\t240\t482\t554\t769\t9\n-417\t125\t96\t147\t627\t615\t11\n-348\t110\t522\t216\t674\t483\t8\n-687\t526\t338\t171\t309\t238\t22\n-677\t1023\t172\t283\t244\t219\t25\n-381\t134\t554\t23\t642\t552\t3\n-419\t258\t37\t317\t686\t360\t7\n-349\t125\t519\t0\t644\t561\t3\n-400\t184\t38\t130\t629\t627\t11\n-391\t208\t523\t262\t610\t274\t13\n-503\t886\t204\t207\t223\t292\t21\n-421\t205\t67\t383\t703\t367\t7\n-357\t122\t506\t334\t632\t516\t8\n-699\t1023\t193\t308\t266\t232\t25\n-332\t90\t450\t579\t621\t424\t13\n-365\t188\t45\t0\t662\t387\t6\n-406\t106\t34\t110\t608\t583\t11\n-382\t205\t81\t60\t96\t551\t4\n-360\t122\t512\t0\t644\t497\t3\n-649\t276\t359\t0\t173\t231\t22\n-416\t134\t529\t500\t603\t324\t13\n-632\t1023\t213\t221\t213\t161\t21\n-375\t88\t529\t151\t658\t577\t3\n-455\t128\t552\t465\t649\t273\t13\n-402\t138\t121\t220\t598\t604\t11\n-815\t1023\t156\t324\t318\t319\t25\n-295\t88\t456\t499\t585\t532\t8\n-393\t574\t0\t246\t142\t193\t12\n-621\t1023\t255\t288\t314\t215\t25\n-342\t86\t490\t181\t619\t421\t8\n-343\t117\t531\t75\t652\t563\t3\n-347\t105\t504\t0\t666\t469\t3\n-615\t1023\t137\t274\t257\t254\t21\n-319\t66\t450\t512\t645\t420\t13\n-413\t130\t125\t0\t627\t569\t11\n-384\t92\t499\t0\t597\t439\t3\n-813\t1023\t137\t296\t245\t160\t25\n-733\t1023\t160\t304\t298\t220\t25\n-807\t1023\t147\t220\t228\t278\t25\n-461\t123\t177\t94\t616\t587\t11\n-339\t56\t470\t78\t645\t471\t3\n-366\t101\t514\t192\t662\t465\t8\n-597\t1023\t181\t255\t302\t206\t21\n-429\t174\t63\t78\t579\t625\t11\n-426\t211\t147\t172\t594\t652\t11\n-679\t944\t79\t237\t266\t189\t21\n-436\t112\t104\t0\t586\t462\t11\n-353\t123\t507\t160\t524\t485\t3\n-362\t388\t167\t213\t479\t248\t7\n-800\t1023\t217\t275\t301\t321\t25\n-357\t102\t534\t162\t623\t496\t3\n-690\t988\t172\t232\t210\t256\t25\n-416\t191\t156\t207\t641\t402\t7\n-401\t98\t549\t28\t616\t547\t3\n-350\t106\t521\t214\t622\t519\t8\n-409\t129\t508\t488\t673\t397\t13\n-435\t219\t50\t220\t138\t588\t4\n-631\t1023\t174\t41\t249\t248\t21\n-393\t153\t564\t140\t688\t569\t3\n-663\t1023\t112\t241\t241\t204\t21\n-438\t123\t559\t6\t663\t520\t3\n-396\t123\t537\t225\t645\t565\t8\n-774\t1023\t192\t275\t283\t206\t25\n-332\t204\t96\t73\t629\t278\t6\n-405\t129\t523\t228\t671\t468\t8\n-908\t1023\t475\t698\t479\t461\t19\n-411\t120\t551\t90\t688\t572\t3\n-391\t86\t528\t356\t652\t478\t8\n-706\t788\t94\t258\t220\t146\t21\n-348\t84\t519\t147\t651\t493\t3\n-405\t238\t133\t192\t144\t598\t4\n-744\t1023\t166\t261\t271\t241\t25\n-433\t219\t560\t471\t519\t256\t13\n-657\t1023\t145\t236\t223\t231\t21\n-373\t170\t188\t201\t666\t675\t11\n-415\t808\t333\t406\t378\t476\t23\n-377\t141\t557\t353\t677\t460\t8\n-382\t170\t534\t251\t637\t621\t8\n-355\t236\t170\t358\t514\t464\t7\n-385\t248\t346\t193\t231\t294\t18\n-419\t119\t563\t328\t675\t472\t8\n-376\t255\t140\t214\t20\t637\t4\n-613\t1023\t117\t174\t120\t250\t21\n-709\t635\t405\t212\t277\t310\t22\n-431\t188\t559\t586\t545\t324\t13\n-367\t110\t54\t103\t586\t579\t11\n-994\t1023\t391\t321\t351\t336\t26\n-364\t84\t534\t142\t679\t526\t3\n-402\t110\t515\t385\t623\t356\t13\n-409\t146\t542\t0\t669\t444\t3\n-727\t1023\t192\t308\t272\t271\t25\n-499\t798\t183\t250\t246\t293\t21\n-278\t103\t487\t166\t655\t559\t8\n-412\t110\t562\t296\t655\t522\t8\n-383\t133\t117\t72\t529\t540\t11\n-346\t119\t215\t167\t589\t524\t11\n-420\t106\t522\t205\t625\t496\t8\n-409\t157\t133\t165\t580\t290\t6\n-348\t72\t135\t234\t0\t438\t4\n-646\t1004\t126\t186\t267\t257\t21\n-779\t499\t428\t213\t203\t150\t24\n-688\t565\t462\t265\t194\t246\t22\n-432\t176\t509\t374\t569\t244\t13\n-325\t153\t0\t181\t601\t322\t6\n-709\t1023\t202\t234\t189\t172\t25\n-331\t67\t492\t0\t599\t521\t3\n-364\t157\t67\t146\t649\t337\t6\n-722\t1023\t192\t264\t258\t228\t25\n-654\t1023\t168\t213\t196\t128\t21\n-690\t1023\t226\t222\t281\t293\t25\n-769\t1023\t205\t298\t223\t263\t25\n-276\t119\t0\t256\t95\t505\t4\n-328\t134\t536\t362\t640\t385\t13\n-414\t182\t98\t210\t612\t521\t11\n-409\t84\t100\t245\t569\t344\t7\n-357\t111\t505\t163\t667\t507\t8\n-769\t975\t168\t278\t224\t134\t25\n-522\t1023\t83\t236\t232\t261\t21\n-730\t1023\t189\t234\t294\t255\t25\n-371\t188\t125\t89\t623\t306\t6\n-391\t139\t522\t437\t622\t266\t13\n-424\t261\t153\t440\t742\t731\t9\n-412\t132\t90\t0\t595\t541\t11\n-612\t554\t374\t266\t210\t323\t22\n-381\t132\t108\t0\t639\t646\t11\n-360\t126\t530\t71\t641\t501\t3\n-579\t974\t68\t194\t251\t225\t21\n-807\t1023\t182\t286\t279\t309\t25\n-826\t1023\t185\t260\t252\t183\t25\n-374\t93\t547\t240\t657\t514\t8\n-395\t106\t500\t246\t566\t287\t13\n-732\t1023\t201\t297\t307\t229\t25\n-397\t134\t542\t95\t687\t598\t3\n-333\t97\t498\t178\t590\t385\t8\n-459\t243\t95\t327\t678\t466\t7\n-397\t174\t25\t20\t654\t616\t11\n-723\t1023\t203\t75\t266\t302\t25\n-507\t158\t526\t485\t550\t190\t13\n-600\t569\t381\t264\t249\t280\t22\n-410\t120\t64\t97\t583\t602\t11\n-343\t103\t526\t140\t685\t482\t3\n-362\t99\t511\t191\t571\t558\t8\n-546\t1023\t181\t286\t234\t244\t21\n-379\t82\t521\t246\t653\t501\t8\n-439\t165\t551\t463\t703\t352\t13\n-298\t125\t0\t260\t186\t485\t4\n-693\t1023\t165\t268\t310\t188\t25\n' |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pop/test-data/output.flowclr --- a/collapse_pop/test-data/output.flowclr Mon Feb 27 12:43:35 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,1000 +0,0 @@\n-FSC\tSSC\tCD4\tCCR3\tCD8\tCCR7\tPopulation\n-672\t913\t185\t272\t264\t239\t25\n-369\t193\t0\t208\t32\t600\t1\n-590\t885\t113\t253\t262\t253\t21\n-369\t83\t534\t288\t586\t454\t8\n-287\t127\t0\t0\t568\t434\t11\n-400\t112\t545\t2\t680\t498\t1\n-460\t97\t528\t224\t643\t367\t8\n-592\t226\t572\t278\t639\t364\t13\n-359\t109\t139\t121\t626\t576\t11\n-665\t1023\t266\t211\t215\t219\t25\n-669\t928\t149\t211\t228\t185\t21\n-420\t115\t540\t244\t620\t521\t8\n-543\t296\t478\t69\t242\t208\t22\n-363\t171\t17\t469\t227\t470\t9\n-715\t1023\t207\t158\t279\t275\t25\n-828\t1023\t209\t326\t308\t272\t25\n-347\t91\t483\t87\t570\t528\t1\n-654\t1023\t104\t265\t289\t242\t25\n-366\t99\t484\t249\t645\t221\t13\n-315\t137\t70\t148\t104\t471\t1\n-379\t208\t82\t65\t668\t275\t6\n-385\t142\t526\t220\t652\t310\t8\n-622\t1023\t145\t241\t216\t266\t21\n-600\t1023\t151\t150\t284\t206\t21\n-450\t154\t552\t433\t695\t368\t13\n-405\t225\t85\t211\t163\t547\t1\n-430\t212\t534\t498\t646\t266\t13\n-729\t1023\t201\t288\t289\t301\t25\n-391\t127\t134\t127\t496\t624\t11\n-620\t1023\t164\t301\t217\t267\t25\n-718\t1023\t220\t273\t292\t165\t25\n-340\t78\t517\t283\t685\t532\t8\n-1023\t1023\t519\t526\t592\t406\t19\n-744\t1023\t174\t243\t223\t146\t25\n-667\t469\t406\t35\t199\t261\t22\n-356\t127\t489\t142\t641\t532\t1\n-696\t869\t462\t704\t588\t503\t19\n-367\t138\t72\t113\t650\t545\t11\n-655\t1023\t202\t296\t198\t171\t21\n-726\t325\t371\t270\t200\t285\t22\n-412\t206\t156\t45\t201\t564\t1\n-866\t1023\t181\t312\t333\t192\t25\n-705\t1023\t125\t177\t215\t233\t25\n-414\t194\t29\t40\t556\t556\t11\n-358\t93\t508\t116\t601\t488\t1\n-428\t220\t77\t304\t732\t352\t7\n-417\t191\t4\t175\t645\t549\t11\n-410\t97\t535\t264\t633\t429\t8\n-595\t974\t186\t252\t246\t206\t21\n-432\t208\t552\t35\t613\t273\t1\n-737\t1023\t177\t310\t239\t216\t25\n-729\t1023\t164\t152\t233\t137\t21\n-268\t116\t0\t0\t52\t447\t1\n-721\t1015\t163\t218\t254\t189\t25\n-346\t103\t540\t286\t692\t595\t8\n-429\t118\t33\t75\t655\t566\t11\n-434\t254\t123\t440\t43\t591\t9\n-750\t388\t533\t32\t252\t643\t22\n-331\t84\t489\t0\t677\t621\t1\n-398\t117\t528\t89\t618\t534\t1\n-678\t985\t271\t174\t287\t97\t21\n-375\t92\t531\t128\t637\t549\t1\n-962\t1023\t429\t352\t298\t339\t26\n-669\t1021\t141\t259\t272\t250\t25\n-466\t527\t144\t137\t230\t211\t12\n-428\t89\t495\t450\t621\t342\t13\n-360\t100\t90\t258\t612\t194\t7\n-335\t140\t528\t160\t656\t570\t8\n-363\t82\t513\t0\t584\t570\t1\n-341\t167\t106\t278\t183\t515\t1\n-395\t106\t555\t222\t631\t545\t8\n-299\t84\t483\t222\t643\t496\t8\n-407\t100\t508\t643\t606\t313\t13\n-460\t149\t560\t416\t644\t278\t13\n-670\t1023\t200\t332\t295\t265\t25\n-778\t1003\t133\t232\t263\t230\t25\n-794\t1023\t166\t294\t255\t222\t25\n-296\t182\t37\t177\t0\t563\t1\n-449\t175\t528\t262\t601\t262\t13\n-421\t160\t384\t165\t639\t542\t8\n-343\t107\t484\t181\t659\t541\t8\n-868\t1023\t203\t252\t252\t246\t25\n-385\t140\t95\t524\t623\t627\t9\n-428\t350\t83\t623\t0\t302\t16\n-705\t1023\t177\t252\t283\t266\t25\n-448\t241\t551\t551\t619\t310\t13\n-322\t136\t492\t263\t638\t456\t8\n-364\t88\t0\t112\t178\t450\t1\n-670\t1010\t173\t230\t248\t282\t25\n-601\t923\t142\t228\t230\t186\t21\n-372\t95\t550\t236\t650\t443\t8\n-617\t1023\t207\t72\t324\t276\t21\n-636\t467\t354\t190\t289\t272\t22\n-698\t1023\t161\t263\t288\t261\t25\n-393\t86\t549\t108\t721\t522\t1\n-305\t99\t472\t490\t619\t448\t13\n-370\t75\t514\t409\t629\t337\t13\n-360\t128\t106\t234\t600\t425\t7\n-710\t486\t402\t300\t124\t258\t22\n-671\t1023\t113\t249\t281\t283\t25\n-739\t1023\t250\t293\t303\t300\t25\n-367\t179\t25\t348\t573\t399\t7\n-315\t92\t472\t241\t559\t460\t8\n-323\t82\t510\t367\t646\t463\t8\n-721\t1023\t192\t244\t277\t281\t25\n-702\t932\t429\t292\t316\t300\t25\n-328\t75\t419\t554\t556\t464\t13\n-628\t962\t238\t288\t283\t233\t25\n-337\t120\t531\t216\t671\t580\t8\n-496\t133\t534\t230\t597\t276\t13\n-402\t119\t487\t376\t563\t350\t13\n-325\t84\t474\t96\t645\t423\t1\n-764\t518\t393\t157\t302\t291\t22\n-409\t205\t158\t383\t296\t640\t9\n-327\t101\t516\t57\t677\t602\t1\n-385\t151\t555\t12\t670\t565\t1\n-609\t1017\t140\t192\t285\t252\t21\n-563\t971\t225\t221\t260\t162\t21\n-360\t106\t510\t282\t658\t442\t8\n-306\t126\t0\t278\t4\t544\t1\n-352\t108\t535\t119\t604\t477\t1\n-722\t1023\t201\t315\t247\t234\t25\n-375\t156\t69\t423\t201\t646\t9\n-313\t152\t27\t58\t0\t395\t1\n-397\t108\t550\t258\t680\t528\t8\n-419\t229\t131\t230\t665\t332\t7\n-391\t191\t143\t320\t564\t330\t7\n-337\t119\t529\t127\t629\t534\t1\n-262\t106\t0\t161\t71\t452\t1\n-404\t100\t527\t65\t640\t548\t1\n-647\t1023\t0\t270\t259\t295\t25\n-400\t140\t44\t0\t559\t616\t11\n-724\t1023\t200\t267\t279\t267\t25\n-318\t85\t497\t0\t642\t551\t1\n-783\t1023\t102\t263\t259\t340\t25\n-305\t79\t462\t114\t655\t555\t1\n-361\t105\t510\t156\t592\t498\t1\n-391\t118\t549\t122\t648\t514\t1\n-657\t1023\t158\t186\t265\t50\t21\n-358\t244\t61\t137\t686\t403\t6\n-694\t433\t494\t263\t258\t273\t22\n-671\t1023\t200\t223\t278\t266\t25\n-623\t1001\t166\t295\t287\t218\t21\n-377\t171\t487\t291\t544\t287\t13\n-343\t134\t512\t125\t644\t306\t1\n-453\t21'..b'\t423\t8\n-528\t413\t240\t482\t554\t769\t9\n-417\t125\t96\t147\t627\t615\t11\n-348\t110\t522\t216\t674\t483\t8\n-687\t526\t338\t171\t309\t238\t22\n-677\t1023\t172\t283\t244\t219\t25\n-381\t134\t554\t23\t642\t552\t1\n-419\t258\t37\t317\t686\t360\t7\n-349\t125\t519\t0\t644\t561\t1\n-400\t184\t38\t130\t629\t627\t11\n-391\t208\t523\t262\t610\t274\t13\n-503\t886\t204\t207\t223\t292\t21\n-421\t205\t67\t383\t703\t367\t7\n-357\t122\t506\t334\t632\t516\t8\n-699\t1023\t193\t308\t266\t232\t25\n-332\t90\t450\t579\t621\t424\t13\n-365\t188\t45\t0\t662\t387\t6\n-406\t106\t34\t110\t608\t583\t11\n-382\t205\t81\t60\t96\t551\t1\n-360\t122\t512\t0\t644\t497\t1\n-649\t276\t359\t0\t173\t231\t22\n-416\t134\t529\t500\t603\t324\t13\n-632\t1023\t213\t221\t213\t161\t21\n-375\t88\t529\t151\t658\t577\t1\n-455\t128\t552\t465\t649\t273\t13\n-402\t138\t121\t220\t598\t604\t11\n-815\t1023\t156\t324\t318\t319\t25\n-295\t88\t456\t499\t585\t532\t8\n-393\t574\t0\t246\t142\t193\t12\n-621\t1023\t255\t288\t314\t215\t25\n-342\t86\t490\t181\t619\t421\t8\n-343\t117\t531\t75\t652\t563\t1\n-347\t105\t504\t0\t666\t469\t1\n-615\t1023\t137\t274\t257\t254\t21\n-319\t66\t450\t512\t645\t420\t13\n-413\t130\t125\t0\t627\t569\t11\n-384\t92\t499\t0\t597\t439\t1\n-813\t1023\t137\t296\t245\t160\t25\n-733\t1023\t160\t304\t298\t220\t25\n-807\t1023\t147\t220\t228\t278\t25\n-461\t123\t177\t94\t616\t587\t11\n-339\t56\t470\t78\t645\t471\t1\n-366\t101\t514\t192\t662\t465\t8\n-597\t1023\t181\t255\t302\t206\t21\n-429\t174\t63\t78\t579\t625\t11\n-426\t211\t147\t172\t594\t652\t11\n-679\t944\t79\t237\t266\t189\t21\n-436\t112\t104\t0\t586\t462\t11\n-353\t123\t507\t160\t524\t485\t1\n-362\t388\t167\t213\t479\t248\t7\n-800\t1023\t217\t275\t301\t321\t25\n-357\t102\t534\t162\t623\t496\t1\n-690\t988\t172\t232\t210\t256\t25\n-416\t191\t156\t207\t641\t402\t7\n-401\t98\t549\t28\t616\t547\t1\n-350\t106\t521\t214\t622\t519\t8\n-409\t129\t508\t488\t673\t397\t13\n-435\t219\t50\t220\t138\t588\t1\n-631\t1023\t174\t41\t249\t248\t21\n-393\t153\t564\t140\t688\t569\t1\n-663\t1023\t112\t241\t241\t204\t21\n-438\t123\t559\t6\t663\t520\t1\n-396\t123\t537\t225\t645\t565\t8\n-774\t1023\t192\t275\t283\t206\t25\n-332\t204\t96\t73\t629\t278\t6\n-405\t129\t523\t228\t671\t468\t8\n-908\t1023\t475\t698\t479\t461\t19\n-411\t120\t551\t90\t688\t572\t1\n-391\t86\t528\t356\t652\t478\t8\n-706\t788\t94\t258\t220\t146\t21\n-348\t84\t519\t147\t651\t493\t1\n-405\t238\t133\t192\t144\t598\t1\n-744\t1023\t166\t261\t271\t241\t25\n-433\t219\t560\t471\t519\t256\t13\n-657\t1023\t145\t236\t223\t231\t21\n-373\t170\t188\t201\t666\t675\t11\n-415\t808\t333\t406\t378\t476\t23\n-377\t141\t557\t353\t677\t460\t8\n-382\t170\t534\t251\t637\t621\t8\n-355\t236\t170\t358\t514\t464\t7\n-385\t248\t346\t193\t231\t294\t18\n-419\t119\t563\t328\t675\t472\t8\n-376\t255\t140\t214\t20\t637\t1\n-613\t1023\t117\t174\t120\t250\t21\n-709\t635\t405\t212\t277\t310\t22\n-431\t188\t559\t586\t545\t324\t13\n-367\t110\t54\t103\t586\t579\t11\n-994\t1023\t391\t321\t351\t336\t26\n-364\t84\t534\t142\t679\t526\t1\n-402\t110\t515\t385\t623\t356\t13\n-409\t146\t542\t0\t669\t444\t1\n-727\t1023\t192\t308\t272\t271\t25\n-499\t798\t183\t250\t246\t293\t21\n-278\t103\t487\t166\t655\t559\t8\n-412\t110\t562\t296\t655\t522\t8\n-383\t133\t117\t72\t529\t540\t11\n-346\t119\t215\t167\t589\t524\t11\n-420\t106\t522\t205\t625\t496\t8\n-409\t157\t133\t165\t580\t290\t6\n-348\t72\t135\t234\t0\t438\t1\n-646\t1004\t126\t186\t267\t257\t21\n-779\t499\t428\t213\t203\t150\t24\n-688\t565\t462\t265\t194\t246\t22\n-432\t176\t509\t374\t569\t244\t13\n-325\t153\t0\t181\t601\t322\t6\n-709\t1023\t202\t234\t189\t172\t25\n-331\t67\t492\t0\t599\t521\t1\n-364\t157\t67\t146\t649\t337\t6\n-722\t1023\t192\t264\t258\t228\t25\n-654\t1023\t168\t213\t196\t128\t21\n-690\t1023\t226\t222\t281\t293\t25\n-769\t1023\t205\t298\t223\t263\t25\n-276\t119\t0\t256\t95\t505\t1\n-328\t134\t536\t362\t640\t385\t13\n-414\t182\t98\t210\t612\t521\t11\n-409\t84\t100\t245\t569\t344\t7\n-357\t111\t505\t163\t667\t507\t8\n-769\t975\t168\t278\t224\t134\t25\n-522\t1023\t83\t236\t232\t261\t21\n-730\t1023\t189\t234\t294\t255\t25\n-371\t188\t125\t89\t623\t306\t6\n-391\t139\t522\t437\t622\t266\t13\n-424\t261\t153\t440\t742\t731\t9\n-412\t132\t90\t0\t595\t541\t11\n-612\t554\t374\t266\t210\t323\t22\n-381\t132\t108\t0\t639\t646\t11\n-360\t126\t530\t71\t641\t501\t1\n-579\t974\t68\t194\t251\t225\t21\n-807\t1023\t182\t286\t279\t309\t25\n-826\t1023\t185\t260\t252\t183\t25\n-374\t93\t547\t240\t657\t514\t8\n-395\t106\t500\t246\t566\t287\t13\n-732\t1023\t201\t297\t307\t229\t25\n-397\t134\t542\t95\t687\t598\t1\n-333\t97\t498\t178\t590\t385\t8\n-459\t243\t95\t327\t678\t466\t7\n-397\t174\t25\t20\t654\t616\t11\n-723\t1023\t203\t75\t266\t302\t25\n-507\t158\t526\t485\t550\t190\t13\n-600\t569\t381\t264\t249\t280\t22\n-410\t120\t64\t97\t583\t602\t11\n-343\t103\t526\t140\t685\t482\t1\n-362\t99\t511\t191\t571\t558\t8\n-546\t1023\t181\t286\t234\t244\t21\n-379\t82\t521\t246\t653\t501\t8\n-439\t165\t551\t463\t703\t352\t13\n-298\t125\t0\t260\t186\t485\t1\n-693\t1023\t165\t268\t310\t188\t25\n' |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pops.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/collapse_pops.py Mon Jun 22 16:34:35 2020 -0400 |
[ |
@@ -0,0 +1,108 @@ +#!/usr/bin/env python +###################################################################### +# Copyright (c) 2016 Northrop Grumman. +# All rights reserved. +###################################################################### + +from __future__ import print_function +import sys +import pandas as pd + +from argparse import ArgumentParser + + +def is_int(s): + try: + int(s) + return True + except ValueError: + return False + + +def collapse_populations(in_file, out_file, populations, collapse_in, exit_code): + df = pd.read_table(in_file, dtype={'Population': object}) + df['new_population'] = df.Population + + for i, sets_pop in enumerate(populations): + df.loc[df['Population'].isin(sets_pop), ['new_population']] = collapse_in[i] + + df.Population = df.new_population + df.drop(['new_population'], inplace=True, axis=1) + + df.to_csv(out_file, sep="\t", index=False) + + sys.exit(exit_code) + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="ExtractPop", + description="Extract events associated to given population numbers.") + + parser.add_argument( + '-i', + dest="input_file", + required=True, + help="File location for the text file.") + + parser.add_argument( + '-p', + dest="pops", + required=True, + action='append', + help="List of populations to collapse.") + + parser.add_argument( + '-o', + dest="output_file", + required=True, + help="Name of the output file.") + + parser.add_argument( + '-c', + dest="collapse_pop", + required=True, + action='append', + help="What to collapse the populations in.") + + args = parser.parse_args() + + # check populations + default_values_pop = ["i.e.:2,3,11,25", "default", "Default"] + default_values_col = ["i.e.:4", "default", "Default"] + pops = [p for p in args.pops] + popc = [pc.strip() for pc in args.collapse_pop] + exit_code = 0 + # Check sets of pops to collapse + populations = [] + total_pops = [] + for pop_set in pops: + if pop_set not in default_values_pop: + tmp_pops = pop_set.split(",") + for popn in tmp_pops: + if not is_int(popn): + sys.exit(6) + else: + total_pops.append(int(popn)) + strp_pops = [p.strip() for p in tmp_pops] + populations.append(strp_pops) + else: + sys.exit(4) + if len(total_pops) != len(set(total_pops)): + sys.exit(7) + # Check pops to collapse in + collapse_in = [] + for col_pop in popc: + if col_pop not in default_values_col: + if not is_int(col_pop): + sys.exit(6) + else: + if int(col_pop) > 40: + exit_code = 2 + collapse_in.append(col_pop) + else: + sys.exit(6) + if len(collapse_in) != len(set(collapse_in)): + exit_code += 3 + + collapse_populations(args.input_file, args.output_file, populations, collapse_in, exit_code) |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 collapse_pops.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/collapse_pops.xml Mon Jun 22 16:34:35 2020 -0400 |
[ |
@@ -0,0 +1,91 @@ +<tool id="collapse_populations" name="Collapse populations" version="1.0+galaxy1"> + <description>from FLOCK or Cross Sample analysis</description> + <requirements> + <requirement type="package" version="0.17.1">pandas</requirement> + </requirements> + <stdio> + <exit_code range="2" level="warning" description="The color code only allows populations between 1 and 40." /> + <exit_code range="3" level="warning" description="The same population to collapse into is being used several times." /> + <exit_code range="4" level="fatal" description="Please provide a comma separated list of populations to collapse." /> + <exit_code range="5" level="warning" description="The color code only allows populations between 1 and 40, and the same population to collapse into is being used several times." /> + <exit_code range="6" level="fatal" description="The populations must be integers (i.e,: 1,2,4.)" /> + <exit_code range="7" level="fatal" description="The same population is being collapsed into 2 different populations." /> + </stdio> + <command><![CDATA[ + python '$__tool_directory__/collapse_pops.py' -o '${output}' -i '${input}' -p '${population}' -c '${collapse}' + #for $repeats in $repeat_option + -p '${repeats.population}' + -c '${repeats.collapse}' + #end for + ]]> + </command> + <inputs> + <param format="flowclr" name="input" type="data" label="Source file"/> + <param name="population" type="text" label="Collapse the following populations:" value="i.e.:2,3,11,25"/> + <param name="collapse" type="text" label="Into population:" value="i.e.:4"/> + <repeat name="repeat_option" title="more populations to manipulate:"> + <param name="population" type="text" label="Collapse the following populations:" value="i.e.:2,3,11,25"/> + <param name="collapse" type="text" label="Into population:" value="i.e.:4"/> + </repeat> + </inputs> + <outputs> + <data format="flowclr" name="output" label="${input.name} with renamed populations"/> + </outputs> + <tests> + <test> + <param name="input" value="input.flowclr"/> + <param name="population" value="2,3,4"/> + <param name="collapse" value="1"/> + <output name="output" file="output.flowclr"/> + </test> + </tests> + <help><![CDATA[ + This tool collapses several populations into one. + +----- + +.. class:: warningmark + +Tip: You can use this tool to assign specific colors to your populations in the FLOCK and Cross Sample overview tools. The color scheme we use is the following: + +.. image:: ./static/images/flowtools/liz_colorcode.png + +----- + +**Input** + +FLOCK or Cross Sample output - a table of the fluorescence intensities for each event and the population associated with each. + +**Output** + +The input file with selected populations replaced by the indicated population. + +----- + +**Example** + +*Input* - fluorescence intensities per marker and population ID per event:: + + Marker1 Marker2 Marker3 ... Population + 34 45 12 ... 1 + 33 65 10 ... 5 + 19 62 98 ... 2 + 12 36 58 ... 1 + ... ... ... ... ... + +*Populations selected:* 2, 5 + +*Collapse into population:* 3 + +*Output* - fluorescence intensities per marker and population ID per event:: + + Marker1 Marker2 Marker3 ... Population + 34 45 12 ... 1 + 33 65 10 ... 3 + 19 62 98 ... 3 + 12 36 58 ... 1 + ... ... ... ... ... + + ]]> + </help> +</tool> |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 static/images/flowtools/liz_colorcode.png |
b |
Binary file static/images/flowtools/liz_colorcode.png has changed |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 test-data/input.flowclr --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input.flowclr Mon Jun 22 16:34:35 2020 -0400 |
b |
b'@@ -0,0 +1,1000 @@\n+FSC\tSSC\tCD4\tCCR3\tCD8\tCCR7\tPopulation\n+672\t913\t185\t272\t264\t239\t25\n+369\t193\t0\t208\t32\t600\t4\n+590\t885\t113\t253\t262\t253\t21\n+369\t83\t534\t288\t586\t454\t8\n+287\t127\t0\t0\t568\t434\t11\n+400\t112\t545\t2\t680\t498\t3\n+460\t97\t528\t224\t643\t367\t8\n+592\t226\t572\t278\t639\t364\t13\n+359\t109\t139\t121\t626\t576\t11\n+665\t1023\t266\t211\t215\t219\t25\n+669\t928\t149\t211\t228\t185\t21\n+420\t115\t540\t244\t620\t521\t8\n+543\t296\t478\t69\t242\t208\t22\n+363\t171\t17\t469\t227\t470\t9\n+715\t1023\t207\t158\t279\t275\t25\n+828\t1023\t209\t326\t308\t272\t25\n+347\t91\t483\t87\t570\t528\t3\n+654\t1023\t104\t265\t289\t242\t25\n+366\t99\t484\t249\t645\t221\t13\n+315\t137\t70\t148\t104\t471\t4\n+379\t208\t82\t65\t668\t275\t6\n+385\t142\t526\t220\t652\t310\t8\n+622\t1023\t145\t241\t216\t266\t21\n+600\t1023\t151\t150\t284\t206\t21\n+450\t154\t552\t433\t695\t368\t13\n+405\t225\t85\t211\t163\t547\t4\n+430\t212\t534\t498\t646\t266\t13\n+729\t1023\t201\t288\t289\t301\t25\n+391\t127\t134\t127\t496\t624\t11\n+620\t1023\t164\t301\t217\t267\t25\n+718\t1023\t220\t273\t292\t165\t25\n+340\t78\t517\t283\t685\t532\t8\n+1023\t1023\t519\t526\t592\t406\t19\n+744\t1023\t174\t243\t223\t146\t25\n+667\t469\t406\t35\t199\t261\t22\n+356\t127\t489\t142\t641\t532\t3\n+696\t869\t462\t704\t588\t503\t19\n+367\t138\t72\t113\t650\t545\t11\n+655\t1023\t202\t296\t198\t171\t21\n+726\t325\t371\t270\t200\t285\t22\n+412\t206\t156\t45\t201\t564\t4\n+866\t1023\t181\t312\t333\t192\t25\n+705\t1023\t125\t177\t215\t233\t25\n+414\t194\t29\t40\t556\t556\t11\n+358\t93\t508\t116\t601\t488\t3\n+428\t220\t77\t304\t732\t352\t7\n+417\t191\t4\t175\t645\t549\t11\n+410\t97\t535\t264\t633\t429\t8\n+595\t974\t186\t252\t246\t206\t21\n+432\t208\t552\t35\t613\t273\t3\n+737\t1023\t177\t310\t239\t216\t25\n+729\t1023\t164\t152\t233\t137\t21\n+268\t116\t0\t0\t52\t447\t4\n+721\t1015\t163\t218\t254\t189\t25\n+346\t103\t540\t286\t692\t595\t8\n+429\t118\t33\t75\t655\t566\t11\n+434\t254\t123\t440\t43\t591\t9\n+750\t388\t533\t32\t252\t643\t22\n+331\t84\t489\t0\t677\t621\t3\n+398\t117\t528\t89\t618\t534\t3\n+678\t985\t271\t174\t287\t97\t21\n+375\t92\t531\t128\t637\t549\t3\n+962\t1023\t429\t352\t298\t339\t26\n+669\t1021\t141\t259\t272\t250\t25\n+466\t527\t144\t137\t230\t211\t12\n+428\t89\t495\t450\t621\t342\t13\n+360\t100\t90\t258\t612\t194\t7\n+335\t140\t528\t160\t656\t570\t8\n+363\t82\t513\t0\t584\t570\t3\n+341\t167\t106\t278\t183\t515\t4\n+395\t106\t555\t222\t631\t545\t8\n+299\t84\t483\t222\t643\t496\t8\n+407\t100\t508\t643\t606\t313\t13\n+460\t149\t560\t416\t644\t278\t13\n+670\t1023\t200\t332\t295\t265\t25\n+778\t1003\t133\t232\t263\t230\t25\n+794\t1023\t166\t294\t255\t222\t25\n+296\t182\t37\t177\t0\t563\t4\n+449\t175\t528\t262\t601\t262\t13\n+421\t160\t384\t165\t639\t542\t8\n+343\t107\t484\t181\t659\t541\t8\n+868\t1023\t203\t252\t252\t246\t25\n+385\t140\t95\t524\t623\t627\t9\n+428\t350\t83\t623\t0\t302\t16\n+705\t1023\t177\t252\t283\t266\t25\n+448\t241\t551\t551\t619\t310\t13\n+322\t136\t492\t263\t638\t456\t8\n+364\t88\t0\t112\t178\t450\t4\n+670\t1010\t173\t230\t248\t282\t25\n+601\t923\t142\t228\t230\t186\t21\n+372\t95\t550\t236\t650\t443\t8\n+617\t1023\t207\t72\t324\t276\t21\n+636\t467\t354\t190\t289\t272\t22\n+698\t1023\t161\t263\t288\t261\t25\n+393\t86\t549\t108\t721\t522\t3\n+305\t99\t472\t490\t619\t448\t13\n+370\t75\t514\t409\t629\t337\t13\n+360\t128\t106\t234\t600\t425\t7\n+710\t486\t402\t300\t124\t258\t22\n+671\t1023\t113\t249\t281\t283\t25\n+739\t1023\t250\t293\t303\t300\t25\n+367\t179\t25\t348\t573\t399\t7\n+315\t92\t472\t241\t559\t460\t8\n+323\t82\t510\t367\t646\t463\t8\n+721\t1023\t192\t244\t277\t281\t25\n+702\t932\t429\t292\t316\t300\t25\n+328\t75\t419\t554\t556\t464\t13\n+628\t962\t238\t288\t283\t233\t25\n+337\t120\t531\t216\t671\t580\t8\n+496\t133\t534\t230\t597\t276\t13\n+402\t119\t487\t376\t563\t350\t13\n+325\t84\t474\t96\t645\t423\t3\n+764\t518\t393\t157\t302\t291\t22\n+409\t205\t158\t383\t296\t640\t9\n+327\t101\t516\t57\t677\t602\t3\n+385\t151\t555\t12\t670\t565\t3\n+609\t1017\t140\t192\t285\t252\t21\n+563\t971\t225\t221\t260\t162\t21\n+360\t106\t510\t282\t658\t442\t8\n+306\t126\t0\t278\t4\t544\t4\n+352\t108\t535\t119\t604\t477\t3\n+722\t1023\t201\t315\t247\t234\t25\n+375\t156\t69\t423\t201\t646\t9\n+313\t152\t27\t58\t0\t395\t4\n+397\t108\t550\t258\t680\t528\t8\n+419\t229\t131\t230\t665\t332\t7\n+391\t191\t143\t320\t564\t330\t7\n+337\t119\t529\t127\t629\t534\t3\n+262\t106\t0\t161\t71\t452\t4\n+404\t100\t527\t65\t640\t548\t3\n+647\t1023\t0\t270\t259\t295\t25\n+400\t140\t44\t0\t559\t616\t11\n+724\t1023\t200\t267\t279\t267\t25\n+318\t85\t497\t0\t642\t551\t3\n+783\t1023\t102\t263\t259\t340\t25\n+305\t79\t462\t114\t655\t555\t3\n+361\t105\t510\t156\t592\t498\t3\n+391\t118\t549\t122\t648\t514\t3\n+657\t1023\t158\t186\t265\t50\t21\n+358\t244\t61\t137\t686\t403\t6\n+694\t433\t494\t263\t258\t273\t22\n+671\t1023\t200\t223\t278\t266\t25\n+623\t1001\t166\t295\t287\t218\t21\n+377\t171\t487\t291\t544\t287\t13\n+343\t134\t512\t125\t644\t306\t3\n+453\t21'..b'\t423\t8\n+528\t413\t240\t482\t554\t769\t9\n+417\t125\t96\t147\t627\t615\t11\n+348\t110\t522\t216\t674\t483\t8\n+687\t526\t338\t171\t309\t238\t22\n+677\t1023\t172\t283\t244\t219\t25\n+381\t134\t554\t23\t642\t552\t3\n+419\t258\t37\t317\t686\t360\t7\n+349\t125\t519\t0\t644\t561\t3\n+400\t184\t38\t130\t629\t627\t11\n+391\t208\t523\t262\t610\t274\t13\n+503\t886\t204\t207\t223\t292\t21\n+421\t205\t67\t383\t703\t367\t7\n+357\t122\t506\t334\t632\t516\t8\n+699\t1023\t193\t308\t266\t232\t25\n+332\t90\t450\t579\t621\t424\t13\n+365\t188\t45\t0\t662\t387\t6\n+406\t106\t34\t110\t608\t583\t11\n+382\t205\t81\t60\t96\t551\t4\n+360\t122\t512\t0\t644\t497\t3\n+649\t276\t359\t0\t173\t231\t22\n+416\t134\t529\t500\t603\t324\t13\n+632\t1023\t213\t221\t213\t161\t21\n+375\t88\t529\t151\t658\t577\t3\n+455\t128\t552\t465\t649\t273\t13\n+402\t138\t121\t220\t598\t604\t11\n+815\t1023\t156\t324\t318\t319\t25\n+295\t88\t456\t499\t585\t532\t8\n+393\t574\t0\t246\t142\t193\t12\n+621\t1023\t255\t288\t314\t215\t25\n+342\t86\t490\t181\t619\t421\t8\n+343\t117\t531\t75\t652\t563\t3\n+347\t105\t504\t0\t666\t469\t3\n+615\t1023\t137\t274\t257\t254\t21\n+319\t66\t450\t512\t645\t420\t13\n+413\t130\t125\t0\t627\t569\t11\n+384\t92\t499\t0\t597\t439\t3\n+813\t1023\t137\t296\t245\t160\t25\n+733\t1023\t160\t304\t298\t220\t25\n+807\t1023\t147\t220\t228\t278\t25\n+461\t123\t177\t94\t616\t587\t11\n+339\t56\t470\t78\t645\t471\t3\n+366\t101\t514\t192\t662\t465\t8\n+597\t1023\t181\t255\t302\t206\t21\n+429\t174\t63\t78\t579\t625\t11\n+426\t211\t147\t172\t594\t652\t11\n+679\t944\t79\t237\t266\t189\t21\n+436\t112\t104\t0\t586\t462\t11\n+353\t123\t507\t160\t524\t485\t3\n+362\t388\t167\t213\t479\t248\t7\n+800\t1023\t217\t275\t301\t321\t25\n+357\t102\t534\t162\t623\t496\t3\n+690\t988\t172\t232\t210\t256\t25\n+416\t191\t156\t207\t641\t402\t7\n+401\t98\t549\t28\t616\t547\t3\n+350\t106\t521\t214\t622\t519\t8\n+409\t129\t508\t488\t673\t397\t13\n+435\t219\t50\t220\t138\t588\t4\n+631\t1023\t174\t41\t249\t248\t21\n+393\t153\t564\t140\t688\t569\t3\n+663\t1023\t112\t241\t241\t204\t21\n+438\t123\t559\t6\t663\t520\t3\n+396\t123\t537\t225\t645\t565\t8\n+774\t1023\t192\t275\t283\t206\t25\n+332\t204\t96\t73\t629\t278\t6\n+405\t129\t523\t228\t671\t468\t8\n+908\t1023\t475\t698\t479\t461\t19\n+411\t120\t551\t90\t688\t572\t3\n+391\t86\t528\t356\t652\t478\t8\n+706\t788\t94\t258\t220\t146\t21\n+348\t84\t519\t147\t651\t493\t3\n+405\t238\t133\t192\t144\t598\t4\n+744\t1023\t166\t261\t271\t241\t25\n+433\t219\t560\t471\t519\t256\t13\n+657\t1023\t145\t236\t223\t231\t21\n+373\t170\t188\t201\t666\t675\t11\n+415\t808\t333\t406\t378\t476\t23\n+377\t141\t557\t353\t677\t460\t8\n+382\t170\t534\t251\t637\t621\t8\n+355\t236\t170\t358\t514\t464\t7\n+385\t248\t346\t193\t231\t294\t18\n+419\t119\t563\t328\t675\t472\t8\n+376\t255\t140\t214\t20\t637\t4\n+613\t1023\t117\t174\t120\t250\t21\n+709\t635\t405\t212\t277\t310\t22\n+431\t188\t559\t586\t545\t324\t13\n+367\t110\t54\t103\t586\t579\t11\n+994\t1023\t391\t321\t351\t336\t26\n+364\t84\t534\t142\t679\t526\t3\n+402\t110\t515\t385\t623\t356\t13\n+409\t146\t542\t0\t669\t444\t3\n+727\t1023\t192\t308\t272\t271\t25\n+499\t798\t183\t250\t246\t293\t21\n+278\t103\t487\t166\t655\t559\t8\n+412\t110\t562\t296\t655\t522\t8\n+383\t133\t117\t72\t529\t540\t11\n+346\t119\t215\t167\t589\t524\t11\n+420\t106\t522\t205\t625\t496\t8\n+409\t157\t133\t165\t580\t290\t6\n+348\t72\t135\t234\t0\t438\t4\n+646\t1004\t126\t186\t267\t257\t21\n+779\t499\t428\t213\t203\t150\t24\n+688\t565\t462\t265\t194\t246\t22\n+432\t176\t509\t374\t569\t244\t13\n+325\t153\t0\t181\t601\t322\t6\n+709\t1023\t202\t234\t189\t172\t25\n+331\t67\t492\t0\t599\t521\t3\n+364\t157\t67\t146\t649\t337\t6\n+722\t1023\t192\t264\t258\t228\t25\n+654\t1023\t168\t213\t196\t128\t21\n+690\t1023\t226\t222\t281\t293\t25\n+769\t1023\t205\t298\t223\t263\t25\n+276\t119\t0\t256\t95\t505\t4\n+328\t134\t536\t362\t640\t385\t13\n+414\t182\t98\t210\t612\t521\t11\n+409\t84\t100\t245\t569\t344\t7\n+357\t111\t505\t163\t667\t507\t8\n+769\t975\t168\t278\t224\t134\t25\n+522\t1023\t83\t236\t232\t261\t21\n+730\t1023\t189\t234\t294\t255\t25\n+371\t188\t125\t89\t623\t306\t6\n+391\t139\t522\t437\t622\t266\t13\n+424\t261\t153\t440\t742\t731\t9\n+412\t132\t90\t0\t595\t541\t11\n+612\t554\t374\t266\t210\t323\t22\n+381\t132\t108\t0\t639\t646\t11\n+360\t126\t530\t71\t641\t501\t3\n+579\t974\t68\t194\t251\t225\t21\n+807\t1023\t182\t286\t279\t309\t25\n+826\t1023\t185\t260\t252\t183\t25\n+374\t93\t547\t240\t657\t514\t8\n+395\t106\t500\t246\t566\t287\t13\n+732\t1023\t201\t297\t307\t229\t25\n+397\t134\t542\t95\t687\t598\t3\n+333\t97\t498\t178\t590\t385\t8\n+459\t243\t95\t327\t678\t466\t7\n+397\t174\t25\t20\t654\t616\t11\n+723\t1023\t203\t75\t266\t302\t25\n+507\t158\t526\t485\t550\t190\t13\n+600\t569\t381\t264\t249\t280\t22\n+410\t120\t64\t97\t583\t602\t11\n+343\t103\t526\t140\t685\t482\t3\n+362\t99\t511\t191\t571\t558\t8\n+546\t1023\t181\t286\t234\t244\t21\n+379\t82\t521\t246\t653\t501\t8\n+439\t165\t551\t463\t703\t352\t13\n+298\t125\t0\t260\t186\t485\t4\n+693\t1023\t165\t268\t310\t188\t25\n' |
b |
diff -r 59f859ea3122 -r a3ae90eb1232 test-data/output.flowclr --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.flowclr Mon Jun 22 16:34:35 2020 -0400 |
b |
b'@@ -0,0 +1,1000 @@\n+FSC\tSSC\tCD4\tCCR3\tCD8\tCCR7\tPopulation\n+672\t913\t185\t272\t264\t239\t25\n+369\t193\t0\t208\t32\t600\t1\n+590\t885\t113\t253\t262\t253\t21\n+369\t83\t534\t288\t586\t454\t8\n+287\t127\t0\t0\t568\t434\t11\n+400\t112\t545\t2\t680\t498\t1\n+460\t97\t528\t224\t643\t367\t8\n+592\t226\t572\t278\t639\t364\t13\n+359\t109\t139\t121\t626\t576\t11\n+665\t1023\t266\t211\t215\t219\t25\n+669\t928\t149\t211\t228\t185\t21\n+420\t115\t540\t244\t620\t521\t8\n+543\t296\t478\t69\t242\t208\t22\n+363\t171\t17\t469\t227\t470\t9\n+715\t1023\t207\t158\t279\t275\t25\n+828\t1023\t209\t326\t308\t272\t25\n+347\t91\t483\t87\t570\t528\t1\n+654\t1023\t104\t265\t289\t242\t25\n+366\t99\t484\t249\t645\t221\t13\n+315\t137\t70\t148\t104\t471\t1\n+379\t208\t82\t65\t668\t275\t6\n+385\t142\t526\t220\t652\t310\t8\n+622\t1023\t145\t241\t216\t266\t21\n+600\t1023\t151\t150\t284\t206\t21\n+450\t154\t552\t433\t695\t368\t13\n+405\t225\t85\t211\t163\t547\t1\n+430\t212\t534\t498\t646\t266\t13\n+729\t1023\t201\t288\t289\t301\t25\n+391\t127\t134\t127\t496\t624\t11\n+620\t1023\t164\t301\t217\t267\t25\n+718\t1023\t220\t273\t292\t165\t25\n+340\t78\t517\t283\t685\t532\t8\n+1023\t1023\t519\t526\t592\t406\t19\n+744\t1023\t174\t243\t223\t146\t25\n+667\t469\t406\t35\t199\t261\t22\n+356\t127\t489\t142\t641\t532\t1\n+696\t869\t462\t704\t588\t503\t19\n+367\t138\t72\t113\t650\t545\t11\n+655\t1023\t202\t296\t198\t171\t21\n+726\t325\t371\t270\t200\t285\t22\n+412\t206\t156\t45\t201\t564\t1\n+866\t1023\t181\t312\t333\t192\t25\n+705\t1023\t125\t177\t215\t233\t25\n+414\t194\t29\t40\t556\t556\t11\n+358\t93\t508\t116\t601\t488\t1\n+428\t220\t77\t304\t732\t352\t7\n+417\t191\t4\t175\t645\t549\t11\n+410\t97\t535\t264\t633\t429\t8\n+595\t974\t186\t252\t246\t206\t21\n+432\t208\t552\t35\t613\t273\t1\n+737\t1023\t177\t310\t239\t216\t25\n+729\t1023\t164\t152\t233\t137\t21\n+268\t116\t0\t0\t52\t447\t1\n+721\t1015\t163\t218\t254\t189\t25\n+346\t103\t540\t286\t692\t595\t8\n+429\t118\t33\t75\t655\t566\t11\n+434\t254\t123\t440\t43\t591\t9\n+750\t388\t533\t32\t252\t643\t22\n+331\t84\t489\t0\t677\t621\t1\n+398\t117\t528\t89\t618\t534\t1\n+678\t985\t271\t174\t287\t97\t21\n+375\t92\t531\t128\t637\t549\t1\n+962\t1023\t429\t352\t298\t339\t26\n+669\t1021\t141\t259\t272\t250\t25\n+466\t527\t144\t137\t230\t211\t12\n+428\t89\t495\t450\t621\t342\t13\n+360\t100\t90\t258\t612\t194\t7\n+335\t140\t528\t160\t656\t570\t8\n+363\t82\t513\t0\t584\t570\t1\n+341\t167\t106\t278\t183\t515\t1\n+395\t106\t555\t222\t631\t545\t8\n+299\t84\t483\t222\t643\t496\t8\n+407\t100\t508\t643\t606\t313\t13\n+460\t149\t560\t416\t644\t278\t13\n+670\t1023\t200\t332\t295\t265\t25\n+778\t1003\t133\t232\t263\t230\t25\n+794\t1023\t166\t294\t255\t222\t25\n+296\t182\t37\t177\t0\t563\t1\n+449\t175\t528\t262\t601\t262\t13\n+421\t160\t384\t165\t639\t542\t8\n+343\t107\t484\t181\t659\t541\t8\n+868\t1023\t203\t252\t252\t246\t25\n+385\t140\t95\t524\t623\t627\t9\n+428\t350\t83\t623\t0\t302\t16\n+705\t1023\t177\t252\t283\t266\t25\n+448\t241\t551\t551\t619\t310\t13\n+322\t136\t492\t263\t638\t456\t8\n+364\t88\t0\t112\t178\t450\t1\n+670\t1010\t173\t230\t248\t282\t25\n+601\t923\t142\t228\t230\t186\t21\n+372\t95\t550\t236\t650\t443\t8\n+617\t1023\t207\t72\t324\t276\t21\n+636\t467\t354\t190\t289\t272\t22\n+698\t1023\t161\t263\t288\t261\t25\n+393\t86\t549\t108\t721\t522\t1\n+305\t99\t472\t490\t619\t448\t13\n+370\t75\t514\t409\t629\t337\t13\n+360\t128\t106\t234\t600\t425\t7\n+710\t486\t402\t300\t124\t258\t22\n+671\t1023\t113\t249\t281\t283\t25\n+739\t1023\t250\t293\t303\t300\t25\n+367\t179\t25\t348\t573\t399\t7\n+315\t92\t472\t241\t559\t460\t8\n+323\t82\t510\t367\t646\t463\t8\n+721\t1023\t192\t244\t277\t281\t25\n+702\t932\t429\t292\t316\t300\t25\n+328\t75\t419\t554\t556\t464\t13\n+628\t962\t238\t288\t283\t233\t25\n+337\t120\t531\t216\t671\t580\t8\n+496\t133\t534\t230\t597\t276\t13\n+402\t119\t487\t376\t563\t350\t13\n+325\t84\t474\t96\t645\t423\t1\n+764\t518\t393\t157\t302\t291\t22\n+409\t205\t158\t383\t296\t640\t9\n+327\t101\t516\t57\t677\t602\t1\n+385\t151\t555\t12\t670\t565\t1\n+609\t1017\t140\t192\t285\t252\t21\n+563\t971\t225\t221\t260\t162\t21\n+360\t106\t510\t282\t658\t442\t8\n+306\t126\t0\t278\t4\t544\t1\n+352\t108\t535\t119\t604\t477\t1\n+722\t1023\t201\t315\t247\t234\t25\n+375\t156\t69\t423\t201\t646\t9\n+313\t152\t27\t58\t0\t395\t1\n+397\t108\t550\t258\t680\t528\t8\n+419\t229\t131\t230\t665\t332\t7\n+391\t191\t143\t320\t564\t330\t7\n+337\t119\t529\t127\t629\t534\t1\n+262\t106\t0\t161\t71\t452\t1\n+404\t100\t527\t65\t640\t548\t1\n+647\t1023\t0\t270\t259\t295\t25\n+400\t140\t44\t0\t559\t616\t11\n+724\t1023\t200\t267\t279\t267\t25\n+318\t85\t497\t0\t642\t551\t1\n+783\t1023\t102\t263\t259\t340\t25\n+305\t79\t462\t114\t655\t555\t1\n+361\t105\t510\t156\t592\t498\t1\n+391\t118\t549\t122\t648\t514\t1\n+657\t1023\t158\t186\t265\t50\t21\n+358\t244\t61\t137\t686\t403\t6\n+694\t433\t494\t263\t258\t273\t22\n+671\t1023\t200\t223\t278\t266\t25\n+623\t1001\t166\t295\t287\t218\t21\n+377\t171\t487\t291\t544\t287\t13\n+343\t134\t512\t125\t644\t306\t1\n+453\t21'..b'\t423\t8\n+528\t413\t240\t482\t554\t769\t9\n+417\t125\t96\t147\t627\t615\t11\n+348\t110\t522\t216\t674\t483\t8\n+687\t526\t338\t171\t309\t238\t22\n+677\t1023\t172\t283\t244\t219\t25\n+381\t134\t554\t23\t642\t552\t1\n+419\t258\t37\t317\t686\t360\t7\n+349\t125\t519\t0\t644\t561\t1\n+400\t184\t38\t130\t629\t627\t11\n+391\t208\t523\t262\t610\t274\t13\n+503\t886\t204\t207\t223\t292\t21\n+421\t205\t67\t383\t703\t367\t7\n+357\t122\t506\t334\t632\t516\t8\n+699\t1023\t193\t308\t266\t232\t25\n+332\t90\t450\t579\t621\t424\t13\n+365\t188\t45\t0\t662\t387\t6\n+406\t106\t34\t110\t608\t583\t11\n+382\t205\t81\t60\t96\t551\t1\n+360\t122\t512\t0\t644\t497\t1\n+649\t276\t359\t0\t173\t231\t22\n+416\t134\t529\t500\t603\t324\t13\n+632\t1023\t213\t221\t213\t161\t21\n+375\t88\t529\t151\t658\t577\t1\n+455\t128\t552\t465\t649\t273\t13\n+402\t138\t121\t220\t598\t604\t11\n+815\t1023\t156\t324\t318\t319\t25\n+295\t88\t456\t499\t585\t532\t8\n+393\t574\t0\t246\t142\t193\t12\n+621\t1023\t255\t288\t314\t215\t25\n+342\t86\t490\t181\t619\t421\t8\n+343\t117\t531\t75\t652\t563\t1\n+347\t105\t504\t0\t666\t469\t1\n+615\t1023\t137\t274\t257\t254\t21\n+319\t66\t450\t512\t645\t420\t13\n+413\t130\t125\t0\t627\t569\t11\n+384\t92\t499\t0\t597\t439\t1\n+813\t1023\t137\t296\t245\t160\t25\n+733\t1023\t160\t304\t298\t220\t25\n+807\t1023\t147\t220\t228\t278\t25\n+461\t123\t177\t94\t616\t587\t11\n+339\t56\t470\t78\t645\t471\t1\n+366\t101\t514\t192\t662\t465\t8\n+597\t1023\t181\t255\t302\t206\t21\n+429\t174\t63\t78\t579\t625\t11\n+426\t211\t147\t172\t594\t652\t11\n+679\t944\t79\t237\t266\t189\t21\n+436\t112\t104\t0\t586\t462\t11\n+353\t123\t507\t160\t524\t485\t1\n+362\t388\t167\t213\t479\t248\t7\n+800\t1023\t217\t275\t301\t321\t25\n+357\t102\t534\t162\t623\t496\t1\n+690\t988\t172\t232\t210\t256\t25\n+416\t191\t156\t207\t641\t402\t7\n+401\t98\t549\t28\t616\t547\t1\n+350\t106\t521\t214\t622\t519\t8\n+409\t129\t508\t488\t673\t397\t13\n+435\t219\t50\t220\t138\t588\t1\n+631\t1023\t174\t41\t249\t248\t21\n+393\t153\t564\t140\t688\t569\t1\n+663\t1023\t112\t241\t241\t204\t21\n+438\t123\t559\t6\t663\t520\t1\n+396\t123\t537\t225\t645\t565\t8\n+774\t1023\t192\t275\t283\t206\t25\n+332\t204\t96\t73\t629\t278\t6\n+405\t129\t523\t228\t671\t468\t8\n+908\t1023\t475\t698\t479\t461\t19\n+411\t120\t551\t90\t688\t572\t1\n+391\t86\t528\t356\t652\t478\t8\n+706\t788\t94\t258\t220\t146\t21\n+348\t84\t519\t147\t651\t493\t1\n+405\t238\t133\t192\t144\t598\t1\n+744\t1023\t166\t261\t271\t241\t25\n+433\t219\t560\t471\t519\t256\t13\n+657\t1023\t145\t236\t223\t231\t21\n+373\t170\t188\t201\t666\t675\t11\n+415\t808\t333\t406\t378\t476\t23\n+377\t141\t557\t353\t677\t460\t8\n+382\t170\t534\t251\t637\t621\t8\n+355\t236\t170\t358\t514\t464\t7\n+385\t248\t346\t193\t231\t294\t18\n+419\t119\t563\t328\t675\t472\t8\n+376\t255\t140\t214\t20\t637\t1\n+613\t1023\t117\t174\t120\t250\t21\n+709\t635\t405\t212\t277\t310\t22\n+431\t188\t559\t586\t545\t324\t13\n+367\t110\t54\t103\t586\t579\t11\n+994\t1023\t391\t321\t351\t336\t26\n+364\t84\t534\t142\t679\t526\t1\n+402\t110\t515\t385\t623\t356\t13\n+409\t146\t542\t0\t669\t444\t1\n+727\t1023\t192\t308\t272\t271\t25\n+499\t798\t183\t250\t246\t293\t21\n+278\t103\t487\t166\t655\t559\t8\n+412\t110\t562\t296\t655\t522\t8\n+383\t133\t117\t72\t529\t540\t11\n+346\t119\t215\t167\t589\t524\t11\n+420\t106\t522\t205\t625\t496\t8\n+409\t157\t133\t165\t580\t290\t6\n+348\t72\t135\t234\t0\t438\t1\n+646\t1004\t126\t186\t267\t257\t21\n+779\t499\t428\t213\t203\t150\t24\n+688\t565\t462\t265\t194\t246\t22\n+432\t176\t509\t374\t569\t244\t13\n+325\t153\t0\t181\t601\t322\t6\n+709\t1023\t202\t234\t189\t172\t25\n+331\t67\t492\t0\t599\t521\t1\n+364\t157\t67\t146\t649\t337\t6\n+722\t1023\t192\t264\t258\t228\t25\n+654\t1023\t168\t213\t196\t128\t21\n+690\t1023\t226\t222\t281\t293\t25\n+769\t1023\t205\t298\t223\t263\t25\n+276\t119\t0\t256\t95\t505\t1\n+328\t134\t536\t362\t640\t385\t13\n+414\t182\t98\t210\t612\t521\t11\n+409\t84\t100\t245\t569\t344\t7\n+357\t111\t505\t163\t667\t507\t8\n+769\t975\t168\t278\t224\t134\t25\n+522\t1023\t83\t236\t232\t261\t21\n+730\t1023\t189\t234\t294\t255\t25\n+371\t188\t125\t89\t623\t306\t6\n+391\t139\t522\t437\t622\t266\t13\n+424\t261\t153\t440\t742\t731\t9\n+412\t132\t90\t0\t595\t541\t11\n+612\t554\t374\t266\t210\t323\t22\n+381\t132\t108\t0\t639\t646\t11\n+360\t126\t530\t71\t641\t501\t1\n+579\t974\t68\t194\t251\t225\t21\n+807\t1023\t182\t286\t279\t309\t25\n+826\t1023\t185\t260\t252\t183\t25\n+374\t93\t547\t240\t657\t514\t8\n+395\t106\t500\t246\t566\t287\t13\n+732\t1023\t201\t297\t307\t229\t25\n+397\t134\t542\t95\t687\t598\t1\n+333\t97\t498\t178\t590\t385\t8\n+459\t243\t95\t327\t678\t466\t7\n+397\t174\t25\t20\t654\t616\t11\n+723\t1023\t203\t75\t266\t302\t25\n+507\t158\t526\t485\t550\t190\t13\n+600\t569\t381\t264\t249\t280\t22\n+410\t120\t64\t97\t583\t602\t11\n+343\t103\t526\t140\t685\t482\t1\n+362\t99\t511\t191\t571\t558\t8\n+546\t1023\t181\t286\t234\t244\t21\n+379\t82\t521\t246\t653\t501\t8\n+439\t165\t551\t463\t703\t352\t13\n+298\t125\t0\t260\t186\t485\t1\n+693\t1023\t165\t268\t310\t188\t25\n' |