semvec/pypi-packages huggingface dataset:
sra-downloader 1.0.7
A script for batch-downloading and automatic compression of data from NCBI Sequence Read Archive. Built on SRA-Toolkit.
License: MIT

# sra-downloader
A script for batch-downloading and automatic compression of data from NCBI Sequence Read Archive. Built on SRA-Toolkit.

Features:
 - Downloading SRAs using either accession IDs or NCBI generated files
 - Organizing sequences by projects that they come from
 - Detecting which runs have been already downloaded

## Requirements
- python >= 3.6
- sra-toolkit >= 2.9.6
- pigz 

## Instalation
### 0. Docker
1. Run `docker run wwydmanski/sra-downloader -h`

### 1. Conda (recommended, also downloads sra-toolkit)
1. Run `conda install -c bioconda -c bioinf-mcb sra-downloader` 

Note: if you don't specify the `bioconda` channel you will get a dependency error.

### 2. From PyPi
1. Run `pip install sra-downloader`

### 3. From sources
1. Download a repo into a folder
2. Run `pip install .`

## Usage
```
usage: sra-downloader [-h] [--fname FILENAME] [--save-dir SAVE_DIRECTORY] [--uncompressed [UNCOMPRESSED]] [--cores [CORES]] [sra_id [sra_id ...]]

Download SRA data and organize them by projects

positional arguments:
  sra_id                SRA IDs to download

optional arguments:
  -h, --help            show this help message and exit
  --fname FILENAME      CSV file with list of SRAs to download. Header must include `Run` and `BioProject`.
  --save-dir SAVE_DIRECTORY
                        a directory that the files will be saved to. (default: ./downloaded)
  --uncompressed [UNCOMPRESSED]
                        if present, the files will not be compressed. (default: False)
  --cores [CORES]       Cores used for compression. (default is the number of online processors, or 8 if unknown)
```

### Examples
```
sra-downloader ERR2177760 --uncompressed
docker run -v $(pwd)/downloads:/downloaded wwydmanski/sra-downloader ERR1551967
sra-downloader --fname SraRunTable.txt --save-dir ./SRAs --cores 4
```

## Sample output

```
└─── save_folder
    ├── PRJEB14961
    │   ├── ERR1551967.sra_1.fastq.gz  # - raw read archived files from SRA
    │   ├── ERR1551967.sra_2.fastq.gz 
    │   └── SraRunTable.txt            # - original SraRunTable.txt with useful metadata about samples  
    └── PRJEB20463
        ├── ERR2177760.sra_1.fastq.gz
        ├── ERR2177760.sra_2.fastq.gz 
        ├── absent.txt                 # - entries that were unaccessible due to various reasons
        └── SraRunTable.txt
```
pyqt-ani-button 0.0.2
PyQt QPushButton for animation
License: MIT


# pyqt-ani-button
PyQt QPushButton for animation

## Requirements
* PyQt5 >= 5.8

## Setup
`python -m pip install pyqt-ani-button`

## Included Package
* <a href="https://github.com/yjg30737/pyqt-ani-abstractbutton.git">pyqt-ani-abstractbutton</a>
pyqt-ani-toolbutton 0.0.2
PyQt QToolButton for animation
License: MIT


# pyqt-ani-toolbutton
PyQt QToolButton for animation

## Requirements
* PyQt5 >= 5.8

## Setup
`python -m pip install pyqt-ani-toolbutton`

## Included Packages
* <a href="https://github.com/yjg30737/pyqt-ani-abstractbutton.git">pyqt-ani-abstractbutton</a>
pyqt-ani-radiobutton 0.0.1
PyQt animated QRadioButton
License: MIT


# pyqt-ani-radiobutton
PyQt QRadioButton for animation

## Requirements
* PyQt5 >= 5.8

## Setup
`python -m pip install pyqt-ani-radiobutton`

## Included Packages
* <a href="https://github.com/yjg30737/pyqt-ani-abstractbutton.git">pyqt-ani-abstractbutton</a>
kare 0.0.1
Minimalist Currying implementation for Python
License: MIT
Requires Python: >=3.7,<4.0
Keywords: functional,functional programming,fp,curry,currying

# kare
Minimal implementation of [Function Currying](https://en.wikipedia.org/wiki/Currying) for python. 

## Usage
You can curry any callable by applying the `curry` function to it:
```python
from kare import curry

def my_sum(x: int, y: int, z: int) -> int:
    return x + y + z

curried_sum = curry(my_sum)
```

Curried functions take a single argument and return either a new function that takes a single argument or the result of applying all the arguments passed so far to the original function:
```python
sum_two = curried_sum(2)
sum_five = sum_two(3)
sum_five(1) # == 6, equivalent to my_sum(2, 3, 1)
```

If you chain multiple calls together for a more succint notation:
```python
sum_five = curried_sum(2)(3)
```

The `curry` function also works as a decorator:
```python
@curry
def my_curried_sum(x: int, y: int, z: int) -> int:
    return x + y + z

add_six = my_curried_sum(2)(4)
```

Currently we only support functions with positional and specified number of arguments. The following:
```python
@curry  # This wil raise an exception
def variadic_positional_function(*args):
    ...

@curry # This wil raise an exception
def variadic_positional_function(*, x: int, y: int):
    ...

@curry # This wil raise an exception
def variadic_positional_function(x: int, y: int, **kwargs):
    ...

```

If you need to do partial application on keyword arguments you can use `functools`' `partial` as usual.