From the link you posted it looks as though they used UMI tools as per the section which says
'were removed and added to the name of the read as a unique molecular identifier (UMI) using UMI tools'. The link above has instructions for installation and use.
From this I would guess that this data has Unique Molecular Identifiers (UMIs) for each read.
Looking up the protocol for the nextflex kit used (See Link) confirms this:
Data Analysis
The 3' and 5' adapters included in this kit both contain 4 random bases that will appear immediately 5' and 3' to the insert in sequencing data. The presence of these random bases should be considered when choosing an alignment strategy. When using “end-to-end” alignment, we
recommend processing data in the following manner:
1. Clip the 3' adapter sequence (TGGAATTCTCGGGTGCCAAGG).
2. Trim the first and last 4 bases from the adapter-clipped reads.
3. Perform alignments as normal.
It seems that N4 is a 4 base random barcode at both the 5'& 3' end of the read - these are cut from the read and this metadata is added to the read name so that every read can be uniquely identified.
Edit:
You can install UMI tools via:
conda install -c bioconda -c conda-forge umi_tools
or
pip install umi_tools
Usage instructions can be found at:
https://umi-tools.readthedocs.io/en/latest/reference/extract.html
Usage:
For single ended reads, the following reads from stdin and outputs to stdout:
umi_tools extract --extract-method=string --bc-pattern=[PATTERN] -L extract.log [OPTIONS]
For paired end reads, the following reads end one from stdin and end two from FASTQIN and outputs end one to stdin and end two to FASTQOUT:
umi_tools extract --extract-method=string --bc-pattern=[PATTERN] --bc-pattern2=[PATTERN] --read2-in=[FASTQIN] --read2-out=[FASTQOUT] -L extract.log [OPTIONS]