Opened 8 years ago

Closed 7 years ago

#978 closed enhancement (fixed)

Use mmCIF res->seq correspondence info

Reported by: Greg Couch Owned by: Greg Couch
Priority: moderate Milestone: 1.0
Component: Input/Output Version:
Keywords: Cc: Eric Pettersen
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Doesn't matter if it is mmCIF or PDB format. Traceback:

(gdb) where
#0  0x00007fffdb965b5c in std::vector<char, std::allocator<char> >::size (this=0x0)
    at /home/socr/a/chimera/include/c++/6.3.0/bits/stl_vector.h:656
#1  0x00007fffd6d0df46 in atomstruct::_constrained (aseq=..., cm_ap=..., offsets=..., max_errors=0) at seq_assoc.cpp:172
#2  0x00007fffd6d0ea69 in atomstruct::_constrained (aseq=..., cm_ap=..., offsets=..., max_errors=125) at seq_assoc.cpp:285
#3  0x00007fffd6d0e909 in atomstruct::_constrained (aseq=..., cm_ap=..., offsets=..., max_errors=268) at seq_assoc.cpp:273
#4  0x00007fffd6d0e47d in atomstruct::_constrained (aseq=..., cm_ap=..., offsets=..., max_errors=268) at seq_assoc.cpp:241
#5  0x00007fffd6d0eee2 in atomstruct::constrained_match (aseq=..., mseq=..., ap=..., max_errors=268) at seq_assoc.cpp:321
#6  0x00007fffd6d0f951 in atomstruct::try_assoc (align_seq=..., mseq=..., ap=..., max_errors=268) at seq_assoc.cpp:439
#7  0x00007fffd6ca8c86 in atomstruct::AtomicStructure::make_chains (this=0x10f2290) at AtomicStructure.cpp:380
#8  0x00007fffdb961478 in atomstruct::Structure::chains (this=0x10f2290)
    at /home/socr/a/gregc/src/chimerax/build/include/atomstruct/Structure.h:206
#9  0x00007fffdb961502 in atomstruct::Structure::num_chains (this=0x10f2290)
    at /home/socr/a/gregc/src/chimerax/build/include/atomstruct/Structure.h:244
#10 0x00007fffdb96e9bf in error_wrap_array_get<atomstruct::Structure, unsigned long, unsigned long> (instances=0x7fffd43104d8, n=1,
    pm=(unsigned long (atomstruct::Structure::*)(const atomstruct::Structure * const)) 0x7fffdb9614ea <atomstruct::Structure::num_chains() const>, args=0x7fffde06f560) at molc.cpp:186
#11 0x00007fffdb959529 in structure_num_chains (mols=0x7fffd43104d8, n=1, nchains=0x7fffde06f560) at molc.cpp:4002
#12 0x00007fff4b20112a in ffi_call_unix64 ()
    at /home/socr/a/gregc/src/chimerax/build/tmp/Python-3.6.3/Modules/_ctypes/libffi/src/x86/unix64.S:76

Change History (20)

comment:1 by Eric Pettersen, 8 years ago

Status: assignedaccepted

comment:2 by Greg Couch, 8 years ago

Also caused by 2ftc.

comment:3 by Greg Couch, 8 years ago

And 3jbr

comment:4 by Greg Couch, 8 years ago

And 4v47

comment:5 by Greg Couch, 8 years ago

and 4v48

comment:6 by Greg Couch, 8 years ago

and 4v5z

comment:7 by Eric Pettersen, 8 years ago

Milestone: 0.60.7

comment:8 by Eric Pettersen, 8 years ago

Fixed 4adc/2ftc crashes by making nucleic chain-trace connectivity cutoff more permissive.

comment:9 by Eric Pettersen, 8 years ago

For some recursion paths, the association parameters were not being initialized (fixes 3jbr).

comment:10 by Greg Couch, 8 years ago

Would like an API that would let the mmCIF reader set the residue location in the sequence to bypass any recursion.

comment:11 by Eric Pettersen, 8 years ago

Yes, that's the plan.

comment:12 by Eric Pettersen, 8 years ago

Milestone: 0.71.0
Priority: blockermoderate
Summary: opening 4adx causes seg faultUse mmCIF res->seq correspondence info
Type: defectenhancement

comment:13 by Eric Pettersen, 7 years ago

Would you want to specify the correspondence info as part of the set_input_seq_info() call, or separately in a later call?

comment:14 by Eric Pettersen, 7 years ago

Status: acceptedfeedback

Awaiting feedback from Greg

comment:15 by Greg Couch, 7 years ago

The seq_input_seq_info() call would work. I have all of the information at that time.

comment:16 by Eric Pettersen, 7 years ago

Status: feedbackaccepted

comment:17 by Eric Pettersen, 7 years ago

Cc: Eric Pettersen added
Owner: changed from Eric Pettersen to Greg Couch
Status: acceptedassigned

Okay, the API is implemented.

Structure.set_input_seq_info now takes two additional (optional) arguments: vector<Residue*> [corresponding residues], and PolymerType. If either is given then both must be provided. The corresponding-residue vector has to be the same length as the residue-name vector, and therefore is allowed to contain null pointers.

Ball's in your court for now.

--Eric

comment:18 by Greg Couch, 7 years ago

Implemented for mmCIF files. Fixes 2adw. Needs to be done for mmtf files too.

comment:19 by Eric Pettersen, 7 years ago

Speaking of MMTF -- it needs to call use_best_altlocs once it has created the structure

comment:20 by Greg Couch, 7 years ago

Resolution: fixed
Status: assignedclosed

Done.

Note: See TracTickets for help on using tickets.