Skip to content

Commit 0eb0ef4

Browse files
Add some end-to-end tests in CI and example Viridian data subset
Closes #208 fixup
1 parent 83fcb1a commit 0eb0ef4

File tree

7 files changed

+204
-53
lines changed

7 files changed

+204
-53
lines changed

.github/workflows/ci.yml

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ jobs:
1616
# with:
1717
# python-version: '3.11'
1818
# - uses: pre-commit/[email protected]
19-
test:
20-
name: Test
19+
unit:
20+
name: Unit tests
2121
runs-on: ubuntu-latest
2222

2323
steps:
@@ -43,8 +43,51 @@ jobs:
4343
# # https://github.com/coverallsapp/github-action
4444
# fail-on-error: false
4545

46+
end_to_end:
47+
name: End to end tests
48+
runs-on: ubuntu-latest
49+
steps:
50+
- uses: actions/checkout@v4
51+
- uses: actions/setup-python@v5
52+
with:
53+
python-version: '3.11'
54+
- name: Install dependencies
55+
run: |
56+
python -m pip install --upgrade pip
57+
python -m pip install '.[dev,analysis]'
58+
59+
- name: Create basedir and copy data
60+
run: |
61+
mkdir -p testrun
62+
cp -R tests/data testrun/data
63+
gunzip testrun/data/alignments.fasta.gz
64+
65+
- name: Import alignments
66+
run: |
67+
python3 -m sc2ts import-alignments testrun/alignments.db \
68+
testrun/data/alignments.fasta
69+
python3 -m sc2ts info-alignments testrun/alignments.db
70+
71+
- name: Import metadata
72+
run: |
73+
python3 -m sc2ts import-metadata testrun/data/metadata.tsv testrun/metadata.db
74+
python3 -m sc2ts info-metadata testrun/metadata.db
75+
76+
- name: Run inference
77+
run: |
78+
python3 -m sc2ts daily-extend -v testrun/alignments.db testrun/metadata.db \
79+
testrun/ --min-group-size=2
80+
81+
- name: Validate
82+
run: |
83+
python3 -m sc2ts validate -v testrun/alignments.db testrun/2020-02-13.ts
84+
85+
- name: MatchDB
86+
run: |
87+
python3 -m sc2ts info-matches testrun/match.db
88+
4689
packaging:
47-
name: Packaging
90+
name: Packaging tests
4891
runs-on: ubuntu-latest
4992
steps:
5093
- uses: actions/checkout@v4

make_test_data.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Script to make the test subset data.
2+
import contextlib
3+
import sys
4+
5+
import pandas as pd
6+
7+
import sc2ts
8+
9+
10+
def write_fasta(strain, alignment, out):
11+
s = bytes(alignment.astype("S1").data).decode()
12+
print(f">{strain}", file=out)
13+
print(s[1:], file=out)
14+
15+
16+
def main(alignment_store, metadata_db, output_prefix):
17+
dates = metadata_db.get_days()
18+
alignment_path = output_prefix + "/alignments.fasta"
19+
metadata_path = output_prefix + "/metadata.tsv"
20+
metadata = []
21+
with open(alignment_path, "w") as alignment_file:
22+
strains = []
23+
for date in dates[:20]:
24+
records = list(metadata_db.get(date))
25+
for record in records[:5]:
26+
strain = record["strain"]
27+
alignment = alignment_store[strain]
28+
write_fasta(strain, alignment, alignment_file)
29+
metadata.append(record)
30+
31+
# Add a record for a missing sequence.
32+
record = dict(record)
33+
record["strain"] = "ERR_MISSING"
34+
metadata.append(record)
35+
36+
df = pd.DataFrame(metadata)
37+
df.to_csv(metadata_path, sep="\t", index=False)
38+
39+
40+
if __name__ == "__main__":
41+
if len(sys.argv) != 4:
42+
raise ValueError(
43+
"Usage: python3 make_test_data.py [alignment_db] [metadata_db] [prefix]"
44+
)
45+
with contextlib.ExitStack() as exit_stack:
46+
alignment_store = exit_stack.enter_context(sc2ts.AlignmentStore(sys.argv[1]))
47+
metadata_db = exit_stack.enter_context(sc2ts.MetadataDb(sys.argv[2]))
48+
main(alignment_store, metadata_db, sys.argv[3])

sc2ts/cli.py

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import tsinfer
1919
import click
2020
import daiquiri
21+
import pandas as pd
2122

2223
import sc2ts
2324
from . import core
@@ -177,11 +178,7 @@ def add_provenance(ts, output_file):
177178
tables = ts.dump_tables()
178179
tables.provenances.add_row(json.dumps(provenance))
179180
tables.dump(output_file)
180-
181-
182-
def dump_samples(samples, output_file):
183-
with open(output_file, "wb") as f:
184-
pickle.dump(samples, file=f)
181+
logger.info(f"Wrote {output_file}")
185182

186183

187184
@click.command()
@@ -199,12 +196,13 @@ def dump_samples(samples, output_file):
199196
),
200197
)
201198
@click.option("--num-mismatches", default=None, type=float, help="num-mismatches")
202-
@click.option("--max-hmm-cost", default=None, type=float, help="max-hmm-cost")
199+
@click.option("--max-hmm-cost", default=5, type=float, help="max-hmm-cost")
203200
@click.option(
204201
"--min-group-size",
205-
default=None,
202+
default=10,
206203
type=int,
207204
help="Minimum size of groups of reconsidered samples",
205+
show_default=True
208206
)
209207
@click.option(
210208
"--num-past-days",
@@ -327,14 +325,53 @@ def validate(alignment_db, ts_file, verbose):
327325
"""
328326
setup_logging(verbose)
329327

330-
if ts_file.endswith(".tsz"):
331-
ts = tszip.decompress(ts_file)
332-
else:
333-
ts = tskit.load(ts_file)
328+
ts = tszip.load(ts_file)
334329
with sc2ts.AlignmentStore(alignment_db) as alignment_store:
335330
inference.validate(ts, alignment_store, show_progress=True)
336331

337332

333+
@click.command()
334+
@click.argument("ts_file")
335+
@click.option("-v", "--verbose", count=True)
336+
def export_alignments(ts_file, verbose):
337+
"""
338+
Export alignments from the specified tskit file to FASTA
339+
"""
340+
setup_logging(verbose)
341+
ts = tszip.load(ts_file)
342+
for u, alignment in zip(ts.samples(), ts.alignments(left=1)):
343+
strain = ts.node(u).metadata["strain"]
344+
if strain == core.REFERENCE_STRAIN:
345+
continue
346+
print(f">{strain}")
347+
print(alignment)
348+
349+
350+
@click.command()
351+
@click.argument("ts_file")
352+
@click.option("-v", "--verbose", count=True)
353+
def export_metadata(ts_file, verbose):
354+
"""
355+
Export metadata from the specified tskit file to TSV
356+
"""
357+
setup_logging(verbose)
358+
ts = tszip.load(ts_file)
359+
data = []
360+
for u in ts.samples():
361+
md = ts.node(u).metadata
362+
if md["strain"] == core.REFERENCE_STRAIN:
363+
continue
364+
try:
365+
# FIXME this try/except is needed because of some samples not having full
366+
# metadata. Can drop when fixed.
367+
del md["sc2ts"]
368+
except KeyError:
369+
pass
370+
data.append(md)
371+
df = pd.DataFrame(data)
372+
df.to_csv(sys.stdout, sep="\t", index=False)
373+
374+
338375
def examine_recombinant(work):
339376
base_ts = tszip.decompress(work.ts_path)
340377
with sc2ts.AlignmentStore(work.alignment_db) as a:
@@ -437,6 +474,8 @@ def cli():
437474
cli.add_command(info_alignments)
438475
cli.add_command(info_metadata)
439476
cli.add_command(info_matches)
477+
cli.add_command(export_alignments)
478+
cli.add_command(export_metadata)
440479

441480
cli.add_command(daily_extend)
442481
cli.add_command(validate)

sc2ts/inference.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -830,28 +830,6 @@ def add_matching_results(
830830
return ts # , excluded_samples, added_samples
831831

832832

833-
def fetch_samples_from_pickle_file(date, num_past_days=None, in_dir=None):
834-
if in_dir is None:
835-
return []
836-
if num_past_days is None:
837-
num_past_days = 0
838-
file_suffix = ".excluded_samples.pickle"
839-
samples = []
840-
for i in range(num_past_days, 0, -1):
841-
past_date = date - datetime.timedelta(days=i)
842-
pickle_file = in_dir + "/"
843-
pickle_file += past_date.strftime("%Y-%m-%d") + file_suffix
844-
if os.path.exists(pickle_file):
845-
samples += parse_pickle_file(pickle_file)
846-
return samples
847-
848-
849-
def parse_pickle_file(pickle_file):
850-
"""Return a list of Sample objects."""
851-
with open(pickle_file, "rb") as f:
852-
samples = pickle.load(f)
853-
return samples
854-
855833

856834
def solve_num_mismatches(ts, k):
857835
"""

sc2ts/metadata.py

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,6 @@
88
logger = logging.getLogger(__name__)
99

1010

11-
def metadata_to_db(csv_path, db_path):
12-
13-
df = pd.read_csv(
14-
csv_path,
15-
sep="\t",
16-
parse_dates=["date", "date_submitted"],
17-
)
18-
db_path = pathlib.Path(db_path)
19-
if db_path.exists():
20-
db_path.unlink()
21-
with sqlite3.connect(db_path) as conn:
22-
df.to_sql("samples", conn, index=False)
23-
conn.execute("CREATE INDEX [ix_samples_strain] on 'samples' ([strain]);")
24-
conn.execute("CREATE INDEX [ix_samples_date] on 'samples' ([date]);")
25-
26-
2711
def dict_factory(cursor, row):
2812
col_names = [col[0] for col in cursor.description]
2913
return {key: value for key, value in zip(col_names, row)}
@@ -75,7 +59,9 @@ def get(self, date):
7559
for row in self.conn.execute(sql, [date]):
7660
yield row
7761

78-
def get_days(self, date):
62+
def get_days(self, date=None):
63+
if date is None:
64+
date = "2000-01-01"
7965
sql = "SELECT DISTINCT(date) FROM samples WHERE date>? ORDER BY date;"
8066
with self.conn:
8167
dates = []

tests/data/alignments.fasta.gz

204 KB
Binary file not shown.

tests/data/metadata.tsv

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Study Sample Experiment strain Platform Country Region Collection_date date_submitted date Date_tree_order Viridian_result Genbank_accession Genbank_other_runs In_Viridian_tree In_intersection Artic_primer_version Viridian_amplicon_scheme Viridian_N Genbank_N Viridian_pangolin Viridian_scorpio Genbank_pangolin Genbank_scorpio Genbank_tree_name Viridian_cons_len Viridian_cons_het
2+
PRJNA625669 SAMN19315526 SRX10971427 SRR14631544 ION_TORRENT India Vadodara, Gujarat 2020-01-01 2021-05-25 2020-01-01 Date PASS . . T F . COVID-AMPLISEQ-V1 3 . B.1.36.29 . . . . 29832 0
3+
PRJNA631042 SAMN14891491 SRX8325850 SRR11772659 ILLUMINA USA none 2020-01-19 2020-05-13 2020-01-19 Date PASS . . T F . COVID-ARTIC-V3 0 . A . . . . 29836 0
4+
PRJNA613958 SAMN14422702 SRX7976447 SRR11397727 OXFORD_NANOPORE Australia Melbourne, Victoria 2020-01-24 2020-03-25 2020-01-24 Date PASS MT450919.1 SRR11397730 T F . COVID-ARTIC-V3 572 . B . . . . 29836 0
5+
PRJNA613958 SAMN14422702 SRX7976444 SRR11397730 ILLUMINA Australia Melbourne, Victoria 2020-01-24 2020-03-25 2020-01-24 Date PASS MT450919.1 SRR11397727 T F . COVID-ARTIC-V3 545 . B . . . . 29804 0
6+
PRJNA613958 SAMN14422703 SRX7976448 SRR11397726 OXFORD_NANOPORE Australia Melbourne, Victoria 2020-01-25 2020-03-25 2020-01-25 Date PASS MT450920.1 SRR11397729 T F . COVID-ARTIC-V3 284 . B . . . . 29835 0
7+
PRJNA613958 SAMN14422703 SRX7976445 SRR11397729 ILLUMINA Australia Melbourne, Victoria 2020-01-25 2020-03-25 2020-01-25 Date PASS MT450920.1 SRR11397726 T F . COVID-ARTIC-V3 557 . B . . . . 29812 0
8+
PRJNA627662 SAMN14678591 SRX8163980 SRR11597198 ILLUMINA China Shanghai 2020-01-25 2020-05-14 2020-01-25 Date PASS . . T F . COVID-ARTIC-V3 257 . A . . . . 29836 0
9+
PRJNA627662 SAMN14678596 SRX8164035 SRR11597143 ILLUMINA China Shanghai 2020-01-28 2020-05-14 2020-01-28 Date PASS . . T F . COVID-ARTIC-V3 257 . B . . . . 29836 0
10+
PRJNA627662 SAMN14678595 SRX8164024 SRR11597154 ILLUMINA China Shanghai 2020-01-28 2020-05-14 2020-01-28 Date PASS . . T F . COVID-ARTIC-V3 498 . B . . . . 29836 1
11+
PRJNA692078 SAMN17313446 SRX12029627 SRR15736313 ILLUMINA United Kingdom none 2020-06-16 2021-09-09 2020-01-29 Date PASS OK041130.1 . T T . COVID-ARTIC-V3 0 0 A.5 . A . SRR15736313.genbank.OK041130.1 29836 3
12+
PRJNA627662 SAMN14678598 SRX8164057 SRR11597121 ILLUMINA China Shanghai 2020-01-29 2020-05-14 2020-01-29 Date PASS . . T F . COVID-ARTIC-V3 257 . A . . . . 29836 0
13+
PRJNA627662 SAMN14678597 SRX8164046 SRR11597132 ILLUMINA China Shanghai 2020-01-29 2020-05-14 2020-01-29 Date PASS . . T F . COVID-ARTIC-V3 0 . A . . . . 29836 0
14+
PRJNA627662 SAMN14678599 SRX8163958 SRR11597220 ILLUMINA China Shanghai 2020-01-29 2020-05-14 2020-01-29 Date PASS . . T F . COVID-ARTIC-V3 510 . B . . . . 29836 0
15+
PRJNA613958 SAMN15459283 SRX8677806 SRR12162232 ILLUMINA Australia South Australia 2020-01-30 2020-07-08 2020-01-30 Date PASS MT745749.1 . T T . COVID-ARTIC-V3 306 0 B . B.1 . SRR12162232.genbank.MT745749.1 29814 0
16+
PRJNA613958 SAMN15459282 SRX8677805 SRR12162233 ILLUMINA Australia South Australia 2020-01-30 2020-07-08 2020-01-30 Date PASS MT745748.1 . T T . COVID-ARTIC-V3 0 0 B.1 . B.1 . SRR12162233.genbank.MT745748.1 29810 0
17+
PRJNA613958 SAMN15459281 SRX8677804 SRR12162234 ILLUMINA Australia South Australia 2020-01-30 2020-07-08 2020-01-30 Date PASS MT745747.1 . T T . COVID-ARTIC-V3 0 0 B.1 . B.1 . SRR12162234.genbank.MT745747.1 29813 0
18+
PRJNA613958 SAMN15459280 SRX8677803 SRR12162235 ILLUMINA Australia South Australia 2020-01-30 2020-07-08 2020-01-30 Date PASS MT745746.1 . T T . COVID-ARTIC-V3 353 0 B . B.1 . SRR12162235.genbank.MT745746.1 29810 0
19+
PRJNA627662 SAMN14678628 SRX8164001 SRR11597177 ILLUMINA China Shanghai 2020-01-30 2020-05-14 2020-01-30 Date PASS . . T F . COVID-ARTIC-V3 487 . A . . . . 29836 2
20+
PRJNA613958 SAMN14546631 SRX8070647 SRR11494548 ILLUMINA Australia Victoria 2020-01-31 2020-04-14 2020-01-31 Date PASS MT450930.1 . T T . COVID-ARTIC-V3 523 302 A . A . SRR11494548.genbank.MT450930.1 29812 0
21+
PRJNA636446 SAMN15077499 SRX8450360 SRR11903408 ILLUMINA Canada Toronto 2020-02 2020-06-02 2020-02-01 Date PASS . . T F . COVID-ARTIC-V3 502 . B.4 . . . . 29814 0
22+
PRJNA627662 SAMN14678661 SRX8164038 SRR11597140 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-01 Date PASS . . T F . COVID-ARTIC-V3 321 . A . . . . 29836 2
23+
PRJNA627662 SAMN14678658 SRX8164034 SRR11597144 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-01 Date PASS . . T F . COVID-ARTIC-V3 336 . B . . . . 29836 0
24+
PRJNA627662 SAMN14678651 SRX8164027 SRR11597151 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-01 Date PASS . . T F . COVID-ARTIC-V3 230 . A . . . . 29836 0
25+
PRJNA627662 SAMN14678649 SRX8164025 SRR11597153 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-01 Date PASS . . T F . COVID-ARTIC-V3 64 . B . . . . 29836 1
26+
PRJNA627662 SAMN14678685 SRX8164064 SRR11597114 ILLUMINA China Shanghai 2020-02-02 2020-05-14 2020-02-02 Date PASS . . T F . COVID-ARTIC-V3 280 . B . . . . 29836 1
27+
PRJNA627662 SAMN14678684 SRX8164063 SRR11597115 ILLUMINA China Shanghai 2020-02-02 2020-05-14 2020-02-02 Date PASS . . T F . COVID-ARTIC-V3 258 . B . . . . 29832 2
28+
PRJNA627662 SAMN14678639 SRX8164014 SRR11597164 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-02 End PASS . . T F . COVID-ARTIC-V3 0 . B . . . . 29835 1
29+
PRJNA627662 SAMN14678616 SRX8163988 SRR11597190 ILLUMINA China Shanghai 2020-02-05 2020-05-14 2020-02-02 End PASS . . T F . COVID-ARTIC-V3 0 . B . . . . 29833 2
30+
PRJNA627662 SAMN14678611 SRX8163983 SRR11597195 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-02 End PASS . . T F . COVID-ARTIC-V3 320 . A . . . . 29836 0
31+
PRJEB37886 SAMEA6957880 ERX4198061 ERR4239266 ILLUMINA United Kingdom none 2020-02-03 2020-06-15 2020-02-03 Date PASS . . T F . COVID-ARTIC-V3 551 . B.1 . . . . 29802 1
32+
PRJNA627662 SAMN14678615 SRX8163987 SRR11597191 ILLUMINA China Shanghai 2020-02-01 2020-05-14 2020-02-03 End PASS . . T F . COVID-ARTIC-V3 0 . A . . . . 29836 1
33+
PRJNA627662 SAMN14678665 SRX8164042 SRR11597136 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-04 Date PASS . . T F . COVID-ARTIC-V3 651 . B . . . . 29836 1
34+
PRJNA627662 SAMN14678632 SRX8164006 SRR11597172 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-04 Date PASS . . T F . COVID-ARTIC-V3 550 . B . . . . 29836 0
35+
PRJNA627662 SAMN14678630 SRX8164004 SRR11597174 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-04 Date PASS . . T F . COVID-ARTIC-V3 306 . B . . . . 29833 1
36+
PRJNA627662 SAMN14678629 SRX8164003 SRR11597175 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-04 Date PASS . . T F . COVID-ARTIC-V3 281 . B . . . . 29836 1
37+
PRJNA627662 SAMN14678618 SRX8163990 SRR11597188 ILLUMINA China Shanghai 2020-02-04 2020-05-14 2020-02-04 Date PASS . . T F . COVID-ARTIC-V3 257 . B . . . . 29836 0
38+
PRJNA627662 SAMN14678647 SRX8164022 SRR11597156 ILLUMINA China Shanghai 2020-02-05 2020-05-14 2020-02-05 Date PASS . . T F . COVID-ARTIC-V3 343 . A . . . . 29836 0
39+
PRJNA627662 SAMN14678636 SRX8164010 SRR11597168 ILLUMINA China Shanghai 2020-02-06 2020-05-14 2020-02-06 Date PASS . . T F . COVID-ARTIC-V3 590 . B . . . . 29836 0
40+
PRJNA627662 SAMN14678627 SRX8164000 SRR11597178 ILLUMINA China Shanghai 2020-02-06 2020-05-14 2020-02-06 Date PASS . . T F . COVID-ARTIC-V3 505 . B . . . . 29836 0
41+
PRJNA627662 SAMN14678610 SRX8163982 SRR11597196 ILLUMINA China Shanghai 2020-02-06 2020-05-14 2020-02-06 Date PASS . . T F . COVID-ARTIC-V3 257 . B.1 . . . . 29836 0
42+
PRJNA627662 SAMN14678656 SRX8164032 SRR11597146 ILLUMINA China Shanghai 2020-02-07 2020-05-14 2020-02-07 Date PASS . . T F . COVID-ARTIC-V3 0 . A . . . . 29836 0
43+
PRJNA627662 SAMN14678652 SRX8164028 SRR11597150 ILLUMINA China Shanghai 2020-02-07 2020-05-14 2020-02-07 Date PASS . . T F . COVID-ARTIC-V3 257 . B.4 . . . . 29836 0
44+
PRJNA613958 SAMN14422707 SRX7976456 SRR11397718 ILLUMINA Australia Melbourne, Victoria 2020-02-08 2020-03-25 2020-02-08 Date PASS MT450924.1 SRR11397722 T F . COVID-ARTIC-V3 292 . A . . . . 29802 0
45+
PRJNA613958 SAMN14422707 SRX7976452 SRR11397722 OXFORD_NANOPORE Australia Melbourne, Victoria 2020-02-08 2020-03-25 2020-02-08 Date PASS MT450924.1 SRR11397718 T F . COVID-ARTIC-V3 283 . A . . . . 29835 0
46+
PRJNA627662 SAMN14678662 SRX8164039 SRR11597139 ILLUMINA China Shanghai 2020-02-08 2020-05-14 2020-02-08 Date PASS . . T F . COVID-ARTIC-V3 320 . B.4 . . . . 29836 0
47+
PRJNA627662 SAMN14678640 SRX8164015 SRR11597163 ILLUMINA China Shanghai 2020-02-08 2020-05-14 2020-02-08 Date PASS . . T F . COVID-ARTIC-V3 320 . B . . . . 29836 0
48+
PRJEB37886 SAMEA6916645 ERX4167203 ERR4206180 ILLUMINA United Kingdom none 2020-02-09 2020-06-07 2020-02-09 Date PASS . . T F . COVID-ARTIC-V3 558 . B.40 . . . . 29796 1
49+
PRJNA627662 SAMN14678692 SRX8163962 SRR11597216 ILLUMINA China Shanghai 2020-02-09 2020-05-14 2020-02-09 Date PASS . . T F . COVID-ARTIC-V3 0 . B . . . . 29836 0
50+
PRJEB37886 SAMEA7504820 ERX4650148 ERR4780335 ILLUMINA United Kingdom none 2020-02-10 2020-11-02 2020-02-10 Date PASS . . T F 3 COVID-ARTIC-V3 496 . B.1.177 . . . . 29836 0
51+
PRJNA627662 SAMN14678683 SRX8164062 SRR11597116 ILLUMINA China Shanghai 2020-02-10 2020-05-14 2020-02-10 Date PASS . . T F . COVID-ARTIC-V3 612 . B . . . . 29838 3
52+
PRJNA627662 SAMN14678700 SRX8163971 SRR11597207 ILLUMINA China Shanghai 2020-02-11 2020-05-14 2020-02-11 Date PASS . . T F . COVID-ARTIC-V3 0 . B . . . . 29836 1
53+
PRJNA627662 SAMN14678690 SRX8163960 SRR11597218 ILLUMINA China Shanghai 2020-02-11 2020-05-14 2020-02-11 Date PASS . . T F . COVID-ARTIC-V3 0 . A . . . . 29833 1
54+
PRJEB37886 SAMEA6916128 ERX4165491 ERR4204459 ILLUMINA United Kingdom none 2020-02-13 2020-06-06 2020-02-13 Date PASS OX627332.1 ERR4204503 T F . COVID-ARTIC-V3 32 . B.33 . . . . 29807 0
55+
PRJEB37886 SAMEA6917193 ERX4166598 ERR4205570 ILLUMINA United Kingdom none 2020-02-13 2020-06-07 2020-02-13 Date PASS . . T F . COVID-ARTIC-V3 573 . B.40 . . . . 29802 2
56+
PRJEB37886 SAMEA6917193 ERX4167623 ERR4206593 ILLUMINA United Kingdom none 2020-02-13 2020-06-07 2020-02-13 Date PASS . . T F . COVID-ARTIC-V3 622 . B.40 . . . . 29805 0
57+
PRJEB37886 SAMEA6917193 ERX4167623 ERR_MISSING ILLUMINA United Kingdom none 2020-02-13 2020-06-07 2020-02-13 Date PASS . . T F . COVID-ARTIC-V3 622 . B.40 . . . . 29805 0

0 commit comments

Comments
 (0)