Skip to content

Commit ff683c8

Browse files
authored
Merge pull request #179 from lanl/develop
Develop
2 parents e705ce5 + ce122e0 commit ff683c8

File tree

233 files changed

+12210
-8047
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+12210
-8047
lines changed

.github/workflows/ci_tests.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,17 @@ jobs:
1818
- uses: conda-incubator/setup-miniconda@v2
1919
with:
2020
activate-environment: anaconda-client-env
21-
python-version: 3.11
21+
python-version: 3.11.10
2222
auto-activate-base: True
2323
- name: Install Dependencies and T-ELF
2424
run: |
2525
conda info
2626
conda list
27-
pip install -e .
27+
pip install pytest
28+
pip install poetry
29+
poetry install
2830
2931
- name: Run the Unittests
3032
run: |
31-
cd tests && python -m pytest *
33+
cd tests && poetry run python -m pytest *
3234

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ authors:
2020
- family-names: Alexandrov
2121
given-names: Boian
2222
title: "Tensor Extraction of Latent Features (T-ELF)"
23-
version: 0.0.20
23+
version: 0.0.34
2424
url: https://github.com/lanl/T-ELF
2525
doi: 10.5281/zenodo.10257897
2626
date-released: 2023-12-04

README.md

Lines changed: 42 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center", style="font-size: 50px">
44

5-
[![Build Status](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main) [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg) [![Python Version](https://img.shields.io/badge/python-v3.11.5-blue)](https://img.shields.io/badge/python-v3.8.5-blue) [![DOI](https://zenodo.org/badge/703212457.svg)](https://zenodo.org/doi/10.5281/zenodo.10257896)
5+
[![Build Status](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/lanl/T-ELF/actions/workflows/ci_tests.yml/badge.svg?branch=main) [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg) [![Python Version](https://img.shields.io/badge/python-v3.11.10-blue)](https://img.shields.io/badge/python-v3.11.10-blue) [![DOI](https://zenodo.org/badge/703212457.svg)](https://zenodo.org/doi/10.5281/zenodo.10257896)
66

77
</div>
88

@@ -33,59 +33,40 @@ T-ELF's adaptability spans across a multitude of disciplines, positioning it as
3333

3434
## Installation
3535

36-
### Step 1: Install the Library
36+
### Step 1: [Install Poetry to your system](https://python-poetry.org/docs/)
37+
This step is optional. Use Pip or Conda if Poetry is not avaiable.
3738

38-
**Option 1: Install via PIP**
39-
```shell
40-
conda create --name TELF python=3.11.5
41-
source activate TELF # or <conda activate TELF>
42-
pip install git+https://github.com/lanl/T-ELF.git
43-
```
39+
### Step 2: Install the Library
4440

45-
**Option 2: Install from Source**
41+
**Option 1: Install via Poetry or Pip**
4642
```shell
47-
git clone https://github.com/lanl/T-ELF.git
48-
cd T-ELF
49-
conda create --name TELF python=3.11.5
43+
conda create --name TELF python=3.11.10
5044
source activate TELF # or <conda activate TELF>
51-
pip install -e . # or <python setup.py install>
45+
poetry install # or <pip install .>
5246
```
5347

54-
**Option 3: Install via Conda**
48+
**Option 2: Install via Conda**
5549
```shell
56-
git clone https://github.com/lanl/T-ELF.git
57-
cd T-ELF
50+
git clone https://gitlab.lanl.gov/maksim/telf_internal
51+
cd telf_internal
5852
conda env create --file environment_gpu.yml # use <conda env create --file environment_cpu.yml> for CPU only
5953
conda activate TELF_conda
6054
conda develop .
6155
```
6256

63-
### Step 2: Install Spacy NLP model and NLTK Packages
57+
### Step 3: Post-installation Dependencies
58+
Next, we need to install the optional and additional dependencies. These include optional dependencies for GPU and HPC capabilities, as well as required dependencies like the SpaCy language models.
59+
To view all available options, please run:
6460
```shell
65-
python -m spacy download en_core_web_lg
66-
python -m spacy download en_core_web_trf
67-
python -m nltk.downloader wordnet omw-1.4
61+
python post_install.py --help
6862
```
69-
70-
### Step 3: Install Cupy if using GPU (*Optional* - Skip if used *Option 3* in *Step 1*)
63+
Install the additional dependencies:
7164
```shell
72-
conda install -c conda-forge cupy
73-
```
74-
75-
### Step 4: Install MPI if using HPC (*Optional*)
76-
```shell
77-
module load <openmpi> # On a HPC Node
78-
pip install mpi4py # or <conda install -c conda-forge mpi4py> depending on the system
65+
python post_install.py # use the following, for example, for GPU system: <python post_install.py --gpu>
7966
```
8067

8168
#### Jupyter Setup Tutorial for using the examples ([Link](https://www.maksimeren.com/post/conda-and-jupyter-setup-for-research/))
8269

83-
### Other Considerations
84-
On some Linux devices, based on how CUDA was configured, you may get an error when using a GPU. Install ```cudatoolkit``` to resolve the error:
85-
```shell
86-
conda install cudatoolkit
87-
conda install cudnn
88-
```
8970

9071

9172
## Capabilities
@@ -114,46 +95,30 @@ conda install cudnn
11495
| RNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Recommender NMFk | [Link](examples/RNMFk/RNMFk.ipynb) | :white_check_mark: |
11596
| SymNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | NMFk with Symmetric Clustering | [Link](examples/SymNMFk/SymNMFk.ipynb) | :white_check_mark: |
11697
| WNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | NMFk with weighting - used for recommendation system | [Link](examples/WNMFk/WNMFk.ipynb) | :white_check_mark: |
117-
| HNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Hierarchical NMFk | [Link](examples/HNMFk/HNMFk.ipynb) | :white_check_mark: |
118-
| BNMFk | | | | | | | Boolean NMFk | | :soon: |
119-
| SPLIT NMFk | | | | | | | Joint NMFk factorization of multiple data via SPLIT | | :soon: |
120-
| SPLIT Transfer Classifier | | | | | | | Supervised transfer learning method via SPLIT and NMFk | | :soon: |
98+
| HNMFk | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Hierarchical NMFk | [Link](examples/HNMFk/HNMFk.ipynb) | :white_check_mark: |
99+
| BNMFk | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Boolean NMFk | [Link](examples/BNMFk/BNMFk.ipynb) | :white_check_mark: |
121100

122101
### TELF.pre_processing
123102

124103
| **Method** | **Multiprocessing** | **HPC** | **Description** | **Example** | **Release Status** |
125104
|:----------:|:-------------------:|:-------------------:|:------------------------------------------------------------------:|:-----------:|:------------------:|
126105
| Vulture | :heavy_check_mark: | :heavy_check_mark: | Advanced text processing tool for cleaning and NLP | [Link](examples/Vulture) | :white_check_mark: |
127106
| Beaver | :heavy_check_mark: | :heavy_check_mark: | Fast matrix and tensor building tool for text mining | [Link](examples/Beaver) | :white_check_mark: |
128-
| iPenguin | | | Online Semantic Scholar information retrieval tool | | :soon: |
129-
| Orca | | | Duplicate author detector for text mining and information retrival | | :soon: |
130-
| | | | | | |
131107

132-
### TELF.post_processing
133-
134-
| **Method** | **Description** | **Example** | **Release Status** |
135-
|:----------:|:----------------------------------------------------------:|:-----------:|:------------------:|
136-
| Peacock | Data visualization and generation of actionable statistics | | :soon: |
137-
| Wolf | Graph centrality and ranking tool | | :soon: |
138-
| Fox | Report generation tool for text data | | :soon: |
139-
| SeaLion | Generic report generation tool | | :soon: |
140108

141109
### TELF.applications
142110

143111
| **Method** | **Description** | **Example** | **Release Status** |
144112
|:----------:|:--------------------------------------------------------------------:|:-----------:|:------------------:|
145113
| Cheetah | Fast search by keywords and phrases | [Link](examples/Cheetah) | :white_check_mark: |
146-
| Bunny | Dataset generation tool for documents and their citations/references | | :soon: |
147-
| Termite | Knowladge graph building tool | | :soon: |
148-
149114

150115

151116
## How to Cite T-ELF?
152117
If you use T-ELF please cite.
153118

154119
**APA:**
155120
```latex
156-
Eren, M., Solovyev, N., Barron, R., Bhattarai, M., Truong, D., Boureima, I., Skau, E., Rasmussen, K., & Alexandrov, B. (2023). Tensor Extraction of Latent Features (T-ELF) (Version 0.0.20) [Computer software]. https://doi.org/10.5281/zenodo.10257897
121+
Eren, M., Solovyev, N., Barron, R., Bhattarai, M., Truong, D., Boureima, I., Skau, E., Rasmussen, K., & Alexandrov, B. (2023). Tensor Extraction of Latent Features (T-ELF) [Computer software]. https://doi.org/10.5281/zenodo.10257897
157122
```
158123

159124
**BibTeX:**
@@ -226,4 +191,26 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
226191

227192

228193
## Developer Test Suite
229-
Developer test suites are located under [```tests/```](tests/) directory. Tests can be ran from this folder using ```python -m pytest *```.
194+
Developer test suites are located under [```tests/```](tests/) directory. Tests can be ran from this folder using ```python -m pytest *```.
195+
196+
## LANL HPC Installation Notes
197+
198+
### Chicoma
199+
```shell
200+
# replace <path to your conda environments under projects> with your own path below.
201+
conda create --prefix=<path to your conda environments under projects> python=3.11.10
202+
source activate <path to your conda environments under projects> # or use conda activate <...>
203+
pip install .
204+
python post_install.py --gpu --hpc-conda
205+
```
206+
207+
### Darwin
208+
```shell
209+
salloc -n 1 -p shared-gpu
210+
module load openmpi
211+
module load miniconda3
212+
conda create --name TELF python=3.11.10
213+
conda activate TELF # or <source activate TELF>
214+
pip install .
215+
python post_install.py --gpu --hpc
216+
```

TELF/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .version import __version__
22
import sys
3-
sys.path += ["factorization/"]
4-
sys.path += ["pre_processing/"]
5-
sys.path += ["applications/"]
3+
sys.path += ["factorization"]
4+
sys.path += ["pre_processing"]
5+
sys.path += ["applications"]

TELF/applications/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
sys.path += ["Cheetah/"]
2+
sys.path += ["Cheetah"]
33

44
# Cheetah
55
from .Cheetah.cheetah import Cheetah

0 commit comments

Comments
 (0)