Skip to content

Commit a751b2d

Browse files
committed
Merge branch 'master' into galaxy-wrappers-corepipeline
2 parents be7267f + 31734cb commit a751b2d

460 files changed

Lines changed: 31270 additions & 38497 deletions

File tree

Some content is hidden

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

.classpath

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,32 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<classpath>
3-
<classpathentry kind="src" path="src"/>
4-
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
5-
<classpathentry kind="lib" path="lib/jcommon-1.0.21.jar"/>
6-
<classpathentry kind="lib" path="lib/jfreechart-1.0.17.jar"/>
7-
<classpathentry kind="lib" path="lib/jfreesvg-3.0.jar"/>
8-
<classpathentry kind="lib" path="lib/picard.jar"/>
9-
<classpathentry kind="output" path="bin"/>
10-
</classpath>
3+
<classpathentry kind="src" output="bin/main" path="src/main/resources">
4+
<attributes>
5+
<attribute name="gradle_scope" value="main"/>
6+
<attribute name="gradle_used_by_scope" value="main,test"/>
7+
</attributes>
8+
</classpathentry>
9+
<classpathentry kind="src" output="bin/test" path="src/test/java">
10+
<attributes>
11+
<attribute name="gradle_scope" value="test"/>
12+
<attribute name="gradle_used_by_scope" value="test"/>
13+
<attribute name="test" value="true"/>
14+
</attributes>
15+
</classpathentry>
16+
<classpathentry kind="src" output="bin/test" path="src/test/resources">
17+
<attributes>
18+
<attribute name="gradle_scope" value="test"/>
19+
<attribute name="gradle_used_by_scope" value="test"/>
20+
<attribute name="test" value="true"/>
21+
</attributes>
22+
</classpathentry>
23+
<classpathentry kind="src" output="bin/main" path="src/main/java">
24+
<attributes>
25+
<attribute name="gradle_scope" value="main"/>
26+
<attribute name="gradle_used_by_scope" value="main,test"/>
27+
</attributes>
28+
</classpathentry>
29+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
30+
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
31+
<classpathentry kind="output" path="bin/default"/>
32+
</classpath>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: Bug report
3+
about: Report bugs so we can fix them
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
Please complete the following information:
11+
12+
#### Describe the bug
13+
A clear and concise description of what the bug is.
14+
15+
#### Environment:
16+
- ScriptManager version =
17+
(run `java -jar /path/to/scriptmanager.jar --version`)
18+
- Java Version =
19+
(run `java --version`)
20+
- OS =
21+
(run `uname -sr` on Linux/Mac OS or ` wmic os get Caption, Version` on Windows)
22+
- machine architecture =
23+
(run `uname -m` on Linux/Mac OS or ` wmic os get OSArchitecture` on Windows)
24+
25+
#### To Reproduce
26+
Are you running ScriptManager from the graphical interface (GUI) or the command line (CLI)?
27+
28+
Steps to reproduce the behavior:
29+
1. Go to '...'
30+
2. Click on '....'
31+
3. Scroll down to '....'
32+
4. See error
33+
34+
#### Expected behavior
35+
A clear and concise description of what you expected to happen.
36+
37+
#### Screenshots
38+
If applicable, add screenshots to help explain your problem.
39+
40+
#### Additional context
41+
Add any other context about the problem here.

.github/ISSUE_TEMPLATE/new-tool.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: New Tool
3+
about: Use this template's checklist for brand new tools
4+
title: ''
5+
labels: New Tool
6+
assignees: ''
7+
8+
---
9+
10+
## Describe tool
11+
12+
... Blah blah blah blah...
13+
14+
## Checklist
15+
16+
New tools should be written on branches off `dev`. A pull request to the `dev` branch can then be submitted and a reviewer will review the code and accept the merge.
17+
18+
- [ ] Write tests
19+
- [ ] Write tool (list changed files)
20+
- [ ] `objects.ToolDescriptions.java`
21+
- [ ] `scripts.MyTool.java`
22+
- [ ] `cli.MyToolCLI.java`
23+
- [ ] `window_interface.MyToolWindow.java`
24+
- [ ] `window_interface.MyToolOutput.java`
25+
- [ ] `main.ScriptManagerGUI.java`
26+
- [ ] `main.ScriptManager.java`
27+
- [ ] Add logging support
28+
- [ ] Update documentation (docusaurus)
29+
- [ ] Write Galaxy wrapper
30+
31+
Then you can pull your changes into master! 🎉
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
name: Version Increment
3+
about: Use this template's checklist to version increment
4+
5+
---
6+
7+
The [Release Roadmap](https://github.com/orgs/CEGRcode/projects/9) on Github organizes issue tickets and creates a projection of which issues should be addressed for each release. This helps when writing up the release notes/change log, tagging all the appropriate issues, as well as visually tracking what tasks are left to do in each release. When we are ready for a release, the following checklist should be followed to ensure that we update everything together without missing anything.
8+
9+
### Check [Release Roadmap]((https://github.com/orgs/CEGRcode/projects/9))
10+
- [ ] Make sure all issues are closed and pulled into dev
11+
- [ ] Update roadmap so next version is first to display
12+
13+
### [Docusaurus updates](https://github.com/CEGRcode/scriptmanager-docs)
14+
- [ ] Make sure new tools have their own pages that thoroughly describe what they do
15+
- [ ] Affected tools have been updated accordingly (check logs for list of tools)
16+
- [ ] Make sure last updated timestamps are appropriate/correct
17+
- [ ] Increment version across docs
18+
- [ ] Update Download links for latest version on the Getting Started page
19+
20+
### Testing
21+
- [ ] Ideally some degree of user testing on the development version has been performed (ask the bench scientists).
22+
- [ ] Make sure latest [Github Actions build](https://github.com/CEGRcode/scriptmanager/actions/workflows/gradle.yml) ran successfully
23+
- [ ] Any CI tests that exist should be run (`gradlew test`)
24+
25+
### Release commit
26+
- [ ] `build.gradle`
27+
- [ ] Increment version (`version = ____`) and strip dev from JAR filename
28+
- [ ] `src/objects/ToolDescriptions.java`
29+
- [ ] Increment ScriptManager version constant (used by all CLI tools and GUI JFrame title for versioning)
30+
31+
### Github Release/version tag
32+
- [ ] Commit & pull request, review into master
33+
- [ ] Create version release & add version tag to the commit id
34+
- [ ] Compile JAR and save with source tar archive on release page
35+
- [ ] Write up summary for the version tag commit including change log that links to resolved/relevant issue tickets (refer to Release Roadmap)
36+
37+
### Switch naming back to dev
38+
- [ ] `build.gradle` file should switch naming JAR to use dev
39+
- [ ] `src/objects/ToolDescriptions.java` file should switch naming JAR to use dev

.github/workflows/gradle.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# This workflow uses actions that are not certified by GitHub.
2+
# They are provided by a third-party and are governed by
3+
# separate terms of service, privacy policy, and support
4+
# documentation.
5+
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
6+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
7+
8+
# Modified to matrix test across three OS and two Temurin distributions of Java - two LTS versions (11 and 17)
9+
10+
name: Java CI with Gradle
11+
12+
on:
13+
push:
14+
branches: [ "master" ]
15+
pull_request:
16+
branches: [ "master", "dev" ]
17+
18+
permissions:
19+
contents: read
20+
21+
jobs:
22+
build:
23+
name: Build on node ${{ matrix.java_version }} and ${{ matrix.os }}
24+
runs-on: ${{ matrix.os }}
25+
strategy:
26+
matrix:
27+
java_version: ['11', '17']
28+
os: [ ubuntu-latest, windows-latest, macOS-latest ]
29+
30+
steps:
31+
- uses: actions/checkout@v3
32+
- name: Set up JDK ${{ matrix.java_version }} on ${{ matrix.os }}
33+
uses: actions/setup-java@v3
34+
with:
35+
java-version: ${{ matrix.java_version }}
36+
distribution: 'temurin'
37+
- name: Build with Gradle
38+
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
39+
with:
40+
arguments: build

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
**/.DS_Store
12
/bin
23
/.gradle/
34
/build/
5+
.metadata
6+
.idea

.project

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
</projects>
77
<buildSpec>
88
<buildCommand>
9-
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
1010
<arguments>
1111
</arguments>
1212
</buildCommand>
1313
<buildCommand>
14-
<name>org.eclipse.jdt.core.javabuilder</name>
14+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
1515
<arguments>
1616
</arguments>
1717
</buildCommand>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
connection.project.dir=
2-
eclipse.preferences.version=1
2+
eclipse.preferences.version=1

README.md

Lines changed: 18 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -1,133 +1,25 @@
1-
# scriptmanager
2-
### GUI pipeline containing useful NGS analysis scripts.
1+
# ScriptManager
32

4-
Scripts are generically categorized within semi-descriptive tabs and are designed to be run in parallel with each other and themselves.
3+
ScriptManager was built to be a lightweight and easy to use genomics analysis tool for novice bioinformaticians. It includes both a graphical interface for easy navigation of inputs and options while also supporting a command line interface for automation and integration with workflow managers like Galaxy. We describe here how a user unfamiliar with the command line can leverage national supercomputing resources using a graphical desktop interface like Open OnDemand to perform their analyses and generate publication quality figures for their research. Widespread adoption of this tool in the genomics community would lower technical barriers to accessing supercomputing resources and allow biochemists to prototype their own workflows that can be integrated into large scale production pipelines. Source code and precompiled binaries available at https://github.com/CEGRcode/scriptmanager.
54

5+
### [:house: ScriptManager Website Homepage :house:](https://pughlab.mbg.cornell.edu/scriptmanager-docs/)
66

7-
### Tutorial to using basic plotting capabilities of ScriptManager
8-
Open **ScriptManager-Tutorial.docx** available in root directory
7+
## Documentation Quick-links
8+
* [Getting Started](https://pughlab.mbg.cornell.edu/scriptmanager-docs/)
9+
* [Full list of scripts available](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/References/tool-index) - Scripts are generically categorized within semi-descriptive tabs and are designed to be run in parallel with each other and themselves.
910

10-
## Build Instructions
11-
(after cloning this repo):
12-
```
13-
$ cd scriptmanager
14-
$ ./gradlew build
15-
```
11+
## Tutorials
12+
* [ChIP-exo Tutorial](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tutorials/chipexo-tutorial)
13+
* [Four-color Sequence Plot Tutoral](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tutorials/genomic-features-tutorial)
1614

17-
The compiled JAR file will be output into the `build/libs` directory.
15+
## Pugh Lab Favorite Tools
16+
:star: [Tag Pileup](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tools/read-analysis/tag-pileup)
17+
:star: [Expand BED](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tools/coordinate-manipulation/expand-bed)
18+
:star: [Align BED to Reference](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tools/peak-analysis/peak-align-ref)
19+
:star: [Aggregate Data](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tools/read-analysis/aggregate-data)
20+
:star: [Scaling Factor](https://pughlab.mbg.cornell.edu/scriptmanager-docs/docs/Tools/read-analysis/scaling-factor) :star:
1821

19-
## Running ScriptManager
22+
## Citing Us
23+
If you use ScriptManager in your work, you can use the Lang et al (2022) publication or use ScriptManager's unique [RRID:SCR_021797](https://scicrunch.org/resources/data/record/nlx_144509-1/SCR_021797/resolver?q=SCR_021797%2A&l=SCR_021797%2A&i=rrid:scr_021797).
2024

21-
To run the GUI verson of ScriptManager, you can double click the compiled JAR file or run the followinug command in the terminal
22-
```
23-
$ java -jar /path/to/jarfile
24-
```
25-
26-
Running the CLI version of ScriptManager is similar to running the GUI. To view the list of command options, use the `-h` flag.
27-
```
28-
$ java -jar /path/to/jarfile -h
29-
```
30-
31-
**Example:**
32-
```
33-
$ java -jar /path/to/jarfile coordinate-manipulation bed-to-gff BEDFILE.bed -o OUTPUT.gff
34-
```
35-
36-
## Current scripts available (210106):
37-
38-
**BAM Statistics:**
39-
40-
-BAM Statistics
41-
42-
-Paired-End Statistics
43-
44-
-BAM Genome Correlation
45-
46-
47-
**BAM Manipulation:**
48-
49-
-BAM-BAI Indexer
50-
51-
-BAM File Sorter
52-
53-
-BAM Remove Duplicates
54-
55-
-BAM Replicate Merge
56-
57-
-Filter for PIP-seq
58-
59-
60-
**BAM Format Converter:**
61-
62-
-BAM to scIDX
63-
64-
-BAM to GFF
65-
66-
-BAM to BED
67-
68-
-BAM to bedGraph
69-
70-
71-
**File Utilities:**
72-
73-
-MD5 Checksum
74-
75-
76-
**Peak Calling:**
77-
78-
-Genetrack - still highly unstable
79-
80-
81-
**Peak Analysis:**
82-
83-
-Align BED to Reference
84-
85-
-Filter BED by Proximity
86-
87-
-Genomic Coordinate Tile
88-
89-
-Generate Random Coordinate
90-
91-
-Signal Duplication
92-
93-
94-
**Coordinate File Manipulation:**
95-
96-
-Expand BED/GFF File
97-
98-
-Convert BED/GFF to GFF/BED
99-
100-
-Sort BED/GFF by CDT
101-
102-
103-
**Sequence Read Analysis:**
104-
105-
-Tag Pileup
106-
107-
-Calculate Scaling Factor
108-
109-
-Scale Matrix Data
110-
111-
-Aggregate Data
112-
113-
114-
**DNA Sequence Analysis:**
115-
116-
-FASTA from BED
117-
118-
-Randomize FASTA
119-
120-
-Search Motif in FASTA
121-
122-
-DNA Shape from BED
123-
124-
-DNA Shape from FASTA
125-
126-
127-
**Figure Generation:**
128-
129-
-Heatmap
130-
131-
-Merge Heatmaps
132-
133-
-4Color Sequence Plot
25+
* Lang OW, Pugh BF, Lai WKM. ScriptManager: an interactive platform for reducing barriers to genomic analysis. PEARC'22. 2022 Jul. [doi: 10.1145/3491418.3535161](https://dl.acm.org/doi/abs/10.1145/3491418.3535161).

ScriptManager-Tutorial.docx

-3.16 MB
Binary file not shown.

0 commit comments

Comments
 (0)