{ "info": { "author": "Josiah Seaman, Bryan Hurst", "author_email": "josiah@newline.us", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "\u00ef\u00bb\u00bf# FluentDNA Data Visualization Tool \n\nThis application creates visualizations of FASTA formatted DNA nucleotide data.\nFluentDNA generates a DeepZoomImage visualizations similar to Google Maps for FASTA files.\n\nFrom 2Mbp of Genomic Sequence, FluentDNA generates this image. Changes in nucleotide bias make\nindividual genome elements visible even without an annotation. Add your annotation files to see how\nthey align with the sequence features.\n![Example FluentDNA output of Human Chr19 2MBp](https://dnaskittle.com/ddvresults/dnadata/Test%20Simple/sources/Test%20Simple.png)\n\n***\n## FluentDNA Quick Start\n\nYou can start using FluentDNA:\n 1. Downloading and unzipping the [Latest Release](https://github.com/josiahseaman/FluentDNA/releases) (Mac and Windows only).\n 2. Open a terminal (command line) in the same folder you unzipped FluentDNA.\n 3. Run the command `./fluentdna --fasta=\"FluentDNA/example_data/Human selenoproteins.fa\" --runserver`\n 4. Your result files will be placed in the FluentDNA directory `FluentDNA/results/`. Once your private server has started, \n all your results are viewable at [http://localhost:8000](http://127.0.0.1:8000). \n\nTo use FluentDNA as a python module (required for **Linux**), follow the [pip install instructions](https://github.com/josiahseaman/FluentDNA/blob/python-master/docs/installation.md).\n```\npip install --upgrade DNASkittleUtils\npip install --upgrade FluentDNA\n``` \n**Locating Results:** You will need to be using the same computer the server is running on. The server will not be visible \nover network or internet unless your administrator opens the port. \n\n***\n\n## Example Use Cases\n* [Simple FASTA file (DNA)](#simple-fasta-file-dna)\n* [Multi-part FASTA file (DNA)](#multi-part-fasta-file-dna)\n* [Annotated Genomes](#annotated-genomes)\n* [Multiple Sequence Alignment Families](#multiple-sequence-alignment-families)\n* [Alignment of two Genomes](#alignment-of-two-genomes)\n* [History](#history)\n\n\n***\n\n### Simple FASTA file (DNA)\n\nGenerating a basic visualization of a FASTA file downloaded from NCBI or another source is accomplished with the following commands:\n\n**Command:** `./fluentdna --fasta=\"FluentDNA/example_data/hg38_chr19_sample.fa\" --outname=\"Test Simple\"`\n\nThis generates an image pyramid with the standard legend (insert image of legend) and nucleotide number display.\n\n**Input Data Example:**\n\n* FA File: [FluentDNA/example_data/hg38_chr19_sample.fa](https://github.com/josiahseaman/FluentDNA/blob/python-master/FluentDNA/example_data/hg38_chr19_sample.fa)\n\n**Result:** [Hg38 chr19 sample](https://dnaskittle.com/ddvresults/dnadata/Test%20Simple/)\n![Example FluentDNA output of Human Chr19 2MBp](https://dnaskittle.com/ddvresults/dnadata/Test%20Simple/sources/Test%20Simple.png)\n\nIt is also possible to generate an image file only that can be accessed with an image viewer using `--no_webpage`.\n\n**Command:** `./fluentdna --fasta=\"FluentDNA/example_data/hg38_chr19_sample.fa\" --outname=\"Test Simple\" --no_webpage`\n\n\n***\n\n### Multi-part FASTA file (DNA)\n\nMulti-part FASTA format includes multiple sequences in the same file. A sequence record in a FASTA format consists of a single-line description (sequence name), followed by line(s) of sequence data. The first character of the description line is a greater-than (\">\") symbol. Multi-part format Example:\n```\n>seq0\nAATGCCA\n>seq1\nGCCCTAT\n```\n\nThe following command generates a multi-part FASTA file visualization:\n\n**Input Data Example:**\n* FA File: https://github.com/josiahseaman/FluentDNA/blob/python-master/FluentDNA/example_data/Human%20selenoproteins.fa\n\n**Command:** `./fluentdna --fasta=\"FluentDNA/example_data/Human selenoproteins.fa\"`\n**Result:** [Human Selenoproteins](https://dnaskittle.com/ddvresults/dnadata/Human%20selenoproteins/)\n\n![](https://dnaskittle.com/ddvresults/dnadata/Human%20selenoproteins/Human%20selenoproteins.png)\n\nThis generates a multi-scale image of the multi-part FASTA file. Note that if you don't specify `--outname=` it will default to the name of the FASTA file.\n\nUsing this simple command, FluentDNA can visualize an entire draft genome at once.\n**Result:** [Ash Tree Genome (_Fraxinus excelsior_)](https://dnaskittle.com/ddvresults/dnadata/Ash%20Tree%20Genome%20-%20BATG-0_5/)\n![Fraxinus excelsior genome](https://github.com/josiahseaman/FluentDNA/raw/python-master/FluentDNA/example_data/British%20Ash%20Tree%20Genome.png)\n\nAdditional options - see also:\n- `--outname`\n- `--sort_contigs`\n- `--no_titles`\n- `--natural_colors`\n- `--base_width`\n\n***\n### Annotated Genomes\nBy specifying `--ref_annotation=` you can include a gene annotation to be rendered alongside your sequence. This is currently setup to show gene introns and exons. But the features rendered and colors used can be changed in `FluentDNA/Annotations.py`\n\n**Command:** `./fluentdna --fasta=\"FluentDNA/example_data/gnetum_sample.fa\" --ref_annotation=\"FluentDNA/example_data/Gnetum_sample_genes.gff\"`\n\n**Input Data Example:**\n* GFF File: https://github.com/josiahseaman/FluentDNA/blob/python-master/FluentDNA/example_data/Gnetum_sample_genes.gff\n* FA file: https://github.com/josiahseaman/FluentDNA/blob/python-master/FluentDNA/example_data/gnetum_sample.fa\n\n\n**Result:** [Gnetum montanum Annotation](https://dnaskittle.com/ddvresults/dnadata/Gnetum%20montanum%20Annotation%20-%20blue%20gene%20-%20yellow%20exon%20-%20green%20CDS/)\n![Gnetum montanum Annotation](https://github.com/josiahseaman/FluentDNA/raw/python-master/FluentDNA/example_data/Gnetum%20montanum%20Annotation%20-%20blue%20gene%20-%20yellow%20exon%20-%20green%20CDS.png)\n\nYou can download the full _Gnetum montanum_ files from [Data Dryad](https://datadryad.org//resource/doi:10.5061/dryad.0vm37).\n\n***\n\n### Multiple Sequence Alignment Families\n\nTo visualize a multiple sequence alignment you need to use the `--layout=alignment` option to tell FluentDNA to treat each entry in a multipart fasta file as being one row of an alignment. To show many MSAs at once, just point `--fasta=` to a folder instead of a file.\n\n**Input Data Example:**\n* Folder with FA files: https://github.com/josiahseaman/FluentDNA/tree/python-master/FluentDNA/example_data/alignments\n\n**Important Note!** Make sure there are no other files in your folder besides sequence files. If FluentDNA decides on an unreasonably long \"max width\" it is because it picked up a non-sequence file in the folder.\n\nEach fasta file represents one aligned protein family. The input fasta file should already be aligned with another program. Each protein is represented by one entry in the fasta file with `-` inserted for gap characters like this:\n```\n>GeneA_in_species1\nACTCA--ACGATC------GGGT\n>GeneA_in_species2\nACTCAAAACGATCTCTCTAGGGT\n```\n\n**Command:** `./fluentdna --layout=alignment --fasta=\"FluentDNA/example_data\\alignments\" --outname=\"Example 7 Gene Families from Fraxinus\"`\n\nThis generates a multi-scale image of the multiple alignment. The multiple alignment results are sorted by gene name. For a smoother layout use `--sort_contigs` which will sort them by row count (copy number).\n\n**Result:** [Example 7 Gene Families from Fraxinus](https://dnaskittle.com/ddvresults/dnadata/Example%207%20Gene%20Families%20from%20Fraxinus/)\n![](https://raw.githubusercontent.com/josiahseaman/FluentDNA/python-master/FluentDNA/example_data/Example%207%20Gene%20Families%20from%20Fraxinus.png)\n\nThis layout allows users to check thousands of MSAs. Here we used FluentDNA to quality check the merging software for 2,961 putative gene families: [Fraxinus Homologous Gene Groups](https://dnaskittle.com/ddvresults/dnadata/Fraxinus%20Homologous%20Gene%20Groups/)\n\n***\n\n### Alignment of two Genomes\n\nThis generates an alignment visualization of two genomes (A and B). Since this is a whole genome alignment the files are very large and not included in the FluentDNA installation. Download each of these files and unzip them into a local folder called `data/`.\n\n#### Input Data Download Links (unzip these into data folder):\n* [Human Genome FA File (hg38.fa)](http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz)\n* [Alignment LiftOver Chain File (hg38ToPanTro5.over.chain)](http://hgdownload.cse.ucsc.edu/goldenPath/hg38/liftOver/hg38ToPanTro5.over.chain.gz)\n* [Chimpanzee Genome FA file (panTro5.fa)](http://hgdownload.cse.ucsc.edu/goldenPath/panTro5/bigZips/panTro5.fa.gz)\n\n**Command:** `./fluentdna --fasta=data/hg38.fa --chainfile=data/hg38ToPanTro5.over.chain --extrafastas data/panTro5.fa --chromosomes chr19 --outname=\"Human vs Chimpanzee\"`\n\nThis generates a multi-scale image of the alignment. There are 4 columns in this visualization:\n\n* Column 1. Genome A (gapped entire DNA of genome A)\n* Column 2. Genome A (unique DNA of A)\n* Column 3. Genome B (unique DNA of B)\n* Column 4. Genome B (gapped entire DNA of genome B)\n\n**Result:** [Human vs Chimpanzee_chr19 (natural colors)](https://dnaskittle.com/ddvresults/dnadata/Parallel_hg38_and_panTro5_chr19/)\n![Rows of sequence side by side Human and chimp. Gaps where they have unique sequence.](https://github.com/josiahseaman/FluentDNA/raw/python-master/FluentDNA/example_data/Human%20vs%20Chimpanzee_chr19.png)\n\nFigure 1 in the paper can be seen at Nucleotide Position 548,505 which corresponds to HG38 chr19:458,731. The difference in coordinates is due to the gaps inserted for sake of alignment.\n\n**Note:** Whole genome alignment visualizations can be processed in batches, one visualization per chromosome. Simply specify each of the reference chromosomes that you would like to generate. `--outname` will be used as a prefix for the name of the folder and the visualization. For example, the above command generates a folder called \"Human vs Chimpanzee_chr19\".\n\n***\n\n## History\nThis project is a fork of the C# FluentDNA developed at Concordia University.\nhttps://github.com/photomedia/DDV/\n\nDDV Licence:\nhttps://github.com/photomedia/DDV/blob/master/DDV-license.txt\n\n\n## Support Contact\nIf you run into any problems or would like to use FluentDNA in research, contact me at **josiah@newline.us**. I'm happy to support my own software and always interested in new collaborations.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/josiahseaman/FluentDNA", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/josiahseaman/FluentDNA", "keywords": "bioinformatics,dna,fasta,chain,alignment,species diversity", "license": "", "maintainer": "", "maintainer_email": "", "name": "FluentDNA", "package_url": "https://pypi.org/project/FluentDNA/", "platform": "", "project_url": "https://pypi.org/project/FluentDNA/", "project_urls": { "Download": "https://github.com/josiahseaman/FluentDNA", "Homepage": "https://github.com/josiahseaman/FluentDNA" }, "release_url": "https://pypi.org/project/FluentDNA/2.5.3/", "requires_dist": [ "Pillow (>=3.2.0)", "psutil (>=5.4.5)", "natsort (>=5.1.1)", "numpy (>=1.13.3)", "DNASkittleUtils (>=1.0.13)", "blist (>=1.3.6) ; extra == 'optimized_alignment'" ], "requires_python": "", "summary": "Visualization tool for bare fasta files. Supports whole genome alignment and multiple sequence alignment.", "version": "2.5.3", "yanked": false, "yanked_reason": null }, "last_serial": 6447679, "releases": { "2.4.5": [ { "comment_text": "", "digests": { "md5": "f4d484bf0368af237933bbc2b764796b", "sha256": "ec1bad06a1dd23a9d3808d907aeb93c396571e3ebaf48152bc79203044821671" }, "downloads": -1, "filename": "FluentDNA-2.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f4d484bf0368af237933bbc2b764796b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9706690, "upload_time": "2019-10-30T17:32:40", "upload_time_iso_8601": "2019-10-30T17:32:40.706650Z", "url": "https://files.pythonhosted.org/packages/86/fd/608697f3da8a4f2405b571812ced91d1edaa6f748971f8f32d323c955398/FluentDNA-2.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b7ecb9c55bb81b689584e8a785f346b4", "sha256": "bc539722b3281104133fabac7bb8c90c67d70e12b28d9d595cac3fa4cf1655c5" }, "downloads": -1, "filename": "FluentDNA-2.4.5.tar.gz", "has_sig": false, "md5_digest": "b7ecb9c55bb81b689584e8a785f346b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82273, "upload_time": "2019-10-30T17:32:44", "upload_time_iso_8601": "2019-10-30T17:32:44.984051Z", "url": "https://files.pythonhosted.org/packages/10/f2/5892fdc8e1a61bc09ef1895902009264f733bd4577942a553d18f92a254b/FluentDNA-2.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "a6fd3bf59ec968b483791f16fdd1ef4e", "sha256": "0ad10b9918d8bdfb37fec7c44ca568fff06a1b9ebd2631f573f28579e6aab930" }, "downloads": -1, "filename": "FluentDNA-2.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a6fd3bf59ec968b483791f16fdd1ef4e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9706812, "upload_time": "2020-01-13T22:07:11", "upload_time_iso_8601": "2020-01-13T22:07:11.497960Z", "url": "https://files.pythonhosted.org/packages/c6/f0/8a7c01f3e2df873e5fe1aa9a9954ab73a6c1066304a3e427bffd6849429e/FluentDNA-2.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f14bbe2701b401a8a730f5aa5cf953ec", "sha256": "5d2f649fcdbecc34b1f8e4dfabf985c2c8ae0f2580c2c668de86656446307443" }, "downloads": -1, "filename": "FluentDNA-2.5.2.tar.gz", "has_sig": false, "md5_digest": "f14bbe2701b401a8a730f5aa5cf953ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81832, "upload_time": "2020-01-13T22:07:14", "upload_time_iso_8601": "2020-01-13T22:07:14.850785Z", "url": "https://files.pythonhosted.org/packages/6e/e6/46a478676fc4bfb52fec51ece86d6bfc8061350f1249d69ec38ea2b37460/FluentDNA-2.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.3": [ { "comment_text": "", "digests": { "md5": "d87b940b97a9201c943db29eb1d68631", "sha256": "ea82a88a4f2416b6b60dee8091fa88ab5447bf3e8e61049dcf94a6a615c2d027" }, "downloads": -1, "filename": "FluentDNA-2.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d87b940b97a9201c943db29eb1d68631", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9692417, "upload_time": "2020-01-13T22:43:38", "upload_time_iso_8601": "2020-01-13T22:43:38.168293Z", "url": "https://files.pythonhosted.org/packages/57/b9/e737ad0c8e91dc5e11022dfca35d433eee2896c8a8f823a243814b9fd27a/FluentDNA-2.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca3914617a4378c6f0a49d3badaeab48", "sha256": "0e1328c17bced2b5397d5225c81e129adf298215539dfe609874db22ae667654" }, "downloads": -1, "filename": "FluentDNA-2.5.3.tar.gz", "has_sig": false, "md5_digest": "ca3914617a4378c6f0a49d3badaeab48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81887, "upload_time": "2020-01-13T22:43:41", "upload_time_iso_8601": "2020-01-13T22:43:41.396398Z", "url": "https://files.pythonhosted.org/packages/d2/fd/082032b65c670092487328102024dcc901990dfeca8dd1c11e625e87ae39/FluentDNA-2.5.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d87b940b97a9201c943db29eb1d68631", "sha256": "ea82a88a4f2416b6b60dee8091fa88ab5447bf3e8e61049dcf94a6a615c2d027" }, "downloads": -1, "filename": "FluentDNA-2.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d87b940b97a9201c943db29eb1d68631", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9692417, "upload_time": "2020-01-13T22:43:38", "upload_time_iso_8601": "2020-01-13T22:43:38.168293Z", "url": "https://files.pythonhosted.org/packages/57/b9/e737ad0c8e91dc5e11022dfca35d433eee2896c8a8f823a243814b9fd27a/FluentDNA-2.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca3914617a4378c6f0a49d3badaeab48", "sha256": "0e1328c17bced2b5397d5225c81e129adf298215539dfe609874db22ae667654" }, "downloads": -1, "filename": "FluentDNA-2.5.3.tar.gz", "has_sig": false, "md5_digest": "ca3914617a4378c6f0a49d3badaeab48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81887, "upload_time": "2020-01-13T22:43:41", "upload_time_iso_8601": "2020-01-13T22:43:41.396398Z", "url": "https://files.pythonhosted.org/packages/d2/fd/082032b65c670092487328102024dcc901990dfeca8dd1c11e625e87ae39/FluentDNA-2.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }