[Biopython-dev] [Bug 2508] NCBIStandalone.blastall: provide support	for '-F F' and make it safe
    bugzilla-daemon at portal.open-bio.org 
    bugzilla-daemon at portal.open-bio.org
       
    Wed Jul  9 18:33:42 UTC 2008
    
    
  
http://bugzilla.open-bio.org/show_bug.cgi?id=2508
mmokrejs at ribosome.natur.cuni.cz changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |
------- Comment #10 from mmokrejs at ribosome.natur.cuni.cz  2008-07-09 14:33 EST -------
OK, so my old code not yet converted to biopython-1.47 gives me:
    _textframe = blast.blast_and_htmlize(_query_sequence, _usermode,
upload_temp_path, blast_path, uri, _align_view, _matrix)
  File "/home/mmokrejs/public_html/IRES2/blast.py", line 548, in
blast_and_htmlize
    _blast_out, _error_info, _blast_file = blastall(blast_path + targetdb,
query_sequence, upload_temp_path, mode='sequence', align_view=align_view,
matrix=matrix)
  File "/home/mmokrejs/public_html/IRES2/blast.py", line 506, in blastall
    _blast_out, _error_info = NCBIStandalone.blastall('/usr/bin/blastall',
'blastn', blast_db, _blast_file, matrix=matrix + ' -F 0', wordsize=_wordsize,
gap_open=_gap_open, gap_extend=_gap_extend, strands=_strands,
alignments=_alignments, descriptions=_descriptions, expectation=_expectation,
align_view=align_view)
  File "/usr/lib/python2.5/site-packages/Bio/Blast/NCBIStandalone.py", line
1620, in blastall
    _security_check_parameters(keywds)
  File "/usr/lib/python2.5/site-packages/Bio/Blast/NCBIStandalone.py", line
1986, in _security_check_parameters
    if ";" in value or "&&" in value :
TypeError: argument of type 'int' is not iterable
It turns out I am passing in:
{'matrix': 'NUC.4.4 -F 0', 'strands': 3, 'expectation': 100, 'wordsize': 4,
'gap_extend': 1, 'gap_open': 1, 'alignments': 99999, 'descriptions': 9999}
I don't think it makes sense to require users to pass strings instead of
numbers to the function.
While looking into the _security_check_parameters() I think you should also
check for "||" - the logical OR as interpreted by shell and redirections ">"
and "<".
FIX:
-if ";" in value or "&&" in value:
+if ";" in str(value) or "&&" in str(value) or "||" in str(value) or ">" in
str(value) or "<" in str(value):
My apologies that I did not test earlier.
-- 
Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
    
    
More information about the Biopython-dev
mailing list