changeset 8:191a144b007e draft default tip

Minor code changes.
author cschu
date Thu, 25 Jun 2015 04:59:20 -0400
parents 9d62bd975035
children
files candisnp.py
diffstat 1 files changed, 18 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/candisnp.py	Wed Jun 24 11:44:52 2015 -0400
+++ b/candisnp.py	Thu Jun 25 04:59:20 2015 -0400
@@ -73,7 +73,7 @@
         self.genotypeNumber = int(genotypeNumber)
         self.warning = warning if warning else None
 
-        self.is_synonymous = not self.effect == 'NON_SYNONYMOUS_CODING'
+        self.is_synonymous = self.effect != 'NON_SYNONYMOUS_CODING'
         if self.effect in ('INTRON', 'INTERGENIC'):
             self.in_cds, self.is_synonymous = False, False
         else:
@@ -120,7 +120,11 @@
      
         # info = dict([field.split('=') for field in args[7].strip().split(';')])
         # info = dict(field.split('=') for field in args[7].strip().split(';'))
-        info = dict(field.split('=') for field in args[7].strip().split(';') if len(field.split('=')) == 2)
+        try:
+            info = dict(field.split('=') for field in args[7].strip().split(';') if len(field.split('=')) == 2)
+        except:
+            sys.stderr.write('Found a problem in your input data. Please make sure it is a VCF produced by SnpEff.\n')
+            sys.exit(1)
         # self.log.write('***'+str(info.get('EFF', '@@@')+'***\n'))
         
         self.allele_frequency = float(info.get('AF', '0.0'))
@@ -147,8 +151,11 @@
     for line in snpEffVCF:
         if not line.startswith('#'):
             #fo.write(line)
-            asf = AnnotatedSNPEffectFactory(*line.strip().split('\t'), log=fo)
-            snpEffects = list(asf.getEffects())                        
+            try:
+                asf = AnnotatedSNPEffectFactory(*line.strip().split('\t'), log=fo)
+                snpEffects = list(asf.getEffects())                        
+            except:
+                continue
             #fo.write(str(snpEffects)+'\n')
             snps.extend(snpEffects)
     return snps
@@ -186,10 +193,13 @@
     """
     candiData = extractCandiDataFromSnpEffVCF(open(args.snpEff_output), fo)
     candiMessage = json.dumps({'ref': args.ref, 'data': candiData})
-
-    request = urllib2.Request(CANDISNP_SERVER + ':8080', 
-                              headers=contentHeaders,
-                              data=candiMessage)
+    
+    try:
+        request = urllib2.Request(CANDISNP_SERVER + ':8080', 
+                                  headers=contentHeaders,
+                                  data=candiMessage)
+    except:
+        sys.stderr.write('There was a problem with your request. Sorry.\n')  
 
 
     try: