Skip to content

Commit

Permalink
Merge pull request #50 from onecodex/CH-articv4
Browse files Browse the repository at this point in the history
Update from ARTIC V3 to V4.1 primers
  • Loading branch information
christinehe committed Jan 11, 2022
2 parents 8c6d6f3 + 8e3f1a9 commit 7d27836
Show file tree
Hide file tree
Showing 33 changed files with 10,174 additions and 30 deletions.
5 changes: 0 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ repos:
- id: end-of-file-fixer
- id: check-yaml
args: [--allow-multiple-documents]
- repo: git://github.com/detailyang/pre-commit-shell
rev: 1.0.5
hooks:
- id: shell-lint
args: [--format=json]
- repo: https://github.com/kynan/nbstripout
rev: 0.3.9
hooks:
Expand Down
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,7 @@ COPY reference /reference
# ARTIC's vcf_filter.py breaks when a variant's call score is "."
# I fixed this in reference/vcf_filter_edited.py
COPY /reference/vcf_filter.edited.py /root/miniconda3/envs/artic/lib/python3.6/site-packages/artic-1.2.1-py3.6.egg/artic/vcf_filter.py

# Add ARTIC 4.1 patch as a primer scheme
RUN mkdir /primer_schemes
COPY /reference/primer_schemes/ /primer_schemes/
13 changes: 9 additions & 4 deletions covid19_call_variants.ont.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@

set -e

sample_filename="${1}"
artic_primer_version="${2}"
artic_primer_scheme="V${artic_primer_version}"

#### Default parameters

: "${medaka_model:=r941_min_high_g360}" # Default Medaka model is for MinION (or GridION) R9.4.1 flowcells using the fast Guppy basecaller version 3.6.0, high accuracy base calling
Expand All @@ -25,7 +29,7 @@ echo "[1] trimming/filtering reads with seqkit"
source activate report

# shellcheck disable=SC2002
cat "${1}" \
cat "${sample_filename}" \
| seqkit \
seq \
--min-len ${min_read_length} \
Expand All @@ -42,17 +46,18 @@ source deactivate
#### 2. Alignment, variant calling, and consensus creation
# minimap2 alignment, Medaka for consensus creation and variant calling (experimental)

echo "[2] running ARTIC pipeline"
echo "[2] running ARTIC pipeline with ${artic_primer_scheme} primers"
conda run -n artic \
artic minion \
--medaka \
--medaka-model "${medaka_model}" \
--normalise "${normalized_coverage}" \
--scheme-directory /primer_schemes \
--threads "${threads}" \
--scheme-directory ./artic-ncov2019/primer_schemes \
--read-file "${prefix}.filtered.fastq" \
--no-longshot \
--strict nCoV-2019/V3 \
--strict \
nCoV-2019/V4.1 \
"${prefix}"

echo "[3] generating variants.tsv"
Expand Down
24 changes: 9 additions & 15 deletions jobscript.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ sample_filename="${1}"

: "${INSTRUMENT_VENDOR:=Illumina}"
: "${ONE_CODEX_REPORT_FILENAME:=report.pdf}"
: "${ARTIC_PRIMER_VERSION:=4.1}"

BEDFILE="/reference/primer_schemes/nCoV-2019/V${ARTIC_PRIMER_VERSION}/nCoV-2019.scheme.bed"

echo "--- sample_filename=${sample_filename}"
echo "--- INSTRUMENT_VENDOR=${INSTRUMENT_VENDOR}"
Expand All @@ -15,12 +18,14 @@ echo "--- INSTRUMENT_VENDOR=${INSTRUMENT_VENDOR}"
# covid19.bam (sorted+bai)
# consensus.fa
if [ "${INSTRUMENT_VENDOR}" == "Oxford Nanopore" ]; then
covid19_call_variants.ont.sh "${sample_filename}"
covid19_call_variants.ont.sh \
"${sample_filename}" \
"${ARTIC_PRIMER_VERSION}"
else
covid19_call_variants.sh \
/reference/nCoV-2019.reference.fasta \
"${sample_filename}" \
/reference/ARTIC-V3.bed
"${BEDFILE}"
fi

echo "Annotating VCF file using snpEff"
Expand Down Expand Up @@ -85,18 +90,7 @@ cp /reference/aa_codes.txt .

echo "Generating notebook!"

RESULTS_DIR="$(pwd)" \
SAMPLE_PATH="${sample_filename}" \
PYTHONWARNINGS="ignore" \
GIT_DIR="/.git" \
GIT_WORK_TREE="/" \
conda run -n report jupyter \
nbconvert \
--execute \
--to onecodex_pdf \
--ExecutePreprocessor.timeout=-1 \
--output="${ONE_CODEX_REPORT_FILENAME}" \
--output-dir="." \
report.ipynb
#shellcheck disable=SC1000-SC9999
RESULTS_DIR="$(pwd)" SAMPLE_PATH="${sample_filename}" PYTHONWARNINGS="ignore" GIT_DIR="/.git" GIT_WORK_TREE="/" INSTRUMENT_VENDOR="${INSTRUMENT_VENDOR}" ONE_CODEX_REPORT_FILENAME="${ONE_CODEX_REPORT_FILENAME}" ARTIC_PRIMER_VERSION="${ARTIC_PRIMER_VERSION}" conda run -n report jupyter nbconvert --execute --to onecodex_pdf --ExecutePreprocessor.timeout=-1 --output="${ONE_CODEX_REPORT_FILENAME}" --output-dir="." report.ipynb

echo "Finished!"
198 changes: 198 additions & 0 deletions reference/ARTIC-V4.bed
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
MN908947.3 25 50 nCoV-2019_1_LEFT nCoV-2019_1 +
MN908947.3 408 431 nCoV-2019_1_RIGHT nCoV-2019_1 -
MN908947.3 324 344 nCoV-2019_2_LEFT nCoV-2019_2 +
MN908947.3 705 727 nCoV-2019_2_RIGHT nCoV-2019_2 -
MN908947.3 644 666 nCoV-2019_3_LEFT nCoV-2019_1 +
MN908947.3 1017 1044 nCoV-2019_3_RIGHT nCoV-2019_1 -
MN908947.3 944 966 nCoV-2019_4_LEFT nCoV-2019_2 +
MN908947.3 1337 1362 nCoV-2019_4_RIGHT nCoV-2019_2 -
MN908947.3 1245 1266 nCoV-2019_5_LEFT nCoV-2019_1 +
MN908947.3 1623 1650 nCoV-2019_5_RIGHT nCoV-2019_1 -
MN908947.3 1540 1562 nCoV-2019_6_LEFT nCoV-2019_2 +
MN908947.3 1925 1948 nCoV-2019_6_RIGHT nCoV-2019_2 -
MN908947.3 1851 1875 nCoV-2019_7_LEFT nCoV-2019_1 +
MN908947.3 2228 2250 nCoV-2019_7_RIGHT nCoV-2019_1 -
MN908947.3 2154 2180 nCoV-2019_8_LEFT nCoV-2019_2 +
MN908947.3 2544 2571 nCoV-2019_8_RIGHT nCoV-2019_2 -
MN908947.3 2483 2508 nCoV-2019_9_LEFT nCoV-2019_1 +
MN908947.3 2861 2885 nCoV-2019_9_RIGHT nCoV-2019_1 -
MN908947.3 2826 2850 nCoV-2019_10_LEFT nCoV-2019_2 +
MN908947.3 3183 3210 nCoV-2019_10_RIGHT nCoV-2019_2 -
MN908947.3 3078 3102 nCoV-2019_11_LEFT nCoV-2019_1 +
MN908947.3 3470 3492 nCoV-2019_11_RIGHT nCoV-2019_1 -
MN908947.3 3390 3412 nCoV-2019_12_LEFT nCoV-2019_2 +
MN908947.3 3769 3794 nCoV-2019_12_RIGHT nCoV-2019_2 -
MN908947.3 3683 3705 nCoV-2019_13_LEFT nCoV-2019_1 +
MN908947.3 4067 4093 nCoV-2019_13_RIGHT nCoV-2019_1 -
MN908947.3 3992 4018 nCoV-2019_14_LEFT nCoV-2019_2 +
MN908947.3 4387 4409 nCoV-2019_14_RIGHT nCoV-2019_2 -
MN908947.3 4312 4339 nCoV-2019_15_LEFT nCoV-2019_1 +
MN908947.3 4685 4710 nCoV-2019_15_RIGHT nCoV-2019_1 -
MN908947.3 4620 4648 nCoV-2019_16_LEFT nCoV-2019_2 +
MN908947.3 4995 5017 nCoV-2019_16_RIGHT nCoV-2019_2 -
MN908947.3 4923 4953 nCoV-2019_17_LEFT nCoV-2019_1 +
MN908947.3 5302 5331 nCoV-2019_17_RIGHT nCoV-2019_1 -
MN908947.3 5230 5259 nCoV-2019_18_LEFT nCoV-2019_2 +
MN908947.3 5620 5643 nCoV-2019_18_RIGHT nCoV-2019_2 -
MN908947.3 5561 5584 nCoV-2019_19_LEFT nCoV-2019_1 +
MN908947.3 5932 5957 nCoV-2019_19_RIGHT nCoV-2019_1 -
MN908947.3 5867 5894 nCoV-2019_20_LEFT nCoV-2019_2 +
MN908947.3 6247 6272 nCoV-2019_20_RIGHT nCoV-2019_2 -
MN908947.3 6184 6210 nCoV-2019_21_LEFT nCoV-2019_1 +
MN908947.3 6553 6582 nCoV-2019_21_RIGHT nCoV-2019_1 -
MN908947.3 6478 6507 nCoV-2019_22_LEFT nCoV-2019_2 +
MN908947.3 6859 6885 nCoV-2019_22_RIGHT nCoV-2019_2 -
MN908947.3 6747 6776 nCoV-2019_23_LEFT nCoV-2019_1 +
MN908947.3 7122 7148 nCoV-2019_23_RIGHT nCoV-2019_1 -
MN908947.3 7057 7084 nCoV-2019_24_LEFT nCoV-2019_2 +
MN908947.3 7440 7467 nCoV-2019_24_RIGHT nCoV-2019_2 -
MN908947.3 7381 7403 nCoV-2019_25_LEFT nCoV-2019_1 +
MN908947.3 7747 7770 nCoV-2019_25_RIGHT nCoV-2019_1 -
MN908947.3 7672 7695 nCoV-2019_26_LEFT nCoV-2019_2 +
MN908947.3 8063 8092 nCoV-2019_26_RIGHT nCoV-2019_2 -
MN908947.3 7997 8019 nCoV-2019_27_LEFT nCoV-2019_1 +
MN908947.3 8370 8395 nCoV-2019_27_RIGHT nCoV-2019_1 -
MN908947.3 8304 8326 nCoV-2019_28_LEFT nCoV-2019_2 +
MN908947.3 8691 8714 nCoV-2019_28_RIGHT nCoV-2019_2 -
MN908947.3 8596 8619 nCoV-2019_29_LEFT nCoV-2019_1 +
MN908947.3 8990 9013 nCoV-2019_29_RIGHT nCoV-2019_1 -
MN908947.3 8919 8944 nCoV-2019_30_LEFT nCoV-2019_2 +
MN908947.3 9306 9329 nCoV-2019_30_RIGHT nCoV-2019_2 -
MN908947.3 9168 9192 nCoV-2019_31_LEFT nCoV-2019_1 +
MN908947.3 9535 9564 nCoV-2019_31_RIGHT nCoV-2019_1 -
MN908947.3 9470 9497 nCoV-2019_32_LEFT nCoV-2019_2 +
MN908947.3 9842 9866 nCoV-2019_32_RIGHT nCoV-2019_2 -
MN908947.3 9782 9805 nCoV-2019_33_LEFT nCoV-2019_1 +
MN908947.3 10150 10176 nCoV-2019_33_RIGHT nCoV-2019_1 -
MN908947.3 10076 10099 nCoV-2019_34_LEFT nCoV-2019_2 +
MN908947.3 10465 10491 nCoV-2019_34_RIGHT nCoV-2019_2 -
MN908947.3 10393 10419 nCoV-2019_35_LEFT nCoV-2019_1 +
MN908947.3 10785 10810 nCoV-2019_35_RIGHT nCoV-2019_1 -
MN908947.3 10713 10742 nCoV-2019_36_LEFT nCoV-2019_2 +
MN908947.3 11092 11116 nCoV-2019_36_RIGHT nCoV-2019_2 -
MN908947.3 11000 11023 nCoV-2019_37_LEFT nCoV-2019_1 +
MN908947.3 11388 11414 nCoV-2019_37_RIGHT nCoV-2019_1 -
MN908947.3 11305 11330 nCoV-2019_38_LEFT nCoV-2019_2 +
MN908947.3 11689 11720 nCoV-2019_38_RIGHT nCoV-2019_2 -
MN908947.3 11624 11651 nCoV-2019_39_LEFT nCoV-2019_1 +
MN908947.3 12011 12033 nCoV-2019_39_RIGHT nCoV-2019_1 -
MN908947.3 11937 11963 nCoV-2019_40_LEFT nCoV-2019_2 +
MN908947.3 12317 12339 nCoV-2019_40_RIGHT nCoV-2019_2 -
MN908947.3 12234 12255 nCoV-2019_41_LEFT nCoV-2019_1 +
MN908947.3 12618 12643 nCoV-2019_41_RIGHT nCoV-2019_1 -
MN908947.3 12519 12546 nCoV-2019_42_LEFT nCoV-2019_2 +
MN908947.3 12895 12920 nCoV-2019_42_RIGHT nCoV-2019_2 -
MN908947.3 12831 12856 nCoV-2019_43_LEFT nCoV-2019_1 +
MN908947.3 13218 13240 nCoV-2019_43_RIGHT nCoV-2019_1 -
MN908947.3 13124 13148 nCoV-2019_44_LEFT nCoV-2019_2 +
MN908947.3 13506 13528 nCoV-2019_44_RIGHT nCoV-2019_2 -
MN908947.3 13463 13485 nCoV-2019_45_LEFT nCoV-2019_1 +
MN908947.3 13833 13859 nCoV-2019_45_RIGHT nCoV-2019_1 -
MN908947.3 13752 13775 nCoV-2019_46_LEFT nCoV-2019_2 +
MN908947.3 14120 14144 nCoV-2019_46_RIGHT nCoV-2019_2 -
MN908947.3 14045 14075 nCoV-2019_47_LEFT nCoV-2019_1 +
MN908947.3 14428 14457 nCoV-2019_47_RIGHT nCoV-2019_1 -
MN908947.3 14338 14362 nCoV-2019_48_LEFT nCoV-2019_2 +
MN908947.3 14717 14743 nCoV-2019_48_RIGHT nCoV-2019_2 -
MN908947.3 14647 14674 nCoV-2019_49_LEFT nCoV-2019_1 +
MN908947.3 15023 15050 nCoV-2019_49_RIGHT nCoV-2019_1 -
MN908947.3 14953 14983 nCoV-2019_50_LEFT nCoV-2019_2 +
MN908947.3 15336 15358 nCoV-2019_50_RIGHT nCoV-2019_2 -
MN908947.3 15214 15237 nCoV-2019_51_LEFT nCoV-2019_1 +
MN908947.3 15596 15619 nCoV-2019_51_RIGHT nCoV-2019_1 -
MN908947.3 15535 15557 nCoV-2019_52_LEFT nCoV-2019_2 +
MN908947.3 15917 15941 nCoV-2019_52_RIGHT nCoV-2019_2 -
MN908947.3 15855 15881 nCoV-2019_53_LEFT nCoV-2019_1 +
MN908947.3 16239 16260 nCoV-2019_53_RIGHT nCoV-2019_1 -
MN908947.3 16112 16137 nCoV-2019_54_LEFT nCoV-2019_2 +
MN908947.3 16483 16508 nCoV-2019_54_RIGHT nCoV-2019_2 -
MN908947.3 16386 16408 nCoV-2019_55_LEFT nCoV-2019_1 +
MN908947.3 16767 16796 nCoV-2019_55_RIGHT nCoV-2019_1 -
MN908947.3 16692 16714 nCoV-2019_56_LEFT nCoV-2019_2 +
MN908947.3 17082 17105 nCoV-2019_56_RIGHT nCoV-2019_2 -
MN908947.3 16986 17013 nCoV-2019_57_LEFT nCoV-2019_1 +
MN908947.3 17381 17405 nCoV-2019_57_RIGHT nCoV-2019_1 -
MN908947.3 17323 17345 nCoV-2019_58_LEFT nCoV-2019_2 +
MN908947.3 17688 17711 nCoV-2019_58_RIGHT nCoV-2019_2 -
MN908947.3 17615 17642 nCoV-2019_59_LEFT nCoV-2019_1 +
MN908947.3 17997 18022 nCoV-2019_59_RIGHT nCoV-2019_1 -
MN908947.3 17911 17939 nCoV-2019_60_LEFT nCoV-2019_2 +
MN908947.3 18307 18328 nCoV-2019_60_RIGHT nCoV-2019_2 -
MN908947.3 18244 18267 nCoV-2019_61_LEFT nCoV-2019_1 +
MN908947.3 18624 18652 nCoV-2019_61_RIGHT nCoV-2019_1 -
MN908947.3 18550 18578 nCoV-2019_62_LEFT nCoV-2019_2 +
MN908947.3 18936 18961 nCoV-2019_62_RIGHT nCoV-2019_2 -
MN908947.3 18869 18891 nCoV-2019_63_LEFT nCoV-2019_1 +
MN908947.3 19252 19277 nCoV-2019_63_RIGHT nCoV-2019_1 -
MN908947.3 19183 19208 nCoV-2019_64_LEFT nCoV-2019_2 +
MN908947.3 19558 19586 nCoV-2019_64_RIGHT nCoV-2019_2 -
MN908947.3 19485 19513 nCoV-2019_65_LEFT nCoV-2019_1 +
MN908947.3 19877 19901 nCoV-2019_65_RIGHT nCoV-2019_1 -
MN908947.3 19810 19836 nCoV-2019_66_LEFT nCoV-2019_2 +
MN908947.3 20186 20216 nCoV-2019_66_RIGHT nCoV-2019_2 -
MN908947.3 20090 20117 nCoV-2019_67_LEFT nCoV-2019_1 +
MN908947.3 20472 20497 nCoV-2019_67_RIGHT nCoV-2019_1 -
MN908947.3 20377 20405 nCoV-2019_68_LEFT nCoV-2019_2 +
MN908947.3 20766 20792 nCoV-2019_68_RIGHT nCoV-2019_2 -
MN908947.3 20677 20699 nCoV-2019_69_LEFT nCoV-2019_1 +
MN908947.3 21050 21080 nCoV-2019_69_RIGHT nCoV-2019_1 -
MN908947.3 20988 21013 nCoV-2019_70_LEFT nCoV-2019_2 +
MN908947.3 21358 21387 nCoV-2019_70_RIGHT nCoV-2019_2 -
MN908947.3 21294 21316 nCoV-2019_71_LEFT nCoV-2019_1 +
MN908947.3 21675 21700 nCoV-2019_71_RIGHT nCoV-2019_1 -
MN908947.3 21532 21561 nCoV-2019_72_LEFT nCoV-2019_2 +
MN908947.3 21904 21933 nCoV-2019_72_RIGHT nCoV-2019_2 -
MN908947.3 21865 21889 nCoV-2019_73_LEFT nCoV-2019_1 +
MN908947.3 22247 22274 nCoV-2019_73_RIGHT nCoV-2019_1 -
MN908947.3 22091 22113 nCoV-2019_74_LEFT nCoV-2019_2 +
MN908947.3 22474 22503 nCoV-2019_74_RIGHT nCoV-2019_2 -
MN908947.3 22402 22428 nCoV-2019_75_LEFT nCoV-2019_1 +
MN908947.3 22785 22805 nCoV-2019_75_RIGHT nCoV-2019_1 -
MN908947.3 22648 22677 nCoV-2019_76_LEFT nCoV-2019_2 +
MN908947.3 23028 23057 nCoV-2019_76_RIGHT nCoV-2019_2 -
MN908947.3 22944 22974 nCoV-2019_77_LEFT nCoV-2019_1 +
MN908947.3 23327 23351 nCoV-2019_77_RIGHT nCoV-2019_1 -
MN908947.3 23219 23246 nCoV-2019_78_LEFT nCoV-2019_2 +
MN908947.3 23611 23635 nCoV-2019_78_RIGHT nCoV-2019_2 -
MN908947.3 23553 23575 nCoV-2019_79_LEFT nCoV-2019_1 +
MN908947.3 23927 23955 nCoV-2019_79_RIGHT nCoV-2019_1 -
MN908947.3 23853 23876 nCoV-2019_80_LEFT nCoV-2019_2 +
MN908947.3 24233 24258 nCoV-2019_80_RIGHT nCoV-2019_2 -
MN908947.3 24171 24194 nCoV-2019_81_LEFT nCoV-2019_1 +
MN908947.3 24545 24567 nCoV-2019_81_RIGHT nCoV-2019_1 -
MN908947.3 24426 24448 nCoV-2019_82_LEFT nCoV-2019_2 +
MN908947.3 24814 24836 nCoV-2019_82_RIGHT nCoV-2019_2 -
MN908947.3 24750 24772 nCoV-2019_83_LEFT nCoV-2019_1 +
MN908947.3 25122 25150 nCoV-2019_83_RIGHT nCoV-2019_1 -
MN908947.3 25051 25076 nCoV-2019_84_LEFT nCoV-2019_2 +
MN908947.3 25438 25461 nCoV-2019_84_RIGHT nCoV-2019_2 -
MN908947.3 25331 25353 nCoV-2019_85_LEFT nCoV-2019_1 +
MN908947.3 25711 25740 nCoV-2019_85_RIGHT nCoV-2019_1 -
MN908947.3 25645 25672 nCoV-2019_86_LEFT nCoV-2019_2 +
MN908947.3 26026 26050 nCoV-2019_86_RIGHT nCoV-2019_2 -
MN908947.3 25951 25979 nCoV-2019_87_LEFT nCoV-2019_1 +
MN908947.3 26338 26360 nCoV-2019_87_RIGHT nCoV-2019_1 -
MN908947.3 26255 26277 nCoV-2019_88_LEFT nCoV-2019_2 +
MN908947.3 26635 26661 nCoV-2019_88_RIGHT nCoV-2019_2 -
MN908947.3 26564 26587 nCoV-2019_89_LEFT nCoV-2019_1 +
MN908947.3 26956 26979 nCoV-2019_89_RIGHT nCoV-2019_1 -
MN908947.3 26873 26895 nCoV-2019_90_LEFT nCoV-2019_2 +
MN908947.3 27256 27283 nCoV-2019_90_RIGHT nCoV-2019_2 -
MN908947.3 27152 27177 nCoV-2019_91_LEFT nCoV-2019_1 +
MN908947.3 27534 27560 nCoV-2019_91_RIGHT nCoV-2019_1 -
MN908947.3 27447 27473 nCoV-2019_92_LEFT nCoV-2019_2 +
MN908947.3 27826 27855 nCoV-2019_92_RIGHT nCoV-2019_2 -
MN908947.3 27700 27726 nCoV-2019_93_LEFT nCoV-2019_1 +
MN908947.3 28082 28104 nCoV-2019_93_RIGHT nCoV-2019_1 -
MN908947.3 27996 28021 nCoV-2019_94_LEFT nCoV-2019_2 +
MN908947.3 28394 28416 nCoV-2019_94_RIGHT nCoV-2019_2 -
MN908947.3 28190 28214 nCoV-2019_95_LEFT nCoV-2019_1 +
MN908947.3 28572 28598 nCoV-2019_95_RIGHT nCoV-2019_1 -
MN908947.3 28512 28536 nCoV-2019_96_LEFT nCoV-2019_2 +
MN908947.3 28893 28914 nCoV-2019_96_RIGHT nCoV-2019_2 -
MN908947.3 28827 28849 nCoV-2019_97_LEFT nCoV-2019_1 +
MN908947.3 29206 29227 nCoV-2019_97_RIGHT nCoV-2019_1 -
MN908947.3 29136 29161 nCoV-2019_98_LEFT nCoV-2019_2 +
MN908947.3 29512 29534 nCoV-2019_98_RIGHT nCoV-2019_2 -
MN908947.3 29452 29475 nCoV-2019_99_LEFT nCoV-2019_1 +
MN908947.3 29827 29854 nCoV-2019_99_RIGHT nCoV-2019_1 -
Loading

0 comments on commit 7d27836

Please sign in to comment.