~ckerr-s/mmdb/cmake

« back to all changes in this revision

Viewing changes to src/mmdb_title.cpp

  • Committer: Morten Kjeldgaard
  • Date: 2015-04-19 21:08:03 UTC
  • Revision ID: mok0@ubuntu.com-20150419210803-o5xw9g0d60722oj8
Tags: mmdb-1.25.6.1
Incorporate upstream updates version 1.25.5. Add fink .info file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
//
22
22
//  =================================================================
23
23
//
24
 
//    29.01.10   <--  Date of Last Modification.
 
24
//    23.06.13   <--  Date of Last Modification.
25
25
//                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26
26
//  -----------------------------------------------------------------
27
27
//
37
37
//                  CSource
38
38
//                  CKeyWords
39
39
//                  CExpData
 
40
//                  CMdlType
40
41
//                  CAuthor
41
42
//                  CRevData
42
43
//                  CSupersede
45
46
//                  CBiomolecule
46
47
//                  CMMDBTitle  ( MMDB title section )
47
48
//
48
 
//  (C) E. Krissinel 2000-2010
 
49
//  (C) E. Krissinel 2000-2013
49
50
//
50
51
//  =================================================================
51
52
//
801
802
 
802
803
 
803
804
 
 
805
 
 
806
//  ===================  CMdlType  ======================
 
807
 
 
808
CMdlType::CMdlType() : CContString()  {
 
809
  InitMdlType();
 
810
}
 
811
 
 
812
CMdlType::CMdlType ( cpstr S ) : CContString()  {
 
813
  InitMdlType();
 
814
  ConvertPDBASCII ( S );
 
815
}
 
816
 
 
817
CMdlType::CMdlType ( RPCStream Object ) : CContString(Object)  {
 
818
  InitMdlType();
 
819
}
 
820
 
 
821
CMdlType::~CMdlType() {}
 
822
 
 
823
void  CMdlType::InitMdlType()  {
 
824
  CreateCopy ( CIFCategory,CIFCAT_EXPTL  );
 
825
  CreateCopy ( CIFTag     ,CIFTAG_METHOD );
 
826
}
 
827
 
 
828
int  CMdlType::ConvertPDBASCII ( cpstr S )  {
 
829
  if (strlen(S)>10)
 
830
       CreateCopy ( Line,&(S[10])  );
 
831
  else CreateCopy ( Line,pstr(" ") );
 
832
  return 0;
 
833
}
 
834
 
 
835
void  CMdlType::PDBASCIIDump ( pstr S, int N )  {
 
836
  if (N==0)  strcpy  ( S,"MDLTYP    " );
 
837
       else  sprintf ( S,"MDLTYP  %2i",N+1 );
 
838
  strcat ( S,Line );
 
839
}
 
840
 
 
841
void  CMdlType::write ( RCFile f )  {
 
842
byte Version=1;
 
843
  f.WriteByte ( &Version );
 
844
  CContString::write ( f );
 
845
}
 
846
 
 
847
void  CMdlType::read ( RCFile f )  {
 
848
byte Version;
 
849
  f.ReadByte ( &Version );
 
850
  CContString::read ( f );
 
851
}
 
852
 
 
853
MakeStreamFunctions(CMdlType)
 
854
 
 
855
 
804
856
//  ===================  CAuthor  ======================
805
857
 
806
858
CAuthor::CAuthor() : CContString()  {
1821
1873
  Source   .FreeContainer();
1822
1874
  KeyWords .Delete       ();
1823
1875
  ExpData  .FreeContainer();
 
1876
  MdlType  .FreeContainer();
1824
1877
  Author   .FreeContainer();
1825
1878
  RevData  .FreeContainer();
1826
1879
  Supersede.FreeContainer();
1919
1972
    ContainerClass = new CExpData(PDBString);
1920
1973
    ExpData.AddData ( ContainerClass );
1921
1974
 
 
1975
  } else if (!strncmp(PDBString,"MDLTYPE",6))  {
 
1976
 
 
1977
    ContainerClass = new CMdlType(PDBString);
 
1978
    MdlType.AddData ( ContainerClass );
 
1979
 
1922
1980
  } else if (!strncmp(PDBString,"AUTHOR",6))  {
1923
1981
 
1924
1982
    ContainerClass = new CAuthor(PDBString);
1948
2006
    return Error_WrongSection;
1949
2007
 
1950
2008
  //  check for ID code in columns 73-80
 
2009
 
1951
2010
  if (!col73)  {
1952
2011
    if (('0'<=idCode[0]) && (idCode[0]<='9'))  {
1953
2012
      if (!strncasecmp(idCode,&(PDBString[72]),4))
1963
2022
  return &Remark;
1964
2023
}
1965
2024
 
 
2025
PCTitleContainer CMMDBTitle::GetJournal()  {
 
2026
  return &Journal;
 
2027
}
 
2028
 
1966
2029
realtype CMMDBTitle::GetResolution()  {
1967
2030
//  returns -1.0 if there is no resolution record in the file
1968
2031
PCRemark rem;
2115
2178
  Source  .GetCIF ( CIF,ClassID_Source    );
2116
2179
  KeyWords.GetCIF ( CIF );
2117
2180
  ExpData .GetCIF ( CIF,ClassID_ExpData   );
 
2181
  MdlType .GetCIF ( CIF,ClassID_MdlType   );
2118
2182
  Author  .GetCIF ( CIF,ClassID_Author    );
2119
2183
  RC = RevData.GetCIF ( CIF,ClassID_RevData );
2120
2184
  if (!RC)  {
2276
2340
  Source   .PDBASCIIDump ( f );
2277
2341
  KeyWords .PDBASCIIDump ( f );
2278
2342
  ExpData  .PDBASCIIDump ( f );
 
2343
  MdlType  .PDBASCIIDump ( f );
2279
2344
  Author   .PDBASCIIDump ( f );
2280
2345
  RevData  .PDBASCIIDump ( f );
2281
2346
  Supersede.PDBASCIIDump ( f );
2313
2378
  Source   .MakeCIF ( CIF );
2314
2379
  KeyWords .MakeCIF ( CIF );
2315
2380
  ExpData  .MakeCIF ( CIF );
 
2381
  MdlType  .MakeCIF ( CIF );
2316
2382
  Author   .MakeCIF ( CIF );
2317
2383
  RevData  .MakeCIF ( CIF );
2318
2384
  Supersede.MakeCIF ( CIF );
2340
2406
    Source   .Copy ( &(TS->Source)    );
2341
2407
    KeyWords .Copy ( &(TS->KeyWords)  );
2342
2408
    ExpData  .Copy ( &(TS->ExpData)   );
 
2409
    MdlType  .Copy ( &(TS->MdlType)   );
2343
2410
    Author   .Copy ( &(TS->Author)    );
2344
2411
    RevData  .Copy ( &(TS->RevData)   );
2345
2412
    Supersede.Copy ( &(TS->Supersede) );
2369
2436
    Source   .FreeContainer();
2370
2437
    KeyWords .Delete       ();
2371
2438
    ExpData  .FreeContainer();
 
2439
    MdlType  .FreeContainer();
2372
2440
    Author   .FreeContainer();
2373
2441
    RevData  .FreeContainer();
2374
2442
    Supersede.FreeContainer();
2380
2448
}
2381
2449
 
2382
2450
void  CMMDBTitle::TrimInput ( pstr PDBString )  {
2383
 
  if (col73)  PDBString[72] = char(0);
 
2451
  if (col73)  {
 
2452
    if (!strncasecmp(idCode,&(PDBString[72]),4))
 
2453
      PDBString[72] = char(0);
 
2454
  }
2384
2455
  PadSpaces ( PDBString,80 );
2385
2456
}
2386
2457
 
2387
2458
void  CMMDBTitle::write ( RCFile f )  {
2388
2459
// writes header to PDB binary file
2389
2460
int  i;
2390
 
byte Version=2;
 
2461
byte Version=3;
2391
2462
 
2392
2463
  f.WriteByte    ( &Version       );
2393
2464
 
2404
2475
  Source   .write ( f );  //  Source
2405
2476
  KeyWords .write ( f );  //  Key words
2406
2477
  ExpData  .write ( f );  //  Experimental data
 
2478
  MdlType  .write ( f );  //  Model descriptions
2407
2479
  Author   .write ( f );  //  Author data
2408
2480
  RevData  .write ( f );  //  Revision data
2409
2481
  Supersede.write ( f );  //  Supersede records
2439
2511
  Source   .read ( f );   //  Source
2440
2512
  KeyWords .read ( f );   //  Key words
2441
2513
  ExpData  .read ( f );   //  Experimental data
 
2514
  if (Version>2)
 
2515
    MdlType.read ( f );   //  Model descriptions
2442
2516
  Author   .read ( f );   //  Author data
2443
2517
  RevData  .read ( f );   //  Revision data
2444
2518
  Supersede.read ( f );   //  Supersede records