Beispiel #1
0
BOOL CLogFile::WriteLogFile(LPCTSTR log_message)
{
	BOOL result = FALSE;

	_ASSERT(log_message);
	if (log_message) {
		LPSTR write_buf;
		int len = PrepareBuffer(log_message, _tcslen(log_message) + 1, &write_buf);
		if (len <= 0)
			return FALSE;

		EnterCriticalSection(log_cs);
		{
			HANDLE hFile = openLogFile();
			if (hFile != INVALID_HANDLE_VALUE) {
				DWORD bytes;

				SetFilePointer(hFile, 0, NULL, FILE_END);
				_ASSERT(write_buf);
				if (WriteFile(hFile, write_buf, len - 1, &bytes, NULL)) {
					last_write_time = GetTickCount();
					result = TRUE;
				}
				CloseHandle(hFile);
			}
		}
		LeaveCriticalSection(log_cs);

		VirtualFree(write_buf, 0, MEM_RELEASE);
	}
	else 
		return TRUE;

	return result;
}
Beispiel #2
0
void ReportGeneral(CHAIN **Chain, FILE *Out)
{
  register int i;
  BUFFER Bf, Tmp;
  
  if( !Chain[0]->NInfo )
    return;

  PrepareBuffer(Bf,Chain);

  Glue(Bf,"REM  --------------------------------------------------------------------",Out);
  Glue(Bf,"REM",Out);
  Glue(Bf,"REM  STRIDE: Knowledge-based secondary structure assignment",Out);
  Glue(Bf,"REM  Please cite: D.Frishman & P.Argos, Proteins XX, XXX-XXX, 1995",Out);
  Glue(Bf,"REM",Out);
  Glue(Bf,"REM  Residue accessible surface area calculation",Out);
  Glue(Bf,"REM  Please cite: F.Eisenhaber & P.Argos, J.Comp.Chem. 14, 1272-1280, 1993 ",Out);
  Glue(Bf,"REM               F.Eisenhaber et al., J.Comp.Chem., 1994, submitted",Out);
  Glue(Bf,"REM",Out);

  sprintf(Tmp,"REM  ------------------------ ");
  strcat(Tmp,"General information");
  strcat(Tmp," -----------------------"); 
  Glue(Bf,Tmp,Out);
  Glue(Bf,"REM",Out);

  for( i=0; i<Chain[0]->NInfo; i++ ) {
    strcpy(Tmp,Chain[0]->Info[i]);
    Tmp[66] = '\0';
    Replace(Tmp,'\n',' ');
    Glue(Bf,Tmp,Out);
  }
  Glue(Bf,"REM",Out);
}
Beispiel #3
0
void ReportTurnTypes(CHAIN **Chain, int NChain, FILE *Out, COMMAND *Cmd)
{

  register int Cn, Tn;
  BUFFER Bf, Tmp;
  TURN *t;

  Tn = 0;
  for( Cn=0; Cn<NChain; Cn++ )
    if( Chain[Cn]->Valid )
       Tn += Chain[Cn]->NAssignedTurn;

  if( !Tn ) return;

  PrepareBuffer(Bf,Chain);

  for( Cn=0; Cn<NChain; Cn++ ) {
    if( !Chain[Cn]->Valid )
      continue;
    for( Tn=0; Tn<Chain[Cn]->NAssignedTurn; Tn++ ) {
      t = Chain[Cn]->AssignedTurn[Tn];
      sprintf(Tmp,"LOC  %-11s  %3s  %4s %c      %3s   %4s %c",
	      Translate(t->TurnType),t->Res1,t->PDB_ResNumb1,
	      SpaceToDash(Chain[Cn]->Id),t->Res2,
	      t->PDB_ResNumb2,SpaceToDash(Chain[Cn]->Id));

      Glue(Bf,Tmp,Out);
    }
  }
}
Beispiel #4
0
void Rasterizer::setNewSize(int s)
{
    if (s == m_renderingParams->size())
        return;

    m_renderingParams->setSize(s);
    PrepareBuffer();
}
Beispiel #5
0
sound::OggData::OggData(void* Engine, const std::string& filename, bool looped) {
#elif defined(USE_XAUDIO2)
sound::OggData::OggData(IXAudio2** Engine, const std::string& filename, bool looped) {
#else
sound::OggData::OggData(LPDIRECTSOUND8* Engine, const std::string& filename, bool looped) {
#endif
	Prepare(filename);
	PrepareBuffer(Engine, looped);
}
//数据写入缓冲
bool IOBuffer::WriteData( char *data, int nSize )
{
	unsigned char *ioBuf = PrepareBuffer( nSize );
	if ( NULL == ioBuf ) return false;
	memcpy( ioBuf, data, nSize );
	WriteFinished( nSize );
	
	return true;
}
Beispiel #7
0
void Statistics::MeanSqr(Image& Source, double outVal[4])
{
    PrepareBuffer(Source);

    Kernel(reduce_mean_sqr, In(Source), Out(), *m_PartialResultBuffer, Source.Step(), Source.Width(), Source.Height());

    m_PartialResultBuffer->Read(true);

    ReduceMean(m_PartialResult, Source.NbChannels(), outVal);
}
Beispiel #8
0
void String::Erase(unsigned long at,unsigned long count)
{
	ASSERT(m_Buffer);
	ASSERT(at + count <= m_Length);

	CopyMemory(m_Buffer + at,m_Buffer + at + count,(m_Length - at - count + 1) * sizeof(wchar_t));
	
	m_Length -= count;

	PrepareBuffer(m_Length + 1,true);
}
Beispiel #9
0
void String::Erase(unsigned int at,unsigned int count)
{
	ASSERT(m_Buffer);
	ASSERT(at + count <= m_Length);

	CopyMemory(m_Buffer + at,m_Buffer + at + count,m_Length - at - count + 1);
	
	m_Length -= count;

	PrepareBuffer(m_Length + 1,true);
}
Beispiel #10
0
uint Statistics::CountNonZero(Image& Source)
{
    Check1Channel(Source);

    PrepareBuffer(Source);

    Kernel(reduce_count_nz, In(Source), Out(), *m_PartialResultBuffer, Source.Step(), Source.Width(), Source.Height());

    m_PartialResultBuffer->Read(true);

    return (uint) ReduceSum(m_PartialResult);
}
Beispiel #11
0
double Statistics::MeanSqr(Image& Source)
{
    Check1Channel(Source);

    PrepareBuffer(Source);

    Kernel(reduce_mean_sqr, In(Source), Out(), *m_PartialResultBuffer, Source.Step(), Source.Width(), Source.Height());

    m_PartialResultBuffer->Read(true);

    return ReduceMean(m_PartialResult);
}
void GenmeshAnimationPDL::Prepare ()
{
  if (prepared) return;
  prepared = true;

  csRef<iEngine> engine = csQueryRegistry<iEngine> (factory->type->object_reg);
  if (!engine)
  {
    factory->type->Report (CS_REPORTER_SEVERITY_ERROR, "No iEngine!");
    return;
  }

  for (size_t b = 0; b < factory->buffers.GetSize(); b++)
  {
    if (factory->buffers[b].name == factory->type->colorsID)
      PrepareBuffer (engine, factory->buffers[b], colorsBuffer);
    else
    {
      ColorBuffer& buffer = buffers.GetExtend (buffers.GetSize ());
      PrepareBuffer (engine, factory->buffers[b], buffer);
    }
  }
  buffers.ShrinkBestFit ();
}
Beispiel #13
0
void String::Insert(unsigned long at,const wchar_t* buffer)
{
	ASSERT(at <= m_Length);
	ASSERT(buffer);
	ASSERT(buffer != m_Buffer);

	unsigned long length = wcslen(buffer);

	PrepareBuffer(m_Length + 1 + length,true);

	MoveMemory(m_Buffer + at + length,m_Buffer + at,(m_Length + 1 - at) * sizeof(wchar_t));
	CopyMemory(m_Buffer + at,buffer,length * sizeof(wchar_t));

	m_Length += length;
}
Beispiel #14
0
bool String::SetBuffer(const wchar_t* buffer)
{
	ASSERT(buffer);
	ASSERT(buffer != m_Buffer);

	unsigned long length = wcslen(buffer);

	if(!PrepareBuffer(length + 1,false))
		return false;

	CopyMemory(m_Buffer,buffer,(length + 1) * sizeof(wchar_t));

	m_Length = length;

	return true;
}
Beispiel #15
0
void String::Insert(unsigned int at,const char* buffer,unsigned int length)
{
	ASSERT(at <= m_Length);
	ASSERT(buffer);
	ASSERT(buffer != m_Buffer);

	if(length == UINT_MAX)
		length = (unsigned int)strlen(buffer);

	PrepareBuffer(m_Length + 1 + length,true);

	MoveMemory(m_Buffer + at + length,m_Buffer + at,m_Length + 1 - at);
	CopyMemory(m_Buffer + at,buffer,length);

	m_Length += length;
}
Beispiel #16
0
void ReportDetailed(CHAIN **Chain, int NChain, FILE *Out, COMMAND *Cmd)
{
  register int i, Cn;
  RESIDUE *p;
  BUFFER Bf, Tmp, Tmp1;

  PrepareBuffer(Bf,Chain);

  Glue(Bf,"REM",Out);
  sprintf(Tmp,"REM  --------------- ");
  strcat(Tmp,"Detailed secondary structure assignment");
  strcat(Tmp,"-------------");
  Glue(Bf,Tmp,Out);
  Glue(Bf,"REM",Out);
  Glue(Bf,"REM  |---Residue---|    |--Structure--|   |-Phi-|   |-Psi-|  |-Area-|      ",Out);

  for( Cn=0; Cn<NChain; Cn++ ) {

    if( !Chain[Cn]->Valid )
      continue;
    
    for( i=0; i<Chain[Cn]->NRes; i++ ) {
      p = Chain[Cn]->Rsd[i];
      sprintf(Tmp,"ASG  %3s %c %4s %4d    %c   %11s   %7.2f   %7.2f   %7.1f",
	      p->ResType,SpaceToDash(Chain[Cn]->Id),p->PDB_ResNumb,i+1,
	      p->Prop->Asn,Translate(p->Prop->Asn),p->Prop->Phi,
	      p->Prop->Psi,p->Prop->Solv);

      if( Cmd->BrookhavenAsn ) {
	Tmp[26] = p->Prop->PdbAsn;
	Tmp[25] = ' ';
	Tmp[27] = ' ';
      }

      if( Cmd->DsspAsn ) {
	Tmp[28] = p->Prop->DsspAsn;
	Tmp[27] = ' ';
	Tmp[29] = ' ';
	sprintf(Tmp1," %6.1f ",p->Prop->DsspSolv);
	strcat(Tmp,Tmp1);
      }
      Glue(Bf,Tmp,Out);
    }
  }
  
}
Beispiel #17
0
void ReportShort(CHAIN **Chain, int NChain, FILE *Out, COMMAND *Cmd)
{
  
  register int Cn, i;
  BUFFER Bf, Tmp;
  char *Asn;
  static char *StrTypes = "HGIE";
  int Bound[MAX_ASSIGN][2], NStr;

  if( !ExistsSecStr(Chain,NChain) )
    return;

  PrepareBuffer(Bf,Chain);

  Glue(Bf,"REM",Out);
  Glue(Bf,"REM",Out);
  Glue(Bf,"REM",Out);

  for( ; *StrTypes!= '\0'; StrTypes++ ) {

    for( Cn=0; Cn<NChain; Cn++ ) {

      if( !Chain[Cn]->Valid )
	continue;

      Asn = (char *)ckalloc(Chain[Cn]->NRes*sizeof(char));
      ExtractAsn(Chain,Cn,Asn);
      NStr = Boundaries(Asn,Chain[Cn]->NRes,(*StrTypes),Bound);

      for( i=0; i<NStr; i++ ) {
	sprintf(Tmp,"LOC  %-10s   %3s  %4s %c      %3s   %4s %c",Translate(*StrTypes),
		Chain[Cn]->Rsd[Bound[i][0]]->ResType,
		Chain[Cn]->Rsd[Bound[i][0]]->PDB_ResNumb,
		SpaceToDash(Chain[Cn]->Id),
		Chain[Cn]->Rsd[Bound[i][1]]->ResType,
		Chain[Cn]->Rsd[Bound[i][1]]->PDB_ResNumb,
		SpaceToDash(Chain[Cn]->Id));
	Glue(Bf,Tmp,Out);
      }
      
      free(Asn);
    }    
  }

}
Beispiel #18
0
bool String::SetBuffer(const char* buffer,unsigned int length)
{
	ASSERT(buffer);
	ASSERT(buffer != m_Buffer);

	if(length == UINT_MAX)
		length = (unsigned int)strlen(buffer);

	if(!PrepareBuffer(length + 1,false))
		return false;

	CopyMemory(m_Buffer,buffer,length);

	m_Buffer[length] = 0;
	
	m_Length = length;

	return true;
}
Beispiel #19
0
void Statistics::PrepareCoords(const ImageBase& Source)
{
    PrepareBuffer(Source);

    size_t NbGroups = (size_t) GetNbGroups(Source);

    // We are storing X and Y
    size_t BufferSize = NbGroups * 2;

    if (m_PartialCoordBuffer != nullptr &&
            m_PartialCoordBuffer->Size() == BufferSize * sizeof(int) &&
            m_PartialCoord.size() == BufferSize)
    {
        return;
    }

    m_PartialCoord.assign(BufferSize, 0);

    m_PartialCoordBuffer.reset();
    m_PartialCoordBuffer = make_shared<Buffer>(*m_CL, m_PartialCoord.data(), BufferSize);
}
Beispiel #20
0
void ReportSSBonds(CHAIN **Chain, FILE *Out)
{
  register int i;
  BUFFER Bf, Tmp;
  SSBOND *s;

  if( !Chain[0]->NBond ) return;

  PrepareBuffer(Bf,Chain);

  for( i=0; i<Chain[0]->NBond; i++ ) {
    s = Chain[0]->SSbond[i];
    sprintf(Tmp,"LOC  Disulfide    CYS  %4s %c      CYS   %4s %c         ",
	    s->PDB_ResNumb1,SpaceToDash(s->ChainId1),
	    s->PDB_ResNumb2,SpaceToDash(s->ChainId2));

    if( s->AsnSource == Pdb )
      strcat(Tmp,"   PDB");
    else
      strcat(Tmp,"STRIDE\n");
    Glue(Bf,Tmp,Out);
  }
}
Beispiel #21
0
void Rasterizer::Prepare() {

    // Sort
    for (GalaxyInstance* gi : m_galaxies)
        gi->setPosition(gi->position() - m_renderingParams->camera().camera());

    qSort(m_galaxies.begin(), m_galaxies.end(),  galaxySort);

    for (GalaxyInstance* gi : m_galaxies) {
//        qDebug() << gi->position().length();
        gi->setPosition(gi->position() + m_renderingParams->camera().camera());
    }

    // Done sorting
    for (GalaxyInstance* gi : m_galaxies) {
        gi->GetGalaxy()->galaxyParams().setNoise(m_noise);
        gi->GetGalaxy()->SetupComponents(m_renderingParams);
    }

    PrepareBuffer();
    PrepareRenderList();

    m_renderingParams->camera().setupViewmatrix();
}
Beispiel #22
0
BOOL COutput::Open(int nChannels, int nSamplingRate, int nBitsPerSample)
{
	MMRESULT mmr;
	int i, nCount = 0;
	
	CAutoLock lock(&m_csecDevice);
	if (!waveOutGetNumDevs())
		goto fail;

	if (nChannels == m_pcm.wf.nChannels &&
		(int)m_pcm.wf.nSamplesPerSec == nSamplingRate &&
		m_pcm.wBitsPerSample == nBitsPerSample)
		return TRUE;

	CloseAll();

	m_cbBuf = BUFLEN_BASE;
	if (nSamplingRate > 11025)
		m_cbBuf *= 2;
	if (nSamplingRate > 22050)
		m_cbBuf *= 2;
	if (nChannels > 1)
		m_cbBuf *= 2;
	if (nBitsPerSample > 8)
		m_cbBuf *= 2;

	m_pcm.wf.wFormatTag = WAVE_FORMAT_PCM;
	m_pcm.wf.nChannels = nChannels;
	m_pcm.wf.nSamplesPerSec = nSamplingRate;
	m_pcm.wf.nAvgBytesPerSec = nBitsPerSample * nSamplingRate * nChannels / 8;
	m_pcm.wf.nBlockAlign = nBitsPerSample * nChannels / 8;
	m_pcm.wBitsPerSample = nBitsPerSample;

	// デバイスがオープンできるまで再試行する
	for (i = 0; i < 10; i++) {
		if (m_fDoubleBuf)
			mmr = waveOutOpen(&m_hwo, WAVE_MAPPER, (LPWAVEFORMATEX)&m_pcm, (DWORD)WaveOutCallback2, 0, CALLBACK_FUNCTION);
		else
			mmr = waveOutOpen(&m_hwo, WAVE_MAPPER, (LPWAVEFORMATEX)&m_pcm, (DWORD)WaveOutCallback, 0, CALLBACK_FUNCTION);

		if (mmr == MMSYSERR_NOERROR)
			break;
		else if (mmr != MMSYSERR_ALLOCATED)
			goto fail;
		Sleep(100);
	}
	m_fPaused = FALSE;
	m_dwWritten = 0;

	if (!PrepareBuffer())
		goto fail;

	if (m_fDoubleBuf && !PrepareSubBuffer())
		goto fail;

	m_nLPeek = 0;
	m_nRPeek = 0;

	if (m_fFade) {
		m_nFadeCurrent = FADE_BASE << FADE_BITS;
		m_nFadeSamples = m_pcm.wf.nSamplesPerSec * FADE_TIME / 1000;
		m_nFadeRate = (int)((((double)1 - FADE_BASE) / m_nFadeSamples) * (1 << FADE_BITS));
		m_nFadeRate += 1;
	}

	return TRUE;

fail:
	CloseAll();
	return FALSE;
}
Beispiel #23
0
void Window::Create(){
    if(true){
    WNDCLASSEX wcex;
    /* register window class */
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_OWNDC;
    wcex.lpfnWndProc = WindowProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = GlobalInstanceHandle;
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = "Cell_Engine_Window";
    wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);;
    if (!RegisterClassEx(&wcex)){
        //exit(0);
    }
    }

    /* create main window */
    ConsoleEcho("Window Création");
     WindowHandler= CreateWindowEx(0,
                          "Cell_Engine_Window",
                          Title,
                          WS_TILEDWINDOW,
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          width,
                          height,
                          NULL,
                          NULL,
                          GlobalInstanceHandle,
                          NULL);
    PIXELFORMATDESCRIPTOR pfd;

    int iFormat;

    /* get the device context (DC) */
    DeviceContext = GetDC(WindowHandler);

    /* set the pixel format for the DC */
    ZeroMemory(&pfd, sizeof(pfd));

    pfd.nSize = sizeof(pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW |
                  PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;

    iFormat = ChoosePixelFormat(DeviceContext, &pfd);

    SetPixelFormat(DeviceContext, iFormat, &pfd);

    /* create and enable the render context (RC) */
    GLRenderingContext= wglCreateContext(DeviceContext);
    SharedRenderContext=wglCreateContext(DeviceContext);
    UserSharedRenderContext=wglCreateContext(DeviceContext);
    if(SharedRenderContext==NULL){
        DWORD errorCode=GetLastError();
     LPVOID lpMsgBuf;
     FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR) &lpMsgBuf, 0, NULL);
     MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
     LocalFree(lpMsgBuf);exit(125);
    }
    bool Error=true;

    Error=wglShareLists(GLRenderingContext,SharedRenderContext);
    Error=wglShareLists(GLRenderingContext,SharedRenderContext);
    if(Error==false){ConsoleEcho("Error dans Share List");exit(122);}
    ConsoleEcho("ContextCrétaion");
    Error=wglMakeCurrent(DeviceContext,SharedRenderContext);
    if(Error==false){
        NoticeError();
    }
    wglMakeCurrent(DeviceContext,GLRenderingContext);

    Context_Initied=true;
    //wglShareLists(GLobalHGLRC,GLRenderingContext);
    glewInit();
    ConsoleEcho("Device getting");
    GetDeviceMode();
    ConsoleEcho("FrameRate Upd");
    if(FrameRate==0){DeviceMode.dmDisplayFrequency=(FrameRateList.back());
    FrameRate=(FrameRateList.back());
    }else{DeviceMode.dmDisplayFrequency=FrameRate;
    }
    ConsoleEcho("device upd");
    UpdateDeviceMode();


    RenderWidth=width;
    RenderHeight=height;
    ShowWindow(WindowHandler, SW_SHOW);
    Created=true;

    GetRendererInfo();
    ConsoleEcho("Buffer");
    #if defined(DEBUG_MODE)
        DefineGLDebugCallback();
    #endif // defined
    if(MSAA_Sample>0){
        PrepareSamplingBuffer(MSAA_Sample);
    }else{
        MSAA_Sample=0;
        PrepareBuffer();
    }
    glViewport(0,0,RenderWidth,RenderHeight);
    test=5;
    //glEnable(GL_DEPTH_TEST);
    VSyncState(true);
    CreatePipeline();
    SetEvent(ThreadStart);
}
Beispiel #24
0
void ReportHydrBonds(CHAIN **Chain, int NChain, HBOND **HBond, FILE *Out,
		     COMMAND *Cmd)
{
  register int i, k, Cn;
  int Cnt, Res;
  BUFFER Bf, Tmp, Tmp1;
  HBOND *p;
  RESIDUE *r;

  PrepareBuffer(Bf,Chain);

  Glue(Bf,"REM",Out);
  sprintf(Tmp,"REM  ------------------ ");
  strcat(Tmp,"Mainchain hydrogen bonds");
  strcat(Tmp," ------------------------");
  Glue(Bf,Tmp,Out);
  Glue(Bf,"REM",Out);

  Glue(Bf,"REM  Definition of Stickle et al., J.Mol.Biol. 226:1143-1159, 1992",Out);
  Glue(Bf,"REM  A1 is the angle between the planes of donor complex and O..N-C",Out);
  Glue(Bf,"REM  A2 is the angle between the planes of acceptor complex and N..O=C",Out);
  Glue(Bf,"REM",Out);

  sprintf(Tmp,"HBT  %-6d",Chain[0]->NHydrBondTotal);
  Glue(Bf,Tmp,Out);
  sprintf(Tmp,"HBI  %-6d",Chain[0]->NHydrBondInterchain);
  Glue(Bf,Tmp,Out);
  for( Cn=0; Cn<NChain; Cn++ )
    if( Chain[Cn]->Valid ) {

      sprintf(Tmp,"HBC  %-6d  %s %c %4d",
	      Chain[Cn]->NHydrBond,Chain[Cn]->File,SpaceToDash(Chain[Cn]->Id),Chain[Cn]->NRes);
      Glue(Bf,Tmp,Out);
    }
  Glue(Bf,"REM",Out);

  Glue(Bf,"REM  |--Residue 1--|     |--Residue 2--|  N-O N..O=C O..N-C     A1     A2",Out);

  for( Cn=0; Cn<NChain; Cn++ ) {

    if( !Chain[Cn]->Valid )
      continue;
    
    for( i=0; i<Chain[Cn]->NRes; i++ ) {

      r = Chain[Cn]->Rsd[i];

      Cnt = 0;
      for( k=0; k<r->Inv->NBondDnr; k++ ) {
	p = HBond[r->Inv->HBondDnr[k]];
	if( p->ExistHydrBondRose ) {
	  Res = p->Acc->A_Res;
	  sprintf(Tmp,"DNR %4s %c %4s %4d -> ",
		  r->ResType,SpaceToDash(Chain[Cn]->Id),r->PDB_ResNumb,i);

	  sprintf(Tmp1,"%4s %c %4s %4d %4.1f %6.1f %6.1f %6.1f %6.1f ",
		  p->Acc->Chain->Rsd[Res]->ResType,
		  /* patch replace SpaceToDash(Chain[Cn]->Id), */
		  SpaceToDash(p->Acc->Chain->Id),
		  p->Acc->Chain->Rsd[Res]->PDB_ResNumb,Res,p->AccDonDist,p->AccAng,
		  p->DonAng,p->AccDonAng,p->DonAccAng);
	  strcat(Tmp,Tmp1);
	  Glue(Bf,Tmp,Out);
	  Cnt++;
	}
      }

      Cnt = 0;
      for( k=0; k<r->Inv->NBondAcc; k++ ) {
	p = HBond[r->Inv->HBondAcc[k]];
	if( p->ExistHydrBondRose ) {
	  Res = p->Dnr->D_Res;
	  sprintf(Tmp,"ACC %4s %c %4s %4d -> ",
		  r->ResType,SpaceToDash(Chain[Cn]->Id),r->PDB_ResNumb,i);

	  sprintf(Tmp1,"%4s %c %4s %4d %4.1f %6.1f %6.1f %6.1f %6.1f ",
		  p->Dnr->Chain->Rsd[Res]->ResType,
		  /* patch replace SpaceToDash(Chain[Cn]->Id), */
		  SpaceToDash(p->Dnr->Chain->Id),
		  p->Dnr->Chain->Rsd[Res]->PDB_ResNumb,Res,p->AccDonDist,
		  p->AccAng,p->DonAng,p->AccDonAng,p->DonAccAng);
	  strcat(Tmp,Tmp1);
	  Glue(Bf,Tmp,Out);
	  Cnt++;
	}
      }

    }
  }

}
Beispiel #25
0
void ReportSummary(CHAIN **Chain, int NChain, FILE *Out, COMMAND *Cmd)
{
  int Cn, Width, CurrWidth, NBlocks, Tail, i, j, From, To;
  BUFFER Bf, Tmp, Tmp1;

  PrepareBuffer(Bf,Chain);

  sprintf(Tmp,"REM  -------------------- ");
  strcat(Tmp,"Secondary structure summary");
  strcat(Tmp," -------------------");
  Glue(Bf,Tmp,Out);

  for( Cn=0; Cn<NChain; Cn++ ) {

    if( !Chain[Cn]->Valid )
      continue;

    Width = 50;

    Glue(Bf,"REM",Out);

    strncpy(Tmp1,Chain[Cn]->File,40);
    Tmp1[40] = '\0';
    sprintf(Tmp,"CHN  %s %c",Tmp1,SpaceToDash(Chain[Cn]->Id));
    Glue(Bf,Tmp,Out);

    NBlocks = Chain[Cn]->NRes/Width;
    Tail = Chain[Cn]->NRes % Width;
    if( Tail ) NBlocks++;
    
    for( i=0; i<NBlocks; i++ ) {

      Glue(Bf,"REM",Out);
      From = i*Width;
      if( i == NBlocks-1 && Tail ) 
	CurrWidth = Tail;
      else
	CurrWidth = Width;
      To   = From+CurrWidth;

      sprintf(Tmp,"REM       ");
      for( j=0; j<CurrWidth; j++ )
	if( j && (j+1)%10 == 0 )
	  strcat(Tmp,".");
	else
	  strcat(Tmp," ");
      Glue(Bf,Tmp,Out);

      sprintf(Tmp,"SEQ  %-4d ",From+1);
      for( j=From; j<From+Width; j++ ) {
	if( j < To )
	  sprintf(Tmp1,"%c",ThreeToOne(Chain[Cn]->Rsd[j]->ResType));
	else
	  sprintf(Tmp1," ");
	strcat(Tmp,Tmp1);
      }
      sprintf(Tmp1," %4d",To);
      strcat(Tmp,Tmp1);
      Glue(Bf,Tmp,Out);

      sprintf(Tmp,"STR       ");
      for( j=From; j<To; j++ ) {
	if( Chain[Cn]->Rsd[j]->Prop->Asn == 'C' )
	  sprintf(Tmp1," ");
	else
	  sprintf(Tmp1,"%c",Chain[Cn]->Rsd[j]->Prop->Asn);
	strcat(Tmp,Tmp1);
      }
      strcat(Tmp,"     ");
      Glue(Bf,Tmp,Out);
    }

  }
}