Skip to content

Commit

Permalink
Merge pull request #1 from nf-core/master
Browse files Browse the repository at this point in the history
First release of nf-core Hi-C pipeline
  • Loading branch information
nservant committed May 6, 2019
2 parents 4ad259c + f7a827e commit 10d67e5
Show file tree
Hide file tree
Showing 30 changed files with 1,678 additions and 367 deletions.
6 changes: 4 additions & 2 deletions .github/CONTRIBUTING.md
Expand Up @@ -6,7 +6,9 @@ We try to manage the required tasks for nf-core/hic using GitHub issues, you pro

However, don't be put off by this template - other more general issues and suggestions are welcome! Contributions to the code are even more welcome ;)

> If you need help using or modifying nf-core/hic then the best place to go is the Gitter chatroom where you can ask us questions directly: https://gitter.im/nf-core/Lobby
> If you need help using or modifying nf-core/hic then the best place to ask is on the pipeline channel on [Slack](https://nf-core-invite.herokuapp.com/).


## Contribution workflow
If you'd like to write some code for nf-core/hic, the standard workflow
Expand Down Expand Up @@ -42,4 +44,4 @@ If there are any failures then the automated tests fail.
These tests are run both with the latest available version of Nextflow and also the minimum required version that is stated in the pipeline code.

## Getting help
For further information/help, please consult the [nf-core/hic documentation](https://github.com/nf-core/hic#documentation) and don't hesitate to get in touch on [Gitter](https://gitter.im/nf-core/Lobby)
For further information/help, please consult the [nf-core/hic documentation](https://github.com/nf-core/hic#documentation) and don't hesitate to get in touch on the pipeline channel on [Slack](https://nf-core-invite.herokuapp.com/).
9 changes: 9 additions & 0 deletions .github/markdownlint.yml
@@ -0,0 +1,9 @@
# Markdownlint configuration file
default: true,
line-length: false
no-multiple-blanks: 0
blanks-around-headers: false
blanks-around-lists: false
header-increment: false
no-duplicate-header:
siblings_only: true
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -4,3 +4,4 @@ data/
results/
.DS_Store
tests/test_data
*.pyc
8 changes: 7 additions & 1 deletion .travis.yml
Expand Up @@ -13,7 +13,8 @@ before_install:
# Pull the docker image first so the test doesn't wait for this
- docker pull nfcore/hic:dev
# Fake the tag locally so that the pipeline runs properly
- docker tag nfcore/hic:dev nfcore/hic:latest
# Looks weird when this is :dev to :dev, but makes sense when testing code for a release (:dev to :1.0.1)
- docker tag nfcore/hic:dev nfcore/hic:1.0.0

install:
# Install Nextflow
Expand All @@ -25,12 +26,17 @@ install:
- pip install nf-core
# Reset
- mkdir ${TRAVIS_BUILD_DIR}/tests && cd ${TRAVIS_BUILD_DIR}/tests
# Install markdownlint-cli
- sudo apt-get install npm && npm install -g markdownlint-cli

env:
- NXF_VER='0.32.0' # Specify a minimum NF version that should be tested and work
- NXF_VER='' # Plus: get the latest NF version and check that it works

script:
# Lint the pipeline code
- nf-core lint ${TRAVIS_BUILD_DIR}
# Lint the documentation
- markdownlint ${TRAVIS_BUILD_DIR} -c ${TRAVIS_BUILD_DIR}/.github/markdownlint.yml
# Run the pipeline with the test profile
- nextflow run ${TRAVIS_BUILD_DIR} -profile test,docker
28 changes: 15 additions & 13 deletions CHANGELOG.md
@@ -1,15 +1,17 @@
# nf-core/hic: Changelog

## v1.0dev - 2019-04-09

First version of nf-core-hic pipeline which is a Nextflow implementation of the HiC-Pro pipeline [https://github.com/nservant/HiC-Pro].
Note that all HiC-Pro functionalities are not yet all implemented. The current version is designed for protocols based on restriction enzyme digestion.

In summary, this version allows :
* Automatic detection and generation of annotation files based on igenomes if not provided.
* Two-steps alignment of raw sequencing reads
* Reads filtering and detection of valid interaction products
* Generation of raw contact matrices for a set of resolutions
* Normalization of the contact maps using the ICE algorithm
* Generation of cooler file for visualization on higlass [https://higlass.io/]
* Quality report based on HiC-Pro MultiQC module
## v1.0 - 2019-05-06

First version of nf-core Hi-C pipeline which is a Nextflow implementation of the [HiC-Pro pipeline](https://github.com/nservant/HiC-Pro/).
Note that all HiC-Pro functionalities are not yet all implemented.
The current version supports most protocols including Hi-C, in situ Hi-C, DNase Hi-C, Micro-C, capture-C or HiChip data.

In summary, this version allows :

* Automatic detection and generation of annotation files based on igenomes if not provided.
* Two-steps alignment of raw sequencing reads
* Reads filtering and detection of valid interaction products
* Generation of raw contact matrices for a set of resolutions
* Normalization of the contact maps using the ICE algorithm
* Generation of cooler file for visualization on [higlass](https://higlass.io/)
* Quality report based on HiC-Pro MultiQC module
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Expand Up @@ -34,7 +34,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team on the [Gitter channel](https://gitter.im/nf-core/Lobby). The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team on [Slack](https://nf-core-invite.herokuapp.com/). The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

Expand Down
5 changes: 4 additions & 1 deletion Dockerfile
Expand Up @@ -2,6 +2,9 @@ FROM nfcore/base
LABEL authors="Nicolas Servant" \
description="Docker image containing all requirements for nf-core/hic pipeline"

## Install gcc for pip iced install
RUN apt-get update && apt-get install -y gcc g++ && apt-get clean -y

COPY environment.yml /
RUN conda env create -f /environment.yml && conda clean -a
ENV PATH /opt/conda/envs/nf-core-hic-1.0dev/bin:$PATH
ENV PATH /opt/conda/envs/nf-core-hic-1.0.0/bin:$PATH
9 changes: 5 additions & 4 deletions README.md
@@ -1,8 +1,8 @@
# ![nf-core/hic](docs/images/nfcore-hic_logo.png)

**Analysis of Chromosome Conformation Capture data (Hi-C)**
**Analysis of Chromosome Conformation Capture data (Hi-C)**.

[![Build Status](https://travis-ci.org/nf-core/hic.svg?branch=master)](https://travis-ci.org/nf-core/hic)
[![Build Status](https://travis-ci.com/nf-core/hic.svg?branch=master)](https://travis-ci.com/nf-core/hic)
[![Nextflow](https://img.shields.io/badge/nextflow-%E2%89%A50.32.0-brightgreen.svg)](https://www.nextflow.io/)

[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg)](http://bioconda.github.io/)
Expand All @@ -12,8 +12,9 @@ https://img.shields.io/badge/singularity-available-7E4C74.svg)

### Introduction
This pipeline is based on the [HiC-Pro workflow](https://github.com/nservant/HiC-Pro).
It was designed to process Hi-C data from raw fastq files (paired-end Illumina data) to normalized contact maps. The current version supports digestion protocols.
Support for other protocols is ongoing.
It was designed to process Hi-C data from raw fastq files (paired-end Illumina data) to normalized contact maps.
The current version supports most protocols, including digestion protocols as well as protocols that do not require restriction enzymes such as DNase Hi-C.
In practice, this workflow was successfully applied to many data-sets including dilution Hi-C, in situ Hi-C, DNase Hi-C, Micro-C, capture-C, capture Hi-C or HiChip data.

The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It comes with docker / singularity containers making installation trivial and results highly reproducible.

Expand Down
18 changes: 0 additions & 18 deletions Singularity

This file was deleted.

17 changes: 0 additions & 17 deletions assets/email_template.txt
Expand Up @@ -17,23 +17,6 @@ ${errorReport}
} %>


<% if (!success){
out << """####################################################
## nf-core/hic execution completed unsuccessfully! ##
####################################################
The exit status of the task that caused the workflow execution to fail was: $exitStatus.
The full error message was:

${errorReport}
"""
} else {
out << "## nf-core/hic execution completed successfully! ##"
}
%>




The workflow was completed at $dateComplete (duration: $duration)

The command used to launch the workflow was as follows:
Expand Down
9 changes: 9 additions & 0 deletions assets/multiqc_config.yaml
@@ -0,0 +1,9 @@
report_comment: >
This report has been generated by the <a href="https://github.com/nf-core/hic" target="_blank">nf-core/hic</a>
analysis pipeline. For information about how to interpret these results, please see the
<a href="https://github.com/nf-core/hic" target="_blank">documentation</a>.
report_section_order:
nf-core/hic-software-versions:
order: -1000

export_plots: true
31 changes: 28 additions & 3 deletions assets/sendmail_template.txt
@@ -1,11 +1,36 @@
To: $email
Subject: $subject
Mime-Version: 1.0
Content-Type: multipart/related;boundary="nfmimeboundary"
Content-Type: multipart/related;boundary="nfcoremimeboundary"

--nfmimeboundary
--nfcoremimeboundary
Content-Type: text/html; charset=utf-8

$email_html

--nfmimeboundary--
<%
if (mqcFile){
def mqcFileObj = new File("$mqcFile")
if (mqcFileObj.length() < mqcMaxSize){
out << """
--nfcoremimeboundary
Content-Type: text/html; name=\"multiqc_report\"
Content-Transfer-Encoding: base64
Content-ID: <mqcreport>
Content-Disposition: attachment; filename=\"${mqcFileObj.getName()}\"

${mqcFileObj.
bytes.
encodeBase64().
toString().
tokenize( '\n' )*.
toList()*.
collate( 76 )*.
collect { it.join() }.
flatten().
join( '\n' )}
"""
}}
%>

--nfcoremimeboundary--

0 comments on commit 10d67e5

Please sign in to comment.