Skip to content

Commit 968d6e7

Browse files
committed
format and fix
1 parent 8633b9f commit 968d6e7

File tree

5 files changed

+39
-28
lines changed

5 files changed

+39
-28
lines changed

Diff for: iss/app.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ def generate_reads(args):
3434
logger.debug("Using verbose logger")
3535
logger.info("Starting iss generate")
3636

37-
error_model = load_error_model(args.mode, args.seed, args.model, args.fragment_length, args.fragment_length_sd, args.store_mutations)
37+
error_model = load_error_model(
38+
args.mode, args.seed, args.model, args.fragment_length, args.fragment_length_sd, args.store_mutations
39+
)
3840

3941
genome_list, genome_file = load_genomes(
4042
args.genomes, args.draft, args.ncbi, args.n_genomes_ncbi, args.output, args.n_genomes
@@ -54,6 +56,9 @@ def generate_reads(args):
5456
error_model,
5557
)
5658

59+
if args.store_mutations:
60+
logger.info(f"Storing inserted sequence errors in {args.output}.vcf")
61+
5762
logger.info("Using %s cpus for read generation" % args.cpus)
5863

5964
if readcount_dic is not None:
@@ -123,8 +128,8 @@ def generate_reads(args):
123128
if args.store_mutations:
124129
util.concatenate(
125130
temp_mut,
126-
args.output + '.vcf',
127-
"##fileformat=VCFv4.1\n" + "\t".join(["#CHROM", "POS", "ID", "REF", "ALT", "QUAL", "FILTER", "INFO"])
131+
args.output + ".vcf",
132+
"##fileformat=VCFv4.1\n" + "\t".join(["#CHROM", "POS", "ID", "REF", "ALT", "QUAL", "FILTER", "INFO"]),
128133
)
129134
full_tmp_list = temp_R1 + temp_R2
130135
full_tmp_list.append(genome_file)
@@ -135,7 +140,7 @@ def generate_reads(args):
135140
util.compress(args.output + "_R1.fastq")
136141
util.compress(args.output + "_R2.fastq")
137142
if args.store_mutations:
138-
util.compress(args.output + '.vcf')
143+
util.compress(args.output + ".vcf")
139144
logger.info("Read generation complete")
140145

141146

@@ -392,11 +397,11 @@ def main():
392397
help="Fragment length standard deviation for metagenomics sequencing (default: %(default)s).",
393398
)
394399
parser_gen.add_argument(
395-
'--store_mutations',
396-
'-M',
397-
action='store_true',
400+
"--store_mutations",
401+
"-M",
402+
action="store_true",
398403
default=False,
399-
help='Generates an additional VCF file with the mutations introduced in the reads',
404+
help="Generates an additional VCF file with the mutations introduced in the reads",
400405
)
401406
parser_gen._optionals.title = "arguments"
402407
parser_gen.set_defaults(func=generate_reads)

Diff for: iss/error_models/__init__.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,16 @@ def mut_sequence(self, record, orientation):
9696
np.random.choice(nucl_choices[position][nucl.upper()][0], p=nucl_choices[position][nucl.upper()][1])
9797
)
9898
if self.store_mutations and mutated_nuc != record.annotations["original"][position]:
99-
record.annotations["mutations"].append({
99+
record.annotations["mutations"].append(
100+
{
100101
"id": record.id,
101102
"position": position,
102103
"ref": mutable_seq[position],
103104
"alt": mutated_nuc,
104105
"quality": qual,
105106
"type": "snp",
106-
})
107+
}
108+
)
107109
mutable_seq[position] = mutated_nuc
108110
position += 1
109111
record.seq = Seq(mutable_seq)

Diff for: iss/generator.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ def reads_generator(n_pairs, record, error_model, cpu_number, gc_bias, sequence_
7272
i = 0
7373
while i < n_pairs:
7474
try:
75-
# forward, reverse = simulate_read(record, error_model, i, cpu_number, sequence_type)
7675
forward, reverse, mutations = simulate_read(record, error_model, i, cpu_number, sequence_type)
7776

7877
except AssertionError:
@@ -190,7 +189,7 @@ def simulate_read(record, error_model, i, cpu_number, sequence_type):
190189
reverse = error_model.introduce_error_scores(reverse, "reverse")
191190
reverse.seq = error_model.mut_sequence(reverse, "reverse")
192191

193-
return (forward, reverse) # mutations
192+
return (forward, reverse, forward.annotations["mutations"] + reverse.annotations["mutations"])
194193

195194

196195
def to_fastq(generator, output):
@@ -602,13 +601,14 @@ def write_mutations(mutations, mutations_handle):
602601
"\t".join(
603602
[
604603
str(vcf_dict["id"]),
605-
str(vcf_dict["position"] + 1), # vcf files have 1-based index
604+
str(vcf_dict["position"] + 1), # vcf files have 1-based index
606605
".",
607606
vcf_dict["ref"],
608607
str(vcf_dict["alt"]),
609608
str(vcf_dict["quality"]),
610609
"",
611-
""
610+
"",
612611
]
613-
) + "\n"
614-
)
612+
)
613+
+ "\n"
614+
)

Diff for: iss/test/test_generator.py

+15-11
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,17 @@
1313
from iss.error_models import basic, kde
1414
from iss.util import cleanup
1515

16-
# due to inconsistent seeding between python 2 and 3, some of the following
17-
# tests are disabled with python2
18-
19-
20-
def teardown_cleanup():
21-
cleanup(["data/.test.iss.tmp.my_genome.0_R1.fastq", "data/.test.iss.tmp.my_genome.0_R2.fastq"])
22-
2316

2417
@pytest.fixture
2518
def setup_and_teardown():
2619
yield
27-
cleanup(["data/.test.iss.tmp.my_genome.0_R1.fastq", "data/.test.iss.tmp.my_genome.0_R2.fastq"])
20+
cleanup(
21+
[
22+
"data/.test.iss.tmp.my_genome.0_R1.fastq",
23+
"data/.test.iss.tmp.my_genome.0_R2.fastq",
24+
"data/.test.iss.tmp.my_genome.tsv",
25+
]
26+
)
2827

2928

3029
def test_cleanup_fail():
@@ -43,15 +42,21 @@ def test_simulate_and_save(setup_and_teardown):
4342
ref_genome = SeqRecord(Seq(str("AAAAACCCCC" * 100)), id="my_genome", description="test genome")
4443
forward_handle = open("data/.test.iss.tmp.my_genome.0_R1.fastq", "w")
4544
reverse_handle = open("data/.test.iss.tmp.my_genome.0_R2.fastq", "w")
46-
generator.simulate_reads(ref_genome, err_mod, 1000, 0, forward_handle, reverse_handle, "metagenomics", gc_bias=True)
45+
mutations_handle = open("data/.test.iss.tmp.my_genome.tsv", "w")
46+
generator.simulate_reads(
47+
ref_genome, err_mod, 1000, 0, forward_handle, reverse_handle, mutations_handle, "metagenomics", gc_bias=True
48+
)
4749

4850

4951
def test_simulate_and_save_short(setup_and_teardown):
5052
err_mod = basic.BasicErrorModel()
5153
ref_genome = SeqRecord(Seq(str("AACCC" * 100)), id="my_genome", description="test genome")
5254
forward_handle = open("data/.test.iss.tmp.my_genome.0_R1.fastq", "w")
5355
reverse_handle = open("data/.test.iss.tmp.my_genome.0_R2.fastq", "w")
54-
generator.simulate_reads(ref_genome, err_mod, 1000, 0, forward_handle, reverse_handle, "metagenomics", gc_bias=True)
56+
mutations_handle = open("data/.test.iss.tmp.my_genome.tsv", "w")
57+
generator.simulate_reads(
58+
ref_genome, err_mod, 1000, 0, forward_handle, reverse_handle, mutations_handle, "metagenomics", gc_bias=True
59+
)
5560

5661

5762
def test_small_input():
@@ -88,7 +93,6 @@ def test_kde_short(with_seed):
8893

8994
def test_amp(with_seed):
9095
err_mod = kde.KDErrorModel(os.path.join(os.path.dirname(__file__), "../profiles/MiSeq"), 1000, 10)
91-
print(err_mod.read_length)
9296
ref_genome = SeqRecord(
9397
Seq(
9498
(

Diff for: iss/util.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ def reservoir(records, record_list, n=None):
210210
yield record
211211

212212

213-
def concatenate(file_list, output, header = None):
213+
def concatenate(file_list, output, header=None):
214214
"""Concatenate files together
215215
216216
Args:

0 commit comments

Comments
 (0)