yeaseq 0.3.2
Sequence viewer for yeast
License: MIT
Requires Python: >=3.6.0

# Yeaseq

* Hi, welcome to this page - the repository of a sequence viewer for yeast: Yeaseq

* Yeaseq can either used as a desktop software with a GUI, or installed from pypi as a python package

* In this document, I would like to introduce the instruction of this package, or, so called an application

* And for each section, both the functions in GUI application, and the APIs in backend package will be introduced

* Here is the content, click the section you are intersted and the page will jump to that part

## Content

+ [Requirements (to run Yeaseq, that do you need to have)](#require)

+ [Sequence viewer for yeast (what can this app do and the APIs in the package)](#viewer)

+ [How to search an expected sequence (use GUI or API with online or offline mode)](#search)

+ [What information will display in the sequence frame (the description of result window for app)](#show)

+ [About this project (the motivations, and some information about this package)](#about)

+ [Previous version: Japonicusequence (a previous pilot app for japonicus only)](#previous)

+ [LICENSE (some additional description of the packages used in Yeaseq)](#license)

## <span id="require">Requirements</span>

+ Executable files for windows or mac is available. [Download here.](https://github.com/ComatoseHamster/Yeaseq/releases)

+ To use this package directly, please install 'requests' and 'wxpython', and python >= 3.6 is recommended.
    
    Then run 
    ```python
    import wx
    from yeaseq import wx_ui

    if __name__ == '__main__':
        app = wx.App()  # redirect=True, filename=yeaseq_config.WorkDir.get_log_path())
        frame_search = wx_ui.SearchFrame(None, title='Yeaseq')
        frame_search.Show(True)
        app.MainLoop()
    ```

## <span id="viewer">Sequence viewer for yeast</span>

+ Yeaseq supports four yeasts now, including japonicus, cryophilus, octosporus, and pombe.

+ Both online search and offline search are available.

## <span id="search">How to search an expected sequence</span>

#### 1. Gene stable ID and entrez ID can both work well now
1. To search stable gene ID.
    
    Stable gene ID here indicates the gene ID used in Ensembl, and it is usually the systematic name of gene.
    
        e.g. SPBC11B10.09 for pombe or SJAG_01836 for japonicus

2. To search entrez ID.

    Entrez ID indicates the unique digital gene ID used in NCBI.
    
        e.g. 2539869

    If offline search is open, mRNA genbank ID is also supported here.
    
        e.g. NM_001356226.1
    
#### 2. Choose expected yeast in the listbox

#### 3. Fill in suitable number for upstream and downstream 

+ Here, a rare situation may occur when the expected sequence exceeds the reference sequence. 
This situation will be detected automatically and the limitation of up- or down-stream number will be changed in the sequence frame.

#### 4. Use online or offline mode

+ Press the 'Search offline' button, and all searches are offline now. The search status at the lower left corner will also be changed. Please notice that for the current search status.

+ In offline mode, offline data should be downloaded first before searching and this will take some time that depends on the network.

+ Offline search is recommended if there is a bad network. (Now pombe is not available for offline search)

+ The application may have no response once it starts downloading data. ~~(This will be fixed soon?)~~

#### 5. Just click the corresponding button and the searching will start
    
+ Online search may take some time.

+ Offline search will finish immediately.

## <span id="show">What information will display in the sequence frame</span>

#### 1. Search mode (i.e. online or offline) and search content will show in the title of this frame

#### 2. If the expected gene has two or more transcripts, different transcript name will be listed at the top left corner 

+ Click them to change the information.
    
+ If the transcript has only one, the panel can not be changed.
    
#### 3. Some basic information of this gene (or transcript) will be shown in the first column of the panel

+ The basic information (this indicates the entries) may be different to depend on the search mode and search content.

#### 4. Some operations to control the displayed sequence are listed in the second column of the panel

1. The maximum number of upstream and downstream is locked. To change them, please search again and fill in the expected number at the search frame.

    Notice that the number out of reference sequence will be adjusted.
    
2. There are four futures for the display of sequence, including exon, intron, 5'UTR, and 3'UTR.

    The futures are not usually all available, and whether one future can be selected depends on the gene itself.
    
3. Tick the amino acid sequence and the exon of the transcript will be translated into corresponding amino acid sequence.

    Only exon sequence starts with start code ATG and ends with end codes TAA or TGA or TAG is able to be translated.

## <span id="about">About this project</span>

+ This project started from January, 2019 at Sugiyama lab.

+ The motivation was there was no suitable sequence viewer for japonicus, and now the supported yeasts have been expanded to ~~four~~ three (Pombase is recommended for pombe).

+ The scripts have been tested with many genes and no error happened, but some unpredictable issues may still occur. 
If you meet some bugs, please create an issue. And some error information will be greatly helpful in the description of the issue.

+ A Go version will be written (as) soon (as I have time to learn sciter) ~~and this application (may) run a little quickly~~.

## <span id="previous">Previous version: Japonicusequence</span>

A much simpler sequence viewer developed for japonicus only.

Japonicusequence supports online search for Ensembl stable gene id and NCBI entrez gene id, and it has succinct interfaces with (maybe) smaller size.

## <span id="license">LICENSE</span>

* This repository contains the source code and compiled application, they are under an MIT LICENSE and you can use all of them without any worrys

* This repository also contains some data from NCBI for package test, they are stored in this repository but not under the LICENSE of this package

* The online search will link to biomart in Ensembl and enterz in NCBI

* The offline data is downloaded from the FTP site from NCBI

* This package used some packages, they are:
    * The python language
    * The python built-in packages: urllib, gzip, os, json, re, xml, platform, shutil, sys, io, setuptools
    * The third-party python packages: requests, wxpython
    * The wxpython is a python wrapper of wxWidgets (wxFormBuilder is not used here)

* This package is compiled by pyinstaller to run on Windows and MacOS

* Here is all, thanks for your reading