semvec/pypi-packages huggingface dataset:
IDswapper 0.1.8
A tool for swapping IDs in a file by fetching various IDs from idswapper database

# IDswapper
Convert given gene IDs to various other IDs. (under development, please come back later)

**Usage**
<br>``$ IDswapper --infile test.txt --id-column-index 0 --fetch "25" "5" "10" --outfile append_test.txt  ``</br>

For large files that are gzip compressed
<br>``$ IDswapper --infile test.tsv.gz --id-column-index 0 --fetch "25" "5" "10" --outfile append_test.tsv.gz``</br>

The ``--id-column-index`` allows query by picking any column in large files with many columns



**Fetch Table**
<br>These are the options supported for the ``--fetch `` argument</br> More options will be released in the next update

| Fetch Argument | Columns to be appended |
|---|---|
| 2 | Ensembl Transcript ID |
| 3 | Ensembl Protein ID |
| 4 | HGNC ID |
| 5 | Gene Symbol |
| 6 | Gene Description |
| 10 | Chromosome Location |
| 12 | Gene Aliases |
| 18 | Entrez Gene ID |
| 19 | Ensembl Gene ID |
| 20 | VEGA ID |
| 21 | UCSC ID |
| 23 | Refseq Accession |
| 25 | Uniprot ID |
| 30 | COSMIC Entry |
| 31 | OMIM ID |
| 36 | Orphanet ID |
| 43 | CD Name |
| 47 | RNA Central ID |
| 51 | MANE Select ID |

**Example**


<br>1. Input file </br>
| Entries | 
|---|
| ENSG00000075624 | 
| ENSG00000146648 | 
| ENSG00000141510 |

<br>2. Execute idswapper tool</br>
<br>``$ IDswapper --infile test.txt --id-column-index 0 --fetch "25" "5" "10" --outfile append_test.txt``</br>

<br>3. Output file </br>
| Fetch Argument | Uniprot ID | Gene Symbol | Chromosome Location |
|---|---|---|---|
| ENSG00000075624 | P60709 | ACTB | 7p22.1 |
| ENSG00000146648 | P00533 | EGFR | 7p11.2 |
| ENSG00000141510 | P04637 | TP53 | 17p13.1 |

<br></br>

**INSTALLATION**
<br>`` $ pip install IDswapper ``</br>

<br> Create the local idswapper database</br>
<br> requires ``mysql`` up and running </br>
you can check using ``$ systemctl mysql status``
<br>Next,</br> 
<br>``$ python3 setup_db.py``<br>
Make sure the entries match the mysql db configuration file``db_config.json``
Py-SteamCMD-Subprocess-Wrapper 0.1.0
SteamCMD Python wrapper to persist steam's login sessions
Requires Python: >=3.8
Keywords: Steam, Steam Server, SteamCMD, Linux

<h1 align="center">
  <strong>Py-SteamCMD-Subprocess-Wrapper</strong>
</h1>

<div align="center">
  <img src="https://img.shields.io/badge/Python->=3.8-green" alt="Python Badge">
</div>

### Usage example

```python
from steamcmd_wrapper import get_steamcmd_client

client = get_steamcmd_client("//Steam")

client.set_install_dir("/steamcmd")  # SteamCMD official docs recommend setting dir before login 
client.login_as_anonymous()  # or client.login(user, password) if you need to own the game

client.update_app("app_id")
client.update_workshop_mod("app_id", "mod_id")
```

### Dependencies
You need to be able to manually run SteamCMD on your OS.

For Debian-Based Distributions (Ubuntu, Mint, etc.) this should be enough:
```shell
apt-get install lib32gcc1  # Debian
```
for details visit official docs:
[SteamCMD docs Known Issues](https://developer.valvesoftware.com/wiki/SteamCMD#ERROR.21_Failed_to_install_app_.22xxxxxx.22_.28No_subscription.29)

### Purpose
Simple wrapper to make it easier to use SteamCMD with python.

The idea came when I tried to install 100+ mods to Arma 3. Those mods varied in size from 2 KB to +20 GB.
To automate this I tried using other automation libraries, but they didn't solve the problem as they were simply
invoking.
```bash
./steamcmd.sh +login {username} {password} {2fa} +workshop_download_item 107410 450814997 +quit
```
multiple times which could lead to timeouts due to 2FA rate limiting.
Which created need of persistent client.

## Notes
- Disabling 2FA only moves the problem further as without 2FA you get the code on your e-mail
which makes it even harder to automate
- Some games (Arma 3 included) and their server require logged user to own the original game, so we cannot login
as anonymous
- Custom script for SteamCMD looks good on paper however you have to keep in mind that SteamCMD is bad. It can randomly timeout
while downloading mods (especially if they are big in size). If SteamCMD fails in the middle of the script you would
need to manually amend the script or risk running it again unchanged, which would validate all apps/mods again risking 
yet another timeout.
- Originally I used it to run it on Jenkins Pipeline to keep mods updates on my machine.