Package: ppinet
ppinet - A Python package for biological network generation and analysisInstallingTo build and install from source, runpythonsetup.pyinstallYou can also install from pip withpipinstallppinetOverviewppinet generates a network from a list of genes/proteins. It provides both an easy-to-use object-oriented Python API and a command-line interface (CLI) for generating a biological network and post-analysis.ppinet features include:Generates a biological network from STRING database
Calculates network metrics and enrichment
Execute a louvain community detection
Find important genes in network based on shortest-path analysis and betweenness centralityCommand-line interfaceppinet can be executed from the command line using the ppinet command. It takes a gene list file, output folder name and organism taxid (based on STRING) as input and outputs a several analysis of the biological network generated.usage: ppinet [-h] --input_file INPUT_FILE --organism ORGANISM --output_folder OUTPUT_FOLDER [--genes GENES]

optional arguments:
  -h, --help            show this help message and exit
  --input_file INPUT_FILE
                        File containing a gene list.
  --organism ORGANISM   STRING taxonomy ID. Ex: 9606
  --output_folder OUTPUT_FOLDER
                        Output folder
  --genes GENES         Interesting genes for Shortest-path analysis..

example: python3 ppinet.py --input_file gene_list.txt --output ppinet_output --organism 9606In the output_folder, ppinet generates the following outputs:species.txt :  a file containg all STRING taxonomy IDs. If you provide a invalid taxid, we advised to inspect this file.degree_distribution.pdf : a PDF file containing the degree distribution of the biological networknetwork.png : a snapshot of the biological networknetwork_bc.png : a snapshot of the biological network based on betweenness centralitynodes_network2cyto.txt : all nodes and your attributes for Cytoscape analysisedges_network2cyto.txt : all edges and your attributes for Cytoscape analysisreports_ppinet.txt : general metrics of the biological networkenrichment.txt : enrichment analysis of the biological networkif the --genes argument is taken as input, three extra files will be generated:louvain_clustering.png :  louvain community detection of the networkenrichment_shortestpath.txt : a file containing the enrichment analysis of all genes present in all shorthest-path from interesting genesshortestpath_BC.txt : a file containing all interesting genes and its betweenness centrality (bc). As higher the value of bc as more important the gene of interest becomes.Python library usageppinet generates a folder in currently folder with output_folder name.To use as a Python libraryimportppinet# arguments of ppinetinput_data='/opt/data/input_genes.txt'genes='/opt/data/genes.txt'output_folder_name='ppinet_output'#generates a conversionstring_genes=ppinet.initial(input_data,output_folder_name,4932)#generates the network metrics and return the g graphg=ppinet.network_metrics(string_genes,output_folder_name,4932)# generates a louvain community plotppinet.cl(g,output_folder_name)# shorthest-path analysis from interesting genesppinet.sp(g,output_folder_name,4932,genes)ExamplesAdatafolder contains a list with 300 genes ofS. cerevisiae(input.txt file) and a list with 9 interesting genes (genes.txt file)Example of a biological network from the list of 300 genesppinet--input_filedata/input.txt--organism4932--output_fileyeast_outputExample of output containing a list of genes of interestppinet--input_filedata/input.txt--organism4932--output_fileyeast_output--genesdata/genes.txt