LOCLA: Local Optimization for Chromosome-Level Assembly
785
Chung-Yen Lin ([email protected]); LAB website
Wei-Hsuan Chuang ([email protected])
Jang-Ming Ho, Chung-Yen Lin, Shu-Hwa Chen, Yu-Jung Chang, Ping-Heng Hsieh, Po-Ying Fu, Yi-Chen Huang, Wei-Hsuan Chuang, Hsueh-Chien Cheng

LOCLA stands for "Local Optimization for Chromosome-Level Assembly". It is a software designed to optimize assemblies via filling in gaps and connecting scaffolds utilizing Next Generation Sequencing reads and Third-Generation Sequencing reads, e.g., linked-reads generated by the 10x Genomics Chromium System, long reads by PacBio SMRT Sequencing and Oxford Nanopore Technologies. In our own experiments, we assembled 10x Genomics (10xG) Linked-Reads via Supernova assembler and TGS reads via Canu. Additional tools incorporated in our pipeline include Hybrid Scaffold developed by Bionano Genomics and RagTag.
Trim and sort linked-reads according to their barcodes, then align them to draft assemblies.
- Local-Contig-Based (LCB) Gap Filling: Fill intra-scaffold gaps in genome assembly with contigs de novo assembled from NGS reads.
- Global-Contig-Based (GCB) Gap Filling: An alternative for LCB Gap Filling. Fill intra-scaffold gaps in genome assembly using TGS reads or contigs generated by existing sequence assembly software.
- Local-Contig-Based (LCB) Scaffolding: Concatenate scaffolds with contigs de novo assembled from NGS reads.
- Global-Contig-Based (GCB) Scaffolding: An alternative for LCB Scaffolding. Concatenate scaffolds with TGS reads or contigs generated by existing sequence assembly software.
Step 1. docker pull lsbnb/locla:{tag}
Step 2. docker run -i -t -v $('pwd')/:/in/ lsbnb/locla:{tag}
Step 3. cd /in
The preprocess module includes three steps:
During the first part, we process the raw linked reads by taking FASTQ files created by longranger mkfastq and perform barcode processing including error correction, barcode white-listing, and attaching barcodes to reads. Then, we use TrimGalore to apply adapter and quality trimming to fastq files. After that, you can choose to trim 23-mer of R2 prefix or not. Finally, we process all fastq files to remove duplicate reads.
During the second part, we map reads to genome and filter them: We begin with aligning reads to genome scaffolds by BWA MEM or Kart. Then, we keep proper pairs by SAMBAMBA (v0.6.9). Finally, we filter the alignment by match quality calculated from CIGAR and MAPQ score.
#definition of proper pair: mapped and not {secondary_alignment or duplicate or supplementary or chimeric}
Data generated from the Preprocess module:
- A SAM file of filtered read-to-scaffold alignment (file name ends with C70M60.sam)
- Non-duplicate split reads FASTQ file path ( i.e. {outdir}/nonDup/split )
- Produce a barcode list for every gap on every scaffold from the read-to-scaffold alignment
- Assemble contigs for each gap using reads collected via barcode lists with SPAdes
- Align contigs back to the scaffolds and fill the gaps using BWA MEM.
A FASTA file containing G-contigs
Align G-contigs to scaffolds in draft assembly with BWA MEM and fill in gaps
Data generated from the Preprocess module:
- A TSV file with possible scaffold pairs and shared barcode counts (file name ends with C70M60_ScafA_ScafB_BXCnt.tsv)
- A TSV file recording barcodes on every scaffold end (file name ends with C70M60_ScafHeadTail_BX_pairSum.tsv)
- Determine candidate scaffold pairs by removing same scaffold ends and multiple end pairs
- Assemble contigs for each candidate scaffold pair using reads collected via barcode lists with SPAdes
- Find contigs crossing two ends with alignment by BWA MEM and connect scaffolds
Data generated from the Preprocess module:
- A TSV file with possible scaffold pairs and shared barcode counts (file name ends with C70M60_ScafA_ScafB_BXCnt.tsv)
- A TSV file recording barcodes on every scaffold end (file name ends with C70M60_ScafHeadTail_BX_pairSum.tsv)
- A FASTA file containing G-contigs
- Determine candidate scaffold pairs by removing same scaffold ends and multiple end pairs
- Align them to the draft assembly with minimap2
- Find G-contigs crossing two ends with alignment by minimap2 and connect scaffolds
cd /home/test_data/LCB_GapFilling
./lcbgf_test.sh
Input:
"testscaf.fa" : scaffold with gap
"g-contigs.fa" : g-contigs for filling gaps
Output:
"testscaf_GCBFilled.fasta" : GCB Gap-filled scaffold
"gapStatus_Record.txt" : gap filling record
cd /home/test_data/LCB_GapFilling
./lcbgf_test.sh
cd /home/test_data/LCB_Scaffolding
./lcbs_test.sh
python /opt/10x_program/runStep1to3.py -f raw_fastq_dir/ -g draft.fa --id PROJECTID -a bwa_mem -o 10x_preprocess/
/opt/LCB_GapFilling/ProduceBXList.sh -f draft_bwa_mem_C70M60.sam -a draft.fa -o LCB_GapFilling/
/opt/LCB_GapFilling/Assemble.sh -r /10x_preprocess/nonDupFq/split -o LCB_GapFilling/
/opt/LcB_GapFilling/Fill.sh -a draft.fa -o LCB_GapFilling/
It can be a stand alone module without any 10x Genomics resource.
/opt/GCB_GapFilling/Fill.sh -a draft.fa -x g-contigs.fa -o GCB_GapFilling/
#rename draft.fa by length first to fit our format
/opt/Rename_byLength.sh -a draft.fa -o LCB_Scaffolding/
python /opt/10x_program/runStep1to3.py -f raw_fastq_dir/ -g draft_rename.fa --id PROJECTID -a bwa_mem -o 10x_preprocess/
/opt/LCB_Scaffolding/CandidatePair.sh -f draft_bwa_mem_C70M60_ScafA_ScafB_BXCnt.tsv -p draft_bwa_mem_C70M60_ScafHeadTail_BX_pairSum.tsv -o LCB_Scaffolding/
/opt/LCB_Scaffolding/Assemble.sh -f draft_bwa_mem_C70M60_ScafA_ScafB_BXCnt_rmMultiEnd.tsv -r 10x_preprocess/nonDupFq/split -o LCB_Scaffolding/
/opt/LCB_Scaffolding/Scaffolding.sh -f draft_bwa_mem_C70M60_ScafA_ScafB_BXCnt_rmMultiEnd.tsv -a draft_rename.fa -o LCB_Scaffolding/
#rename draft.fa by length first to fit our format
/opt/Rename_byLength.sh -a draft.fa -o GCB_Scaffolding/
python /opt/10x_program/runStep1to3.py -f raw_fastq_dir/ -g draft_rename.fa --id PROJECTID -a bwa_mem -o 10x_preprocess/
/opt/GCB_Scaffolding/CandidatePair.sh -f draft_rename_bwa_mem_C70M60_ScafA_ScafB_BXCnt.tsv -p draft_rename_bwa_mem_C70M60_ScafHeadTail_BX_pairSum.tsv -o GCB_Scaffolding/
/opt/GCB_Scaffolding/Scaffolding.sh -f draft_gcbgf_labgf_labs_bwa_mem_C70M60_ScafA_ScafB_BXCnt_rmMultiEnd.tsv -a draft_rename.fa -x g-contigs.fa -o GCB_Scaffolding/
Our main modules can be used in any order and iterated several times. For advanced usage and suggested pipelines of our LOCLA modules please see our github website
A Novel Genome Optimization Tool for Chromosome-Level Assembly across Diverse Sequencing Techniques
Wei-Hsuan Chuang, Hsueh-Chien Cheng, Yu-Jung Chang, Pao-Yin Fu, Yi-Chen Huang, Ping-Heng Hsieh, Shu-Hwa Chen, Chung-Yen Lin, Jan-Ming Ho, bioRxiv 2023.07.20.549842; doi: https://doi.org/10.1101/2023.07.20.549842
Content type
Image
Digest
sha256:0073495d7…
Size
2.4 GB
Last updated
over 2 years ago
docker pull lsbnb/locla:v1.7