SkillAgentSearch skills...

AliNe

Nextflow Alignment Pipeline - from fastq.gz to sorted bam/cram with ease

Install / Use

/learn @Juke34/AliNe

README

GitHub CI status

AliNe (Alignment in Nextflow) - RNAseq DNAseq

<img align="right" src="img/IRD.png" width="200" height="66" /> <img align="right" src="img/MIVEGEC.png" width="100" height="66" />

AliNe is a pipeline written in Nextflow that aims to efficiently align reads against a reference using the tools of your choice.

Input: file, list of file, folder or csv
Output: Coordinate sorted BAM/CRAM file.

Table of Contents

Foreword

AliNe is a pipeline written in Nextflow that aims to efficiently align reads against a reference.

  • Can handle short reads paired or single, pacbio and ont (nanopore) data (see list of aligner in Table 1).
  • A QC with FastQC is made at each step if option activated.
  • A trimming is feasible before alignment if option activated.
  • The pipeline deals automatically with all quality encoding ('sanger', 'solexa', 'illumina-1.3+', 'illumina-1.5+', 'illumina-1.8+'). All fastq will be standardised in Phred+33 for downstream alignments by seqkit.
  • Deal automatically with the type of library used: stranded or not, firstrand, secondstrand etc... (see list of aligner in Table 2)
  • Can deal with annotation file (see list of aligner in Table 3) You can choose to run one or several aligner in parallel.

Aligner and read types accepted

Table 1 Here is the list of implemented aligners and the type of reads accepted:

| Tool | Single End (short reads) | Paired end (short reads) | Pacbio | ONT | | --- | --- | --- | --- | --- | | bbmap | ✅ | ✅ | ✅ use mapPacBio.sh | ✅ use mapPacBio.sh | | bowtie | ✅ | ✅ | ⚠️ | ⚠️ | | bowtie2 | ✅ | ✅ | ⚠️ | ⚠️ | | bwaaln | ✅ | ✅ R1 and R2 independently aligned then merged with bwa sampe | ⚠️ | ⚠️ | | bwafastalignmem | ✅ | ✅ | ✅ | ✅ | | bwamem | ✅ | ✅ | ✅ | ✅ | | bwamem2 | ✅ | ✅ | ✅ | ✅ | | bwasw | ✅ | ✅ | ⚠️ | ⚠️ | | graphmap2 | ⚠️ | ⚠️ R1 and R2 independently aligned then merged with cat | ✅ | ✅ | | hisat2 | ✅ | ✅ | ⚠️ | ⚠️ | | kallisto | ✅ | ✅ | ⚠️ | ⚠️ | | last | ⚠️ | ⚠️ R1 and R2 independently aligned then merged with maf-convert | ✅ | ✅ | | minimap2 | ✅ | ✅ | ✅ | ✅ | | ngmlr | ⚠️ | ⚠️ R1 and R2 independently aligned then merged with cat | ✅ | ✅ | | novoalign | ✅ | ✅ | ✅ | ⚠️ | | nucmer | ✅ | ✅ R1 and R2 independently aligned then merged with cat | ⚠️ | ⚠️ | | salmon | ✅ | ✅ | ⚠️ | ⚠️ | | star | ✅ | ✅ | ✅ use STARlong | ✅ use STARlong | | star 2pass mode | ✅ | ✅ | ⚠️ | ⚠️ | | subread | ✅ | ✅ | ⚠️ | ⚠️ | | sublong | ⚠️ | ⚠️ R1 and R2 independently aligned then merged with cat | ✅ | ✅ |

Legend
✅ Recommended
⚠️ Not recommended - It works but results might be sub-optimal (computing ressources might also be)
🚫 Not applicable

It is possible to bypass the default authorized read type using the AliNe --relax parameter.

Aligner and library types accepted

The pipeline deals automatically with the library types. It extract 10 000 reads by default and run salmon to guess the library type. It is then translated to the correct option in the following aligners:

| Tool | tool option | Library type by salmon | Comment | | --- | --- | --- | --- | | bbmap | xs=fr / xs=ss / xs=us | ISF ISR / OSF OSR / U | strand information | | bbmap | - / rcs=f / | ISF ISR IU / OSF OSR OU MSF MSR MU | read orientation | | bowtie | --fr / --rf / --ff | ISF ISR IU / OSF OSR OU / MSF MSR MU| read orientation | | bowtie2 | --fr / --rf / --ff | ISF ISR IU / OSF OSR OU / MSF MSR MU| read orientation | | bwaaln | 🚫 | 🚫 | 🚫 | | bwafastalignmem | 🚫 | 🚫 | 🚫 | | bwamem | 🚫 | 🚫 | 🚫 | | bwamem2 | 🚫 | 🚫 | 🚫 | | bwasw | 🚫 | 🚫 | 🚫 | | dragmap | 🚫 | 🚫 | 🚫 | | graphmap2 | 🚫 | 🚫 | 🚫 | | hisat2 | --rna-strandness [ F / R / FR / RF ] | SF / SR / ISF OSF MSF / ISR OSR MSR | strand information | | hisat2 | --fr / --rf / --ff | I / O / M | read orientation | | kallisto | --fr-stranded / --rf-stranded | I / O | read orientation | | last | 🚫 | 🚫 | 🚫 | | minimap2 | 🚫 | 🚫 | 🚫 | | ngmlr | 🚫 | 🚫 | 🚫 | | novoalign | 🚫 | 🚫 | 🚫 | | nucmer | 🚫 | 🚫 | 🚫 | | salmon | U SR SF IU MU OU ISF ISR MSF MSR OSR OSF | identical | strand information and read orientation | | star | 🚫 | 🚫 | 🚫 | | star 2pass mode | 🚫 | 🚫 | 🚫 | | subread | -S fr / -S rf / -S ff | ISF ISR IU / OSF OSR OU / MSF MSR MU | read orientation | | sublong | 🚫 | 🚫 | 🚫 |

Legend
U unstranded; SR stranded reverse; SF stranded forward; IU inward unstranded; OU outward unstranded; MU matching unstranded; ISF inward stranded forward; ISR inward stranded reverse; OSF outward stranded forward; OSR outward stranded reverse; MSF matching stranded forward; MSR matching stranded reverse (see herefor morde details)
🚫 Not applicable

By default the --library_type is in auto mode and the pipeline will automatically detect the library type.
You can also specify manually the library type to use via the --library_type parameter.
If the skip_libray_usage paramater is set, the information about the library type—either provided by the user or inferred by the pipeline using the --library_type parameter—will be ignored.
Note: If you explicitly specify the library type via the aligner parameter (e.g. hisat2_options for hisat2), that value will take precedence over any information provided or inferred using --library_type.

Aligner and annotation

If you provide an annotation file the pipeline will pass automatically the file to the following aligner:

| Tool | accept | | --- | --- | | bbmap | 🚫 | | bowtie | 🚫 | | bowtie2 | 🚫 | | bwaaln | 🚫 | | bwafastalignmem | 🚫 | | bwamem | 🚫 | | bwamem2 | 🚫 | | bwasw | 🚫 | | dragmap | 🚫 | | graphmap2 | GTF (--gtf) | | hisat2 | 🚫 | | kallisto | 🚫 | | last | 🚫 | | minimap2 | 🚫 | | ngmlr | 🚫 | | novoalign | 🚫 | | nucmer | 🚫 | | salmon | 🚫 | | star | GTF / GFF ( --sjdbGTFfile + --sjdbGTFtagExonParentTranscript Parent in case of GFF ) | | star 2pass mode | GTF / GFF (--sjdbGTFfile + --sjdbGTFtagExonParentTranscript Parent in case of GFF ) | | subread | GTF or compatible GFF format (-a) | | sublong | 🚫 |

Legend
🚫 Not applicable

Flowchart

---
config:
  theme: neutral
---
  graph TD;
      Reference-->Index;
      Index-->Aligner1;
      Index-->Aligner2;
      Annotation[Annotation - optional]--> Aligner1;
      Annotation--> Aligner2;
      Reads --> QCraw[QC raw];
      Reads --> StandardizeScore[Standardize score] 
      StandardizeScore --> Trim;
      Trim[Trim - optional] --> LibraryGuessing[Library guessing<br>strandedness and orientation];
      Trim --> QCtrim;
      LibraryGuessing --> Aligner1;
      LibraryGuessing --> Aligner2;
      Trim --> Aligner1;
      Aligner1 --> QCaligner1[QC aligner1];
      Trim --> Aligner2;
      Aligner2 --> QCaligner2[QC aligner2];
      QCraw[QC raw] --> MultiQC;
      QCtrim[QC trim] --> MultiQC;
      QCaligner1 --> MultiQC;
      QCaligner2 --> MultiQC;

Installation

The prerequisites to run the pipeline are:

Nextflow

  • Via conda

    <details> <summary>See here</summary>
    conda create -n nextflow
    conda activate nextflow
    conda install bioconda::nextflow
    
    </details>
  • Manually

    <details> <summary>See here</summary> Nextflow runs on most POSIX systems (Linux, macOS, etc) and can typically be installed by running these commands:
    # Make sure 11 or later is installed on your computer by using the command:
    java -version
    
    # Install Nextflow by entering this command in your terminal(it creates a file nextflow in the current dir):
    curl -s https://get.nextflow.io | bash 
    
    # Add Nextflow binary to your user's PATH:
    mv nextflow ~/bin/
    # OR system-wide installation:
    # sudo mv nextflow /usr/local/bin
    
    </details>

Container platform

To run the workflow you will need a container platform: docker or singularity.

Docker

Please follow the instructions at the Docker website

Singularity

Please follow the instructions at the Singularity website

Usage

Help

You can first check the available options and parameters by running:

nextflow run Juke34/AliNe -r v1.5.0 --help

Profile

To run the workflow you must select a profile according to the container platform you want to use:

  • singularity, a profile using Singularity to run the containers
  • docker, a profile using Docker to run the containers

The command will look like that:

nextflow run Juke34/AliNe -r v1.5.0 -profile docker <rest of paramaters>

Another profile is availab

Related Skills

View on GitHub
GitHub Stars21
CategoryDevelopment
Updated17d ago
Forks3

Languages

Nextflow

Security Score

95/100

Audited on Mar 19, 2026

No findings