Skip to content

Commit

Permalink
Merge branch 'main' of github.com:Hongxiang2023/YAME
Browse files Browse the repository at this point in the history
  • Loading branch information
zwdzwd committed Nov 15, 2024
2 parents 0269685 + c0715ab commit f6ee9a6
Show file tree
Hide file tree
Showing 73 changed files with 24,977 additions and 0 deletions.
Binary file added .DS_Store
Binary file not shown.
70 changes: 70 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll site to Pages

on:
push:
branches:
- "main"
paths:
- "docs/**"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
# Build job
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
cache-version: 0
working-directory: '${{ github.workspace }}/docs'
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "docs/_site/"

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
43 changes: 43 additions & 0 deletions R/testEnrichmentFisherN.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
testEnrichmentFisherN <- function(
nD, nQ, nDQ, nU, alternative = "greater") {
#N_mask,N_query,N_overlap,N_universe
nDmQ <- nD - nDQ
nQmD <- nQ - nDQ
nUmDQ <- nU - nQ - nD + nDQ

if (alternative == "two.sided") {
pvg <- phyper(
nDQ-1, nDQ + nQmD, nUmDQ + nDmQ, nDmQ + nDQ,
lower.tail = FALSE, log.p = TRUE) / log(10)
pvl <- phyper(
nDQ, nDQ + nQmD, nUmDQ + nDmQ, nDmQ + nDQ,
lower.tail = TRUE, log.p = TRUE) / log(10)
log10.p.value <- pmin(pmin(pvg, pvl) + log(2), 0) / log(10)
## log10.p.value <- log10(fisher.test(matrix(c(
## nDQ, nDmQ, nQmD, nUmDQ), nrow = 2))$p.value)
} else if (alternative == "greater") {
log10.p.value <- phyper(
nDQ-1, nDQ + nQmD, nUmDQ + nDmQ, nDmQ + nDQ,
lower.tail = FALSE, log.p = TRUE) / log(10)
} else if (alternative == "less") {
log10.p.value <- phyper(
nDQ, nDQ + nQmD, nUmDQ + nDmQ, nDmQ + nDQ,
lower.tail = TRUE, log.p = TRUE) / log(10)
} else {
stop("alternative must be either greater, less or two-sided.")
}

odds_ratio <- nDQ / nQmD / nDmQ * nUmDQ # can be NaN if 0
odds_ratio[odds_ratio == Inf] <- .Machine$double.xmax
odds_ratio[odds_ratio == 0] <- .Machine$double.xmin
data.frame(
estimate = log2(odds_ratio),
p.value = 10**(log10.p.value),
log10.p.value = log10.p.value,
test = "Log2(OR)",
nQ = nQ, nD = nD, overlap = nDQ,
cf_Jaccard = nDQ / (nD + nQmD),
cf_overlap = nDQ / pmin(nD, nQ), # Szymkiewicz–Simpson
cf_NPMI = (log2(nD)+log2(nQ)-2*log2(nU))/(log2(nDQ)-log2(nU))-1,
cf_SorensenDice = 2 * nDQ/(nD + nQ))
}
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
# YAME (Yet Another MEthylation tool)

YAME (Yet Another MEthylation tool) is a methylation toolset designed for sequence-level DNA methylation data management. It is a command-line C program capable of performing sequence-level enrichment testing, row operations (such as merging pseudobulks), downsampling, and other related tasks with ultra fast speed.

## Publication

If you use YAME, kindly [cite](Coming soon):

```
David Goldberg, Hongxiang Fu, Daniel Atkins, Ethan Moyer, Wanding Zhou, KnowYourCG: supervised learning of sparse DNA methylomes.
```

## Usage and Documentation

A User Guide has been created to provide detailed documentation of YAME. The guide can be found at: https://hongxiang2023.github.io/YAME/.
Binary file added docs/.DS_Store
Binary file not shown.
15 changes: 15 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Not sure what a .gitignore is?
# See: https://git-scm.com/docs/gitignore

# These are directly copied from Jekyll's first-party docs on `.gitignore` files:
# https://jekyllrb.com/tutorials/using-jekyll-with-bundler/#commit-to-source-control

# Ignore the default location of the built site, and caches and metadata generated by Jekyll
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata

# Ignore folders generated by Bundler
.bundle/
vendor/
25 changes: 25 additions & 0 deletions docs/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
permalink: /404.html
layout: default
---

<style type="text/css" media="screen">
.container {
margin: 10px auto;
max-width: 600px;
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
}
</style>

<div class="container">
<h1>404</h1>

<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>
34 changes: 34 additions & 0 deletions docs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.3.4"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
gem "just-the-docs"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end

# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end

# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]

# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
Loading

0 comments on commit f6ee9a6

Please sign in to comment.