Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hi-C workflow #139

Open
wants to merge 126 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 124 commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
c8b17b2
feat: hi-c initial commit
adthrasher Mar 22, 2024
55f09d8
clean up check errors
adthrasher Mar 22, 2024
0a025a0
Add Hi-C workflows. Split ReadGroup struct into separate file.
adthrasher Mar 28, 2024
d374a51
Fix check issues
adthrasher Mar 28, 2024
a5cd476
Fixes to Hi-C workflow
adthrasher Apr 4, 2024
6bd01bf
Expose restriction sites option
adthrasher Apr 4, 2024
b531cc5
Doc update for hic-core
adthrasher Apr 5, 2024
1357d55
Rename fastq workflow
adthrasher Apr 5, 2024
0279f9e
First pass at input validation
adthrasher Apr 5, 2024
c27bdf3
syntax fixes
adthrasher Apr 5, 2024
e4dba06
Add Dockerfiles for pairix and juicer
adthrasher Apr 5, 2024
f8a8cf2
Add tests for juicer and pairix
adthrasher Apr 5, 2024
32be249
Update to custom docker images
adthrasher Apr 5, 2024
9567e04
String? -> String with defaults
adthrasher Apr 8, 2024
e029ca0
Add download link for restrction site files
adthrasher Apr 8, 2024
182a31a
Fix tests
adthrasher Apr 8, 2024
7dd86e1
chore: merge main
adthrasher Aug 27, 2024
22e7523
Update read_group.wdl
adthrasher Aug 27, 2024
8c76606
chore: rename simple Hi-C workflow
adthrasher Aug 27, 2024
eee143e
feat: Add HiLOW inspired Hi-C workflow, really its just HiC-Pro
adthrasher Aug 27, 2024
06c2240
chore: add bowtie2 Dockerfile
adthrasher Aug 27, 2024
ee0cff8
chore: fix lint issues
adthrasher Aug 27, 2024
118e794
chore: fix lint warnings
adthrasher Aug 27, 2024
39fe94b
chore: remove duplicate faidx task
adthrasher Aug 27, 2024
961ce2e
chore: update function name
adthrasher Aug 27, 2024
0e450dd
chore: update function name
adthrasher Aug 27, 2024
0b39a96
chore: cleanup
adthrasher Aug 27, 2024
b150efe
chore: fix check warnings
adthrasher Aug 27, 2024
8c95537
chore: fix lint issues
adthrasher Aug 27, 2024
eaa5540
feat: add HiC-Pro workflow
adthrasher Aug 27, 2024
2560177
refactor: separate HiC-Pro workflow
adthrasher Aug 27, 2024
134cf76
chore: mv qc_hic to hicpro
adthrasher Aug 28, 2024
3b8f797
chore: specify prefix
adthrasher Aug 28, 2024
3564657
chore: add bedtools dockerfile
adthrasher Aug 28, 2024
fb61aa3
refactor: add bowtie function format as struct
adthrasher Aug 28, 2024
f143eea
chore: move bowtie2filter into the bowtie2 task
adthrasher Aug 28, 2024
d65883b
chore: lint fixes
adthrasher Aug 28, 2024
54489e8
chore: revent trailing commas that mininwdl disallows
adthrasher Aug 28, 2024
f6ae399
chore: fix lint warning
adthrasher Aug 28, 2024
5c7ab92
chore: sort before markdup and index
adthrasher Aug 29, 2024
495863f
chore: update container
adthrasher Aug 29, 2024
98f052a
feat: add hic reference generation workflow
adthrasher Aug 29, 2024
f2a556b
chore: add outputs and documentation
adthrasher Aug 29, 2024
332cbc0
chore: add fixmate
adthrasher Aug 30, 2024
d2de023
fix: correct samtools ordering
adthrasher Aug 30, 2024
fb31903
fix: ligation -> restriction
adthrasher Aug 30, 2024
5e59bf9
chore: remove dead code
adthrasher Aug 30, 2024
34287e3
fix: fix read group specification
adthrasher Sep 3, 2024
ae579ee
fix: retain RGs in final merged BAM
adthrasher Sep 4, 2024
3477fc8
feat: add bam entrypoint. rename fastq entrypoint.
adthrasher Sep 5, 2024
b5e48e2
chore: clean up lint warnings
adthrasher Sep 6, 2024
b9fe3d0
chore: clean up lint warnings
adthrasher Sep 6, 2024
b1cc7d9
chore: fix fastq meta entry
adthrasher Sep 9, 2024
3875ba1
chore: update meta for params
adthrasher Sep 9, 2024
0be8e40
refactor: hic-simple -> to-ubam workflows
adthrasher Sep 10, 2024
23c71c5
Update tools/picard.wdl
adthrasher Sep 10, 2024
3276579
chore: remove embedded bash script
adthrasher Sep 10, 2024
76c1b27
Update tools/picard.wdl
adthrasher Sep 10, 2024
7d8a751
Update tools/picard.wdl
adthrasher Sep 10, 2024
149520f
Update workflows/hic/hicpro-core.wdl
adthrasher Sep 10, 2024
5e8349d
Update workflows/hic/hicpro-core.wdl
adthrasher Sep 10, 2024
8ca023b
Update tools/samtools.wdl
adthrasher Sep 10, 2024
b68e666
Update workflows/hic/hicpro-core.wdl
adthrasher Sep 10, 2024
551a155
Update workflows/hic/hicpro-core.wdl
adthrasher Sep 10, 2024
984127c
Update workflows/hic/hicpro-core.wdl
adthrasher Sep 10, 2024
f1cc66f
chore: apply PR feedback
adthrasher Sep 10, 2024
c131c11
chore: apply PR feedback, mininwdl check and shellcheck suggestions
adthrasher Sep 11, 2024
bb99cf2
chore: add disk requirements
adthrasher Sep 11, 2024
f206b88
chore: remove stray line continuation
adthrasher Sep 11, 2024
95f31eb
chore: additional disk resource
adthrasher Sep 11, 2024
84fdf72
chore: apply PR feedback
adthrasher Sep 11, 2024
c98c4bd
chore: reduce memory for RevertSam and FastqToSam
adthrasher Sep 11, 2024
e78e7e3
chore: apply PR feedback
adthrasher Sep 13, 2024
66a5645
fix: correct argument
adthrasher Sep 13, 2024
47623fe
chore: clarify sort type
adthrasher Sep 19, 2024
2402098
chore: use interpolation instead of concatenation
adthrasher Sep 19, 2024
9824304
refactor: split Hi-C post into a separate workflow
adthrasher Oct 28, 2024
4b1a97c
chore: fix lint warnings
adthrasher Oct 28, 2024
3e06810
chore: fix lint warnings
adthrasher Oct 28, 2024
0aa4f97
chore: apply PR feedback
adthrasher Oct 28, 2024
ce77e28
refactor: make split parameter configurable
adthrasher Oct 28, 2024
275c5d8
chore: apply PR feedback
adthrasher Oct 28, 2024
e837f8a
chore: fix miniwdl check
adthrasher Oct 28, 2024
f35f38b
Merge branch 'main' into hic_workflow
adthrasher Jan 3, 2025
cf471e6
chore: fix merge issues
adthrasher Jan 3, 2025
380fe6c
chore: resolve sprocket issues
adthrasher Jan 3, 2025
160a3aa
chore: resolve sprocket lints
adthrasher Jan 3, 2025
86cbd2f
chore: revert problematic trailing comma
adthrasher Jan 3, 2025
40d1763
chore: fix sprocket lints
adthrasher Jan 3, 2025
01a1ece
chore: revert trailing commas that break miniwdl
adthrasher Jan 3, 2025
334a34e
chore: revert trailing commas that break miniwdl
adthrasher Jan 3, 2025
0287b2b
chore: revert trailing commas that break miniwdl
adthrasher Jan 3, 2025
9f8331a
chore: revert trailing commas that break miniwdl
adthrasher Jan 3, 2025
09399c9
chore: satisfy sprocket lints
adthrasher Jan 3, 2025
7bf0db8
chore: satisfy sprocket lints
adthrasher Jan 3, 2025
3adc65c
chore: update bowtie outputs
adthrasher Jan 3, 2025
8e918db
chore: update bowtie outputs
adthrasher Jan 3, 2025
143e9bf
chore: update reporting description
adthrasher Jan 3, 2025
a06c495
chore: apply PR feedback
adthrasher Jan 3, 2025
b96b348
chore: threads -> ncpu
adthrasher Jan 3, 2025
5168c62
chore: remove memory mapped IO
adthrasher Jan 3, 2025
17ae8a9
chore: document omitted bowtie2 arguments
adthrasher Jan 3, 2025
ad3364f
chore: migrate embedded script
adthrasher Jan 3, 2025
42fe071
chore: apply PR feedback
adthrasher Jan 3, 2025
f553ae4
chore: migrate embedded script
adthrasher Jan 3, 2025
64186e5
chore: apply PR feedback
adthrasher Jan 6, 2025
3139e69
chore: apply PR feedback
adthrasher Jan 6, 2025
a262420
chore: apply PR feedback
adthrasher Jan 6, 2025
de835c3
chore: address sprocket lints
adthrasher Jan 6, 2025
058fbac
chore: address sprocket lints
adthrasher Jan 6, 2025
49e1c29
chore: address sprocket lints
adthrasher Jan 6, 2025
02ae409
chore: address sprocket lints
adthrasher Jan 6, 2025
27f9e2a
test: add bowtie2 tests
adthrasher Jan 6, 2025
de9b0be
test: add picard tests
adthrasher Jan 6, 2025
df85b2e
test: add samtools and picard tests
adthrasher Jan 6, 2025
8ac2922
fix: add check for Nonetype
adthrasher Jan 8, 2025
6923f27
test: add HiLOW tests
adthrasher Jan 8, 2025
cafe359
chore: apply PR feedback
adthrasher Jan 9, 2025
827dd75
chore: move to git lfs
adthrasher Jan 9, 2025
1038702
chore: remove unused hichip task
adthrasher Jan 9, 2025
c5eb1fa
chore: point containers to branch
adthrasher Jan 9, 2025
20cff40
chore: apply PR feedback
adthrasher Jan 9, 2025
723e77c
chore: apply PR feedback
adthrasher Jan 9, 2025
9414122
Merge branch 'main' into hic_workflow
adthrasher Jan 24, 2025
55c7b90
chore: apply suggestions from PR
adthrasher Jan 27, 2025
0534ab8
chore: apply suggestions from PR
adthrasher Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ bin/check-job-alive !text !filter !merge !diff
*.conf !text !filter !merge !diff
.fa filter=lfs diff=lfs merge=lfs -text
*.fa filter=lfs diff=lfs merge=lfs -text
tests/input/hic/00_JurkatCas9_ab3_050123.subset.allValidPairs filter=lfs diff=lfs merge=lfs -text
10 changes: 10 additions & 0 deletions docker/bedtools/2.31.1/Dockerfile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this version dir should be 2.31.1-0

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is named after bedtools, why does it have hic scripts in it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Originally, it was just plain bedtools, but with the decision to remove the embedded scripts, those needed to get built in to some image and this one depends on bedtools. I can go somewhere else, but then we'll need to install bedtools in to another container.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM quay.io/biocontainers/bedtools:2.31.1--hf5e1c6e_2 AS bedtools
FROM python:3.13.0

COPY --from=bedtools /usr/local/bin/ /usr/local/bin/
COPY --from=scripts --chmod=777 hic/filter_hic.py /usr/local/bin/filter_hic.py

RUN apt update && \
apt install bc

ENTRYPOINT [ "bash" ]
8 changes: 8 additions & 0 deletions docker/bowtie2/2.5.4/Dockerfile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2.5.4-0

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM quay.io/biocontainers/samtools:1.17--h00cdaf9_0 AS samtools
FROM quay.io/biocontainers/bowtie2:2.5.4--he20e202_2

COPY --from=samtools /usr/local/bin/ /usr/local/bin/
COPY --from=samtools /usr/local/lib/ /usr/local/lib/
COPY --from=samtools /usr/local/libexec/ /usr/local/libexec/

ENTRYPOINT [ "bowtie2" ]
3 changes: 3 additions & 0 deletions docker/hilow/1.0.0/Dockerfile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we maybe consolidate some of these new Docker images? It looks like we can maybe merge bedtools, hilow and juicertools?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we were trying to avoid these types of monolithic images? We can do that, but is that the direction we want to go?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. There's a balance to be found, but I'm not sure what it is yet... Responding to #139 (comment) in this thread to consolidate conversation.

Maybe we can merge hilow and juicertools (is my understanding correct that they are usually used together?), building that image with bedtools and moving the hic script which depends on bedtools into there? That's a bit "monolithic", but keeps the bedtools image "clean" and hopefully isn't too sprawling.

Thoughts on that?

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM python:3.13.0

COPY --from=scripts --chmod=777 hic/qc_hic.py /usr/local/bin/qc_hic.py
7 changes: 7 additions & 0 deletions docker/juicertools/1.6.2-0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM nservant/hicpro:3.0.0 AS hicpro
FROM aidenlab/juicer:1.0.13

COPY --from=hicpro /HiC-Pro_3.0.0/bin/utils/hicpro2juicebox.sh /HiC-Pro_3.0.0/bin/utils/hicpro2juicebox.sh
RUN chmod a+rwx /opt/juicer-1.6.2/CPU/common/juicer_tools.1.7.6_jcuda.0.8.jar

ENTRYPOINT [ "bash" ]
45 changes: 45 additions & 0 deletions scripts/hic/filter_hic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

from collections import defaultdict
import argparse

def get_args():
parser = argparse.ArgumentParser(
description="Filter Hi-C data.")
parser.add_argument(
"--prefix", type=str, help="Prefix for output file.")
parser.add_argument(
"--all_valid_pairs", type=str, help="All valid pairs file.")
parser.add_argument(
"--filter_pairs", type=str, help="Filter pairs file.")

args = parser.parse_args()
return args

if __name__ == "__main__":
args = get_args()

f=open(args.filter_pairs)
blackID=defaultdict(int)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this was just a copy+paste, but can we use proper casing in this file? And blackID should probably be updated to exclude_list or something

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably wise. These are just copy+paste.

while True:
line=f.readline()
if not line:
break
cols=line.strip().split("\t")
ID=cols[0]
blackID[ID]=1

f2=open(args.all_valid_pairs)
outfile1=args.prefix + ".allValidPairs.filtered"
outfile2=args.prefix + ".allValidPairs.removed"
of1=open(outfile1,'w')
of2=open(outfile2,'w')
while True:
line=f2.readline()
if not line:
break
cols=line.strip().split("\t")
id=cols[0]
if id in blackID:
of2.write(line)
else:
of1.write(line)
101 changes: 101 additions & 0 deletions scripts/hic/qc_hic.py
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we incorporate some Python tooling? A linter of some sort, formatter, etc? Don't really want to ask you to rewrite all these py scripts which appear to be mostly copy+paste, but also they aren't really conformant to any Python standards...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran both of these scripts through black. Do you think we should to something additional? Now that we're maintaining a scripts directory, we should probably do this at a repo-level. I didn't do any formatting of the methylation scripts in that PR. That also contains R code, which I have no experience formatting/linting (I suspect R is always ugly).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running through black is a good start, and these do look better now.

My major concern is that with the maintenance of a scripts directory, these files are quite visible now and as such they should be up to our code quality standards. However our code quality standards aren't exactly defined anywhere, so I suppose that gives us some latitude?

There's a million and one Python lint frameworks out there, and I don't have strong feelings about which to use, but I do think we should be using something.

My local VScode set-up uses the pylance extension from Microsoft (https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) and according to those docs, under the hood pylance is using pyright (https://github.com/microsoft/pyright).

Maybe we can add a black check and a pyright check to our CI? That doesn't sound too labor intensive on the surface.

Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import os
import argparse

def get_args():
parser = argparse.ArgumentParser(
description="QC a Hi-C experiment.")
parser.add_argument(
"--all_valid_pairs_stats", type=str, help="All valid pairs stats file.")
parser.add_argument(
"--pairing_stats", type=str, help="Pairing stats file.")
parser.add_argument(
"--mapping_stats_read1", type=str, help="Mapping stats for read 1.")
parser.add_argument(
"--mapping_stats_read2", type=str, help="Mapping stats for read 2.")
parser.add_argument(
"--fithichip_bed", type=str, help="FithiChIP bed file.")
parser.add_argument(
"--fithichip_q01_bed", type=str, help="FithiChIP q01 bed file.")
parser.add_argument(
"--peaks_bed", type=str, help="Peaks bed file.")
parser.add_argument(
"--prefix", type=str, help="Prefix for output file.")


args = parser.parse_args()

return args

if __name__ == "__main__":
args = get_args()
FILES = [args.all_valid_pairs_stats, args.pairing_stats, args.mapping_stats_read1, args.mapping_stats_read2]
VARIABLE = ["valid_interaction", "cis_shortRange", "cis_longRange", "Total_pairs_processed", "Reported_pairs", "total_R2", "mapped_R2", "total_R1", "mapped_R1"]
RESULTS = {}
for eachfile in FILES:
with open(eachfile) as f:
for line in f:
array = line.split()
if array[0] in VARIABLE:
RESULTS[array[0]] = int(array[1])

PERCENTAGES = {}
COUNTS = {}
VERDICT = {}
REP_VAR = ["R1_aligned", "R2_aligned", "valid_interactionPairs", "cis_shortRange", "cis_longRange"]

if args.fithichip_bed is not None and os.path.isfile(args.fithichip_bed):
with open(args.fithichip_q01_bed) as fithichip:
LOOPS_SIGNIFICANT = len(fithichip.readlines())-1
with open(args.fithichip_bed) as fithichip:
LOOPS = len(fithichip.readlines())-1
if args.peaks_bed is not None and os.path.isfile(args.peaks_bed):
with open(args.peaks_bed) as peaks:
PEAKS = len(peaks.readlines())-1

PERCENTAGES["R1_aligned"] = round((RESULTS["mapped_R1"]*100)/RESULTS["total_R1"])
PERCENTAGES["R2_aligned"] = round((RESULTS["mapped_R2"]*100)/RESULTS["total_R2"])
PERCENTAGES["valid_interactionPairs"] = round((RESULTS["valid_interaction"]*100)/RESULTS["Reported_pairs"])
PERCENTAGES["cis_shortRange"] = round((RESULTS["cis_shortRange"]*100)/RESULTS["valid_interaction"])
PERCENTAGES["cis_longRange"] = round((RESULTS["cis_longRange"]*100)/RESULTS["valid_interaction"])
COUNTS["R1_aligned"] = RESULTS["mapped_R1"]
COUNTS["R2_aligned"] = RESULTS["mapped_R2"]
COUNTS["valid_interactionPairs"] = RESULTS["valid_interaction"]
COUNTS["cis_shortRange"] = RESULTS["cis_shortRange"]
COUNTS["cis_longRange"] = RESULTS["cis_longRange"]

for aligned in ["R1_aligned", "R2_aligned"]:
if PERCENTAGES[aligned] > 80:
VERDICT[aligned] = "GOOD"
else:
VERDICT[aligned] = "BAD"

if PERCENTAGES["valid_interactionPairs"] > 50:
VERDICT["valid_interactionPairs"] = "GOOD"
else:
VERDICT["valid_interactionPairs"] = "BAD"

if PERCENTAGES["cis_shortRange"] > 50:
VERDICT["cis_shortRange"] = "BAD"
elif PERCENTAGES["cis_shortRange"] > 30:
VERDICT["cis_shortRange"] = "MARGINAL"
else:
VERDICT["cis_shortRange"] = "GOOD"

if PERCENTAGES["cis_longRange"] > 40:
VERDICT["cis_longRange"] = "GOOD"
elif PERCENTAGES["cis_longRange"] > 20:
VERDICT["cis_longRange"] = "MARGINAL"
else:
VERDICT["cis_longRange"] = "BAD"

REPORT = open(args.prefix + "_QCreport.txt", 'w')
REPORT.write("STAT\tCOUNTS\tPERCENTAGE\tVERDICT\n")
REPORT.write("Total_pairs_processed\t" + str(RESULTS["Total_pairs_processed"]) + "\n")
for var in REP_VAR:
REPORT.write(var + "\t" + str(COUNTS[var]) + "\t" + str(PERCENTAGES[var]) + "\t" + VERDICT[var] + '\n')

if args.peaks_bed is not None and os.path.isfile(args.peaks_bed):
REPORT.write("peaks\t" + str(PEAKS) + "\n")
if args.fithichip_bed is not None and os.path.isfile(args.fithichip_bed):
REPORT.write("loops\t" + str(LOOPS) + "\n")
REPORT.write("loops_significant\t" + str(LOOPS_SIGNIFICANT) + "\n")
195 changes: 195 additions & 0 deletions tests/input/GRCh38_no_alt.chromsizes.tab
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
chr1 248956422
chr2 242193529
chr3 198295559
chr4 190214555
chr5 181538259
chr6 170805979
chr7 159345973
chr8 145138636
chr9 138394717
chr10 133797422
chr11 135086622
chr12 133275309
chr13 114364328
chr14 107043718
chr15 101991189
chr16 90338345
chr17 83257441
chr18 80373285
chr19 58617616
chr20 64444167
chr21 46709983
chr22 50818468
chrX 156040895
chrY 57227415
chrM 16569
chr1_KI270706v1_random 175055
chr1_KI270707v1_random 32032
chr1_KI270708v1_random 127682
chr1_KI270709v1_random 66860
chr1_KI270710v1_random 40176
chr1_KI270711v1_random 42210
chr1_KI270712v1_random 176043
chr1_KI270713v1_random 40745
chr1_KI270714v1_random 41717
chr2_KI270715v1_random 161471
chr2_KI270716v1_random 153799
chr3_GL000221v1_random 155397
chr4_GL000008v2_random 209709
chr5_GL000208v1_random 92689
chr9_KI270717v1_random 40062
chr9_KI270718v1_random 38054
chr9_KI270719v1_random 176845
chr9_KI270720v1_random 39050
chr11_KI270721v1_random 100316
chr14_GL000009v2_random 201709
chr14_GL000225v1_random 211173
chr14_KI270722v1_random 194050
chr14_GL000194v1_random 191469
chr14_KI270723v1_random 38115
chr14_KI270724v1_random 39555
chr14_KI270725v1_random 172810
chr14_KI270726v1_random 43739
chr15_KI270727v1_random 448248
chr16_KI270728v1_random 1872759
chr17_GL000205v2_random 185591
chr17_KI270729v1_random 280839
chr17_KI270730v1_random 112551
chr22_KI270731v1_random 150754
chr22_KI270732v1_random 41543
chr22_KI270733v1_random 179772
chr22_KI270734v1_random 165050
chr22_KI270735v1_random 42811
chr22_KI270736v1_random 181920
chr22_KI270737v1_random 103838
chr22_KI270738v1_random 99375
chr22_KI270739v1_random 73985
chrY_KI270740v1_random 37240
chrUn_KI270302v1 2274
chrUn_KI270304v1 2165
chrUn_KI270303v1 1942
chrUn_KI270305v1 1472
chrUn_KI270322v1 21476
chrUn_KI270320v1 4416
chrUn_KI270310v1 1201
chrUn_KI270316v1 1444
chrUn_KI270315v1 2276
chrUn_KI270312v1 998
chrUn_KI270311v1 12399
chrUn_KI270317v1 37690
chrUn_KI270412v1 1179
chrUn_KI270411v1 2646
chrUn_KI270414v1 2489
chrUn_KI270419v1 1029
chrUn_KI270418v1 2145
chrUn_KI270420v1 2321
chrUn_KI270424v1 2140
chrUn_KI270417v1 2043
chrUn_KI270422v1 1445
chrUn_KI270423v1 981
chrUn_KI270425v1 1884
chrUn_KI270429v1 1361
chrUn_KI270442v1 392061
chrUn_KI270466v1 1233
chrUn_KI270465v1 1774
chrUn_KI270467v1 3920
chrUn_KI270435v1 92983
chrUn_KI270438v1 112505
chrUn_KI270468v1 4055
chrUn_KI270510v1 2415
chrUn_KI270509v1 2318
chrUn_KI270518v1 2186
chrUn_KI270508v1 1951
chrUn_KI270516v1 1300
chrUn_KI270512v1 22689
chrUn_KI270519v1 138126
chrUn_KI270522v1 5674
chrUn_KI270511v1 8127
chrUn_KI270515v1 6361
chrUn_KI270507v1 5353
chrUn_KI270517v1 3253
chrUn_KI270529v1 1899
chrUn_KI270528v1 2983
chrUn_KI270530v1 2168
chrUn_KI270539v1 993
chrUn_KI270538v1 91309
chrUn_KI270544v1 1202
chrUn_KI270548v1 1599
chrUn_KI270583v1 1400
chrUn_KI270587v1 2969
chrUn_KI270580v1 1553
chrUn_KI270581v1 7046
chrUn_KI270579v1 31033
chrUn_KI270589v1 44474
chrUn_KI270590v1 4685
chrUn_KI270584v1 4513
chrUn_KI270582v1 6504
chrUn_KI270588v1 6158
chrUn_KI270593v1 3041
chrUn_KI270591v1 5796
chrUn_KI270330v1 1652
chrUn_KI270329v1 1040
chrUn_KI270334v1 1368
chrUn_KI270333v1 2699
chrUn_KI270335v1 1048
chrUn_KI270338v1 1428
chrUn_KI270340v1 1428
chrUn_KI270336v1 1026
chrUn_KI270337v1 1121
chrUn_KI270363v1 1803
chrUn_KI270364v1 2855
chrUn_KI270362v1 3530
chrUn_KI270366v1 8320
chrUn_KI270378v1 1048
chrUn_KI270379v1 1045
chrUn_KI270389v1 1298
chrUn_KI270390v1 2387
chrUn_KI270387v1 1537
chrUn_KI270395v1 1143
chrUn_KI270396v1 1880
chrUn_KI270388v1 1216
chrUn_KI270394v1 970
chrUn_KI270386v1 1788
chrUn_KI270391v1 1484
chrUn_KI270383v1 1750
chrUn_KI270393v1 1308
chrUn_KI270384v1 1658
chrUn_KI270392v1 971
chrUn_KI270381v1 1930
chrUn_KI270385v1 990
chrUn_KI270382v1 4215
chrUn_KI270376v1 1136
chrUn_KI270374v1 2656
chrUn_KI270372v1 1650
chrUn_KI270373v1 1451
chrUn_KI270375v1 2378
chrUn_KI270371v1 2805
chrUn_KI270448v1 7992
chrUn_KI270521v1 7642
chrUn_GL000195v1 182896
chrUn_GL000219v1 179198
chrUn_GL000220v1 161802
chrUn_GL000224v1 179693
chrUn_KI270741v1 157432
chrUn_GL000226v1 15008
chrUn_GL000213v1 164239
chrUn_KI270743v1 210658
chrUn_KI270744v1 168472
chrUn_KI270745v1 41891
chrUn_KI270746v1 66486
chrUn_KI270747v1 198735
chrUn_KI270748v1 93321
chrUn_KI270749v1 158759
chrUn_KI270750v1 148850
chrUn_KI270751v1 150742
chrUn_KI270752v1 27745
chrUn_KI270753v1 62944
chrUn_KI270754v1 40191
chrUn_KI270755v1 36723
chrUn_KI270756v1 79590
chrUn_KI270757v1 71251
chrUn_GL000214v1 137718
chrUn_KI270742v1 186739
chrUn_GL000216v2 176608
chrUn_GL000218v1 161147
chrEBV 171823
3 changes: 3 additions & 0 deletions tests/input/bowtie2_index.tar.gz
Git LFS file not shown
3 changes: 3 additions & 0 deletions tests/input/hg38-blacklist.v2.bed.gz
Git LFS file not shown
Loading
Loading