Warning
Alpha Version This code is currently in an alpha phase and may contain bugs or instability. I am an evolving novice and learning during the development process. This tool was created in my spare time, fueled by a passion for knowledge and experimentation.
Required Changes: Since this is an alpha version, it is likely that changes or optimizations may be necessary to improve the efficiency and stability of the tool. You are encouraged to contribute, suggest improvements, or report issues. Your participation is crucial to make this tool more robust and functional.
Thanks to everyone who will use this tool and contribute to its evolution. Your collaboration is invaluable for the continuous improvement of the project.
Note
A special thanks to vsakkas for creating the Sydney-py library, and to all those who contributed to its inception and upkeep.
A DrugGeneExplorer robot based on Coopilot with no risk, very stable! ๐
This Python bot is designed to gather interactions data from the Drug-Gene Interaction Database (
DGIdb
) and utilizes thesydney-py
library to obtain more detailed information about specific interactions.
Important
Before using Sydney.py, it's essential to gather the necessary authentication cookies from the Copilot web page. These cookies will be utilized to authenticate your requests to the Copilot API.
To obtain the cookies, follow these steps using Microsoft Edge:
- Navigate to the Copilot web page.
- Open the developer tools in your browser (typically by pressing F12 or right-clicking on the chat dialog and selecting Inspect).
- Access the Network tab to observe all requests sent to Copilot.
- Write a message in the chat dialog on the web page.
- Identify a request named
create?bundleVersion=XYZ
and click on it. - Scroll down to the requests headers section and copy the entire value after the
Cookie:
field.
Next, set the obtained value as an environment variable in your shell:
export BING_COOKIES=<your-cookies>
or, in your Python code:
os.environ["BING_COOKIES"] = "<your-cookies>"
Tip
-
citations
: if set toTrue
, the AI's response will include links to the sources from which it has extracted information. If set toFalse
, the AI's response will not show citations. The default value isFalse
. -
search
: if set toTrue
, the AI will seek the answer through the internet, using Bing as the search engine. If set toFalse
, the AI will only utilize its computational power, relying on its internal knowledge. The default value isFalse
.
Example:
response = await sydney.ask(prompt, citations=False, search=False)
-
Interaction with Sydney
- Utilizes the Sydney module to acquire detailed and contextually informative responses concerning drug-gene interactions.
-
Command-Line Interface (CLI)
- Offers an intuitive command-line interface, facilitating seamless interaction with scripts.
-
Graphical Gene Interactions Chart
- Generates a bar chart illustrating gene interactions related to a user-selected gene, providing a visual representation of information.
-
Elegant Response in PyQt5 Box
- Displays responses in a graphical box created with PyQt5, offering a visually pleasing and user-friendly experience.
-
Customizable Font:
- Users can enhance personalization by changing the font. Simply install the preferred font locally and specify the TTF file path.
-
Rich Box Visualization
- Presents drug-gene interactions in visually formatted Rich boxes for enhanced clarity.
-
Interaction Details
- Exhibits crucial interaction details, including scores, interaction types, gene names, and more.
-
Minimum Requirements
- Requires Python 3.9 - 3.11 as the execution environment.
- External dependencies, such as rich, Sydney, PyQt5, requests, and matplotlib, can be effortlessly installed with the command
pip install -r requirements.txt
.
-
Simple Usage Instructions
- Follow the provided instructions to install dependencies and run the script, ensuring a straightforward and immediate application usage.
-
Author Information
- Includes a dedicated section for project authors.
-
Open Source License (MIT)
- Distributed under the MIT license, ensuring transparent and clear management of usage conditions.
-
Reset Conversation Command
- Introduces a new feature: users can reset the conversation with the AI using the command "!reset."
It is recommended that the Python version be between 3.9.X~3.10.X, version 3.10-3.11 is perfect
https://github.com/BlackDicky/DrugGeneExplorer.git
Make sure to install the following dependencies before running the project:
- requests: HTTP library for making requests.
- asyncio: Library for writing asynchronous code using coroutines.
- sydney: SydneyClient - A library that interfaces with Copilot by Microsoft, leveraging the artificial intelligence of Bing and powered by GPT-4.
- rich: Terminal rendering library for rich text and beautiful formatting.
- matplotlib: Plotting library for creating visualizations.
- PyQt5: Python bindings for the Qt application framework.
- pandas: Data manipulation library for working with structured data.
- kaleido: Static image export for Plotly charts.
To install the dependencies, you can use the provided requirements.txt
file. Run the following command:
pip install -r requirements.txt
Visit the Google Fonts website to explore the "Recursive" font. Remember to install Google's "Recursive" font locally.
- Once all the steps are completed, you can launch the script by using the command:
python3 DrugGeneExplorer.py
Warning
Important Note: This tool includes the display of emojis to enhance the user experience. Before using the tool, make sure that your terminal supports emoji rendering. Some terminals might not display emojis correctly, which could affect the appearance and understanding of the output.
If your terminal doesn't support emojis, you may encounter unexpected visualizations or unrecognized characters. To avoid this issue, we recommend using a terminal that is compatible with emojis or enabling emoji support in your environment.
Tip
Note for Handling Infinite Loop:
๐ In the rare event that the tool enters an infinite loop without providing a response, you can interrupt the process by simultaneously pressing Ctrl + Z
or Ctrl + C
on your keyboard.
This keyboard shortcut combination will help you terminate the tool's execution and regain control of your terminal. If you experience persistent issues or have any questions, please consider opening an issue in the designated "Issues" section.
Your feedback is valuable to us, and we'll do our best to address and resolve any concerns you may have.
Start |
---|
Drug-gene interaction research |
---|
Interaction results |
---|
Graph of all genes interacting with the selected drug, highlighting the one with the most significant interference among them all. |
---|
Selection of the gene to be passed to artificial intelligence for a detailed analysis of the interaction between the drug and the gene. |
---|
Final Response in both CLI (Command Line Interface) and GUI (Graphical User Interface) Formats. |
---|