Mercurial > repos > itaxotools > dna_convert
diff README.md @ 0:aef9a0c2c65e draft default tip
planemo upload commit 232ce39054ce38be27c436a4cabec2800e14f988-dirty
| author | itaxotools |
|---|---|
| date | Sun, 29 Jan 2023 16:32:28 +0000 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Sun Jan 29 16:32:28 2023 +0000 @@ -0,0 +1,107 @@ +# DNAconvert +Convert between different file formats containing genetic information. + +## Installation +Install the latest version directly using pip (requires Python 3.8 or later): +``` +pip install git+https://github.com/iTaxoTools/DNAconvert.git#egg=DNAconvert +``` + +## Executables +Download and run the standalone executables without installing Python.</br> +[See the latest release here.](https://github.com/iTaxoTools/DNAconvert/releases/latest) + +## Usage + usage: DNAconvert [-h] [--cmd] [--allow_empty_sequences] + [--informat INFORMAT] [--outformat OUTFORMAT] + [infile] [outfile] + DNAconvert + + positional arguments: + infile the input file + outfile the output file + + optional arguments: + -h, --help show this help message and exit + --cmd activates the command-line interface + --allow_empty_sequences + set this to keep the empty sequences in the output + file + --disable_automatic_renaming + disables automatic renaming, may result in duplicate + sequence names in Phylip and Nexus files + --informat INFORMAT format of the input file + --outformat OUTFORMAT + format of the output file + +### Batch processing + +If `infile` is a directory, all files in it will be converted. In this case `informat` and `outformat` arguments are required. + +Specifying names of the output files: +* `outfile` contains a '#' character: '#' will be replaced with the base names of input files. +* `outfile` is a directory: the output files will be written in it, with the same names as input files. + +## Supported formats +* `tab`: [Internal tab format][1] +* `tab_noheaders`: [Internal tab format][1] without headers +* `fasta`: FASTA format +* `relaxed_phylip`: relaxed Phylip format +* `fasta_hapview`: FASTA format for Haplotype Viewer +* `phylip`: Phylip format +* `fastq`: FASTQ format +* `fasta_gbexport`: FASTA format for export into Genbank repository +* `nexus`: NEXUS format +* `nexml`: DnaCharacterMatrix in NeXML format +* `genbank`: Genbank flat file format +* `mold_fasta`: FASTA format with sequence name matching requirements for the tool MolD + +## Recognised extension +If format is not provided, the program can infer it from the file extension + +Currently recognised: +* `.tab`, `.txt`, `.tsv`: [Internal tab format][1] +* `.fas`, `.fasta`, `.fna`: FASTA format +* `.rel.phy`: relaxed Phylip format +* `.hapv.fas`: FASTA format for Haplotype Viewer +* `.phy`: Phylip format +* `.fastq`, `.fq`: FASTQ format +* `.fastq.gz`, `.fq.gz`: FASTQ format compressed with Gzip +* `.gb.fas`: FASTA format for export into Genbank repository +* `.nex`: NEXUS format +* `.xml`: NeXML format +* `.gb`: Genbank flat file format + +Files with extension `.gz` are uncompressed automatically + +## Adding new formats +[Link to documentation](docs/ADDING_FORMATS.md) + +[1]: docs/TAB_FORMAT.md + +## Options +DNAconvert uses two parsers for NEXUS format: internal (default) and the one from python-nexus package. + +In the file `DNAconvert/config.json` (found in `%APPDATA%\iTaxoTools` or in `$XDG_CONFIG_HOME$/`) the key-value pair +``` +"nexus_parser" : "(method)"" +``` +determines the parser. `(method)` is either `internal` or `python-nexus`. + +## Generating an executable +Using [PyInstaller](http://www.pyinstaller.org) is recommended. You should first clone the repository and install DNAconvert with all dependencies (includes PyInstaller): +``` +git clone https://github.com/iTaxoTools/DNAconvert.git +cd DNAconvert +pip install ".[dev]" +``` + +After the following instruction, the directory `dist` will be created (among others) and the executable will be inside it: +``` +pyinstaller scripts/DNAconvert.spec +``` + +## Dependencies +Automatically installed when using pip: +* [python\-nexus](https://pypi.org/project/python-nexus/) +* [dendropy](https://pypi.org/project/DendroPy/)
