Skip to content

Commit

Permalink
Merge pull request #363 from VoSeq/dataset-fields
Browse files Browse the repository at this point in the history
Dataset fields
  • Loading branch information
carlosp420 committed Apr 29, 2017
2 parents 99d1e79 + 3556e67 commit 435c4af
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 86 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ sudo: required
python:
- "3.4"
- "3.5"
- "3.6"

services:
- elasticsearch
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ VoSeq
:alt: Join the chat at https://gitter.im/VoSeq/VoSeq
:target: https://gitter.im/VoSeq/VoSeq?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. |Python_versions| image:: https://img.shields.io/badge/python-3.4%203.5-blue.svg
.. |Python_versions| image:: https://img.shields.io/badge/python-3.4%203.5%203.6-blue.svg
:alt: Python versions


Expand Down
118 changes: 59 additions & 59 deletions voseq/create_dataset/tests/tests_utils.py

Large diffs are not rendered by default.

41 changes: 21 additions & 20 deletions voseq/create_dataset/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,21 +145,22 @@ def get_all_sequences(self):
"""
seqs_dict = {}

all_seqs = Sequences.objects.all().values('code_id',
'gene_code',
'sequences').order_by('code_id')
all_seqs = Sequences.objects.filter(
code__in=self.voucher_codes,
gene_code__in=self.gene_codes,
).values('code_id', 'gene_code', 'sequences').order_by('code_id')

for seq in all_seqs:
code = seq['code_id']
gene_code = seq['gene_code']

if code in self.voucher_codes and gene_code in self.gene_codes:
if code not in seqs_dict:
seqs_dict[code] = {gene_code: ''}
seqs_dict[code][gene_code] = seq
if code not in seqs_dict:
seqs_dict[code] = {gene_code: ''}
seqs_dict[code][gene_code] = seq
return seqs_dict

def build_seq_obj(self, code, gene_code, our_taxon_names, all_seqs):
"""Builds a SeqRecordExpanded object. I cannot be built, returns None.
"""Builds a SeqRecordExpanded object. If cannot be built, returns None.
"""
this_voucher_seqs = self.extract_sequence_from_all_seqs_in_db(all_seqs, code, gene_code)
Expand Down Expand Up @@ -221,20 +222,20 @@ def get_taxon_names_for_taxa(self):
"""
vouchers_with_taxon_names = {}

all_vouchers = Vouchers.objects.all().order_by('code').values('code', 'orden', 'superfamily',
'family', 'subfamily', 'tribe',
'subtribe', 'genus', 'species',
'subspecies', 'author', 'hostorg',)
# TODO: add gene_code. drop it for now
taxon_names = [i.lower() for i in self.taxon_names]
if "code" not in taxon_names:
taxon_names.append("code")
try:
taxon_names.remove("genecode")
except ValueError:
pass
all_vouchers = Vouchers.objects.filter(
code__in=self.voucher_codes,
).order_by('code').values(*taxon_names)
for voucher in all_vouchers:
code = voucher['code']
if code in self.voucher_codes:
obj = dict()
for taxon_name in self.taxon_names:
if taxon_name != 'GENECODE':
taxon_name = taxon_name.lower()
obj[taxon_name] = voucher[taxon_name]
vouchers_with_taxon_names[code] = obj

vouchers_with_taxon_names[code] = voucher
return vouchers_with_taxon_names

def get_gene_codes_metadata(self):
Expand Down
6 changes: 5 additions & 1 deletion voseq/create_dataset/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,11 @@ def results(request):
if form.is_valid():
dataset_format = form.cleaned_data['file_format']
dataset_creator = CreateDataset(form.cleaned_data)
dataset = dataset_creator.dataset_str[0:1500] + '\n...\n\n\n' + '#######\nComplete dataset file available for download.\n#######'
dataset = "{}{}{}".format(
dataset_creator.dataset_str[0:1500],
'\n...\n\n\n',
'#######\nComplete dataset file available for download.\n#######',
)
errors = dataset_creator.errors
warnings = set(dataset_creator.warnings)

Expand Down
7 changes: 4 additions & 3 deletions voseq/public_interface/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@ class Vouchers(TimeStampedModel):
(LOST, 'lost'),
(UNKNOWN, 'unknown'),
)
code = models.CharField(max_length=300, unique=True, primary_key=True, help_text="Voucher code.")
code = models.CharField(
max_length=300, unique=True, primary_key=True, db_index=True, help_text="Voucher code.")
orden = models.TextField(blank=True)
superfamily = models.TextField(blank=True)
family = models.TextField(blank=True)
Expand Down Expand Up @@ -208,8 +209,8 @@ def __str__(self):


class Sequences(models.Model):
code = models.ForeignKey(Vouchers, help_text='This is your voucher code.')
gene_code = models.CharField(max_length=100)
code = models.ForeignKey(Vouchers, db_index=True, help_text='This is your voucher code.')
gene_code = models.CharField(max_length=100, db_index=True)
sequences = models.TextField(blank=True)
accession = models.CharField(max_length=100, blank=True)
lab_person = models.CharField(max_length=100, blank=True)
Expand Down
4 changes: 2 additions & 2 deletions voseq/stats/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def test_model_stats_str(self):
self.assertEqual("10 vouchers", str(res))

def test_model_voucherspergene_str(self):
res = VouchersPerGene.objects.get(id=1)
res = VouchersPerGene.objects.get(gene_code="wingless")
self.assertEqual("10 vouchers in gene wingless", str(res))

for code in ['CP100-11', 'CP100-12', 'CP100-13', 'CP100-14', 'CP100-15',
Expand All @@ -28,7 +28,7 @@ def test_model_voucherspergene_str(self):
s = Sequences.objects.get(code=v, gene_code="wingless")
s.delete()
call_command('create_stats')
res = VouchersPerGene.objects.get(id=1)
res = VouchersPerGene.objects.get(gene_code="wingless")
self.assertEqual("1 voucher in gene wingless", str(res))

def test_create_stats(self):
Expand Down
3 changes: 3 additions & 0 deletions voseq/voseq/settings/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,6 @@ def get_secret(setting, secrets=secrets):
}
HAYSTACK_DEFAULT_OPERATOR = 'AND'
# HAYSTACK_IDENTIFIER_METHOD = 'public_interface.models.get_identifier'

if DEBUG is True:
INTERNAL_IPS = ["127.0.0.1"]
6 changes: 6 additions & 0 deletions voseq/voseq/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,9 @@
urlpatterns += [
url(r'^media/(?P<path>.*)$', views.serve)
]

if settings.DEBUG:
import debug_toolbar
urlpatterns = [
url(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns

0 comments on commit 435c4af

Please sign in to comment.