SocialViruses

SocialViruses app finds the best virus cocktails in terms of host range and virulence while reducing redundancy and antagonism.
### Introduction Given a host range matrix indicating the degree of growth inhibition or lysis that some viruses produce in each host, SocialViruses app is committed to finding virus cocktails with the broadest host range and with the highest virulence. In turn, via a second virus-virus matrix that may or may not be given as input, this application supports the specification of the degree of synergy or antagonism between different viruses to modulate their responses when they cooperate with each other to infect particular hosts. Moreover, virus cocktails can be split into 2 o 3 cocktails to minimize redundancy (viruses infecting same host) and antagonism (viruses rivalry). Thanks to its neat user interface, available for Cytoscape 3.0 and above, SocialViruses app allows any user to interact intuitively and exports the results into a .txt file. ### Data Input As previously mentioned, SocialViruses app can use two different matrices as input. On the one hand, the host range matrix, which is mandatory to be specified by the user, indicates the degree of growth inhibition or lysis between each different virus-host pair. An example of the format of the host range matrix is shown in the third image of the screenshots section. As can be seen, the first row of this matrix refers to the name of each of the hosts (Host1, Host2, etc). However, the rest of rows have as first element the name of the virus i.e Virus1 in row number 2, followed by values indicating the degree of growth inhibition or lysis between this virus and the host corresponding to that column. For example, value at 1x3 represents the growth inhibition or lysing relationship between Virus1 and Host3, at 2x4 between Virus2 and Host4 and so on. For your information, values indicating the degree of growth inhibition or lysis must be in the [0, 1] range, where a 0 value indicates that there is no growth inhibition when that virus infects to a specific host, a 0.5 value indicates that the virus inhibits the growth of the host by half and a 1 value indicates that the virus lyses the host (100% of growth inhibition). On the other hand, the virus-virus interaction matrix, which may or may not be indicated by the user, defines the degree of synergy or antagonism between the viruses. In this case, the appearance of the virus-virus matrix is depicted in the fourth image of the screenshots section. In it, the first row and column indicate the names of the viruses and the rest of values indicate the degree of synergy or antagonism between them. Now, values at 2x3 define the synergy or antagonism relationship between Virus2 and Virus3, at 1x2 between Virus1 and Virus2 and so on. As observed, values representing the degree of synergy or antagonism must be in the [0,10] range. To facilitate the understanding of them, different values seen in the virus-virus matrix shown in the fourth image of the screenshots section and their interpretation are listed below: * The 0 value between Virus1 and Virus2 indicates that Virus1 suppresses the growth inhibition or lysis of Virus2 completely when they both infect the same host. * The 0.5 value between Virus3 and Virus1 indicates that Virus 3 reduces the growth inhibition or lysis of Virus1 by half when they both infect the same host. * The 1 between Virus1 and Virus3 indicates that Virus1 does not affect the growth inhibition or lysis of Virus3 when they both infect the same host. * The 10 between Virus3 and Virus2 indicates that Virus3 multiply the growth-inhibition or lysis of Virus2 by 10 when they both infect the same host. Please note that the virus-virus matrix is not symmetrical and therefore the two viruses do not interact in the same way when infecting the same host. It may happen that a virus x totally suppresses the effects of a virus y and yet virus y partially suppresses, does not suppress or even enhances the effects of virus x. In addition, as can be seen in the third and fourth images of the screenshots section, the delimiter used to separate host names, virus names, and values is the space. Besides, to allow the input of matrices in .csv format, the application will work correctly regardless of whether or not the first row of each matrix has a space at the beginning. ### Installation For the installation of the App, you need to first configure your own Cytoscape 3.x environment by downloading it from [https://cytoscape.org/ here]. Once done, you can install the SocialViruses app by navigating to the upper menu of the environment and clicking on Apps > AppManager. After that, you just need to search the app by typing the name “SocialViruses” in the search bar. Eventually, it will show the app and you can finally install it by clicking on “Install”. ### How to use SocialViruses After following the steps outlined in the previous installation section, you can start using the SocialViruses app by clicking on Apps > SocialViruses > Proceed. This done, a window, which is shown in the second image of the screenshots section, will be displayed to indicate the different parameters to be used by the application. In more detail, these parameters are explained below: * ***Select host range matrix file***: Absolute path to the file containing the host range matrix. This file represents the degree of growth inhibition or lysis between viruses and hosts. It must follow the previously specified format in the “Data Input” section. * ***Select virus-virus matrix file***: Absolute path to the file containing the virus-virus matrix that represents the degree of synergy and antagonism between viruses. The specification of this file is optional. If given, this file must follow the previously specified format in the “Data Input” section. * ***Minimum cocktail size***: Integer in the [1,12] range indicating the minimum number of viruses composing the cocktail. * ***Maximum cocktail size***: Integer in the [1,12] range indicating the maximum number of viruses composing the cocktail. * ***Design type***: The design of the virus cocktails with the broadest host range and with the highest virulence can be performed in 2 different ways. The options are: 1) *Heuristics*: For the case of the cocktail with the broadest host range, this method starts selecting the virus infecting more hosts as first candidate to form the cocktail. Once it has been selected, the next step is to remove the already infected hosts and select from the rest of viruses the one that infects most of the remaining hosts. This process will continue until one of the following conditions has been met: all viruses that infect hosts have been chosen, all hosts have been infected, or the user-specified limit (values in the range [minimum cocktail size, maximum cocktail size]) has been reached. On the other side, for the cocktail with the highest virulence, this method selects one by one those viruses producing the highest percentage of growth inhibition or lysis in the hosts. For this, it must be taken into account that this percentage of growth inhibition or lysis may vary depending on how viruses interact with each other (synergy and antagonism) when infecting the same host. In this case, the selection of viruses will continue until all viruses that infect hosts have been chosen, all hosts have been lysed (100% of growth inhibition), or the user-specified limit (values in the range [minimum cocktail size, maximum cocktail size]) has been reached 2) *Exhaustive Search*: This option performs a combinatorial calculation of all the possible virus combinations in the [minimum cocktail size, maximum cocktail size] range. For this reason, there is no distinction in the construction of the cocktail with the broadest host range and the cocktail with the highest virulence as there is in the Heuristics design type. Both cocktails are constructed at the same time. For each cocktail of size x, this method keeps track of the cocktails with the broadest range and highest virulence so far and updates them in case a new virus combination overtakes them. As expected, this process may end before all possible combinations of viruses have been run through. It may happen that some of these combinations may have already resulted in the cocktail infecting all possible hosts (optimal solution to the cocktail with the broadest host range) and the cocktail lysing (100% of growth inhibition) all possible hosts (optimal solution to the cocktail with the highest virulence). * ***Minimize redundancy***: This option allows the reduction of the number of viruses in the same cocktail that infect the same host. To this end, it gives the user the option to split the cocktails with the broadest host range and highest virulence in 2 o 3 virus cocktails. In this way, viruses infecting the same host will be in different cocktails. * ***Minimize antagonism***: This option allows the reduction of the number of viruses in the same cocktail that suppress their degree of growth inhibition or lysis to a greater or lesser extent when infecting the same host. To this end, it gives the user the option to split the cocktails with the broadest host range and highest virulence in 2 o 3 viruses cocktails. In this way, viruses suppressing each other effects (antagonism) will be in different cocktails while viruses not suppressing each other effects or having a greater effect when interacting to infect the same host (synergy) will be in the same virus cocktail. Bear in mind that in order to minimize the antagonism of the cocktails it is necessary to specify the virus-virus matrix. * ***Select output file***: Absolute path to the file that will collect information about the virus cocktails with the broadest host range and with the highest virulence. If activated, this file will also contain information on how the cocktails have been split to reduce their redundancy and/or antagonism. ### Output As we will see below, the structure of the output file is composed of some parts that are unique and others that are repeated depending on the size of each virus cocktail. Starting with the unique parts, we have the “Configuration” and “Initial Information” sections (see the fifth image of the screenshots section). On the one hand, the “Configuration” section indicates the parameters previously set by the user. On the other hand, the “Initial Information” section details the number of susceptible and resistant hosts, the number of viruses that do not infect any host as well as the corrections that have been made to both the host range and virus-virus matrices. To indicate these corrections, values set for each virus-host pair in the host range matrix or virus-virus pair in the virus-virus matrix are specified. For example, “V2-H1: 0” indicates that the growth inhibition relationship between virus V2 and host H1 has been set to 0 in the host-range matrix. In this way, errors during the execution caused by out-of-range or missing values can be avoided. After these unique sections, there will be as many “Cocktail size: X” sections as there are values in the [minimum cocktail size, maximum cocktail size] range indicated by the user. Unless the cocktail sizes that the user wants to obtain are larger than the number of viruses specified or smaller cocktail sizes result in the growth inhibition and lysing of all hosts (see “only 2 viruses are required” statement in the sixth image of screenshots section). In turn, within each of these “Cocktail size: X” sections, we have 6 more subsections: “Cocktail with the broadest host range”, “Cocktail with the highest virulence”, “Redundancy minimization: Cocktail with the broadest host range”, “Redundancy minimization: Cocktail with the highest virulence”, “Antagonism reduction: Cocktail with the broadest host range”, and “Antagonism reduction: Cocktail with the highest virulence”. Regarding subsections “Cocktail with the broadest host range” and “Cocktail with the highest virulence”, both shown in the sixth image of the screenshots subsection, the only difference between the two subsections is that the former refers to the virus cocktail infecting more hosts (either by inhibiting their growth or by lysing them) while the latter refers to the virus cocktail that produces the highest degree of growth inhibition among the hosts. Other than that, the information displayed for the virus cocktails is the same: the name of the viruses composing the cocktail (“1) Virus cocktail”), the number and percentage of lysed hosts (“2) Susceptible hosts”), and the different metrics to measure the performance of the virus cocktail (“3) Cocktail performance (average values)”). As observed, this last information about the metrics to measure the performance of the virus cocktails (“3) Cocktail performance (average values)”) is further divided into a number of subsections. The meaning of each is detailed below: * ***Virulence of potential virus-host interactions***: Average virulence of the combined action of all the viruses in the cocktail on hosts that they infect. * ***Redundancy (host range)***: Average number of viruses in the cocktail infecting each host. Only hosts infected by at least one virus are taken into account. * ***Hosts’ growth-inhibition/lysis***: Average percentage of growth inhibition or lysis produced by viruses in the cocktail to each host. Only hosts infected by at least one virus are taken into account. * ***Virulence of detected infections***: Average percentage of growth inhibition or lysis that each virus in the cocktail produces. * ***Susceptible hosts***: In this fragment, a series of metrics are detailed for each of the hosts infected by viruses in the cocktail. More concretely, the metrics given for each infected host (hostX) are: * Redundancy (infecting viruses): It indicates both the number of viruses in the host-range matrix and the number of viruses in the cocktail infecting hostX. * Viruses in the cocktail infecting hostX: Name of the viruses in the cocktail infecting the hostX. * Expected growth-inhibition/lysis: Percentage of growth inhibition or lysis produced by all the viruses infecting hostX. * Average growth-inhibition/lysis: Average percentage of growth inhibition or lysis that each virus in the cocktail infecting hostX produces. So far, we have only detailed 2 of the 6 subsections within each of the “Cocktail size: X” sections discussed above. Therefore, from now on we will explain the 4 remaining subsections: “Redundancy minimization: Cocktail with the broadest host range” (seventh image in the screenshots section), “Redundancy minimization: Cocktail with the highest virulence” (eighth image in the screenshots section), “Antagonism reduction: Cocktail with the broadest host range” (ninth image in the screenshots section), and “Antagonism reduction: Cocktail with the highest virulence” (tenth image in the screenshots section). As can be observed, these subsections are linked to the redundancy minimization and antagonism reduction of the 2 cocktails returned by the program (cocktail with the broadest host range and cocktail with the highest virulence). Contrary to the 2 previous subsections, these 4 subsections are only included in the output file if so indicated by the user. Two of them if the “Minimize redundancy” is activated and the other two if the “Minimize antagonism” option is activated. Therefore, for these analyses to appear in the output file, the user must have specified the number of cocktails into which the cocktails indicated in the previous two subsections are going to be split via the “Minimize redundancy” and/or “Minimize antagonism” options. Once specified, again, for each of these new subcocktails, all the information detailed above for cocktails with the broadest host range and with the highest virulence will be provided (virulence of potential virus-host interactions, redundancy, etc). Apart from this, a first line will indicate the number of cocktails into which the original cocktails have been split in order to minimize their redundancy and/or antagonism (“Number of cocktails: X”).

1.0

Works with Cytoscape 3.0


CYTOSCAPE 3

Version 1.0

Released 25 Sep 2025

Works with Cytoscape 3.0

Download Stats Click here