amplicon-coverage-inspector


Nameamplicon-coverage-inspector JSON
Version 1.15.250702 PyPI version JSON
download
home_pageNone
SummaryVisualization of coverage for amplicon sequencing
upload_time2025-07-15 19:27:06
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.8
licenseMIT
keywords bioinformatics amplicon coverage visualization
VCS
bugtrack_url
requirements amplicon_coverage_inspector contourpy cycler fonttools intervaltree kiwisolver matplotlib numpy packaging pandas pillow pyparsing pysam python-dateutil pytz six sortedcontainers tzdata
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Amplicon Coverage Inspector (aci)

Amplicon Coverage Inspector (aci) is a bioinformatics tool designed to analyze the depth of amplicons using samtools. It provides a convenient way to determine the coverage and depth of specified regions in a BAM file based on a BED file using a user-generated bedfile.

## Installation

```
pip install amplicon_coverage_inspector
```


### From github
```
git clone https://github.com/erinyoung/ACI.git
cd ACI
pip install .
```

## Dependencies
- python3.7+
  - pandas
  - matplotlib
  - pysam
  - intervaltree

## Usage
```
aci --bam input.bam --bed amplicon.bed --out out
```

Final files are 
- out/amplicon_depth.csv : csv file of the depth of each amplicon
- out/amplicon_depth.png : boxplot of information from csv file
- out/amplicon_depth_${sample}.bam.png : per-sample amplicon depth image with max and min
- out/amplicon_min_depth.csv : csv file for the minimum depth/unique depth of each amplicon
- out/amplicon_min_depth.png : boxplot of information from csv file
- out/overall_depth.csv  : csv file of overall depth of bam file
- out/${reference}_depth.png : overal depth accross reference from overall_depth.csv

<img src="https://github.com/erinyoung/ACI/blob/b0b2800bb8c738c964db4e9c084ea4164f5b2826/assets/aci.png" width="500"/>

There are not currently options to change the look of the final image file. Instead, the amplicon_depth.csv file contains all the values in a '.csv' format that can be read into R, python, excel, or another tool for visualization.

## Options
```
usage: aci [-h] -b BAM [BAM ...] -d BED [-o OUT] [-log LOGLEVEL] [-t THREADS] [-v]

options:
  -h, --help            show this help message and exit
  -b BAM [BAM ...], --bam BAM [BAM ...]
                        (required) input bam file(s)
  -d BED, --bed BED     (required) amplicon bedfile
  -o OUT, --out OUT     directory for results
  -log LOGLEVEL, --loglevel LOGLEVEL
                        logging level
  -t THREADS, --threads THREADS
                        specifies number of threads to use
  -v, --version         print version and exit
```

## Bed file format
ACI is not very strict on the [bed file format](https://en.wikipedia.org/wiki/BED_(file_format)) as only the first four columns are used.

The four columns (tab-delimited only) are 
1. Reference (must the same as the reference of the bam file)
2. Start position
3. Stop position
4. Name of the amplicon

ACI does not support bedfiles with headers.

Example amplicon bedfile.
```
MN908947.3	54	385	1	1	+
MN908947.3	342	704	2	2	+
MN908947.3	664	1004	3	1	+
MN908947.3	965	1312	4	2	+
MN908947.3	1264	1623	5	1	+
MN908947.3	1595	1942	6	2	+
MN908947.3	1897	2242	7	1	+
MN908947.3	2205	2568	8	2	+
MN908947.3	2529	2880	9	1	+
MN908947.3	2850	3183	10	2	+
```

## Amplicon bedfile

Primers should be trimmed out of the bam file prior to ACI regardless of whether the sequencing was paired or single-end. Primer sequences force portions of DNA to match reference and mask SNPs and other variants, so it is a normal request to trim primers out first.

Please be careful to not use a primer scheme bedfile because they are not the same. For an example, let's take a left and right primer based off of the reference MN908947.3. If left primer is expected to bind to 30-54 of MN908947.3, and the right primer is expected to bind to 385-410, the expected amplicon would be from 55-384.

ACI uses the user-provided amplicon bedfile to identify regions of the genome where both read1 and read2 are bounded by the start and stop location of that bedfile. If using a bam file generated with mapping single-end reads, only that one read must be within bounds. Any reads that map out of that specific region will be excluded. Then coverage is determined for that region. Therefore, all intended sequences are included. Nearby overlapping amplicons can still mask problematic primers/primer pairs and this should be taken into account when evaluating the output of ACI.

## Testing

This repository contains a test bam and bed file in the [/tests/data](./tests/data) subdirectory.

```
aci -b tests/data/test.bam -d tests/data/test.bed -o testing
```

The resulting image should look something like the following.
<img src="https://github.com/erinyoung/ACI/blob/b0b2800bb8c738c964db4e9c084ea4164f5b2826/assets/amplicon_depth.png" width="500"/>

# Expected run time

| file(s) | number of reads | threads | Elapsed (wall clock) time (h:mm:ss or m:ss) | Percent of CPU this job got | Maximum resident set size (kbytes) |
| :--------: | ------- | ------- | -------- | -------- | -------- |
| SRR28446008.primertrim.bam | 48777166 | 1 | 24:57.42 | 91% | 65642916 |
| SRR28446008.primertrim.bam | 48777166 | 2 | 17:34.11 | 141% | 41789232 |
| SRR28446008.primertrim.bam | 48777166 | 3 | 14:44.27 | 168% | 35364164 |
| SRR28446008.primertrim.bam | 48777166 | 4 | 11:40.18 | 218% | 24623868 |
| SRR28446008.primertrim.bam | 48777166 | 5 | 10:01.77 | 258% | 20829232 |
| SRR28446008.primertrim.bam | 48777166 | 6 | 10:35.90 | 252% | 22735132 |
| SRR28446008.primertrim.bam | 48777166 | 7 | 9:40.83 | 280% | 16731812 |
| SRR28446008.primertrim.bam | 48777166 | 8 | 8:30.76 | 325% | 16694240 |
| SRR28446008.primertrim.bam | 48777166 | 9 | 8:51.93 | 313% | 17393304 |
| SRR28446008.primertrim.bam | 48777166 | 10 | 7:41.89 | 374% | 12754412 |
| SRR28446008.primertrim.bam | 48777166 | 11 | 7:28.65 | 396% | 13153432 |
| SRR28446008.primertrim.bam | 48777166 | 12 | 7:03.99 | 401% | 13854976 |
| SRR28446008.primertrim.bam | 48777166 | 13 | 6:18.10 | 475% | 11594264 |
| SRR28446008.primertrim.bam | 48777166 | 14 | 6:13.00 | 486% | 12477736 |
| SRR28446008.primertrim.bam | 48777166 | 15 | 6:17.68 | 483% | 13362504 |
| SRR28446008.primertrim.bam | 48777166 | 16 | 6:02.38 | 503% | 14244760 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 1 | 3:29:22 | 90% | 94658408 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 2 | 2:10:49 | 156% | 58148124 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 3 | 1:37:32 | 214% | 56828032 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 4 | 1:24:22 | 252% | 56665120 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 5 | 1:14:18 | 303% | 57152076 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 6 | 1:07:54 | 336% | 57187576 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 7 | 1:00:55 | 378% | 57510668 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 8 | 57:55.42 | 409% | 57734304 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 9 | 54:34.33 | 425% | 65642916 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 10 | 53:24.72 | 456% | 57246404 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 11 | 54:16.05 | 468% | 58304164 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 12 | 51:31.58 | 496% | 58392632 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 13 | 49:36.17 | 522% | 58520260 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 14 | 49:06.47 | 532% | 59454204 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 15 | 49:32.36 | 552% | 59145092 |
| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 16 | 48:27.36 | 563% | 344725513 |



Larger genomes, more coverage, and larger amplicons increase the computation time. Use -t or --threads to take advantage of determining the coverage of amplicons in parallel.


## Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please feel free to [open an issue](https://github.com/erinyoung/ACI/issues) or submit a pull request.

## Why this exists

I just needed an individual tool that evaluates how effective a set of primers are for an amplicon or bait-based NGS library prep. Similar scripts are included in many workflows including that of (artic)[https://github.com/artic-network/artic-ncov2019], but I needed something that was standalone. Samtools has a function, [ampliconstats](http://www.htslib.org/doc/samtools-ampliconstats.html), that predicts amplicons based on a primer schema bedfile, but has errors when there are large number of primer pairs, the primer pairs overlap too much, are named outside of expected values, and can incorrectly pair primers when determining amplicons. This means that I needed control as to what was in the amplicon file.

## License
This project is licensed under the MIT License.

## Contact
For any questions or inquiries, please [submit an issue](https://github.com/erinyoung/ACI/issues).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "amplicon-coverage-inspector",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.8",
    "maintainer_email": null,
    "keywords": "bioinformatics, amplicon, coverage, visualization",
    "author": null,
    "author_email": "Erin Young <eriny@utah.gov>",
    "download_url": "https://files.pythonhosted.org/packages/2f/8a/4b3b8819b4e49d3dccefb5070a56a89299ef7010a219e6d56eb81948cca7/amplicon_coverage_inspector-1.15.250702.tar.gz",
    "platform": null,
    "description": "# Amplicon Coverage Inspector (aci)\n\nAmplicon Coverage Inspector (aci) is a bioinformatics tool designed to analyze the depth of amplicons using samtools. It provides a convenient way to determine the coverage and depth of specified regions in a BAM file based on a BED file using a user-generated bedfile.\n\n## Installation\n\n```\npip install amplicon_coverage_inspector\n```\n\n\n### From github\n```\ngit clone https://github.com/erinyoung/ACI.git\ncd ACI\npip install .\n```\n\n## Dependencies\n- python3.7+\n  - pandas\n  - matplotlib\n  - pysam\n  - intervaltree\n\n## Usage\n```\naci --bam input.bam --bed amplicon.bed --out out\n```\n\nFinal files are \n- out/amplicon_depth.csv : csv file of the depth of each amplicon\n- out/amplicon_depth.png : boxplot of information from csv file\n- out/amplicon_depth_${sample}.bam.png : per-sample amplicon depth image with max and min\n- out/amplicon_min_depth.csv : csv file for the minimum depth/unique depth of each amplicon\n- out/amplicon_min_depth.png : boxplot of information from csv file\n- out/overall_depth.csv  : csv file of overall depth of bam file\n- out/${reference}_depth.png : overal depth accross reference from overall_depth.csv\n\n<img src=\"https://github.com/erinyoung/ACI/blob/b0b2800bb8c738c964db4e9c084ea4164f5b2826/assets/aci.png\" width=\"500\"/>\n\nThere are not currently options to change the look of the final image file. Instead, the amplicon_depth.csv file contains all the values in a '.csv' format that can be read into R, python, excel, or another tool for visualization.\n\n## Options\n```\nusage: aci [-h] -b BAM [BAM ...] -d BED [-o OUT] [-log LOGLEVEL] [-t THREADS] [-v]\n\noptions:\n  -h, --help            show this help message and exit\n  -b BAM [BAM ...], --bam BAM [BAM ...]\n                        (required) input bam file(s)\n  -d BED, --bed BED     (required) amplicon bedfile\n  -o OUT, --out OUT     directory for results\n  -log LOGLEVEL, --loglevel LOGLEVEL\n                        logging level\n  -t THREADS, --threads THREADS\n                        specifies number of threads to use\n  -v, --version         print version and exit\n```\n\n## Bed file format\nACI is not very strict on the [bed file format](https://en.wikipedia.org/wiki/BED_(file_format)) as only the first four columns are used.\n\nThe four columns (tab-delimited only) are \n1. Reference (must the same as the reference of the bam file)\n2. Start position\n3. Stop position\n4. Name of the amplicon\n\nACI does not support bedfiles with headers.\n\nExample amplicon bedfile.\n```\nMN908947.3\t54\t385\t1\t1\t+\nMN908947.3\t342\t704\t2\t2\t+\nMN908947.3\t664\t1004\t3\t1\t+\nMN908947.3\t965\t1312\t4\t2\t+\nMN908947.3\t1264\t1623\t5\t1\t+\nMN908947.3\t1595\t1942\t6\t2\t+\nMN908947.3\t1897\t2242\t7\t1\t+\nMN908947.3\t2205\t2568\t8\t2\t+\nMN908947.3\t2529\t2880\t9\t1\t+\nMN908947.3\t2850\t3183\t10\t2\t+\n```\n\n## Amplicon bedfile\n\nPrimers should be trimmed out of the bam file prior to ACI regardless of whether the sequencing was paired or single-end. Primer sequences force portions of DNA to match reference and mask SNPs and other variants, so it is a normal request to trim primers out first.\n\nPlease be careful to not use a primer scheme bedfile because they are not the same. For an example, let's take a left and right primer based off of the reference MN908947.3. If left primer is expected to bind to 30-54 of MN908947.3, and the right primer is expected to bind to 385-410, the expected amplicon would be from 55-384.\n\nACI uses the user-provided amplicon bedfile to identify regions of the genome where both read1 and read2 are bounded by the start and stop location of that bedfile. If using a bam file generated with mapping single-end reads, only that one read must be within bounds. Any reads that map out of that specific region will be excluded. Then coverage is determined for that region. Therefore, all intended sequences are included. Nearby overlapping amplicons can still mask problematic primers/primer pairs and this should be taken into account when evaluating the output of ACI.\n\n## Testing\n\nThis repository contains a test bam and bed file in the [/tests/data](./tests/data) subdirectory.\n\n```\naci -b tests/data/test.bam -d tests/data/test.bed -o testing\n```\n\nThe resulting image should look something like the following.\n<img src=\"https://github.com/erinyoung/ACI/blob/b0b2800bb8c738c964db4e9c084ea4164f5b2826/assets/amplicon_depth.png\" width=\"500\"/>\n\n# Expected run time\n\n| file(s) | number of reads | threads | Elapsed (wall clock) time (h:mm:ss or m:ss) | Percent of CPU this job got | Maximum resident set size (kbytes) |\n| :--------: | ------- | ------- | -------- | -------- | -------- |\n| SRR28446008.primertrim.bam | 48777166 | 1 | 24:57.42 | 91% | 65642916 |\n| SRR28446008.primertrim.bam | 48777166 | 2 | 17:34.11 | 141% | 41789232 |\n| SRR28446008.primertrim.bam | 48777166 | 3 | 14:44.27 | 168% | 35364164 |\n| SRR28446008.primertrim.bam | 48777166 | 4 | 11:40.18 | 218% | 24623868 |\n| SRR28446008.primertrim.bam | 48777166 | 5 | 10:01.77 | 258% | 20829232 |\n| SRR28446008.primertrim.bam | 48777166 | 6 | 10:35.90 | 252% | 22735132 |\n| SRR28446008.primertrim.bam | 48777166 | 7 | 9:40.83 | 280% | 16731812 |\n| SRR28446008.primertrim.bam | 48777166 | 8 | 8:30.76 | 325% | 16694240 |\n| SRR28446008.primertrim.bam | 48777166 | 9 | 8:51.93 | 313% | 17393304 |\n| SRR28446008.primertrim.bam | 48777166 | 10 | 7:41.89 | 374% | 12754412 |\n| SRR28446008.primertrim.bam | 48777166 | 11 | 7:28.65 | 396% | 13153432 |\n| SRR28446008.primertrim.bam | 48777166 | 12 | 7:03.99 | 401% | 13854976 |\n| SRR28446008.primertrim.bam | 48777166 | 13 | 6:18.10 | 475% | 11594264 |\n| SRR28446008.primertrim.bam | 48777166 | 14 | 6:13.00 | 486% | 12477736 |\n| SRR28446008.primertrim.bam | 48777166 | 15 | 6:17.68 | 483% | 13362504 |\n| SRR28446008.primertrim.bam | 48777166 | 16 | 6:02.38 | 503% | 14244760 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 1 | 3:29:22 | 90% | 94658408 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 2 | 2:10:49 | 156% | 58148124 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 3 | 1:37:32 | 214% | 56828032 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 4 | 1:24:22 | 252% | 56665120 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 5 | 1:14:18 | 303% | 57152076 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 6 | 1:07:54 | 336% | 57187576 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 7 | 1:00:55 | 378% | 57510668 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 8 | 57:55.42 | 409% | 57734304 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 9 | 54:34.33 | 425% | 65642916 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 10 | 53:24.72 | 456% | 57246404 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 11 | 54:16.05 | 468% | 58304164 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 12 | 51:31.58 | 496% | 58392632 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 13 | 49:36.17 | 522% | 58520260 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 14 | 49:06.47 | 532% | 59454204 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 15 | 49:32.36 | 552% | 59145092 |\n| SRR28446008.primertrim.bam, SRR28446040.primertrim.bam, SRR28446049.primertrim.bam, SRR28446053.primertrim.bam, SRR28446063.primertrim.bam, SRR28446123.primertrim.bam, SRR28446153.primertrim.bam | 326156244 | 16 | 48:27.36 | 563% | 344725513 |\n\n\n\nLarger genomes, more coverage, and larger amplicons increase the computation time. Use -t or --threads to take advantage of determining the coverage of amplicons in parallel.\n\n\n## Contributing\nContributions are welcome! If you find any issues or have suggestions for improvements, please feel free to [open an issue](https://github.com/erinyoung/ACI/issues) or submit a pull request.\n\n## Why this exists\n\nI just needed an individual tool that evaluates how effective a set of primers are for an amplicon or bait-based NGS library prep. Similar scripts are included in many workflows including that of (artic)[https://github.com/artic-network/artic-ncov2019], but I needed something that was standalone. Samtools has a function, [ampliconstats](http://www.htslib.org/doc/samtools-ampliconstats.html), that predicts amplicons based on a primer schema bedfile, but has errors when there are large number of primer pairs, the primer pairs overlap too much, are named outside of expected values, and can incorrectly pair primers when determining amplicons. This means that I needed control as to what was in the amplicon file.\n\n## License\nThis project is licensed under the MIT License.\n\n## Contact\nFor any questions or inquiries, please [submit an issue](https://github.com/erinyoung/ACI/issues).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Visualization of coverage for amplicon sequencing",
    "version": "1.15.250702",
    "project_urls": {
        "Source": "https://github.com/erinyoung/ACI"
    },
    "split_keywords": [
        "bioinformatics",
        " amplicon",
        " coverage",
        " visualization"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "24f6caae692b9e0862b5dd1c471e6f1571d5bf4a11902556bd57d7367e42be2b",
                "md5": "de60b9c1654f5e506d8a130366e77e10",
                "sha256": "6688ba6cecc06ca7877e03df3000abcbc7ed711f149de84ea6d7b65f4bde0e70"
            },
            "downloads": -1,
            "filename": "amplicon_coverage_inspector-1.15.250702-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "de60b9c1654f5e506d8a130366e77e10",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.8",
            "size": 18828,
            "upload_time": "2025-07-15T19:27:05",
            "upload_time_iso_8601": "2025-07-15T19:27:05.712169Z",
            "url": "https://files.pythonhosted.org/packages/24/f6/caae692b9e0862b5dd1c471e6f1571d5bf4a11902556bd57d7367e42be2b/amplicon_coverage_inspector-1.15.250702-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f8a4b3b8819b4e49d3dccefb5070a56a89299ef7010a219e6d56eb81948cca7",
                "md5": "c15e683a04cd6fc7c44f835bde8acf71",
                "sha256": "f3dc71c89c6ed44707fdf6ce2f79f8ecbef8f273371ba5cbbaf3ff5224ec3450"
            },
            "downloads": -1,
            "filename": "amplicon_coverage_inspector-1.15.250702.tar.gz",
            "has_sig": false,
            "md5_digest": "c15e683a04cd6fc7c44f835bde8acf71",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.8",
            "size": 25157,
            "upload_time": "2025-07-15T19:27:06",
            "upload_time_iso_8601": "2025-07-15T19:27:06.737972Z",
            "url": "https://files.pythonhosted.org/packages/2f/8a/4b3b8819b4e49d3dccefb5070a56a89299ef7010a219e6d56eb81948cca7/amplicon_coverage_inspector-1.15.250702.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-15 19:27:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "erinyoung",
    "github_project": "ACI",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "amplicon_coverage_inspector",
            "specs": []
        },
        {
            "name": "contourpy",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.12.1"
                ]
            ]
        },
        {
            "name": "fonttools",
            "specs": [
                [
                    "==",
                    "4.58.5"
                ]
            ]
        },
        {
            "name": "intervaltree",
            "specs": [
                [
                    "==",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.4.8"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.10.3"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "2.3.1"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "25.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.3.1"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    "==",
                    "11.3.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.2.3"
                ]
            ]
        },
        {
            "name": "pysam",
            "specs": [
                [
                    "==",
                    "0.23.3"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2025.2"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.17.0"
                ]
            ]
        },
        {
            "name": "sortedcontainers",
            "specs": [
                [
                    "==",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "tzdata",
            "specs": [
                [
                    "==",
                    "2025.2"
                ]
            ]
        }
    ],
    "lcname": "amplicon-coverage-inspector"
}
        
Elapsed time: 0.50549s