biclustpy
A Python library for bi-cluster editing.
The Bi-Cluster Editing Problem
- Task: Given a matrix
weightswith positive and negative weights, transform the bipartite graph induced byweightsinto a disjoint collection of bi-cliques (bi-clusters) via edge insertions and deletions, such that the overall transformation cost is minimal. - The node sets of the bipartite graph induced by
weightsare the sets of rows and columns. There is an edge between rowiand columnkif and only ifweights[i,k] > 0. - Deleting an existing edge
(i,k)incurs costweights[i,k]. - Inserting a non-existing edge
(i,k)incurs cost-weights[i,k].
Installation
- Download and install Gurobi and obtain a license by following the instructions in the installation guide for Linux, Mac OS, or Windows.
- Open a shell and execute
pip install biclustpy.
Library Usage
After installation, import biclustpy as bp into your Python application. Then use it as follows:
bp.Algorithm: Use this class to select the algorithm you want to employ.bp.Algorithm.algorithm_name: String you can use to select the algorithm you want to employ. Default:"ILP".- Set to
"ILP"if you want to use Gurobi to solve the ILP formulation suggested in G. F. de Sousa Filho et al (2017): New heuristics for the bicluster editing problem. - Set to
"CH"if you want to use the constructive heuristic suggested in G. F. de Sousa Filho et al (2017): New heuristics for the bicluster editing problem. - More algorithms are following soon.
- Set to
bp.Algorithm.ilp_time_limit: Integer that specifies a time limit in seconds for the optimization and the tuning phase of the algorithm"ILP". Default:60.bp.Algorithm.ilp_tune: Boolean flag that indicates whether or not"ILP"should be tuned before being optimized. Default:False.
bp.compute_bi_clusters(weights, algorithm): Use this function to solve a bi-cluster editing problem.weights: The problem instance given as anumpy.array.algorithm: The selected algorithm given as abp.Algorithmobject.
bp.save_bi_clusters_as_xml(filename, bi_clusters, obj_val, is_optimal, instance = ""): Use this function to save the obtained solution as an XML file.filename: The name of the XML file.bi_clusters: The bi-clusters returned bybp.compute_bi_clusters.obj_val: The objective value of the bi-clusters returned bybp.compute_bi_clusters.is_optimal: A flag returned bybp.compute_bi_clustersthat indicates whether the computed bi-clusters are guaranteed to be optimal.instance: A string that contains information about the problem instance.
Example
import numpy as np
import biclustpy as bp
algorithm = bp.Algorithm
algorithm.algorith_name = "ILP"
algorithm.ilp_time_limit = 100
algorithm.ilp_tune = True
n = 30
m = 40
t = .95
weights = np.random.rand(n, m) - (t * np.ones((n, m)))
bi_clusters, obj_val, is_optimal = bp.compute_bi_clusters(weights, algorithm)
filename = "bi_clusters.xml"
instance = "random instance with 30 rows and 40 columns"
bp.save_bi_clusters_as_xml(filename, bi_clusters, obj_val, is_optimal, instance)
Command Line Usage
Upon installation, you can run biclustpy from the command line. Usage:
biclustpy [-h]
(--load input-file | --random num-rows num-cols threshold seed)
[--save output-file] [--alg {ILP,CH}]
[--ilp_options time-limit tune]
More more information, execute biclustpy -h.
License
You may use and distribute biclustpy under the terms of the GNU Lesser General Public License.
Metadata
Release files for biclustpy 0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| biclustpy-0.2.tar.gz | 9.7 kB | Without provenance | Details for biclustpy-0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| biclustpy-0.2-py3-none-any.whl | Python 3 | none | any | Details for biclustpy-0.2-py3-none-any.whl |
Total release size: 23.7 kB
Release files / biclustpy-0.2.tar.gz
| Download URL | biclustpy-0.2.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce02bd7550fdd6b3c098c8c7be31cbcbeb3265e5514af154d62b05b0c2e7dfa6
|
|
BLAKE2b-256 checksum How to use checksums |
9f318ea98164e5cbb1aca880333be81f91dda0760a38ad34b6183f38fbd9c3ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|
Release files / biclustpy-0.2-py3-none-any.whl
| Download URL | biclustpy-0.2-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5134babd641443891263cb9bf536b2f6a2ab4a9b53a258f9974e4ee037461013
|
|
BLAKE2b-256 checksum How to use checksums |
80e988ff8832a9642e53970005c680b73b1694153445e032cb21e872160ded58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|
Security for biclustpy 0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.