{"id":38674757,"url":"https://github.com/wglab/longreadsum","last_synced_at":"2026-01-17T10:00:48.948Z","repository":{"id":37499146,"uuid":"362959935","full_name":"WGLab/LongReadSum","owner":"WGLab","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-30T15:39:30.000Z","size":2659,"stargazers_count":24,"open_issues_count":5,"forks_count":3,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-04T17:14:16.077Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WGLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-29T22:12:21.000Z","updated_at":"2025-08-30T16:23:00.000Z","dependencies_parsed_at":"2024-07-25T00:06:32.402Z","dependency_job_id":"9412fcfa-a5eb-488d-b05c-67d643338a31","html_url":"https://github.com/WGLab/LongReadSum","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/WGLab/LongReadSum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FLongReadSum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FLongReadSum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FLongReadSum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FLongReadSum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WGLab","download_url":"https://codeload.github.com/WGLab/LongReadSum/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FLongReadSum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T10:00:26.406Z","updated_at":"2026-01-17T10:00:48.929Z","avatar_url":"https://github.com/WGLab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LongReadSum: A fast and flexible QC tool for long read sequencing data\n\n![image](https://github.com/user-attachments/assets/ae3d2b6a-46da-476a-8fe5-7e0a34751585)\n\n[![build tests](https://github.com/WGLab/LongReadSum/actions/workflows/build-test.yml/badge.svg)](https://github.com/WGLab/LongReadSum/actions/workflows/build-test.yml)\n\nLongReadSum supports FASTA, FASTQ, BAM, FAST5, and sequencing_summary.txt file formats for quick generation of QC data in HTML and text format.\n\n# README Contents\n- [Installation using Anaconda (recommended)](#installation-using-anaconda)\n- [Installation using Docker](#installation-using-anaconda)\n- [Building from source](#building-from-source)\n- [MultiQC support](#multiqc-support)\n- General usage for common filetypes:\n  - [Common parameters](#common-parameters)\n  - [WGS BAM](#wgs-bam)\n  - [BAM with base modifications/methylation](#bam-with-base-modifications)\n  - [RRMS BAM](#rrms-bam)\n  - [PacBio unaligned BAM](#pacbio-unaligned-bam)\n  - [RNA-Seq BAM (TIN values)](#rna-seq-bam)\n  - [ONT POD5](#ont-pod5)\n  - [ONT FAST5](#ont-fast5)\n    - [Signal QC](#signal-qc)\n    - [Sequence QC](#sequence-qc)\n  - [Basecall summary (ONT sequencing_summary.txt)](#basecall-summary)\n  - [FASTQ](#fastq)\n  - [FASTA](#fasta)\n- [Revision history](#revision-history)\n- [Getting help](#getting-help)\n- [Citing LongReadSum](#citing-longreadsum)\n\n# Installation using Anaconda\nFirst, install [Anaconda](https://www.anaconda.com/).\n\nNext, create a new environment. This installation has been tested with Python 3.10, Linux 64-bit.\n\n```\nconda create -n longreadsum python=3.9\nconda activate longreadsum\n```\n\nLongReadSum and its dependencies can then be installed using the following command:\n\n```\nconda install -c wglab -c conda-forge -c jannessp -c bioconda longreadsum\n```\n\n# Installation using Docker\nFirst, install [Docker](https://docs.docker.com/engine/install/).\nPull the latest image from Docker hub, which contains the latest longreadsum release and its dependencies.\n\n```\ndocker pull genomicslab/longreadsum\n```\n\n## Running\n\nOn Unix/Linux:\n```\ndocker run -v C:/Users/.../DataDirectory:/mnt/ -it genomicslab/longreadsum bam -i /mnt/input.bam -o /mnt/output\n```\nNote that the `-v` command is required for Docker to find the input file. Use a directory under `C:/Users/` to ensure volume files are mounted correctly. In the above example, the local directory `C:/Users/.../DataDirectory` containing the input file `input.bam` is mapped to a directory `/mnt/` in the Docker container. Thus, the input file and output directory arguments are relative to the `/mnt/` directory, but the output files will also be saved locally in `C:/Users/.../DataDirectory` under the specified subdirectory `output`.\n\n\n# Building from source\nTo get the latest updates in longreadsum, you can build from source.\nFirst install [Anaconda](https://www.anaconda.com/). Then follow the instructions below to install LongReadSum and its dependencies:\n\n```\n# Pull the latest updates\ngit clone https://github.com/WGLab/LongReadSum\ncd LongReadSum\n\n# Create the longreadsum environment, install dependencies, and activate\nconda env create -f environment.yml\nconda activate longreadsum\n\n# Build the program\nmake\n```\n\n# MultiQC support\n[MultiQC](https://seqera.io/multiqc/) is a widely used open-source tool for\naggregating bioinformatics analyses results from many tools across samples.\n\nTo run MultiQC, input the LongReadSum directory containing the output JSON\nsummary file, and specify the _longreadsum_ module:\n\n```\nmultiqc $INPUT_DIRECTORY --module longreadsum --outdir $OUTPUT_DIRECTORY/multiqc\n```\n\nExample report:\n\u003cimg width=\"1707\" height=\"761\" alt=\"image\" src=\"https://github.com/user-attachments/assets/adbcacf7-44f8-48bd-9135-9293379d65d2\" /\u003e\n\n## Running\nActivate the conda environment and then run with arguments:\n```\nconda activate longreadsum\nlongreadsum \u003cFILETYPE\u003e [arguments]\n```\n\n# General Usage\n\nSpecify the filetype followed by parameters:\n```\nlongreadsum \u003cFILETYPE\u003e -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# Common parameters\n\nTo see all parameters for a filetype, run:\n\n```longreadsum \u003cFILETYPE\u003e --help```\n\nThis section describes parameters common to all filetypes:\n\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| -i, --input | A single input filepath\n| -I, --inputs | Multiple comma-separated input filepaths\n| -P, --pattern | Use pattern matching (*) to specify multiple input files. Enclose the pattern in double quotes.\n| -g, --log | Log file path | log_output.log\n| -G, --log-level |Logging level (1: DEBUG, 2: INFO, 3: WARNING, 4: ERROR, 5: CRITICAL) | 2\n| -o, --outputfolder | Output directory | output_longreadsum\n| -t, --threads | The number of threads used | 1\n| -Q, --outprefix | Output file prefix |  QC_\n\n# WGS BAM\n\nThis section describes how to generate QC reports for BAM files from whole-genome sequencing\n(WGS) with alignments to a linear reference genome such as GRCh38 (data shown is HG002 sequenced with ONT Kit V14\nPromethion R10.4.1 from https://labs.epi2me.io/askenazi-kit14-2022-12/)\n\n![image](https://github.com/user-attachments/assets/166f6d04-26ca-4469-be2c-ce466597a68a)\n\n![image](https://github.com/user-attachments/assets/7d83e55c-85a2-48a8-b9a7-92b671de758f)\n\n![image](https://github.com/user-attachments/assets/d303f5a9-8e1b-425e-b0b0-f46f263a3f9f)\n\n![image](https://github.com/user-attachments/assets/f74f985a-3c3d-4b00-bf98-d59b128d8722)\n\n## General usage\n```\nlongreadsum bam -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# BAM with base modifications\n\nThis section describes how to generate QC reports for BAM files with MM, ML base modification tags (data shown is HG002 sequenced with ONT\nMinION R9.4.1 from https://labs.epi2me.io/gm24385-5mc/)\n\n![image](https://github.com/user-attachments/assets/5d97a949-842a-4f41-bfc5-81e9f30c57bc)\n\n\n## Parameters\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| --mod | Run base modification analysis on the BAM file | False\n| --modprob | Base modification filtering threshold. Above/below this value, the base is considered modified/unmodified. | 0.8\n| --ref | The reference genome FASTA file to use for identifying CpG sites (optional)\n\n## General usage\n```\nlongreadsum bam -i $INPUT_FILE -o $OUTPUT_DIRECTORY --mod --modprob 0.8 --ref $REF_GENOME\n```\n\n# RRMS BAM\n\nThis section describes describes how to generate QC reports for ONT RRMS BAM files and associated CSVs (data shown is HG002 RRMS using ONT\nR9.4.1).\n\n### Accepted reads:\n![image](https://github.com/user-attachments/assets/c0e69e53-0a1e-432d-ad4c-9edfac764514)\n\n![image](https://github.com/user-attachments/assets/105a47ff-7bd8-436e-9d3d-1b112b94fb5e)\n\n\n### Rejected reads:\n![image](https://github.com/user-attachments/assets/7c213975-ec6b-4476-81c9-8853c664b653)\n\n![image](https://github.com/user-attachments/assets/604ca74a-516b-48a7-8b02-931e27255bd8)\n\n\n## Parameters\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| -c, --csv | CSV file containing read IDs to extract from the BAM file*\n\nThe CSV file should contain a `read_id` column with the read IDs in the BAM\nfile, and a `decision` column with the accepted/rejected status of the read.\nAccepted reads will have `stop_receiving` in the `decision` column, while rejected\nreads will have `unblock`:\n\n```\nbatch_time,read_number,channel,num_samples,read_id,sequence_length,decision\n1675186897.6034577,93,4,4011,f943c811-3f97-4971-8aed-bb9f36ffb8d1,361,unblock\n1675186897.7544408,80,68,4025,fab0c19d-8085-454c-bfb7-c375bbe237a1,462,unblock\n1675186897.7544408,93,127,4028,5285e0ba-86c0-4b5d-ba27-5783acad6105,438,unblock\n1675186897.7544408,103,156,4023,65d8befa-eec0-4496-bf2b-aa1a84e6dc5e,362,stop_receiving\n...\n```\n\n## General usage\n```\nlongreadsum rrms -i $INPUT_FILE -o $OUTPUT_DIRECTORY -c $RRMS_CSV\n```\n\n# RNA-Seq BAM\n\nThis section describes how to generate QC reports for TIN (transcript integrity\nnumber) scores from RNA-Seq BAM files (data shown is Adult GTEx v9 long-read RNA-seq data sequenced with ONT\ncDNA-PCR protocol from https://www.gtexportal.org/home/downloads/adult-gtex/long_read_data).\n\n## Outputs\nA TSV file with scores for each transcript:\n\n```\ngeneID\tchrom\ttx_start\ttx_end\tTIN\nENST00000456328.2\tchr1\t11868\t14409\t2.69449577083296\nENST00000450305.2\tchr1\t12009\t13670\t0.00000000000000\nENST00000488147.2\tchr1\t14695\t24886\t94.06518975035769\nENST00000619216.1\tchr1\t17368\t17436\t0.00000000000000\nENST00000473358.1\tchr1\t29553\t31097\t0.00000000000000\n...\n```\n\nAn TSV file with TIN score summary statistics:\n\n```\nBam_file\tTIN(mean)\tTIN(median)\tTIN(stddev)\n/mnt/isilon/wang_lab/perdomoj/data/GTEX/GTEX-14BMU-0526-SM-5CA2F_rep.FAK93376.bam\t67.06832655372376\t74.24996965188242\t26.03788585287367\n```\n\nA summary table in the HTML report:\n\n![image](https://github.com/user-attachments/assets/400bcd68-05fc-4f08-8b70-b981cd9dc994)\n\n## Parameters\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| --genebed | Gene BED12 file required for calculating TIN scores\n| --sample-size | Sample size for TIN calculation | 100\n| --min-coverage | Minimum coverage for TIN calculation | 10\n\n## General usage\n```\nlongreadsum bam -i $INPUT_FILE -o $OUTPUT_DIRECTORY --genebed $BED_FILE --min-coverage \u003cCOVERAGE\u003e --sample-size \u003cSIZE\u003e\n```\n\nDownload an example HTML report [here]() (data is Adult GTEx v9 long-read RNA-seq data sequenced with ONT\ncDNA-PCR protocol from https://www.gtexportal.org/home/downloads/adult-gtex/long_read_data)\n\n# PacBio unaligned BAM\n\nThis section describes how to generate QC reports for PacBio BAM files without alignments (data shown is HG002 sequenced with PacBio\nRevio HiFi long reads obtained from https://www.pacb.com/connect/datasets/#WGS-datasets).\n\n![image](https://github.com/user-attachments/assets/76374274-3671-49d2-984f-0208e9d8e3e7)\n\n![image](https://github.com/user-attachments/assets/15112738-b6cd-4d1d-b0c4-e0bb31464374)\n\n![image](https://github.com/user-attachments/assets/e3935f58-eb53-4f9d-b4b5-7287fcdc3252)\n\n![image](https://github.com/user-attachments/assets/8b17c9e2-8932-45b3-a673-b5b35ae994e6)\n\n## General usage\n```\nlongreadsum bam -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# ONT POD5\n\nThis section describes how to generate QC reports for ONT POD5 (signal) files and their corresponding basecalled BAM files (data shown is HG002 using ONT\nR10.4.1 and LSK114 downloaded from the tutorial\nhttps://github.com/epi2me-labs/wf-basecalling).\n\n\u003e [!NOTE]\n\u003e This requires generating basecalled BAM files with the move table output. For\n\u003e example, for [dorado](https://github.com/nanoporetech/dorado), the parameter is `--emit-moves`\n\n![image](https://github.com/user-attachments/assets/62c3c810-5c1a-4124-816b-74245af8b57c)\n\n\n## Parameters\n\u003e [!NOTE]\n\u003e The interactive signal-base correspondence plots in the HTML report use a\nlot of memory (RAM) which can make your web browser slow. Thus by default, we\nrandomly sample only a few reads, and the user can specify a list of read IDs as\nwell (e.g. from a specific region of interest).\n\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| -b, --basecalls | The basecalled BAM file to use for signal extraction\n| -r, --read_ids | A comma-separated list of read IDs to extract from the file\n| -R, --read-count | Set the number of reads to randomly sample from the file | 3\n\n## General usage\n```\n# Individual file:\nlongreadsum pod5 -i $INPUT_FILE -o $OUTPUT_DIRECTORY --basecalls $INPUT_BAM [--read-count \u003cCOUNT\u003e | --read-ids \u003cIDS\u003e]\n\n# Directory:\nlongreadsum pod5 -P \"$INPUT_DIRECTORY/*.fast5\" -o $OUTPUT_DIRECTORY --basecalls $INPUT_BAM [--read-count \u003cCOUNT\u003e | --read-ids \u003cIDS\u003e]\n```\n\n# ONT FAST5\n\n## Signal QC\n\nThis section describes how to generate QC reports for generating a signal and basecalling QC\nreport from ONT FAST5 files with signal and basecall information (data shown is HG002 sequenced with ONT MinION R9.4.1 from https://labs.epi2me.io/gm24385-5mc/)\n\n![image](https://github.com/user-attachments/assets/b2a56529-55e3-4678-918a-e5787881643e)\n\n\n## Parameters\n\u003e [!NOTE]\n\u003e The interactive signal-base correspondence plots in the HTML report use a\nlot of memory (RAM) which can make your web browser slow. Thus by default, we\nrandomly sample only a few reads, and the user can specify a list of read IDs as\nwell (e.g. from a specific region of interest).\n\n| Parameter\t| Description | Default |\n| --- | --- | --- |\n| -r, --read_ids | A comma-separated list of read IDs to extract from the file\n| -R, --read-count | Set the number of reads to randomly sample from the file | 3\n\n## General usage\n```\n# Individual file:\nlongreadsum f5s -i $INPUT_FILE -o $OUTPUT_DIRECTORY [--read-count \u003cCOUNT\u003e | --read-ids \u003cIDS\u003e]\n\n# Directory:\nlongreadsum f5s -P \"$INPUT_DIRECTORY/*.fast5\" -o $OUTPUT_DIRECTORY [--read-count \u003cCOUNT\u003e | --read-ids \u003cIDS\u003e]\n```\n\n## Sequence QC\n\nThis section describes how to generate QC reports for sequence data from ONT FAST5 files (data shown is HG002 sequenced with ONT MinION R9.4.1 from https://labs.epi2me.io/gm24385-5mc/)\n\n![image](https://github.com/user-attachments/assets/97876343-cd34-4bfe-9612-7f6b14a2be0d)\n\n![image](https://github.com/user-attachments/assets/be8415a5-63ee-403b-931a-66d79a3b28a5)\n\n![image](https://github.com/user-attachments/assets/2d822263-d9a4-470f-aa6d-5bccf570edac)\n\n![image](https://github.com/user-attachments/assets/0fd1ee15-1e2f-492a-b072-bfaf768a448a)\n\n![image](https://github.com/user-attachments/assets/aa5b37c8-7c83-418b-b5ea-6e53d557fb93)\n\n\n## General usage\n```\nlongreadsum f5 -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# Basecall summary\n\nThis section describes how to generate QC reports for ONT basecall summary (sequencing_summary.txt) files (data shown is HG002 sequenced with ONT\nPromethION R10.4 from https://labs.epi2me.io/gm24385_q20_2021.10/, filename `gm24385_q20_2021.10/analysis/20210805_1713_5C_PAH79257_0e41e938/guppy_5.0.15_sup/sequencing_summary.txt`)\n\n![image](https://github.com/user-attachments/assets/ad094b0a-7878-4937-840c-ad0d7c09335b)\n\n![image](https://github.com/user-attachments/assets/5e2417e8-74b8-4f39-8c3d-d6481749711d)\n\n![image](https://github.com/user-attachments/assets/f25841bf-8129-41bc-a90f-0196ca14159f)\n\n\n## General usage\n```\nlongreadsum seqtxt -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# FASTQ\n\nThis section describes how to generate QC reports for FASTQ files (data shown is HG002 ONT 2D from GIAB\n [FTP index](https://ftp-trace.ncbi.nlm.nih.gov/ReferenceSamples/giab/data_indexes/AshkenazimTrio/sequence.index.AJtrio_HG002_Cornell_Oxford_Nanopore_fasta_fastq_10132015.HG002))\n\n![image](https://github.com/user-attachments/assets/09d80928-bae7-4c64-a21c-8ef21fe9ab60)\n\n![image](https://github.com/user-attachments/assets/d5ee0aa5-9127-447f-b96b-26f3fad7a963)\n\n![image](https://github.com/user-attachments/assets/cea3c23c-44a3-4313-9d31-4c8559073b22)\n\n![image](https://github.com/user-attachments/assets/acb199f6-4529-43ce-9212-f938128b0706)\n\n![image](https://github.com/user-attachments/assets/47e395fc-b33d-45d0-b3ac-c658a84f62cb)\n\n\n## General usage\n```\nlongreadsum fq -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# FASTA\n\nThis section describes how to generate QC reports for FASTA files (data shown is HG002 ONT 2D from GIAB\n [FTP index](https://ftp-trace.ncbi.nlm.nih.gov/ReferenceSamples/giab/data_indexes/AshkenazimTrio/sequence.index.AJtrio_HG002_Cornell_Oxford_Nanopore_fasta_fastq_10132015.HG002)).\n\n![image](https://github.com/user-attachments/assets/d4862e6d-435e-4317-b331-4af0428a6419)\n\n![image](https://github.com/user-attachments/assets/af3b736b-beb6-44e4-a0d8-df736c288389)\n\n![image](https://github.com/user-attachments/assets/cd4e1f59-0c34-41a6-91ea-08381bdc906a)\n\n## General usage\n```\nlongreadsum fa -i $INPUT_FILE -o $OUTPUT_DIRECTORY\n```\n\n# Revision history\nFor release history, please visit [here](https://github.com/WGLab/LongReadSum/releases). \n\n# Getting help\nPlease refer to the [LongReadSum issue pages](https://github.com/WGLab/LongReadSum/issues) for posting your issues. We will also respond your questions quickly. Your comments are criticl to improve our tool and will benefit other users.\n\n# Citing LongReadSum\n### Please cite the article below if you use our tool:\n\n1\tPerdomo, J. E., Ahsan, M. U., Liu, Q., Fang, L. \u0026 Wang, K. LongReadSum: A fast and flexible quality control and signal summarization tool for long-read sequencing data. Computational and Structural Biotechnology Journal 27, 556-563, doi:10.1016/j.csbj.2025.01.019 (2025).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Flongreadsum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwglab%2Flongreadsum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Flongreadsum/lists"}