libSBML

libSBML
libSBML
개발자SBML 팀
초기 릴리즈2003년 3월 12일, 19년 전(2003-03-12)
안정된 릴리스
5.18.0 / 2019년 4월 18일, 3년 전(2019-04-18)
기입처C++, C
운영 체제Microsoft Windows, Mac OS, Unix 지원
유형XML 파서 라이브러리
면허증. LGPL 라이선스 v2.1
웹 사이트sbml.org

LibSBML은 SBML(Systems Biology Markup Language) 포맷용 Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)를 제공하는 오픈소스 소프트웨어 라이브러리입니다.libSBML 라이브러리는 소프트웨어 응용 프로그램에 포함되거나 응용 프로그램 또는 SBML 문서 및 데이터 스트림 읽기, 쓰기 및 조작 지원 구현의 일부로 웹 서블릿(Apache Tomcat에서 제공될 수 있는 서블릿 등)에서 사용될 수 있습니다.libSB의 핵심ML은 ISO 표준 C++로 작성됩니다.라이브러리는 SWIG의 도움으로 생성된 인터페이스를 통해 많은 프로그래밍 언어에 API를 제공합니다.

libSBML 라이브러리는 Free Software Foundation이 발행한 GNU Lesser General Public License(GNU Lesser General Public License)(라이선스 2.1 버전 또는 그 이후 버전)의 조건에 따라 출시된 자유 소프트웨어입니다.LibSBML은 바이오-SPICE 프로그램에 따라 미국 국립일반의학연구소(NIGMS, USA)와 국방고급연구프로젝트국(DARPA, USA) 등 많은 기관의 자금 지원 덕분에 개발되었다.

묘사

Systems Biology Markup Language(SBML)시스템 생물학에서 일반적인 종류의 계산 모델을 인코딩하기 위한 XML 기반 형식입니다.SBML은 XML을 기반으로 소프트웨어 개발자가 기성 XML 파서 라이브러리를 사용하여 SBML을 지원할 수 있지만 libSBML은 개발자가 소프트웨어에서 SBML 지원을 구현하기 쉽게 하는 수많은 이점을 제공합니다.libSB 개발의 배경ML은 개발자가 일반 XML 파서 라이브러리에서 시작하는 것보다 SBML과 그 특징에 특화된 고급 API로 시작하는 것이 더 편리하고 효율적이라는 것입니다.

libSB의 주요 기능ML

다음은 libSB의 일부 목록입니다.ML의 기능:

  • 공통 API 클래스 및 메서드를 사용하여 SBML의 모든 레벨 및 버전을 지원하므로 애플리케이션 소프트웨어의 관점에서 다양한 맛의 SBML 간의 차이를 완화합니다.
  • 텍스트 문자열 형식과 MathML 2.0 형식 모두에서 수식을 조작할 수 있는 기능과 이러한 형식 간에 수식을 상호 변환하는 기능을 제공합니다.내부적으로 libSBML은 익숙한 Abstract Syntax Tree(AST; 추상 구문 트리)를 사용하여 수식을 나타내며 응용 프로그램을 호출하기 위한 AST 지향 메서드를 제공합니다.
  • 파일 및 데이터 스트림을 해석할 때 XML 및 SBML 검증을 수행합니다.이는 단순한 구문 검증을 넘어 모델의 정확성을 검증하는 데 도움이 됩니다.
  • 치수 분석단위 확인을 지원합니다.LibSBML은 모델 내 치수 분석 및 수량 단위 확인을 위한 철저한 시스템을 구현합니다.
  • SBML 주석 및 주기의 작성조작을 위한 기능을 제공합니다.이것들은 SBML 사양에 의해 규정된 특정 포맷을 가지고 있습니다.libSBML이 지원하는 형식 및 표준에는 MIRIAM(모델 주석에서 요청된 최소 정보) 및 SBO(시스템 생물학 온톨로지)가 포함됩니다.
  • ZIP, GZIPBZ의 압축 파일 읽기 및 쓰기를 투과적으로 지원IP 형식
  • C, C++, C#, Java, Python, Perl, MATLAB, Octabe Ruby 프로그래밍 언어의 인터페이스를 제공합니다.C 및 C++ 인터페이스는 네이티브로 구현됩니다.C#, Java, Perl, Python 및 Ruby 인터페이스는 SWIG, Simplified Wrapper Interface Generator를 사용하여 구현되며 MATLAB 및 Octab 인터페이스는 커스텀 수기 코드로 구현됩니다.
  • 경계 조건 종의 수를 구하는 방법, 반응의 수식어 종의 결정(반응이 속도학을 제공한다고 가정함), 모델의 모든 반응에 대한 화학량 매트릭스 구성 등 많은 편의 방법을 제공한다.

수학 공식의 조작

libSB와 관련하여 몇 가지 추가 설명이 필요할 수 있습니다.ML의 수학 공식 작업 지원.SBML 레벨 1에서는 C와 같은 구문을 사용하여 수식을 텍스트 문자열로 나타냅니다.이 표현은 단순함, 광범위한 친숙과 GEPASI[4]과 Jarnac,[5] 같은 작가 SBML의 초기 설계에 기여한 애플리케이션에서의 사용 때문에 선정되었다. SBML 수준 2와 3에서 점을 감안하면, 추가 기능(둘 다와 사용자 정의 기본 제공)을 포함하도록 레벨 1의 수학적 어휘력을 확장하는 것이었다.,엄마.주제 상수, 논리 연산자, 관계 연산자 및 시간을 나타내는 특수 기호.이러한 기능을 지원하기 위해 단순한 C-like 구문을 더 복잡하고 난해한 것으로 확장하고 결과적으로 두 가지 다른 형식(XML 및 텍스트 문자열 공식)으로 두 가지 표준을 관리하는 대신 SBML 레벨 2와 3은 수학 공식, 즉 내용 부분을 표현하기 위해 기존 표준을 활용합니다.MathML.

위에서 설명한 바와 같이 LibSBML은 텍스트 문자열과 MathML 형식 모두에서 수학식을 사용하기 위한 추상화를 제공합니다: Abstract Syntax Tree(AST; 추상 구문 트리).Abstract Syntax Tree는 컴퓨터 사이언스 커뮤니티에서 잘 알려져 있습니다.Abstract Syntax Tree는 특정 언어(수학적 또는 기타)에서 문장의 구문 구조를 나타내는 데 유용한 단순한 재귀적 데이터 구조입니다.libSBML은 프로그래머가 SBML 레벨이나 버전에 관계없이 SBML을 도메인 고유의 오브젝트 레벨에서 조작할 수 있도록 하는 것과 마찬가지로 프로그래머가 원래 포맷이 C와 같은 infix인지 MathML인지에 관계없이 AST 레벨에서 수식을 사용하여 작업할 수 있도록 합니다.LibSBML은 프로그래머에게 e를 허용함으로써 한 단계 더 나아갑니다.infix 공식 문자열을 사용하여 필요할 때마다 즉시 적절한 MathML로 변환합니다.

의존 관계

LibSBML은 XML에서 낮은 수준의 읽기/쓰기 작업을 수행하기 위해 별도의 라이브러리가 필요합니다.Xerces, expat 또는 libxml2의 3가지 XML 파서 라이브러리 중 하나를 사용할 수 있습니다.사용자는 libSB에서 사용할 라이브러리를 지정할 수 있습니다.ML 컴파일 시간LibSBML은 이러한 파서 라이브러리의 차이를 추상화 계층 뒤에 숨깁니다. libSB의 특정 인스턴스가 대상으로 하는 라이브러리를 심리스하게 사용합니다.ML이 컴파일되었습니다.(단, libSBML의 릴리스된 바이너리 배포에서는 모두 libxml2 라이브러리를 사용합니다).

사용.

LibSBML은 SBML 컴포넌트에 대응하는 소프트웨어 객체(클래스의 인스턴스)를 사용합니다.멤버 변수는 대응하는 SBML 객체의 속성을 나타냅니다.libSBML API는 SBML과 SBML 구조를 모방한 클래스 계층과 SBML을 작성 또는 조작하는 데 필요한 코드를 직관적으로 관련짓는 방법을 제공하도록 구성되어 있습니다.libSBML 객체에 대한 자세한 내용은 libSBML API 매뉴얼을 참조하십시오.

SBML 읽기 및 쓰기

LibSBML을 사용하면 파일 또는 문자열에서 읽고 쓸 수 있습니다.SBML 문서를 읽으면 libSBML은 SBMDocument 객체에 SBML 콘텐츠를 저장합니다.이 오브젝트는 나중에 다시 쓸 수 있습니다.다음은 Python으로 작성된 예입니다.

>>>수입품 libsbml  # 문서 읽기 >>>문서 = libsbml.읽기 SBMFrom 파일(파일명) >>>문서 = libsbml.읽기 SBMFrom String(스트링)  문자열 중 하나를 사용하는 도우미 함수 수 인수로서의 # 또는 filename >>>문서 = libsbml.읽기 SBML(파일명) >>>문서 = libsbml.읽기 SBML(스트링)  # 문서 작성 >>>libsbml.writeSBMLTo 파일(문서, 파일명) >>>진실의  >>>libsbml.writeSBMLToString(문서) >>>'<?xml version="1.0" encoding="UTF-8"?>\n <sublicml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">\n <모델/>\n </sqml>\n' 

SBML 작성 및 조작

libSBML API를 사용하면 SBML 요소를 나타내는 오브젝트 및 서브오브젝트와 그 서브요소를 쉽게 작성할 수 있습니다.다음으로 C++로 기술된 예를 나타냅니다.

무효 Create SBML() {   // SBML Level 3 Version 1 문서를 만듭니다.   컴포넌트* 문서 = 신규 컴포넌트(3, 1);    // 문서의 하위 요소로 모델을 만듭니다.   모델 * 모델 = 문서->create Model(작성 모델)();    // 구획을 모델의 하위 요소로 만듭니다.   객실 * 구획 1 = 모델->create Compartment();    // 독립 컴파트먼트를 생성하여 모델에 추가   객실 * 칸막이 2 = 신규 객실(3, 1);   모델->add 컴파트먼트(칸막이 2); } 

어트리뷰트 액세스

SBML의 각 컴포넌트에는 관련된 다수의 속성이 있습니다.이러한 값은 특정 클래스의 멤버 변수로 저장되며 libSBML은 이러한 값을 가져오고 쿼리하는 함수를 제공합니다.이러한 함수의 구문은 libSBML 전체에서 일관됩니다.다음은 Python으로 작성된 예입니다.

>>>수입품 libsbml  # SBML 레벨3 버전1 문서 작성 >>>sbmlns = libsbml.SBML 스페이스(3, 1) >>>문서 = libsbml.컴포넌트(sbmlns)  #문서의 하위 요소로 모델을 만듭니다. >>>모델 = 문서.create Model(작성 모델)()  #모델의 하위 요소로 구획 작성 >>>객실 = 모델.create Compartment()  # 컴파트먼트에 속성을 설정합니다. # 반환값 0은 성공을 나타냅니다. >>>객실.setId("셀") 0 >>>객실.set 사이즈(2.3) 0 >>>객실.setSpaceDimensions(3) 0 >>>객실.설정 단위("실패") 0 >>>객실.set Constant(진실의) 0  # 속성값 가져오기 >>>객실.getId() '셀' >>>객실.get Spacial Dimensions() 3  # Atribute 상태를 확인합니다. >>>객실.is Set Size(설정 크기)() 진실의 >>>객실.사이즈() 2.3  #아트리뷰트 값 표시 >>>객실.크기 설정 안 함() 0 >>>객실.is Set Size(설정 크기)() 거짓의 >>>객실.사이즈() 나노 

「 」를 참조해 주세요.

레퍼런스

  1. ^ Hucka, M.; Finney, A.; Sauro, H. M.; Bolouri, H.; Doyle, J. C.; Kitano, H.; Arkin, A. P.; Bornstein, A. P.; Bray, B. J.; Cornish-Bowden, D.; Cuellar, A.; Dronov, A. A.; Gilles, S.; Ginkel, E. D.; Gor, M.; Goryanin, V.; Hedley, I. I.; Hodgman, W. J.; Hofmeyr, T. C.; Hunter, J. -H.; Juty, P. J.; Kasberger, N. S.; Kremling, J. L.; Kummer, A.; Le Novère, U.; Loew, N.; Lucio, L. M.; Mendes, P.; Minch, P.; Mjolsness, E. (2003). "The systems biology markup language (SBML): A medium for representation and exchange of biochemical network models". Bioinformatics. 19 (4): 524–531. doi:10.1093/bioinformatics/btg015. PMID 12611808.
  2. ^ Finney, A.; Hucka, M. (2003). "Systems biology markup language: Level 2 and beyond". Biochemical Society Transactions. 31 (Pt 6): 1472–1473. CiteSeerX 10.1.1.466.8001. doi:10.1042/bst0311472. PMID 14641091.
  3. ^ Hucka, M.; Finney, A.; Bornstein, B. J.; Keating, S. M.; Shapiro, B. E.; Matthews, J.; Kovitz, B. L.; Schilstra, M. J.; Funahashi, A.; Doyle, S. M.; Kitano, M. J. (2004). "Evolving a lingua franca and associated software infrastructure for computational systems biology: The Systems Biology Markup Language (SBML) project" (PDF). Systems Biology. 1 (1): 41–53. doi:10.1049/sb:20045008. PMID 17052114.
  4. ^ Mendes, P. (1993). "GEPASI: A software package for modelling the dynamics, steady states and control of biochemical and other systems". Computer Applications in the Biosciences. 9 (5): 563–571. doi:10.1093/bioinformatics/9.5.563. PMID 8293329.
  5. ^ Jarnac, Sauro H. "대화대사 분석 시스템"입력: Hofmeyr, J-HS, et al., ed.셀룰러 맵의 애니메이션화: 제9회 바이오서모키네틱스 국제회의의 진행.델렌보쉬(남아공):Stellenbosch 대학 출판부; 2000. 페이지 221~228.

외부 링크