{ "info": { "author": "Jessime Kirk", "author_email": "jessime.kirk@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6" ], "description": "# SEEKR\n\n[![Build Status](https://travis-ci.com/CalabreseLab/seekr.svg?branch=master)](https://travis-ci.com/CalabreseLab/seekr)\n[![Build Status](https://img.shields.io/pypi/v/seekr.svg)](https://pypi.python.org/pypi/seekr)\n\nFind communities of nucleotide sequences based on kmer frequencies.\n\nA web portal is available at [seekr.org](http://seekr.org).\n\n## Installation\n\n To use this library, you have to have Python3.x on your computer.\n\n Once you have Python, run:\n\n ```\n $ pip install seekr\n ```\n\n which will make both the command line tool and the python module available.\n\n ### OSX and Anaconda\n\n If you're running OSX and Anaconda, there is a known issue with compliation of several of the dependencies. You should be able to fix it by running:\n\n ```\n$ MACOSX_DEPLOYMENT_TARGET=10.14 pip install seekr\n ```\n\nWe're working to fix this issue ASAP.\n\n## Usage\n\nYou can either use SEEKR from the command line or as a python module.\nThe package is broken up into a set of tools, each of which perform a single task.\nFrom the command line, all of the functions will begin with `seekr_`.\nFor example, you can use `seekr_kmer_counts` to generate a normalized kmer count matrix of `m` rows by `n` columns,\nwhere `m` is the number of transcripts in a fasta file and `n` is 4^kmer.\nThen `seekr_pearson` can be used to calculate how well correlated all pairwise combinations of sequences are.\n\nTo see all tools and some examples, run:\n\n```\n$ seekr\n```\n\n### Quickstart\n\nTo get a .csv file of communities for every transcript in a small .fa file called [`example.fa`](https://raw.githubusercontent.com/CalabreseLab/seekr/master/seekr/tests/data/example.fa),\n(where RNAs have been normalized to a data set of canonical transcripts from [GENCODE](https://www.gencodegenes.org/),\nwe would run:\n\n```\n$ seekr_download_gencode lncRNA\n$ seekr_canonical_gencode v29_lncRNA.fa v29-01.fa # Name may change with GENCODE updates.\n$ seekr_norm_vectors v29-01.fa\n$ seekr_kmer_counts example.fa -o 6mers.csv -mv mean.npy -sv std.npy\n$ seekr_pearson 6mers.csv 6mers.csv -o example_vs_self.csv\n$ seekr_graph example_vs_self.csv 0.13 -g example_vs_self.gml -c communities.csv\n$ cat example_vs_self.csv\n```\n\nThis quickstart procedure produces a number of other files beside the file `communities.csv`.\nSee below to learn about the other files produced along the way.\n\n**Notes:**\n\n* Some advanced usages are not available from the command line and require that you import the module.\n* We'll use [`example.fa`](https://raw.githubusercontent.com/CalabreseLab/seekr/master/seekr/tests/data/example.fa)\nas a small sample set,\nif you want to download that file and follow along.\n* GENCODE is a high quality source for human and mouse lncRNA annotation.\nFasta files can be found [here](https://www.gencodegenes.org/releases/current.html).\n * In the examples below we'll generically refer to `gencode.fa`.\n Any sufficiently large fasta file can be used, as needed.\n\n### Help\n\nFor full documentation of the parameters and flags, you can run any of the commands without any arguments.\nFor example:\n\n```\n$ seekr_kmer_counts\n```\n\nHere are some examples if you just want to get going.\n\n### Command line examples\n\n#### seekr_download\n\nBrowsing [GENCODE](https://www.gencodegenes.org/) is nice if you want to explore fasta file options.\nBut if you know what you want, you can just download it from the command line.\nThis tool is also helpful on remote clusters.\n\nTo download all human transcripts of the latest release into a fasta file, run:\n\n```\n $ seekr_download_gencode all\n```\n\nGENCODE also stores mouse sequences. You can select mouse using the `--species` flag:\n\n```\n $ seekr_download_gencode all -s mouse\n```\n\nFor consistency across experiments, you may want to stick to a particular release of GENCODE. To get lncRNAs from the M5 release of mouse, use `--release`:\n\n```\n $ seekr_download_gencode lncRNA -s mouse -r M5\n```\n\nFinally, if you do not want the script to automatically unzip the file, you can leave the fasta file gzipped with `--zip`:\n\n```\n $ seekr_download_gencode all -z\n```\n\n#### seekr_canonical_gencode\n\nGENCODE fasta files provide multiple transcripts per genomic loci.\nTo reduce kmer redundancy due to these isoforms,\nwe can filter for transcripts ending in \"01\",\nas indicated by the sequence headers:\n\n```\n$ seekr_canonical_gencode v22_lncRNAs.fa v22-01.fa\n```\n\n#### seekr_kmer_counts\n\nLet's make a small `.csv` file of counts.\nWe'll set a couple flags:\n* `--kmer 2` so we only have 16 kmers\n* `--outfile out_counts.csv`.\nThis file will contain the log2-transformed z-scores of kmer counts per kb.\n\n```\n$ seekr_kmer_counts example.fa -o out_counts.csv -k 2\n$ cat out_counts.csv\n```\n\nYou can also see the output of this command\n[here](https://github.com/CalabreseLab/seekr/seekr/tests/data/example_2mers.csv).\n\nIf we want to avoid normalization, we can produce kmer counts per kb by setting the `--no_log2`, `--uncentered` and `--unstandardized` flags:\n\n```\n$ seekr_kmer_counts example.fa -o out_counts.csv -k 2 -nl -uc -us\n```\n\nSimilarly, if we want a more compact, efficient numpy file,\nwe can add the `--binary` and `--remove_label` flags:\n\n```\n$ seekr_kmer_counts example.fa -o out_counts.npy -k 2 --binary --remove_label\n```\n\n**Note:** This numpy file is binary, so you won't be able to view it directly.\n\nWhat happens if we also remove the `--kmer 2` option?\n\n```\n$ seekr_kmer_counts example.fa -o out_counts.npy\n~/seekr/seekr/kmer_counts.py:143: RuntimeWarning: invalid value encountered in true_divide\n self.counts /= self.std\n\nWARNING: You have `np.nan` values in your counts after standardization.\nThis is likely due to a kmer not appearing in any of your sequences. Try:\n1) using a smaller kmer size,\n2) beginning with a larger set of sequences,\n3) passing precomputed normalization vectors from a larger data set (e.g. GENCODE).\n\n```\n\nThe code runs, but we get a warning.\nThat's because we're normalizing 4096 columns of kmers.\nMost of those kmers never appear in any of our 5 lncRNAs.\nThis necessarily results in division by 0.\nIf we use a much larger set of [sequences](ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_28/gencode.v28.lncRNA_transcripts.fa.gz),\nthis same line works fine:\n\n```\n$ kmer_counts gencode.fa -o gencode_counts.npy\n```\n\nBut what should you do if you're only interested in specific sequences?\n\n#### seekr_norm_vectors\n\nAn effective way to find important kmers in a small number of RNAs is to\ncount their kmers, but normalize their counts to mean and\nstandard deviation vectors produced from a larger set of transcripts.\nWe can produce these vectors once, then use them on multiple smaller sets\nof RNAs of interest. To produce the vectors, run:\n\n```\n$ seekr_norm_vectors gencode.fa\n```\n\nIf you run `ls`, you should see `mean.npy` and `std.npy` in your directory.\n\nTo specify the path of these output files,\nuse the `--mean_vector` and `--std_vector` flags:\n\n```\n$ seekr_norm_vectors gencode.fa -k 5 -mv mean_5mers.npy -sv std_5mers.npy\n```\n\nNow, we can use these vectors to analyze our RNAs of interest:\n\n```\n$ kmer_counts example.fa -o out_5mers_gencode_norm.csv -k 5 -mv mean_5mers.npy -sv std_5mers.npy\n```\n\n#### seekr_pearson\n\nTo find Pearson correlations between kmer count profiles, run `seekr_pearson`.\nRunning the program and options are similar to `seekr_kmers_counts`.\nInput files for `seekr_pearson` will always be the output files from\none or more runs of `kmer_counts`.\nThe default settings accept two csv files and output a third csv file.\n\n```\n$ seekr_pearson out_counts.csv out_counts.csv -o example_vs_self.csv\n$ cat example_vs_self.csv\n```\n\nThe only other options besides the `-o` flag control binary versus plain text input and output.\nIf you have a binary input file (i.e. a .npy file),\nand also want a binary output file, you can use the `--binary_input` and `--binary_output` flags:\n\n```\n$ seekr_pearson out_counts.npy out_counts.npy -o example_vs_self.npy -bi -bo\n```\n\nIf we want to compare counts between two files\n(e.g. RNAs between mouse and human),\nthat is also possible:\n\n```\n$ seekr_pearson human_6mers.npy mouse_6mers.npy -o human_vs_mouse.npy\n```\n\n#### seekr_graph\n\nWe can treat the results of `seekr_pearson` as an [adjacency matrix](https://en.wikipedia.org/wiki/Adjacency_matrix), and use it to find communities of transcripts with the [Louvain algorithm](https://arxiv.org/abs/0803.0476) or the [Leiden algorithm](https://arxiv.org/abs/1810.08473).\n\nThe default setting accept a csv file and a threshold value.\nThis csv file should be the product of seekr_pearson, or some other adjacency matrix.\nThe threshold is the value below which edges are removed from the graph.\nA [gml](https://gephi.org/users/supported-graph-formats/gml-format/) file contain the graph and communities will be produced.\n\n```\n$ seekr_graph example_vs_self.csv .13 -g example.gml\n```\n\nNumpy files are also valid input:\n\n```\n$ seekr_graph example_vs_self.npy .13 -g graph.gml\n```\n\nGML files are plain text, so you can view them if you want.\nBut they contain all of the information describing the graph.\nOften you just want to know what transcripts belong to what community.\nTo get a csv file mapping transcripts to communities, run:\n\n```\n$ seekr_graph example_vs_self.csv .13 -g example.gml -c communities.csv\n```\n\nThe value for thresholding the adjacency matrix is very experiment dependent.\nBecause a reasonable default is difficult to predict, it is a required parameter.\nFor example, if you are using `k=5`, it likely makes sense to increase the threshold (e.g. to .3).\n`seekr_pearson_distro` can be run to suggest a value for the threshold.\nSimilarly, the community finding algorithm allows you course control of community size with its resolution parameter (gamma).\nTesting ranges from .1 to 5 is reasonable, where values from 1-3 have been most useful in our experience.\n\n```\n $ seekr_graph example_vs_self.csv .3 -g graph.gml -r 1.5\n```\n\nA third tunable parameters is a cap of the number of communities found.\nAnd finally, since community finding is partially random,\nyou can make your results reproducible by setting a seed value:\n\n```\n $ seekr_graph example_vs_self.csv .13 -g graph.gml -n 10 -s 0\n```\n\n#### seekr_gen_rand_rnas\n\nIt's often useful to understand what we might expect \"at random\".\nOne way to think about \"random\" with respect to kmers and RNA sequences,\nis to think about what would happen if the nucleotide or kmer contents was conserved, but shuffled.\n`seekr_gen_rand_rnas` provides a way to conserve but shuffle kmers.\n\nTo conserve dinucleotide content, for example, run:\n\n```\n$ seekr_gen_rand_rnas example.fa example_rand.fa -k 2 -s 0\n```\n\nThe `--kmer` flag sets the size of the kmer,\nand the `--seed` flag makes sure you can reproduce the resulting sequences.\nWe could now repeat our experiment with the new `example_rand.fa` file.\n\n### Module example\n\nFor larger or more specific workloads, it may be better to use the `seekr` module.\nIn this example, we'll calculate similarities between two example fasta files,\n(e.g., XIST and a set of RNAs we think could be similar to XIST)\nusing the normalization vectors from the human GENCODE set.\nWe'll use all kmers from 3 to 6, and label transcripts with unique labels.\n\n```python\nimport numpy as np\nimport pandas as pd\nfrom seekr.kmer_counts import BasicCounter\nfrom seekr.pearson import pearson\nfrom seekr.fasta_reader import Reader\n\n\ngencode = 'gencode.fa'\nxist = 'xist.fa'\nlncRNAs = 'other_lncs.fa'\n\n# Make sure each lncRNA in other_lncs.fa has a unique name\nheaders = Reader(lncRNAs).get_headers()\nnames = [h.strip('>') + f'_{i}' for i, h in enumerate(headers)]\n\nfor k in range(3, 7):\n # Make normalization vectors\n gencode_counter = BasicCounter(gencode, k=k)\n gencode_counter.get_counts()\n mean_path = f'mean_{k}mers.npy'\n std_path = f'std_{k}mers.npy'\n np.save(mean_path, gencode_counter.mean)\n np.save(std_path, gencode_counter.std)\n\n # Count kmers\n xist_counter = BasicCounter(xist,\n outfile=f'{k}mers_xist.npy',\n mean=mean_path,\n std=std_path,\n k=k)\n lncs_counter = BasicCounter(lncRNAs,\n outfile=f'{k}mers_lncs.npy',\n mean=mean_path,\n std=std_path,\n k=k)\n xist_counter.make_count_file(names=['XIST'])\n lncs_counter.make_count_file(names=names)\n\n # Find similarities\n sim = pearson(xist_counter.counts,\n lncs_counter.counts,\n outfile=f'xist_vs_lncs_{k}mers.npy')\n\n # Save labeled .csv file of similarities.\n sim_df = pd.DataFrame(sim, ['XIST'], names)\n sim_df.to_csv(f'xist_vs_lncs_{k}mers.csv')\n\n```\n\nEach loop will write six files to disk:\n\n* `mean_{k}mers.npy`: Mean vector for GENCODE human lncRNAs.\nOnce this has been saved, the first portion of the code doesn't need to be run again.\n* `std_{k}mers.npy`: Standard deviation vector for GENCODE human lncRNAs.\n* `{k}mers_xist.npy`: Normalized kmer profile for Xist.\n* `{k}mers_lncs.npy`: Normalized kmer profile for other lncRNAs of interest.\n* `xist_vs_lncs_{k}mers.npy`: Pearson's r values for all pairwise comparisons between Xist and the other lncRNAs.\n* `xist_vs_lncs_{k}mers.csv`: Labeled, plain text version of pairwise comparisons.\n\n## Issues\n\nAny suggestions, questions, or problems can be directed to our\n[GitHub Issues page](https://github.com/CalabreseLab/seekr/issues).\n\n## Citation\n\nIf you use this work, please cite:\n\n```\nKirk, J. M., Kim, S. O., Inoue, K., Smola, M. J., Lee, D. M., Schertzer, M. D., \u2026 Calabrese, J. M. (2018). Functional classification of long non-coding RNAs by k -mer content. Nature Genetics, 50(10), 1474\u20131482. https://doi.org/10.1038/s41588-018-0207-8\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CalabreseLab/seekr", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "seekr", "package_url": "https://pypi.org/project/seekr/", "platform": "", "project_url": "https://pypi.org/project/seekr/", "project_urls": { "Homepage": "https://github.com/CalabreseLab/seekr" }, "release_url": "https://pypi.org/project/seekr/1.4.2/", "requires_dist": [ "cython", "tqdm", "numpy", "pandas", "requests", "networkx", "python-igraph", "louvain", "leidenalg", "ushuffle", "matplotlib", "seaborn" ], "requires_python": "", "summary": "Count small kmer frequencies in nucleotide sequences.", "version": "1.4.2" }, "last_serial": 5153152, "releases": { "1.1.1": [ { "comment_text": "", "digests": { "md5": "a67376ef1a1ea3f19115e882d32a2a15", "sha256": "ffb6a9b8ef39a6a961367ecb806746c67c78ceee0dbb5b8d2216af26006a63ef" }, "downloads": -1, "filename": "seekr-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a67376ef1a1ea3f19115e882d32a2a15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10758, "upload_time": "2018-10-04T20:02:41", "url": "https://files.pythonhosted.org/packages/59/48/86c5fc289bb1158938ee3038069671a6872229e8613ec91737ae1b7a30d7/seekr-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a41afe026d74be0e896451a74bdb3b5d", "sha256": "154c57f4c168e8aec0901480678dbd88d7589bcbb158c25e27e984c78fd5e12a" }, "downloads": -1, "filename": "seekr-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a41afe026d74be0e896451a74bdb3b5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9613, "upload_time": "2018-10-04T20:02:44", "url": "https://files.pythonhosted.org/packages/69/c3/21f8a3c9ea2adf96ae19ed67b1f82c2f5050be42b858ae8ed4a6a0979a58/seekr-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "35627a76bfdbbf8f3fb55e1b4ef5ed6f", "sha256": "567468b510d31b13f7a006ffb76a947e77f8360f008b5983fc1ca1a95b6fd264" }, "downloads": -1, "filename": "seekr-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "35627a76bfdbbf8f3fb55e1b4ef5ed6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13773, "upload_time": "2018-10-04T20:02:43", "url": "https://files.pythonhosted.org/packages/4d/ae/910d8d53ef1e5278748ae0549fe7f731eb1506515695a4e6faa9b3d3d06a/seekr-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42c318a63bc08d1c783e506d2377b195", "sha256": "49671580f284d612eeb0128a76f86ef34210cff8a29ad905395e264709c531aa" }, "downloads": -1, "filename": "seekr-1.1.2.tar.gz", "has_sig": false, "md5_digest": "42c318a63bc08d1c783e506d2377b195", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13928, "upload_time": "2018-10-04T20:02:45", "url": "https://files.pythonhosted.org/packages/34/c1/f204411df6b9616feeacb4f4b8643e6486a97aed1a4022d74f707df5f627/seekr-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "a588c8269d8fa39c63b6857f9a964c7c", "sha256": "4458c0cb5fb0f66f411f2d22f4fd7610b8311f4b9ce47e0ddfccab63c2552a1d" }, "downloads": -1, "filename": "seekr-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a588c8269d8fa39c63b6857f9a964c7c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13788, "upload_time": "2018-10-04T20:47:38", "url": "https://files.pythonhosted.org/packages/1d/e6/3422ee7e316340243c1f76789e4aa9c906165bc8ce027e3d4f82c3d9359f/seekr-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4d795e0c79fbed14bd8f53e1076ac11", "sha256": "6810fa89dcf45d5f88e1fad523d552a810f73b19427485025228eff053fcd137" }, "downloads": -1, "filename": "seekr-1.1.3.tar.gz", "has_sig": false, "md5_digest": "a4d795e0c79fbed14bd8f53e1076ac11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13963, "upload_time": "2018-10-04T20:47:39", "url": "https://files.pythonhosted.org/packages/6d/c5/2eb4f10ad66d49aedea417c0c4fd1b27f167d360182e9245333b7697b35f/seekr-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "5e2b904c939f5f3ecb002ded3d90c2ed", "sha256": "3586c95fa41afc544f93e5f124e1020f55f279f3d8c5ee7c7a30040c949c995d" }, "downloads": -1, "filename": "seekr-1.2.0.tar.gz", "has_sig": false, "md5_digest": "5e2b904c939f5f3ecb002ded3d90c2ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23157, "upload_time": "2019-01-20T22:39:38", "url": "https://files.pythonhosted.org/packages/90/78/1278a3feb1a66057a8ed695c6ae3828b1c0517b7b9698f4a61b164e0629d/seekr-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "db0c95ad9a1c6391f332ee5c4cf71572", "sha256": "bb5912bc73a0a89630a3a011af79e071656a0856f4940485b2d196e1c6543a90" }, "downloads": -1, "filename": "seekr-1.2.1.tar.gz", "has_sig": false, "md5_digest": "db0c95ad9a1c6391f332ee5c4cf71572", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23159, "upload_time": "2019-01-23T23:41:36", "url": "https://files.pythonhosted.org/packages/70/90/f60fa47d7d4d2ee7bb133516b34f344ff3e294b7d6b8b5b868c275a3c6a8/seekr-1.2.1.tar.gz" } ], "1.2.10": [ { "comment_text": "", "digests": { "md5": "8ea7615999377cbca11f1f8b837abac8", "sha256": "55dd5689b69344ab2eb91f9cc811002982005d913d672922774c3942e5229007" }, "downloads": -1, "filename": "seekr-1.2.10-py3-none-any.whl", "has_sig": false, "md5_digest": "8ea7615999377cbca11f1f8b837abac8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27829, "upload_time": "2019-02-07T21:27:19", "url": "https://files.pythonhosted.org/packages/03/ab/7c83830bf1772702e85d28553c5835b1d37d4980ee98fc679a917ee32ccd/seekr-1.2.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44a58860ce235c7766ad7f373c8fb632", "sha256": "c3cb0fc7b67073e10839fd2e0155ccf7a14c82d9b913f4647405c89b69aa35ee" }, "downloads": -1, "filename": "seekr-1.2.10.tar.gz", "has_sig": false, "md5_digest": "44a58860ce235c7766ad7f373c8fb632", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27699, "upload_time": "2019-02-07T21:27:20", "url": "https://files.pythonhosted.org/packages/6b/8c/3ad6194ab487fd93e5c78386ab3b08b8df8a9d4ce6a80290eea58f6fbc1e/seekr-1.2.10.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "d891a4efdd816cbf2b932ef72a29a86f", "sha256": "8de0bf0bf1b204ed7ea5eb92eb80a9efeb568ee423dba371d3b1fdafe2107c06" }, "downloads": -1, "filename": "seekr-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d891a4efdd816cbf2b932ef72a29a86f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24148, "upload_time": "2019-01-24T00:35:24", "url": "https://files.pythonhosted.org/packages/51/43/79314e57d6b62a2a4486e14e3c1d7ad723b3ebaeec64fb47ad7f7beabdb8/seekr-1.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb13a872b370e5b5853b96b7905787c5", "sha256": "f01226a0e2118aa702e1e5637075fe92e7d34940d2f2c27b59dbec780497d495" }, "downloads": -1, "filename": "seekr-1.2.3.tar.gz", "has_sig": false, "md5_digest": "fb13a872b370e5b5853b96b7905787c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24003, "upload_time": "2019-01-24T00:35:25", "url": "https://files.pythonhosted.org/packages/07/62/2be752c89357f5b7f20d0cece3f76eba51a12391edd30b2c44cdfcbe6efb/seekr-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "efa87b2304c5ab988110eda952bd641a", "sha256": "b624b4f1a622a2605aebc9253ce0e57a09da7ef28f91175515341f03e919c41b" }, "downloads": -1, "filename": "seekr-1.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "efa87b2304c5ab988110eda952bd641a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24578, "upload_time": "2019-01-28T18:19:57", "url": "https://files.pythonhosted.org/packages/f4/ac/98c9e42eb0c786d215b7b693a68c84b200a8772b79d9aff1cc2618a382f6/seekr-1.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04cffef44a3c9db59c16f8433f2d2bb9", "sha256": "54721d8fccffc1ad1d94a9edf8154ed1608b98c804bc43ee8e767e04b699069d" }, "downloads": -1, "filename": "seekr-1.2.4.tar.gz", "has_sig": false, "md5_digest": "04cffef44a3c9db59c16f8433f2d2bb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23563, "upload_time": "2019-01-28T18:20:04", "url": "https://files.pythonhosted.org/packages/f9/6f/31dbfc674982737b1b6c6b5c6a9804566538d458983029e2fe0e6b6d225a/seekr-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "445a17498e467fbe31cb24bb5074d607", "sha256": "0c7f40e5efeca4d14b8043f2e0954f38bf5bff4b0ea02ef17b3276e2d278078b" }, "downloads": -1, "filename": "seekr-1.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "445a17498e467fbe31cb24bb5074d607", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24581, "upload_time": "2019-01-28T18:34:56", "url": "https://files.pythonhosted.org/packages/b9/6d/7b272b46844c41796652d78181ae53612f73b1c70b58a45244fa26de6933/seekr-1.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d6aa1843e1ba88d4ce729db986fc6e8", "sha256": "83c0bbc3d1a45252f623070e556a4b52cb15d4e1af98de030fc14c76284e52cc" }, "downloads": -1, "filename": "seekr-1.2.5.tar.gz", "has_sig": false, "md5_digest": "6d6aa1843e1ba88d4ce729db986fc6e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23563, "upload_time": "2019-01-28T18:34:59", "url": "https://files.pythonhosted.org/packages/11/44/0f31b40def18658b6c7a7f1c4db09df6db756089769cdbf87f28e79985cb/seekr-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "3c8214d38ef34a4a7912d27779a84fc2", "sha256": "94cc4f167f4c85590f2313f888e95c43234b36ae2771e7098c171363be3366b4" }, "downloads": -1, "filename": "seekr-1.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3c8214d38ef34a4a7912d27779a84fc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24833, "upload_time": "2019-01-28T22:01:26", "url": "https://files.pythonhosted.org/packages/f0/b5/8954dc7b52e97b5c2e1aac0cc0259f0eef2a47470aeef3c8e406f0ee35c2/seekr-1.2.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a8eeb6fd93b6c6717b31e564fa8533a", "sha256": "a3bab820cc6fe03861ce09e4d4f58898bd3dab641ef6dbaaa430b46abaa5f0c3" }, "downloads": -1, "filename": "seekr-1.2.6.tar.gz", "has_sig": false, "md5_digest": "4a8eeb6fd93b6c6717b31e564fa8533a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23955, "upload_time": "2019-01-28T22:01:27", "url": "https://files.pythonhosted.org/packages/34/99/46eff370a1c5aa86c69a1ede2711463af4dcaeb5845d57c332d0361a4db4/seekr-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "89ac3c70f0f5b7eab221d53aa8cb1dc7", "sha256": "38b407f932e270e521839ee1c2f1ac577a3d478d4f9b1c539b367f7c45665506" }, "downloads": -1, "filename": "seekr-1.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "89ac3c70f0f5b7eab221d53aa8cb1dc7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24915, "upload_time": "2019-01-28T22:49:48", "url": "https://files.pythonhosted.org/packages/2d/ef/c82b68c1f2a78fd0e76b80ffa1d0be5dc665b4f70317d3398d5182f7394e/seekr-1.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9a4ff3559dac3bb3ab62f5c5dff3818", "sha256": "b3cb8703c862744ffb3b5ef0c34ddb020027d9ca70e3856c3b064e4436b3b79b" }, "downloads": -1, "filename": "seekr-1.2.7.tar.gz", "has_sig": false, "md5_digest": "f9a4ff3559dac3bb3ab62f5c5dff3818", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24065, "upload_time": "2019-01-28T22:49:49", "url": "https://files.pythonhosted.org/packages/11/82/ef6614027ce65fc4510d9743fac327c8454e4531a00ffb4f83b2baf920d5/seekr-1.2.7.tar.gz" } ], "1.2.8": [ { "comment_text": "", "digests": { "md5": "e3a15fbd8bdf553a4eaaefb86c73d2e7", "sha256": "0abf94e374f247c5fcd9d3175195967117efcc307236154918bcea133c14657a" }, "downloads": -1, "filename": "seekr-1.2.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e3a15fbd8bdf553a4eaaefb86c73d2e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26661, "upload_time": "2019-02-05T21:35:46", "url": "https://files.pythonhosted.org/packages/4d/e8/a5dae919adf13a53396d6441deb0341fee119a1f3b7016b3d9cdaf53967a/seekr-1.2.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f13da25a5fb14049ea882e3d0d88aa3a", "sha256": "57232fb75807326c42379932f0cb24404bed315702926ae577233cdefe076adf" }, "downloads": -1, "filename": "seekr-1.2.8.tar.gz", "has_sig": false, "md5_digest": "f13da25a5fb14049ea882e3d0d88aa3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26247, "upload_time": "2019-02-05T21:35:48", "url": "https://files.pythonhosted.org/packages/84/ca/9c45f6e8628a8a09dd5693a0e541ac4952adefb4e364497d968650c4afd2/seekr-1.2.8.tar.gz" } ], "1.2.9": [ { "comment_text": "", "digests": { "md5": "e42589a1fb2cfe755a3059d9459fa53a", "sha256": "9241eaa5e8f64c495a7afd14e02f5d87f15b0e4f7977d68af31e21d2205a3eab" }, "downloads": -1, "filename": "seekr-1.2.9-py3-none-any.whl", "has_sig": false, "md5_digest": "e42589a1fb2cfe755a3059d9459fa53a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27820, "upload_time": "2019-02-07T21:14:26", "url": "https://files.pythonhosted.org/packages/bd/84/97cc016b66b6599a96f07f610db8f66224a1b48cfa3c4a309822fc62cdb5/seekr-1.2.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d96d71a6879a1e436cec5d3590e9d4d", "sha256": "61990610cedf3a6e8e9ef668a4d2437605a84b289ac70e0850f47c2ba9388881" }, "downloads": -1, "filename": "seekr-1.2.9.tar.gz", "has_sig": false, "md5_digest": "1d96d71a6879a1e436cec5d3590e9d4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27683, "upload_time": "2019-02-07T21:14:27", "url": "https://files.pythonhosted.org/packages/d4/05/0b745aa5e9e6c650939ebd3e4e3cdfb53822a439cb01a51503a601602b8f/seekr-1.2.9.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "70a9e9e688af7c8c0ce03fea324a8cff", "sha256": "540f233a467f5bc5ccd486b53972be205cee954733d8885ff8ccc308946640c1" }, "downloads": -1, "filename": "seekr-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70a9e9e688af7c8c0ce03fea324a8cff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31041, "upload_time": "2019-02-17T05:53:38", "url": "https://files.pythonhosted.org/packages/c2/5e/ed77c47f8d163722f8a1bbb36fe5a0418b3ceec6dc254e0eeeef709f8702/seekr-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77a4098979fe3bdaba1e2d8239715a07", "sha256": "26c62f95459626084d64bb5918fe9796d7061f9229b9576f695197838f7d24a1" }, "downloads": -1, "filename": "seekr-1.3.0.tar.gz", "has_sig": false, "md5_digest": "77a4098979fe3bdaba1e2d8239715a07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30929, "upload_time": "2019-02-17T05:53:40", "url": "https://files.pythonhosted.org/packages/de/49/1ed93c61cb38ec0266f24a51758b8fbbe6ddaf29d22abe06f24f8e200ea7/seekr-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "da6e3cb9b055c3d9567ebd0a3c49f2d7", "sha256": "89b0001d9f0df2615079eb5b2f1bdb7af75eaf12c47ee93a6c96f3eb26c6bf59" }, "downloads": -1, "filename": "seekr-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "da6e3cb9b055c3d9567ebd0a3c49f2d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31326, "upload_time": "2019-02-21T20:02:01", "url": "https://files.pythonhosted.org/packages/1f/3f/933b84a7f19dcf096f7d5d84fb94ff18f1bb49ff0b241ba0b5de981935fd/seekr-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "400c67e02e29471b84bb1fa0b824c978", "sha256": "f7bfaca39e48fd6f65983cdf303200aeb25848b5a0a249baf8911d7012120790" }, "downloads": -1, "filename": "seekr-1.3.1.tar.gz", "has_sig": false, "md5_digest": "400c67e02e29471b84bb1fa0b824c978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31172, "upload_time": "2019-02-21T20:02:03", "url": "https://files.pythonhosted.org/packages/0f/d5/bdb76bbeb0e58ab060740258576afe6029076e89c2f9f8de1460c031c840/seekr-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "160f016f13f330b49b5f972ff1cc6b70", "sha256": "09ad7bb7e5d38b75f29043f4b7ec2ad29d742471223aa8c3f523bf27f0f8bc8c" }, "downloads": -1, "filename": "seekr-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "160f016f13f330b49b5f972ff1cc6b70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31168, "upload_time": "2019-03-05T23:56:50", "url": "https://files.pythonhosted.org/packages/95/af/77b429b0d44face597da68395a20aed669339317ebae745dd164e2b130c8/seekr-1.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1956d17e5df1c45648d1b4ad6ce4796f", "sha256": "9f7aecf1ca1cb2f07a7ea72dadfdd4904d962f17d1ca1ce0b80c83e93cf33689" }, "downloads": -1, "filename": "seekr-1.3.2.tar.gz", "has_sig": false, "md5_digest": "1956d17e5df1c45648d1b4ad6ce4796f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31077, "upload_time": "2019-03-05T23:56:51", "url": "https://files.pythonhosted.org/packages/4b/e3/5c4ed04c78fc28399681345f1b1ef65ee3b933e19c669d4839f9985fa352/seekr-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "12d5f9b2c163d98766339c6f1380d73a", "sha256": "d37502976b5f9ff5e44f94b084c4e3fa58a135a47425699cfe58ce653364188f" }, "downloads": -1, "filename": "seekr-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "12d5f9b2c163d98766339c6f1380d73a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32039, "upload_time": "2019-04-16T15:45:53", "url": "https://files.pythonhosted.org/packages/d1/07/c002fc84019057da9a270274871736788d695514130f6c0e95562c8b14b6/seekr-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76870ff69d1839c3cc17bfd9c37997c0", "sha256": "0a93e093448d951790d84caf21fecd2de47a9b8e63a774e8f604c7d136eb851d" }, "downloads": -1, "filename": "seekr-1.4.0.tar.gz", "has_sig": false, "md5_digest": "76870ff69d1839c3cc17bfd9c37997c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32389, "upload_time": "2019-04-16T15:45:55", "url": "https://files.pythonhosted.org/packages/61/a1/d7db86dc91b30a1bd25a2205f7a643bf8c248a502704fd5c77da8438c8d0/seekr-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "f039f49eae0da0a2cfacb0a2b144a23a", "sha256": "4b57b6d7ca6a9e4e453a58b62b0aaa5eb8b52ce7462453acbb6889da7cf15197" }, "downloads": -1, "filename": "seekr-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f039f49eae0da0a2cfacb0a2b144a23a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32777, "upload_time": "2019-04-16T18:42:42", "url": "https://files.pythonhosted.org/packages/73/6f/e5170ebfc05dca465b28bf958a5fd585e73febd5f87468c95e7fe1b012f9/seekr-1.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf32bd740ecbc0d751719cad0f3f3ce3", "sha256": "d6237a3ebf8505ae17db296b849b9ccd09ef8cca0f4a0ea5d63d0d27dad0add8" }, "downloads": -1, "filename": "seekr-1.4.1.tar.gz", "has_sig": false, "md5_digest": "cf32bd740ecbc0d751719cad0f3f3ce3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32334, "upload_time": "2019-04-16T18:42:43", "url": "https://files.pythonhosted.org/packages/09/4c/3836f83a523a26e2dd9160241151afb86cb516e95de1456108d007294c64/seekr-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "afe4a49dfb4b5d3f217a9ef607d6c076", "sha256": "7efe02f7d36565f569f8d4af92f31a933942dc0a86a53adc7311b980e87681e5" }, "downloads": -1, "filename": "seekr-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "afe4a49dfb4b5d3f217a9ef607d6c076", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32096, "upload_time": "2019-04-17T03:58:31", "url": "https://files.pythonhosted.org/packages/65/23/6f7d01cbff1cb9cb0680c4c703658c17fcecd6826ad8521fd54ca568ef7a/seekr-1.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f9dc8b6b980e86bcf90e72d65a1a2f", "sha256": "c0f7b5fbd1acbd050f777d5457fb97f72c000d8e8e4d71850ff5e1524ede9e9a" }, "downloads": -1, "filename": "seekr-1.4.2.tar.gz", "has_sig": false, "md5_digest": "d8f9dc8b6b980e86bcf90e72d65a1a2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32522, "upload_time": "2019-04-17T03:58:33", "url": "https://files.pythonhosted.org/packages/be/21/059115caf2d3edb07e59e6555da8fafc2ed2327939ac2e88f8ce0abeaa22/seekr-1.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "afe4a49dfb4b5d3f217a9ef607d6c076", "sha256": "7efe02f7d36565f569f8d4af92f31a933942dc0a86a53adc7311b980e87681e5" }, "downloads": -1, "filename": "seekr-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "afe4a49dfb4b5d3f217a9ef607d6c076", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32096, "upload_time": "2019-04-17T03:58:31", "url": "https://files.pythonhosted.org/packages/65/23/6f7d01cbff1cb9cb0680c4c703658c17fcecd6826ad8521fd54ca568ef7a/seekr-1.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f9dc8b6b980e86bcf90e72d65a1a2f", "sha256": "c0f7b5fbd1acbd050f777d5457fb97f72c000d8e8e4d71850ff5e1524ede9e9a" }, "downloads": -1, "filename": "seekr-1.4.2.tar.gz", "has_sig": false, "md5_digest": "d8f9dc8b6b980e86bcf90e72d65a1a2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32522, "upload_time": "2019-04-17T03:58:33", "url": "https://files.pythonhosted.org/packages/be/21/059115caf2d3edb07e59e6555da8fafc2ed2327939ac2e88f8ce0abeaa22/seekr-1.4.2.tar.gz" } ] }