Team:SUSTC-Shenzhen-A/Biosearch Tool
From 2012.igem.org
Tool
Here we list the major tools we used in developing BioSearch to help other developers who wish to continue the development.
MySQLOur first choice of database We have used MySQL as our relational database management system (RDBMS). The MySQL database has become the world's most popular open source database. Many of the world's largest and fastest-growing organizations including Facebook, Google, Adobe, Alcatel Lucent and Zappos rely on MySQL to save time and money to power their high-volume Web sites, business-critical systems and packaged software. Given these considerations, MySQL has many attractive features to offer:
Speed. MySQL is fast. Its developers contend that MySQL is about the fastest database system you can get. You can investigate this claim by visiting http://www.mysql.com/why-mysql/benchmarks/, a performance-comparison page on the MySQL Web site.
Ease of use. .MySQL is a high-performance but relatively simple database system and is much less complex to set up and administer than larger systems.
Query language support. MySQL understands SQL (Structured Query Language), the standard language of choice for all modern database systems.
Capability. The MySQL server is multi-threaded, so many clients can connect to it at the same time. Each client can use multiple databases simultaneously. You can access MySQL interactively using several interfaces that let you enter queries and view the results: command-line clients, Web browsers, or GUI clients. In addition, programming interfaces are available for many languages, such as C, Perl, Java, PHP, Python, and Ruby. You can also access MySQL using applications that support ODBC and .NET (protocols developed by Microsoft). This gives you the choice of using prepackaged client software or writing your own for custom applications.
Connectivity and security. MySQL is fully networked, and databases can be accessed from anywhere on the Internet, so you can share your data with anyone, anywhere. But MySQL has access control so that one who shouldn’t see another’s data cannot. To provide additional security, MySQL supports encrypted connections using the Secure Sockets Layer (SSL) protocol.
Portability.MySQL runs on many varieties of Unix and Linux, as well as on other systems such as Windows and NetWare. MySQL runs on hardware from high-end servers down to small personal computers (even palmtop devices).
Small size. MySQL has a modest distribution size, especially compared to the huge disk space footprint of certain other database systems.
Availability and cost. MySQL is an Open Source project available under multiple licensing terms. First, it is available under the terms of the GNU General Public License (GPL). This means that MySQL is available without cost for most in-house uses. Second, for organizations that prefer or require formal arrangements or that do not want to be bound by the conditions of the GPL, commercial licenses are available.
Open distribution and source code. MySQL is easy to obtain; just use your Web browser. If you don’t understand how something works, are curious about an algorithm, or want to perform a security audit, you can get the source code and examine it. If you think you’ve found a bug, please report it; the developers want to know.
(selected from MySQL 4th edition by Paul Dubois)
SQLiteThe Main work to deal with first is the database . We get nothing but a file with the format of ‘xml’. It may be a very easy work for someone who is professional . But for a beginner like our SQLite programmer, maybe the only thing he can do is to Google , Google and Google... Fortunately, eventually he finished it.
Core Data is a very useful part of iOS developing. The built-in Sqlite function is the one with which our SQLite programmer can set up a built-in database.
The next thing we should overcome is transfering XML to Sqlite. Thankfully there is NSXmlParser Method with which we can finish this work.
Then why do we choose SQLite?
Because SQLite provides the function we need! The answer is simple but true! Network independent, very efficient , and it can store what you search in cache therefore you can get the same search result faster next time.
XcodeFor us, the programming tool is Xcode. Xcode is an Integrated Development Environment (IDE) containing a suite of software development tools developed by Apple for developing software for OS X and iOS. First released in 2003, the latest stable release is version 4.4.1 and is available via the Mac App Store free of charge for Mac OS X Lion and OS X Mountain Lion users.
Similar to other programming tools, Xcode can support many different programming languages, like C, C++, Objective-C, Objective-C++, Java, AppleScript, Python and so on. However, the major language we use is Objective-C.
What makes Xcode unique is that it includes interface builder. Interface Builder is a software development application for Apple's Mac OS X operating system. It is part of Xcode, the Apple Developer Connection developer's toolset. Interface Builder allows Cocoa and Carbon developers to create interfaces for applications using a graphical user interface. It is very user-friendly. There are many components, like buttons and sliders, listed beside the main window, users can just drag the components into the main window, and then these components can be showed when running the program. If don’t use Interface Builder, users will have to write lines and lines of statements to set a component, but now, just dragging can simply set its properties. Moreover, if users set a link between the component and statements, then this component can be controlled by the program.
Xcode also provides lots of libraries and classes, users can use a large sum of ready-made functions to program. These libraries and classes are contained in frameworks. Users can add different frameworks to the program to use different functions. Frameworks are conductive to the communication between programs, because these functions are the same. They are universal and reusable, which make them to be very convenient. Xcode help page is really beneficial, too. Users can look up for many functions and classes. It also provides many example codes for users to download and study.
Reference:http://en.wikipedia.org/wiki/Xcode |