Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d4fb636
Updating the check for existing environments so that the full name mu…
AlexTate May 9, 2023
645ae04
Updating dependency lockfiles and adding environment.yml for Python 3.10
AlexTate May 9, 2023
4663d5b
Updating links to matplotlib documentation
AlexTate May 9, 2023
7ed138d
Updating deprecated Pandas API calls
AlexTate May 9, 2023
8bdf513
Updating deprecated Numpy API call
AlexTate May 9, 2023
193e8b2
Updating deprecated Matplotlib API call
AlexTate May 9, 2023
df86102
Adding Pysam 0.21 dependency to environment_3.10.yml. For some reason…
AlexTate May 18, 2023
383dd1d
Changing the default StepVector from HTSeq to Cython in the Reference…
AlexTate May 18, 2023
8a4cd3d
Updating update-lockfiles.sh to allow for passing the environment fil…
AlexTate May 18, 2023
4f407fc
Cleaning up script argument handling by using parameter expansion
AlexTate May 19, 2023
de7623b
Adding a template environment.yml file. This file will be used for cr…
AlexTate May 22, 2023
c5ef7b8
Including some recent updates in environment_3.10.yml. Also making pi…
AlexTate May 22, 2023
8f08834
Renaming environment.yml to environment_3.9.yml for consistency
AlexTate May 22, 2023
6d4401e
Updating lockfiles to include recent updates to environment_3.10.yml
AlexTate May 22, 2023
06b7e9b
Adding a script and accompanying documentation for creating new envir…
AlexTate May 22, 2023
9172cac
Code cleanup and refactoring.
AlexTate May 24, 2023
ab30e69
Adding/updating environment files with some new temporary pinnings th…
AlexTate May 24, 2023
d5da96c
Updating lockfiles from updated environment*.yml files. Also correcti…
AlexTate May 24, 2023
4d5a34c
Lots of updates to setup.sh.
AlexTate May 24, 2023
0816269
Removing unused imports in resume.py
AlexTate May 24, 2023
637fdae
Minor logical change in the functions that set up command line args i…
AlexTate May 24, 2023
1caed14
Switching to a safer usage of subprocess.run() for calling cwltool
AlexTate May 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ This option provides the latest features but stable releases are more rigorously
./setup.sh
```

### Updating an Existing Installation
When it's time to update your installation of tinyRNA, simply repeat the procedure you used for installation. Note that the existing Conda environment, including any additional packages you may have installed within it, will be removed by the installation script.

## tiny-count Standalone Installation
Alternatively, you can install tinyRNA's precision counting tool by itself. Unlike the full tinyRNA suite, this option can be installed in existing conda environments and requires fewer dependencies.

Expand Down
40 changes: 40 additions & 0 deletions conda/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# For Users
These files are utilized during tinyRNA's setup. During normal usage you shouldn't need to access or modify them. To install or update the tinyRNA environment and codebase, navigate to the project's root directory and run `./setup.sh`

# For Developers
Environment lockfiles allow us to skip Conda's time-intensive preparation steps, e.g. "Solving environment" and "Collecting package metadata", when the user installs/updates the tinyRNA environment.

Dependencies are strictly pinned so that the user's environment exactly matches the environment where testing has been performed.

## Files in this Directory
| File | Description |
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `environment_3.[...].yml` | Environment files for different Python versions. These files are platform-agnostic to simplify testing. Just one environment file is needed for creating both the Linux and macOS lockfiles. |
| `environment_template.yml` | Template environment file used for creating new environment files for a specific Python version. |
| `conda-[...]-64.lock` | Platform-specific lockfiles that contain a fully solved dependency tree specification for the latest Python version we support. These are the files that the setup script uses when creating the tinyRNA environment. |
| `env.py` | A script for creating and updating these files. |

## The Development Environment
A separate conda environment is created to hold the dependencies required for creating and updating lockfiles. Keeping development and tinyRNA dependencies separate helps to avoid dependency conflicts.

## Updating the Default Python Version
An environment's Python version determines the environment's dependency tree. Creating specifications for a new Python version is a multi-step process, but a script has been provided to help automate it. **The script can be executed from any environment.**

The idea is to start with a template environment file containing all of our dependencies where nearly all dependencies are unpinned. Normally only the Python version is pinned in the template, but right now Pysam is also pinned because Mamba doesn't currently solve for the version we need by default. We then use Mamba to solve the unpinned dependency versions which are used to create a final, strictly pinned environment file for the new Python version. The new file is then used to create platform-specific lockfiles.

### 1. Create an Environment File for the new Python Version
```shell
python3 env.py new-env --py 3.XX --template environment_template.yml
```

Replace `3.XX` with the target Python version. This command will produce a new environment file named `environment_3.XX.yml` that contains each dependency's solved version.

### 2. Create Platform-Specific Lockfiles
```shell
python3 env.py update-locks --env-file environment_3.XX.yml
```

Replace `environment_3.XX.yml` with the name of the environment file you created in step 1. This command will rebuild the dependency tree in both lockfiles (linux and osx) according to the new environment file.



582 changes: 316 additions & 266 deletions conda/conda-linux-64.lock

Large diffs are not rendered by default.

Loading