[Biopython-dev] Module reorganization for upcoming Bio.PDB enhancements

Peter biopython at maubp.freeserve.co.uk
Tue Jun 1 05:05:43 EDT 2010


2010/6/1 Eric Talevich:
> On Mon, May 31, 2010 at 11:53 AM, Peter wrote:
>
> Under this proposed scheme, what would you see as the basic record type
>> (analogous to a SeqRecord, alignment or tree in Bio.SeqIO, Bio.AlignIO
>> and Bio.Phylo)? It would be nice to say a protein chain, but there is the
>> issue of multiple models (e.g. from NMR). I presume you'd go with the
>> model as the basic unit (where each model may contain multiple chains).
>>
>
> I'd consider a structure to be the basic unit of I/O. If we're going to make
> better use of header info, that's generally associated with the whole
> structure and not individual models -- we'd have to duplicate the header
> info in each Model object emitted, which would be weird.
>
> Are there any formats that store more than one structure in a file? If not,
> then there's probably no need for a parse() function in Bio.Struct.

OK, yes - a whole structure as the unit would work, so we would
only need the read function (one file is one structure) and not the
parse function (no point in iterating over one thing).

>> > from Bio.Struct import WHATIF, Jpred
>> > # Servers each get their own module
>>
>> Hmm - perhaps we may need have another level here, Bio.Struct.Servers
>> or Bio.Struct.WWW or something. How many of these do you expect?
>>
>
> João's project plan includes Dali and WHATIF:
> http://biopython.org/wiki/GSOC2010_Joao
>
> These servers do different things so I wouldn't expect any similarity in the
> code between them. There are lots of servers that we *could* support...
> Aesthetically, a Servers or WWW subdirectory would match
> Bio.Struct.Applications and make the whole package a little more
> self-documenting.

My thoughts exactly.

> Here's one more idea: Fetching a single PDB file from RCSB requires a
> separate import and a couple of calls. Should we make this even easier by
> mimicking the efetch function in Bio.Entrez, something like
>
>>>> handle = Bio.PDB.fetch("1MOT")
>
> or
>
>>>> from Bio.Struct.WWW import RCSB
>>>> handle = RCSB.fetch("1MOT", "pdb")
>
> ?
>

That seems nice.

Peter



More information about the Biopython-dev mailing list