##REQUIREMENTS Basic requirements: Python >= 3.6 Updated pip
To install python we recommend using one of the Python distribution available on https://www.python.org/. The installation process is nicely described od https://realpython.com/installing-python/.
pip is already installed if you are using Python 2 >=2.7.9 or Python 3 >=3.4 downloaded from python.org. To update it depending on you OS you can use
On Linux or macOS: pip install -U pip
On Windows: python -m pip install -U pip
With installed pip and Python you can install required packages available in the requirements.txt file. You can do this by using pip: pip install -r requirements.txt
Be aware that if you have installed more that one Python version it may be needed to adjust PATH local variable in Windows or use i.e. python3.8 - m pip install -U pip. This is applicable to all pip commands.
##File preparation As an input script requires file containing structure's 2D representation using dot-bracket structure. File with dot-bracket notation representation can be generated by using the RNApdbee (http://rnapdbee.cs.put.poznan.pl/). The RNApdbee allows users to generate dot-bracket files from both 3D and 2D structure representation. For dot-bracket file a naming convention needs to be followed. It has to start with PDB_ID and be separated by dash (-) from the rest of the filename (i.e. 1E8O-mycomment.txt).
####Usage example
Before running, user have to set up config file. As a default we have 2 params: *mode (set to multiple), *path_to_dotbracket_files (by default set to ./dotbracket_files/test_multiple/). In ./dotbracket_files/test_multiple/ folder is placed a dot-bracket structure generated for 1b23, 1E8O, 1GRZ by RNApdbee (http://rnapdbee.cs.put.poznan.pl/) that can be use as an examples. 1E8O contains a 3-way junction. 1B23 contains a 4-way junction. 1GRZ contains 4 different 3-way junctions.
To run use: python main.py command.
After running, in ./output folder program generates RESULT.xml file and folder /structures with 3D structures of the found n-way junctions.
##Short Workflow description
As an input tool uses a file with the dot-bracket representation of the structure (to get this file from the 3D structure you can use RNApdbee).
Based on the dot-bracket notation algorithm finds an n-way junction. In the next step, the algorithm looks for PDB file in folder, if the file does not exist the structure is retrieved automatically and saved in the mentioned folder. For identified junctions based on 3D structure algorithm represents outgoing stems as a vector in 3D space and for pairs of stems calculates the value of planar angle and Euler angles. The final step is the generation of RESULT.xml file that contains all results.
##Running tests
To run all implemented tests while being in project directory use:
python -m unittest discover ./tests/