Skip to content

Commit

Permalink
work in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
zachary-foster committed Aug 2, 2022
1 parent 44b747e commit 8cccce4
Show file tree
Hide file tree
Showing 9 changed files with 362 additions and 23 deletions.
15 changes: 12 additions & 3 deletions .pydevproject
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>



<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/${PROJECT_DIR_NAME}/src/kstream</path>
<path>/${PROJECT_DIR_NAME}/src/krisp</path>
<path>/${PROJECT_DIR_NAME}/src/diagvar</path>
<path>/${PROJECT_DIR_NAME}/src</path>
<path>/${PROJECT_DIR_NAME}</path>
</pydev_pathproperty>



<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>



<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">venv python 3</pydev_property>


<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH">

<path>/media/fosterz/external_ssd_2/files/projects/work/current/krisp/.venv/lib/python3.9/site-packages</path>

</pydev_pathproperty>

</pydev_project>
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ install:
python3 -m pip install --upgrade setuptools
python3 -m pip install --upgrade build
python3 -m pip install --upgrade colorama
python3 -m build --no-isolation .
python3 -m pip install dist/krisp-1.0.0-py3-none-any.whl --force-reinstall
python3 -m build .
python3 -m pip install --editable .

uninstall:
python3 -m pip uninstall krisp

test:
python3 -m unittest discover
18 changes: 18 additions & 0 deletions misc_scripts/ex_data_for_mireia.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def my_new_function(my_arg1, my_arg2, my_opt = TRUE):
# All the code
return None



ref = ["A", "C", "GTC", "T", "T", "G", "G", "C", "C"]
seqs = {"seq 1": ["A", "G", "GTC", "T/G", "T", "GC", "G", "A", "C"],
"seq 2": ["A", "G", "G", "T", "", "G", "<123G12?>", "A", "C"]}

my_new_function(ref, seqs, mask_same = TRUE)

# Should print:
#
# Reference : ACGTC T TG- G CC
# seq 1 : .G...T/GTGC G A.
# seq 2 : .G.-- T -G-<1234G2?>A.

68 changes: 68 additions & 0 deletions scratch/demo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@





def _mask_same(seqs, reference):
"""
Parameters
----------
seqs : dict of list of str
sequecnes to align, named by group
reference : list of str
The refenrece used to call variants
Returns
-------
list str
Modified version of seqs
"""
for group in seqs.keys():
for index in range(len(seqs[group])):
if seqs[group][i] == reference[i]:
seqs[group][i] = "."
return(seqs)

def _pad_columns(seqs, reference):
"""Adding space to account for formatting (non indels)."""
return seqs, reference

def _pad_indel(seqs, reference):
"""Add dashes to pad indels."""
return seqs, reference

def _print_alignment(seqs, reference, ref_name = "Reference"):
ref_name = ref_name.rjust(max_len, " ")
print(f'{ref_name} : ' + ''.join(reference))
for group_name, seq in seqs.items():
group_name = group_name.rjust(max_len, " ")
print(group_name + ' : ' + ''.join(seq))


def render_variant(seqs, reference):
"""my short summary
my llong summaryyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyy
Parameters
----------
seqs : dict of list of str
sequecnes to align, named by group
reference : list of str
The refenrece used to call variants
"""

seqs = _mask_same(seqs, reference)
seqs, reference = _pad_columns(seqs, reference)
seqs = _pad_indel(seqs, reference)

_print_alignment(seqs, reference)




if __name__ == "__main__":

render_variant()
17 changes: 7 additions & 10 deletions src/diagvar/find_diag_region.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
from contextlib import contextmanager
from collections import Counter

from .find_diag_var import find_diag_var

# Constants
SNP_DELIM = ('<', '>')
PRIMER_DELIM = ('(', ')')
Expand Down Expand Up @@ -86,8 +88,9 @@ def find_diag_region(
variants : an iterable returning variants or str
A series of consecutive variants in which to identifiy diagnostic
clusters of variants.
groups : list/dict/tuple of list/tuple of str
The sample IDs for each group to find diagnostic clusters for.
groups : dict of list/tuple of str
The sample IDs for each group to find diagnostic clusters for,
named by group.
nontarget : list of str, optional
The sample IDs that should be distict from those in `groups`, but
are otherwise not of interest. `min_samples` does not apply to these.
Expand Down Expand Up @@ -140,17 +143,11 @@ def find_diag_region(
subset of samples. TBD.
"""
flank = 100
group_samples = "dict of samples in each group named by group" #TODO
windows = {g: var_sliding_window(subset, spacer_len=spacer_len, flank_len=flank) for g, subset in group_samples.items()}
windows = {g: var_sliding_window(subset, spacer_len=spacer_len, flank_len=flank) for g, subset in groups.items()}
for variant in find_diag_var():
for group, subset in group_samples.items():
for group, subset in groups.items():
windows[group].add_variant(variant)
_check_variant_cluster(windows[group].spacer, subset)

# Check if spacer meets conditions
if sum([_is_diagostic(rec) for rec in windows[group].spacer]) > min_diag_var:
primer3_results = _primer3()
if "has primers":
pass #yeild results


Loading

0 comments on commit 8cccce4

Please sign in to comment.