anunciado / DIM0438-MSATool

A multiple sequence alignment (MSA) to align three or more protein sequences using a proxy and a server with SSL as a service for UFRN DIM class DIM0438: Computer Network.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MSA Tool

A multiple sequence alignment (MSA) to align three or more protein sequences using a proxy and a server as a service.

Prerequisites

You will need to install the modules below to run the program:

Besides that, without a keystore, both the server, client and proxy will fail. This video show how to generate keystore using keytool program. Then run server, client and proxy with keystore and password. Type the following command in your command window to create a keystore named examplestore and to generate keys:

$ keytool -genkey -alias signFiles -keystore examplestore

You will be prompted to enter passwords for the key and keystore. The password in this example is "123456".

Running

Before running, you will have to modify part of the code to enter your key used by SSL. In method main of ServerMultiThread, you will need to modify the bellow lines of code:

System.setProperty("javax.net.ssl.keyStore",path to key);
System.setProperty("javax.net.ssl.keyStorePassword", password);

An example would be:

System.setProperty("javax.net.ssl.keyStore","MSATool/src/examplestore");
System.setProperty("javax.net.ssl.keyStorePassword","123456");

In method main of ProxyMultiThread, you will need to modify the bellow lines of code:

System.setProperty("javax.net.ssl.keyStore",path to key);
System.setProperty("javax.net.ssl.keyStorePassword", password);
System.setProperty("javax.net.ssl.trustStore",path to key);
System.setProperty("javax.net.ssl.trustStorePassword",password);

An example would be:

System.setProperty("javax.net.ssl.keyStore","MSATool/src/examplestore");
System.setProperty("javax.net.ssl.keyStorePassword","123456");
System.setProperty("javax.net.ssl.trustStore","MSATool/src/examplestore");
System.setProperty("javax.net.ssl.trustStorePassword","123456");

In method main of Client, you will need to modify the bellow lines of code:

System.setProperty("javax.net.ssl.trustStore",path to key);
System.setProperty("javax.net.ssl.trustStorePassword",password);

An example would be:

System.setProperty("javax.net.ssl.trustStore","MSATool/src/examplestore");
System.setProperty("javax.net.ssl.trustStorePassword","123456");

There are two ways to run this software:

  • Compile the IDE (Eclipse - Java IDE):
  1. Just open the IDE
  2. Import the project folder as a Java Project
  3. Click on the ServerMultiThread class and go to run configurations, in Arguments tab, modify the "Program arguments" to:
$ portOfServer backlogOfServer

An example would be:

$ 9000 10
  1. Click on the ProxyMultiThread class and go to run configurations, in Arguments tab, modify the "Program arguments" to:
$ portOfServer1 portOfServer2 portOfProxy adressOfServer1 adressOfServer2

An example would be:

$ 9000 9001 9002 127.0.0.1 127.0.0.1
  1. Click on the Client class and go to run configurations, in Arguments tab, modify the "Program arguments" to:
$ portOfProxy adressOfProxy

An example would be:

$ 9002 127.0.0.1
  • Compile by terminal:
  1. Enter the src folder and compile all the .java files with the following command:
$ java * .java -d <target_address_name>
  1. Enter the chosen destination directory and run the following command: For ServerMultiThread:
$ java -cp path to biojava-alignment.jar:path to biojava-core.jar:path to biojava-phylo.jar:path to forester.jar:/MSATool/lib/slf4j-api.jar:/MSATool/lib/slf4j-simple.jar:. ServerMultiThread portOfProxy adressOfProxy

An example would be:

$ java -cp /MSATool/lib/biojava-alignment-4.2.0.jar:/MSATool/lib/biojava-core-4.2.0.jar:/MSATool/lib/biojava-phylo-4.2.0.jar:/MSATool/lib/forester-1.005.jar:/MSATool/lib/slf4j-api-1.7.25.jar:/MSATool/lib/slf4j-simple-1.7.25.jar:. ServerMultiThread 9000 10

For ProxyMultiThread:

$ java ProxyMultiThread portOfServer1 portOfServer2 portOfProxy adressOfServer1 adressOfServer2

An example would be:

$ java ProxyMultiThread 9000 9001 9002 127.0.0.1 127.0.0.1

For Client:

$ java Client portOfProxy adressOfProxy

An example would be:

$ java Client 9002 127.0.0.1
  1. From this it only interacts with the system.

In the client, a window, like below, will appear: Example

In the field "Protein Sequence", you will put protein sequences ids to be align. An example would be:

Q21691, A8WS47, O48771

After click the button "Send", in the field "Aligned Sequences" will appear the alignment. An example would be:

MDLLDKVMGEMGSKPGSTAKKPATSASSTPRTNVWGTAKKPSSQQQPPKPLFTTPGSQQGSLGGRIPKREHTDRTGPDPKRKPLGGLSVPD-SFNNFGTFRVQMNAWNLDISKMDERISRIMFRATLVHTDGRRFELSLGVSAFSGDVNRQQRRQAQCLLFRAWFKRNPELFKGMTDPAIAAYDAAETIYVGCSFFDVELTEHVCHLTEADFSPQEWKIVSLISRRSGSTFEIRIKTNPPIYTRGPNALTLENR-SELTRIIEAITDQCLHNEKFLLYSSGTFPTKGGDIASPDEVTLIKSGFVKTTKIVDRDGVPDAIMTVDTTKSPFYKDTSLLKFFTAKMDQLTNSGGGPRGHNGG-RER-RDGGGNSRKYDDRRSPRDGE---IDYDERTVSHYQRQFQDERISDGMLNTLKQSLKGLDCQPIHLKDSKANRSIMIDEIHTGTADSVTFEQKLPDGEMKL----TSITEYYLQRYNYRLKFPHLPLVTSKRAKCYDFYPMELMSILPGQRIKQSHMTVDIQSYMTGKMSSLPDQHIKQSKLVLTEYLKLGDQPANRQMDAFRVSLKSIQPIVTNAHWLSPPDMKFANNQLYSLNPTRGVRFQTNGK--FVMPARVKSVTIINYDKEFNRNVDMFAEGLAKHCSEQGMKFDSRPNSWKKVNLGSSDRRGTKVEIEEAIRNGVTIVFG--------IIAEKRPDMHDILKYFEE-KLGQQTIQISSETADKFMRDHGGKQTIDNVIRKLNPKCGGTNFLIDVPESVGHRVVCNNSAEMRAKLYAKTQFIGFEMSHTGARTRFDIQKVMFDGDPTVVGVAYSLKHSAQLGGFSYFQESRLHKLTNLQEKMQICLNA------------YEQSSSYLPETVVVYRVGSGEGDYPQIVN-EVNEMKLAARKKKHGYNPKFLVICTQRNSHIRVFPEHINERGKSMEQNVKSGTCVDVPGASHGYEEFILCCQTPLIGTVKPTKYTIIVNDCRWSKNEIMNVTYHLAFAHQVSYAPPA-IPNVSYAAQNLAKRGHNNYKTHTKLVDMNDYSYRIKEKHEEIISSEEVDDILMRDFIETVSNDLNAMTINGRNFWA
MKCPD------------TQLIPTSSAL------------------------------------------------------------------------------------------LSSVAFHVHLAN--GRFIILSSGRLS----INRYQSS--------------------------------------------------CHKRT-------------ITKKKN--FELR---------------TIEES-KEL------------QNKNHIAVMEKKEILKRKEFQKNQEIDLHK---------LDRHSV--------------------------------GSHGG-RDRHGD-RDRHRD---DRHRYDEDRDHRRDQRNVSDYDSEELRKFEEDYKSDRLGQYVFSDLNSAVKGLVVQPIHL-NKEVNRTVIIDSICKESAEKVRFEFGKGEDAREI-----SVQEYFMVHHNIKLKFPKLPVVISKKRQHYEFYPMELLEIIPGQRLKNNKMTAGIQQFMTGANSSLPLDYISQTRVILQDYMKLGQHRNNKYFDAFKIRIMDLHPVVVRGVVLAPPHIFFRPDRARVIGGGSDVRIIAGHEETFVKPAKLRSIMIIDYCKGL-REIDDFKRCLFSKFREHRIVYKDHDVEWIDETCDPSDFARTKDLMKQALRKRVRKHTR--------V---ERSSNH-ILKYYEE-KIGQQTLQLCAETVMKMARCGGNKTTVDNVLRKLNLKCGGTNFYVGVPDAVNNRQVCINPEEMRKKLYKNTQFIGFELSHTGAQSKFDKLKEDAEIDPTIVGVAYSLKHATQLGGFSYFQDGRVHKLTHVQEKFGECLQG------------YKKATDSLPKTIVIYRIGSGEGDYDQVRK-EVEEMREASDIFESGYKPKFLMVLAQRNSHVRIFPEHINQ-GNARIQNVRSGTCVESLGSAHGMMEFILCCQSAMIGTIRPTRYTVIVNDTDWTKNELMNVTYHLAFGHQVSYGPPS-VPNVLYAAKNLAKRGQNNFKVHKDMAHIKDKTKKLYEEYADVLGKKEEEEAVLDKFINDLSEEVNKCTISGRNFWA
ME--------------TSSSLPLSPISIEP--------EQPSHRDYD---ITTRRGV--GTTGN--PIELCTNHFNVSVRQ--------PDVVFYQYTVSITTENGDAVDGTGISRKLMDQLFKTYSSDLDGKRL-------AYDGEKTLYTVGP---------LPQNEFDFLVIVEGSFSKRD--------CGVSDGGSSSGTCKRSKRSFLPRSYKV------QIHYAAEIPLKT---VLGTQRGAYTPDKSAQDALRVLDIVLRQQAAERGCLLVRQAF----------------------------------------------FHSDGHPMK--------VGGGVIGIRGLHSSFRPTH---GGLSLNIDVSTTMILEPGPVIEF-----LKANQSVETPRQIDWI-----KAAKML--KHMRVKATHRNMEFKIIGLSSKPCNQQLFSMKIKDGEREVPIREITVYDYFKQTYTEPISSAYFPCLDVGKPDRPNYLPLEFCNLVSLQRYTKP-LSGRQRVLLVESSRQKPLERIK----TLNDAMHTYCYDKDPFLAGCGISIEK-EMTQVEGRVLKPPMLKFGKNE--DFQPCNG-RWNFNNK-MLLEPRAIKSWAIVNFS--FPCDSSHISRELISCGMRKGIEID-RPFALVEE--DPQYKKAGPVERVEKMIATMKLKFPDPPHFILCILPERKTS--DIYGPWKKICLTEEGIHTQCICPIKI-----SDQYLTNVLLKINSKLGGINSLLGIEYSYNIPLINKIP----------TLILGMDVSH-GPPGRADVPSVAAVVGSKCWPLISRYRAAVRT------QSPRLEMIDSLFQPIENTEKGDNGIMNELFVEFYRTSRARKPKQIIIFRDGVSESQFEQVLKIEVDQIIKAYQRLGESDVPKFTVIVAQKNHHTKLF----QAKGP---ENVPAGTVVDTKIVHPTNYDFYMCAHAGKIGTSRPAHYHVLLDEIGFSPDDLQNLIHSLSYVNQRSTTATSIVAPVRYA--------------HLAAAQVAQFT-----KFEGISEDGKVPE------LPRLHENVE-----GNMFFC

Built With

Authors

Developers:

Project Advisor:

See also the list of contributors who participated in this project.

License

This project is licensed under the GPL 3.0 - see the LICENSE file for details

About

A multiple sequence alignment (MSA) to align three or more protein sequences using a proxy and a server with SSL as a service for UFRN DIM class DIM0438: Computer Network.

License:GNU General Public License v3.0


Languages

Language:Java 100.0%