# ky2020 **Repository Path**: Miyanaga/ky2020 ## Basic Information - **Project Name**: ky2020 - **Description**: 基于通路网络的药物浓度组合推导工具 - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-14 - **Last Updated**: 2021-10-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KY2020 KY2020 is a automatic drug combination derivation tool based on pathway network. ## License Unless otherwise noted, the KY2020 source files are distributed under the BSD-style license found in the LICENSE file. ## Related publications If you use KY2020 in your research, please cite our [IUCC'20 paper](): ``` @inproceedings{ye2020pathway, title={A Multi-Threaded Accelerated Drug Combination Pathway Network Implementation}, author={Ye, Haolei and Liu, Shu and Xiao, Wei and McCreath, Eric and Zhang, Xinzhuang}, booktitle={2020 IEEE Intl Conf on Parallel \& Distributed Processing with Applications, Ubiquitous Computing \& Communications, Big Data \& Cloud Computing, Social Computing \& Networking, Sustainable Computing \& Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom)}, year={2020}, organization={IEEE} } ``` ## Usage Extract or compile the binary of KY2020. For Windows users, your filename should be something like `KY2020.exe`. For UNIX family users, your filename should be something like `KY2020`. You have to prepare your configuration file first. For example, your configuration file is saved under `E:\a.ini` on Windows, you have to execute ```bash KY2020.exe E:\a.ini ``` or simply drag the `a.ini` file on `KY2020.exe` file. A command line window will pop up for a while, and then disappear. You can get your output file at the directory you set. To learn more about how to create a configure file, please check the *Configuration File* section. For UNIX series users, there is no specific different from the Windows, but just changing the name of the executable file name. ## Dependencies There is no special dependency needed for running KY2020. To build KY2020, you need - A modern C++ compiler (fully support C++11) - CMake or QMake - Qt Creator (optional) ## Build KY2020 supports build from Qt Creator or CMake. Your compiler should support C++ 11 to compile KY2020. To build from Qt Creator, you could open the `KY2020.pro` file, switch to `Release` mode and just select 'Build All' from the 'Build' menu. You could use `qmake` from command line if you are familiar with that. To build from CMake, create a folder named `build` under the source code directory (which should be the same directory as this file), go to that folder and execute ```bash cmake -DCMAKE_BUILD_TYPE=Release .. make ``` ## Configuration File KY2020 uses a configuration file to provide all the necessary parameters for the execution. Here is a sample configuration file: ```ini axis_start=1 axis_end=10 axis_step=0.1 axis_log=false ec=30,40,50,60,70,80,90,95 ec_bias=0.001 output_dir=E:\Documents\PHD\ky\KY2020_dataset\output\ pki_path=E:\Documents\PHD\ky\KY2020_dataset\pki.csv network_path=E:\Documents\PHD\ky\KY2020_dataset\network.csv ``` Here are the explanation of all the parameters: - `axis_start`, `axis_end`, `axis_step`: The concentration start value, end value and increase step value for each compound. The unit of the value is micromole (umol). The example setting will generate the following concentration sequence: 1umol, 1.1umol, 1.2umol, ..., 10umol. - `axis_log`: If the iteration value is in `log` function, you have to set this value to `true`, otherwise `false`. If this value change to `true`, the example setting will generate the following sequence: 10umol, 12.58umol, 15.84umol, ..., 10^10umol. - `ec`, `ec_bias`: The Effective Concentration (EC) value and the bias of finding the value. The example is setting for find EC30, EC40, EC50, EC60, EC70, EC80, EC90 and EC95 with in 0.1% bias. - `output_dir`: The output file directory. Please remember the last character should be the path separator. - `pki_path`: The network node CSV file path. It stores all the name of the nodes and the pKi values for all the compounds. For more information about the node file, please check the *Network Description* section. - `network_path`: The network edge CSV file path. It stores all the connections of the network. For more information about the edge file, please check the *Network Description* section. ## Network Description A pathway network could be described by two CSV files for KY2020 to identify. One is the node file, the other one is the edge file. The node CSV file should be in the following format ```csv Target,Exit,[name of first compound],... [Node 0],[TRUE if Node 0 is exit node],[pKi of first compound for Node 0] [Node 1],[TRUE if Node 1 is exit node],[pKi of first compound for Node 1] [Node 2],[TRUE if Node 2 is exit node],[pKi of first compound for Node 2] ... ``` A sample node file could be ```csv Target,Exit,Caa,Sco LPS,, CD14,, TLR4,,2.32,3.2 MyD88,, TRAF6,,3.16,1.4 PGE2,TRUE, ``` which describes 2 compounds (Caa and Sco) for calculating their combination in a 6 nodes network (LPS, CD14, TLR4, MyD88, TRAF6 and PGE2). Only PGE2 is marked as exit node. TLR4 and TRAF6 has specific pKi values for a specific edge value. All the other nodes would use `1.0`, which is the default connect value for the edge weight. The edge CSV file contains multiple lines, each line has two values: the start node and the end node. Please notice that there should be **no loop** in the network. The edge CSV file should be in the following format ```csv [Edge 0 start node],[Edge 0 end node] [Edge 1 start node],[Edge 1 end node] [Edge 2 start node],[Edge 2 end node] ... ``` A sample edge file could be ```csv LPS,CD14 CD14,TLR4 CD14,MyD88 TLR4,TRAF6 MyD88,TRAF6 TRAF6,PGE2 ``` which means the network has connect from LPS to CD14, from CD14 to TLR4, from CD14 to MyD88, etc. All the nodes appears in the edge file should be appeared in node file.