AliNe
Nextflow Alignment Pipeline - from fastq.gz to sorted bam/cram with ease
Install / Use
/learn @Juke34/AliNeREADME
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
- Flowchart
- Installation
- Usage and test
- Parameters
- Output
- Integrating AliNe in another nf pipeline
- Contributing
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 >= 22.04.0
- Docker or Singularity
Nextflow
-
Via conda
<details> <summary>See here</summary>
</details>conda create -n nextflow conda activate nextflow conda install bioconda::nextflow -
Manually
<details> <summary>See here</summary> Nextflow runs on most POSIX systems (Linux, macOS, etc) and can typically be installed by running these commands:
</details># 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
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 containersdocker, 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
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
