ngenome-utils 1.0.0
Genomic utilities

# Tuller Genomic Utilities
A space for collaboration on commonly needed utilities between member of the Tuller Lab at TAU.

### Introduction
This repository is intended to speed up development of python projects for member of the Tuller Lab. Operating under the assumption that we all have some similar general needs, it is inefficient and counterproductive for everyone to develop their own, independent functions that are likely needed by several others. By participating in this repository, we can share code we have already written. Rather than rewriting functions independently, we can contribute to the work here by either improving the efficiency of functions already written. Before writing something new, make sure there isnt some tool here that meets your need.

### Set Up
There are several ways to use this 
First, these files work well for Python 3.7 and later. You will need some basic modules loaded including Numpy, Pandas, etc.  (full list coming). 
Second, if you want these to be accessible to your work locally and in power, then simply pull this directory into an accessible location in both. To use these utilities, you will need to add the path of each folder to execution script. The following code would add all files within the `general` directory to your path. The last line would import the `check_ti` function within performance_utils file to the script or workspace. 

```
import sys, os

if sys.platform == 'linux' or sys.platform == 'linux2':
  ROOT_PATH = '/tamir1/nicolaslynn/projects'
else:
  ROOT_PATH = 'define your local path'
  
modules = ['general', 'genomics', 'models', 'power', 'resources']

general_path = os.path.join(ROOT_PATH, "tuller_genomic_utilities", "general")
[sys.path.append(os.path.join(ROOT_PATH, "tuller_genomic_utilities", mod)) for mod in modules]

from performance_utils import check_ti
```

### Directory

* **general**: Simple utilities not specific to genomics. Located here will be utilites for opening data files, json files, mutation tables, etc., performance tracking uptilites (timers), pandas dataframe utilities, etc., gpu usage utilities, and more. 

*  **genomics**: Utilities needed in the processing and analysis of genomic-domain tasks such as pulling sequences from fasta files, introducing mutations at specific sites, translating sequences, etc.

* **power**: Utilities for setting up power jobs, executing those jobs, building batch files and more.

* **splice_ai**: Utilities exclusive to working with SpliceAI.

### Participation
If you participate or contribute to this repository, please keep a few items in mind. 

1. In order to make this practically effective, we must practice good documentation! If you add or modify anything, please document the changes in the file as comments AND in the commit message. *Documentation format-* Block comment just before the function that described a) the function/method b) the input and c) the output. 

2. If you find an improvement to a particular function someone else contributed, please make sure that **the input and output to the function are not altered**. If there is a drastic need to address this, we can do so in more formal terms. But in general, please preserve the input/output schema. And don't worry, your edits will only be merged after verification so don't be shy. 

3. We will maintain some syntatical guidelines for everyone to follow here:
  a) Lets use underscore naming rather than camel case (for those with OCD)
  b) Make sure names and variables are descriptive but not excessive
  c) anything else?