Overview

In todays workshop we will be looking to:

We will also see how to:

Predicting secondary structure

Why don’t we just determine 3D crystal structures for every protein? This is a great question! In a world with inexhaustible resources we could imagine doing this. However, we live in a world with many finite things. Determining crystal structures of proteins requires a great deal of skill (protein expression, purification, crystallizing, etc.) and experience (all the heuristics around proteins being kept in vitro). 3D structure determination is also not cheap. All the resources and personnel time add up. Finally, the physical properties of MANY proteins preclude them from being analyzed (solubility, stability, etc.). What we are left with is the need for predictive tools.

How do we predict structure? Since crystallographic studies are not tenable for most proteins, we can turn to bioinformatic methods to help us make some predictions. In general, there are two types of data we can rely on to help make semi-accurate predictions.

  1. Comparison. We can look for patterns in existing structures and try and determine certain patterns.
  2. Physical properties. Recall, amino acids have certain physical properties (charge, size, van der Waal’s interactions, etc.). These properties can help us make certain predictions about how a protein might form secondary structure.

Start simple, computing chemical properties

Given a protein primary sequence, we often may just need to know a few key variable. Things like its molecular weight (MW) and its isoelectric point (pI; roughly the pH where charged amino acids will transition to an uncharged form; carboxylates, etc.). These are functions of the protein’s amino acid composition. Let’s see what we can predict.

One of the best collection of web-based protein analysis tools is the Expasy suite that is part of Swiss-prot/UniProt. We’ve seen Expasy, earlier. We’ll use the Compute pI/Mw tool to determine these parameters of a protein.

Here’s human citrate synthase.

>NP_004068.2 citrate synthase, mitochondrial precursor [Homo sapiens]
MALLTAAARLLGTKNASCLVLAARHASASSTNLKDILADLIPKEQARIKTFRQQHGKTVVGQITVDMMYG
GMRGMKGLVYETSVLDPDEGIRFRGFSIPECQKLLPKAKGGEEPLPEGLFWLLVTGHIPTEEQVSWLSKE
WAKRAALPSHVVTMLDNFPTNLHPMSQLSAAVTALNSESNFARAYAQGISRTKYWELIYEDSMDLIAKLP
CVAAKIYRNLYREGSGIGAIDSNLDWSHNFTNMLGYTDHQFTELTRLYLTIHSDHEGGNVSAHTSHLVGS
ALSDPYLSFAAAMNGLAGPLHGLANQEVLVWLTQLQKEVGKDVSDEKLRDYIWNTLNSGRVVPGYGHAVL
RKTDPRYTCQREFALKHLPNDPMFKLVAQLYKIVPNVLLEQGKAKNPWPNVDAHSGVLLQYYGMTEMNYY
TVLFGVSRALGVLAQLIWSRALGFPLERPKSMSTEGLMKFVDSKSG

Input this FASTA sequence in to the pI/MW tool. You will get an error. See if you can work through fixing it. Once fixed, you should see this tool provides you with a predicted pI and MW.

Quick secondary structure estimates

Althought 3D structure predictions from primary sequence can be made by comparative methods, these are often computationally intensive and require more resources than many researchers have at the ready (i.e. their laptop). That said, there are a number of approaches with varying degrees of sophistication we’ll take a look at today.

One method is the GOR IV (GOR4) method developed by Garnier, Osguthorpe and Robson 1. This method relies entirely on a comparative approach where known 3D protein structures are used to develop a weight matrix that is 17 amino acids in length. This is used to scan protein sequences and give a prediction for a single amino acid centered in the scanning window (8 amino acids on each side) being part of a helix (H), beta strand (E), or coil (C).

Navigate to a web tool for the GOR4 method.

Below, is a protein sequence for a peroxisomal protein called PEX14. We’ll use this again, later. Input this sequence into the tool, and let’s take a look at the output.

>NP_004556.1 peroxisomal membrane protein PEX14 [Homo sapiens]
MASSEQAEQPSQPSSTPGSENVLPREPLIATAVKFLQNSRVRQSPLATRRAFLKKKGLTDEEIDMAFQQS
GTAADEPSSLGPATQVVPVQPPHLISQPYSPAGSRWRDYGALAIIMAGIAFGFHQLYKKYLLPLILGGRE
DRKQLERMEAGLSELSGSVAQTVTQLQTTLASVQELLIQQQQKIQELAHELAAAKATTSTNWILESQNIN
ELKSEINSLKGLLLNRRQFPPSPSAPKIPSWQIPVKSPSPSSPAAVNHHSSSDISPVSNESTSSSPGKEG
HSPEGSTVTYHLLGPQEEGEGVVDVKGQVRMEVQGEEEKREDKEDEEDEEDDDVSHVDEEDCLGVQREDR
RGGDGQINEQVEKLRRPEGASNESERD

Question 1: Based on the GOR4 output, how many helical regions do you count in the protein?

Question 2: Now, take a look at the UniProtKB entry for PEX14. For the portion of the PEX14 protein where structure is known, does the GOR4 output seem accurate?


More sophisticated methods for secondary structure prediction

GOR4 is a great first test of structure, but it is obviously far from accurate. Since it is has been well over 20 years since GOR4 was developed, there have been several advances in predictive tools. We’ll try out a few.

PSIRED

The first tool we will examine is the PSIRED workbench housed at University College London (UCL). The original PSIRED tool utilizes PSI-BLAST searches to generate a collection of similar sequences, some of which have existing 3D structures. This information is used to estimate secondary structure across the length of the protein sequence using a neural network model. You can learn more about it in their website materials (link below).

You will also note this workbench has a variety of other tools. We’ll come back to this later in the course for even more sophisticated structure prediction. For now, let’s see what we can learn from PSIRED.

PSIRED: http://bioinf.cs.ucl.ac.uk/psipred/

Input the PEX14 sequence, above, into the PSIRED submission form. Only select PSIRED for analysis. Make sure to enter your email address near the Submit button. These calculations take 10 minutes to 2 days to complete, so expecting quick turnaround is not something we should expect.

To save some time, here’s our expected output: http://bioinf.cs.ucl.ac.uk/psipred/&uuid=69363dc8-5e0c-11ee-918a-00163e100d53

Proteus2

Another prediction method is Proteus2. Like PSIRED, this method utilizes are series of comparative approaches to estimate secondary structure. This server is often in heavy use, so be patient. I also recommend using the email results option. This takes a very long time to run (>2 days).

Proteus2: http://www.proteus2.ca/proteus2/index.jsp

Sample output: http://www.proteus2.ca/proteus2/more.jsp

RaptorX

Yet another tool for structure prediction is RaptorX. This is a tool developed and maintained by the Xu Lab at University of Chicago. The current implementation of RaptorX relies on Deep Learning methods to infer structure from all curated 3D structures available and multiple sequence alignment information for your query. This typically takes 1-2 days to run. We will attempt to look at a PEX14 job and the sample output from RaptorX.

RaptorX Property: http://raptorx.uchicago.edu/StructurePropertyPred/predict/

Output for PEX14: http://raptorx.uchicago.edu/StructurePropertyPred/myjobs/29102709_681781

Predicting association and/or localization

We can often predict where proteins may be localized base on their primary sequence. For instance, many proteins found in membranes require a secretory signal peptide at the N-terminal region of the protein to be inserted into the membrane. Similarly, many proteins have other specific sequences that allow various sorting mechanisms to direct proteins to certain cellular organelles (nucleus, peroxisomes, mitochondria, etc.).

Phobius

A good first pass for membrane association is the Phobius tool. Phobius scans proteins and looks for regions of hydrophobic amino acids separated by regions of hydrophilic amino acids. This is characteristic of proteins with multiple transmembrane domains. Let’s see how this does with PEX14, a peroxisomal membrane protein.

Phobius: https://phobius.sbc.su.se


Question 3: What region of PEX14 is predicted to be transmembrane? (Provide amino acid ranges)


LocTree3

Other tools exist to aid in determining, broadly, where certain proteins are localized. These have varying degrees of success since they are strongly based on protein signals that are associated with certain proteins known to undergo specific trafficking. As a result, these methods ignore the underlying biology of protein trafficking and often make mistakes.

LocTree3 is a tool that looks to predict localization of proteins based on a 18 state machine learning model (for Eukarya). This algorithm looks to match query proteins with one of 18 possible states (i.e. locations).

LocTree3: https://rostlab.org/services/loctree3/

Let’s input a series of proteins and see how it does.

>NP_004556.1 peroxisomal membrane protein PEX14 [Homo sapiens]
MASSEQAEQPSQPSSTPGSENVLPREPLIATAVKFLQNSRVRQSPLATRRAFLKKKGLTDEEIDMAFQQS
GTAADEPSSLGPATQVVPVQPPHLISQPYSPAGSRWRDYGALAIIMAGIAFGFHQLYKKYLLPLILGGRE
DRKQLERMEAGLSELSGSVAQTVTQLQTTLASVQELLIQQQQKIQELAHELAAAKATTSTNWILESQNIN
ELKSEINSLKGLLLNRRQFPPSPSAPKIPSWQIPVKSPSPSSPAAVNHHSSSDISPVSNESTSSSPGKEG
HSPEGSTVTYHLLGPQEEGEGVVDVKGQVRMEVQGEEEKREDKEDEEDEEDDDVSHVDEEDCLGVQREDR
RGGDGQINEQVEKLRRPEGASNESERD
>NP_004068.2 citrate synthase, mitochondrial precursor [Homo sapiens]
MALLTAAARLLGTKNASCLVLAARHASASSTNLKDILADLIPKEQARIKTFRQQHGKTVVGQITVDMMYG
GMRGMKGLVYETSVLDPDEGIRFRGFSIPECQKLLPKAKGGEEPLPEGLFWLLVTGHIPTEEQVSWLSKE
WAKRAALPSHVVTMLDNFPTNLHPMSQLSAAVTALNSESNFARAYAQGISRTKYWELIYEDSMDLIAKLP
CVAAKIYRNLYREGSGIGAIDSNLDWSHNFTNMLGYTDHQFTELTRLYLTIHSDHEGGNVSAHTSHLVGS
ALSDPYLSFAAAMNGLAGPLHGLANQEVLVWLTQLQKEVGKDVSDEKLRDYIWNTLNSGRVVPGYGHAVL
RKTDPRYTCQREFALKHLPNDPMFKLVAQLYKIVPNVLLEQGKAKNPWPNVDAHSGVLLQYYGMTEMNYY
TVLFGVSRALGVLAQLIWSRALGFPLERPKSMSTEGLMKFVDSKSG
>NP_003989.2 nuclear factor NF-kappa-B p105 subunit isoform 1 [Homo sapiens]
MAEDDPYLGRPEQMFHLDPSLTHTIFNPEVFQPQMALPTADGPYLQILEQPKQRGFRFRYVCEGPSHGGL
PGASSEKNKKSYPQVKICNYVGPAKVIVQLVTNGKNIHLHAHSLVGKHCEDGICTVTAGPKDMVVGFANL
GILHVTKKKVFETLEARMTEACIRGYNPGLLVHPDLAYLQAEGGGDRQLGDREKELIRQAALQQTKEMDL
SVVRLMFTAFLPDSTGSFTRRLEPVVSDAIYDSKAPNASNLKIVRMDRTAGCVTGGEEIYLLCDKVQKDD
IQIRFYEEEENGGVWEGFGDFSPTDVHRQFAIVFKTPKYKDINITKPASVFVQLRRKSDLETSEPKPFLY
YPEIKDKEEVQRKRQKLMPNFSDSFGGGSGAGAGGGGMFGSGGGGGGTGSTGPGYSFPHYGFPTYGGITF
HPGTTKSNAGMKHGTMDTESKKDPEGCDKSDDKNTVNLFGKVIETTEQDQEPSEATVGNGEVTLTYATGT
KEESAGVQDNLFLEKAMQLAKRHANALFDYAVTGDVKMLLAVQRHLTAVQDENGDSVLHLAIIHLHSQLV
RDLLEVTSGLISDDIINMRNDLYQTPLHLAVITKQEDVVEDLLRAGADLSLLDRLGNSVLHLAAKEGHDK
VLSILLKHKKAALLLDHPNGDGLNAIHLAMMSNSLPCLLLLVAAGADVNAQEQKSGRTALHLAVEHDNIS
LAGCLLLEGDAHVDSTTYDGTTPLHIAAGRGSTRLAALLKAAGADPLVENFEPLYDLDDSWENAGEDEGV
VPGTTPLDMATSWQVFDILNGKPYEPEFTSDDLLAQGDMKQLAEDVKLQLYKLLEIPDPDKNWATLAQKL
GLGILNNAFRLSPAPSKTLMDNYEVSGGTVRELVEALRQMGYTEAIEVIQAASSPVKTTSQAHSLPLSPA
STRQQIDELRDSDSVCDSGVETSFRKLSFTESLTSGASLLTLNKMPHDYGQEGPLEGKI

Question 4: Did LocTree3 predict localization properly?


MultiLoc2

Like LocTree3, MultiLoc2 uses a comparative approach based on known protein localization patterns to infer a likelihood query proteins will be localized in a similar manner. Using the sequence above, let’s see what we can learn here.

MultiLoc2: https://abi-services.informatik.uni-tuebingen.de/multiloc2/webloc.cgi

Query ID: 02c31dc4bc2b6d3ec4d08cdc4e7aeed2

Functional predictions

We often want to make quick judgements about the possible function of proteins. This a critically important in annotating genomes. Here, we’ll examine a few of the protein function databases and we’ll see how BLAST has integrated these features as well. The important caveat to these predicitons, is that they are PREDICTIONS not definitive diagnoses of protein function. That is still where experimental science plays a key role.

We’ll use the citrate synthase sequence, below, for our functional predictions.

>NP_004068.2 citrate synthase, mitochondrial precursor [Homo sapiens]
MALLTAAARLLGTKNASCLVLAARHASASSTNLKDILADLIPKEQARIKTFRQQHGKTVVGQITVDMMYG
GMRGMKGLVYETSVLDPDEGIRFRGFSIPECQKLLPKAKGGEEPLPEGLFWLLVTGHIPTEEQVSWLSKE
WAKRAALPSHVVTMLDNFPTNLHPMSQLSAAVTALNSESNFARAYAQGISRTKYWELIYEDSMDLIAKLP
CVAAKIYRNLYREGSGIGAIDSNLDWSHNFTNMLGYTDHQFTELTRLYLTIHSDHEGGNVSAHTSHLVGS
ALSDPYLSFAAAMNGLAGPLHGLANQEVLVWLTQLQKEVGKDVSDEKLRDYIWNTLNSGRVVPGYGHAVL
RKTDPRYTCQREFALKHLPNDPMFKLVAQLYKIVPNVLLEQGKAKNPWPNVDAHSGVLLQYYGMTEMNYY
TVLFGVSRALGVLAQLIWSRALGFPLERPKSMSTEGLMKFVDSKSG

PROSITE

PROSITE is a domain search algorithm that uses a short pattern matching HMM to identify key functional domains of proteins. You think of this as a local search algorithm to find functional regions of proteins. That said, PROSITE excels in finding well-conserved function but fails at predicting broader functional traits of proteins.

PROSITE: https://prosite.expasy.org/

Pfam

Pfam is a search algorithm capable of identifying larger functional domains of proteins. In a way, this is a global search algorithm to contrast with PROSITE. Like PROSITE, Pfam uses HMM to pattern match however the patterns used are much larger and encompass a variety of other functional protein domains.

Pfam: http://pfam.xfam.org/

BLASTP

The contemporary implementation of BLASTP at NCBI offers some functional predictions based on models available in InterPro (the aggregate of all protein functional domain models). When you BLAST your protein, you can see predicted domains in the Graphic Summary page.

BLASTP: https://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE=Proteins


Question 5: Does this protein have an NAD binding domain?


Using R for performing interative tasks

Let’s load our necessary libraries.

library(seqinr)
library(Biostrings)
library(DECIPHER)

First, let’s talk about how we can ask a computer to do repetitive tasks. This involves using loops and logic. There are many tutorials on loops across the web and I encourage you to explore some.

Here, we’ll be looking to use very simple loop structures to perform repetitive tasks. For example, let’s say I wanted to create an array with ten numbers.

a <- c(1,2,3,4,5,6,7,8,9,10) # here's one way to do it.

# let's do this with a loop
b <- c() # initialize an empty array

# is is a counter variable in the loop. here the loop is set to repeat 10 times and i will take on the value of each loop cycle when it occurs
for (i in 1:10) {
  
  b[i] = i
  
} 

# note the curly brackets. this is the set of tasks being repeated in every loop cycle.

print(a)
##  [1]  1  2  3  4  5  6  7  8  9 10
print(b)
##  [1]  1  2  3  4  5  6  7  8  9 10

This example is using a for loop. There are other types loops such as a while loop. Here the loop will continue until a condition is met.

d = 0
i = 0

while(d<10) {
  
  d = i*d + 1
  i = i + 1
  print(d)
  
}
## [1] 1
## [1] 2
## [1] 5
## [1] 16

Okay, so loops help with repitition. Let’s do something with this. Here, we are going to read in a collection of human pumilio protein sequences. These proteins are important for controlling mRNA stability in eukaryotes. Check out the FASTA file here for information (https://bit.ly/3a7G093)

Unlike our previous uses of read.fasta, we’ll take advantage of some options this function has to streamline input.

pums <- read.fasta("https://bit.ly/3a7G093",
                   as.string=TRUE,
                   seqonly=TRUE,
                   seqtype="AA"
                   )
## Warning in readLines(file): incomplete final line found on 'https://bit.ly/
## 3a7G093'
print(pums)
## [[1]]
## [1] "MSVACVLKRKAVLWQDSFSPHLKHHPQEPANPNMPVVLTSGTGSQAQPQPAANQALAAGTHSSPVPGSIGVAGRSQDDAMVDYFFQRQHGEQLGGGGSGGGGYNNSKHRWPTGDNIHAEHQVRSMDELNHDFQALALEGRAMGEQLLPGKKFWETDESSKDGPKGIFLGDQWRDSAWGTSDHSVSQPIMVQRRPGQSFHVNSEVNSVLSPRSESGGLGVSMVEYVLSSSPGDSCLRKGGFGPRDADSDENDKGEKKNKGTFDGDKLGDLKEEGDVMDKTNGLPVQNGIDADVKDFSRTPGNCQNSANEVDLLGPNQNGSEGLAQLTSTNGAKPVEDFSNMESQSVPLDPMEHVGMEPLQFDYSGTQVPVDSAAATVGLFDYNSQQQLFQRPNALAVQQLTAAQQQQYALAAAHQPHIGLAPAAFVPNPYIISAAPPGTDPYTAGLAAAATLGPAVVPHQYYGVTPWGVYPASLFQQQAAAAAAATNSANQQTTPQAQQGQQQVLRGGASQRPLTPNQNQQGQQTDPLVAAAAVNSALAFGQGLAAGMPGYPVLAPAAYYDQTGALVVNAGARNGLGAPVRLVAPAPVIISSSAAQAAVAAAAASANGAAGGLAGTTNGPFRPLGTQQPQPQPQQQPNNNLASSSFYGNNSLNSNSQSSSLFSQGSAQPANTSLGFGSSSSLGATLGSALGGFGTAVANSNTGSGSRRDSLTGSSDLYKRTSSSLTPIGHSFYNGLSFSSSPGPVGMPLPSQGPGHSQTPPPSLSSHGSSSSLNLGGLTNGSGRYISAAPGAEAKYRSASSASSLFSPSSTLFSSSRLRYGMSDVMPSGRSRLLEDFRNNRYPNLQLREIAGHIMEFSQDQHGSRFIQLKLERATPAERQLVFNEILQAAYQLMVDVFGNYVIQKFFEFGSLEQKLALAERIRGHVLSLALQMYGCRVIQKALEFIPSDQQVINEMVRELDGHVLKCVKDQNGNHVVQKCIECVQPQSLQFIIDAFKGQVFALSTHPYGCRVIQRILEHCLPDQTLPILEELHQHTEQLVQDQYGNYVIQHVLEHGRPEDKSKIVAEIRGNVLVLSQHKFASNVVEKCVTHASRTERAVLIDEVCTMNDGPHSALYTMMKDQYANYVVQKMIDVAEPGQRKIVMHKIRPHIATLRKYTYGKHILAKLEKYYMKNGVDLGPICGPPNGII"
## 
## [[2]]
## [1] "MSVACVLKRKAVLWQDSFSPHLKHHPQEPANPNMPVVLTSGTGSQAQPQPAANQALAAGTHSSPVPGSIGVAGRSQDDAMVDYFFQRQHGEQLGGGGSGGGGYNNSKHRWPTGDNIHAEHQVRSMDELNHDFQALALEGRAMGEQLLPGKKFWETDESSKDGPKGIFLGDQWRDSAWGTSDHSVSQPIMVQRRPGQSFHVNSEVNSVLSPRSESGGLGVSMVEYVLSSSPGDSCLRKGGFGPRDADSDENDKGEKKNKGTFDGDKLGDLKEEGDVMDKTNGLPVQNGIDADVKDFSRTPGNCQNSANEVDLLGPNQNGSEGLAQLTSTNGAKPVEDFSNMESQSVPLDPMEHVGMEPLQFDYSGTQVPVDSAAATVGLFDYNSQQQLFQRPNALAVQQLTAAQQQQYALAAAHQPHIGLAPAAFVPNPYIISAAPPGTDPYTAGLAAAATLGPAVVPHQYYGVTPWGVYPASLFQQQAAAAAAATNSANQQTTPQAQQGQQQVLRGGASQRPLTPNQNQQGQQTDPLVAAAAVNSALAFGQGLAAGMPGYPVLAPAAYYDQTGALVVNAGARNGLGAPVRLVAPAPVIISSSAAQAAVAAAAASANGAAGGLAGTTNGPFRPLGTQQPQPQPQQQPNNNLASSSFYGNNSLNSNSQSSSLFSQGSAQPANTSLGFGSSSSLGATLGSALGGFGTAVANSNTGSGSRRDSLTGSSDLYKRTSSSLTPIGHSFYNGLSFSSSPGPVGMPLPSQGPGHSQTPPPSLSSHGSSSSLNLGGLTNGSGRYISAAPGAEAKYRSASSASSLFSPSSTLFSSSRLRYGMSDVMPSGRSRLLEDFRNNRYPNLQLREIAGHIMEFSQDQHGSRFIQLKLERATPAERQLVFNEILQAAYQLMVDVFGNYVIQKFFEFGSLEQKLALAERIRGHVLSLALQMYGCRVIQKALEFIPSDQQNEMVRELDGHVLKCVKDQNGNHVVQKCIECVQPQSLQFIIDAFKGQVFALSTHPYGCRVIQRILEHCLPDQTLPILEELHQHTEQLVQDQYGNYVIQHVLEHGRPEDKSKIVAEIRGNVLVLSQHKFASNVVEKCVTHASRTERAVLIDEVCTMNDGPHSALYTMMKDQYANYVVQKMIDVAEPGQRKIVMHKIRPHIATLRKYTYGKHILAKLEKYYMKNGVDLGPICGPPNGII"
## 
## [[3]]
## [1] "MSQPIMVQRRSGQGFHGNSEVNAILSPRSESGGLGVSMVEYVLSSSPADKLDSRFRKGNFGTRDAETDGPEKGDQKGKASPFEEDQNRDLKQGDDDDSKINGRGLPNGMDADCKDFNRTPGSRQASPTEVVERLGPNTNPSEGLGPLPNPTANKPLVEEFSNPETQNLDAMEQVGLESLQFDYPGNQVPMDSSGATVGLFDYNSQQQLFQRTNALTVQQLTAAQQQQYALAAAQQPHIAGVFSAGLAPAAFVPNPYIISAAPPGTDPYTAAGLAAAATLAGPAVVPPQYYGVPWGVYPANLFQQQAAAAANNTASQQAASQAQPGQQQVLRAGAGQRPLTPNQGQQGQQAESLAAAAAANPTLAFGQGLATGMPGYQVLAPTAYYDQTGALVVGPGARTGLGAPVRLMAPTPVLISSAAAQAAAAAAAGGTASSLTGSTNGLFRPIGTQPPQQQQQQPSTNLQSNSFYGSSSLTNSSQSSSLFSHGPGQPGSTSLGFGSGNSLGAAIGSALSGFGSSVGSSASSSATRRESLSTSSDLYKRSSSSLAPIGQPFYNSLGFSSSPSPIGMPLPSQTPGHSLTPPPSLSSHGSSSSLHLGGLTNGSGRYISAAPGAEAKYRSASSTSSLFSSSSQLFPPSRLRYNRSDIMPSGRSRLLEDFRNNRFPNLQLRDLIGHIVEFSQDQHGSRFIQQKLERATPAERQMVFNEILQAAYQLMTDVFGNYVIQKFFEFGSLDQKLALATRIRGHVLPLALQMYGCRVIQKALESISSDQQSEMVKELDGHVLKCVKDQNGNHVVQKCIECVQPQSLQFIIDAFKGQVFVLSTHPYGCRVIQRILEHCTAEQTLPILEELHQHTEQLVQDQYGNYVIQHVLEHGRPEDKSKIVSEIRGKVLALSQHKFASNVVEKCVTHASRAERALLIDEVCCQNDGPHSALYTMMKDQYANYVVQKMIDMAEPAQRKIIMHKIRPHITTLRKYTYGKHILAKLEKYYLKNSPDLGPIGGPPNGM"
## 
## [[4]]
## [1] "MNHDFQALALESRGMGELLPTKKFWEPDDSTKDGQKGIFLGDDEWRETAWGASHHSMSQPIMVQRRSGQGFHGNSEVNAILSPRSESGGLGVSMVEYVLSSSPADKLDSRFRKGNFGTRDAETDGPEKGDQKGKASPFEEDQNRDLKQGDDDDSKINGRGLPNGMDADCKDFNRTPGSRQASPTEVVERLGPNTNPSEGLGPLPNPTANKPLVEEFSNPETQNLDAMEQVGLESLQFDYPGNQVPMDSSGATVGLFDYNSQQQLFQRTNALTVQQLTAAQQQQYALAAAQQPHIAGVFSAGLAPAAFVPNPYIISAAPPGTDPYTAAGLAAAATLAGPAVVPPQYYGVPWGVYPANLFQQQAAAAANNTASQQAASQAQPGQQQVLRAGAGQRPLTPNQGQQGQQAESLAAAAAANPTLAFGQGLATGMPGYQVLAPTAYYDQTGALVVGPGARTGLGAPVRLMAPTPVLISSAAAQAAAAAAAGGTASSLTGSTNGLFRPIGTQPPQQQQQQPSTNLQSNSFYGSSSLTNSSQSSSLFSHGPGQPGSTSLGFGSGNSLGAAIGSALSGFGSSGGLTNGSGRYISAAPGAEAKYRSASSTSSLFSSSSQLFPPSRLRYNRSDIMPSGRSRLLEDFRNNRFPNLQLRDLIGHIVEFSQDQHGSRFIQQKLERATPAERQMVFNEILQAAYQLMTDVFGNYVIQKFFEFGSLDQKLALATRIRGHVLPLALQMYGCRVIQKALESISSDQQSEMVKELDGHVLKCVKDQNGNHVVQKCIECVQPQSLQFIIDAFKGQVFVLSTHPYGCRVIQRILEHCTAEQTLPILEELHQHTEQLVQDQYGNYVIQHVLEHGRPEDKSKIVSEIRGKVLALSQHKFASNVVEKCVTHASRAERALLIDEVCCQNDGPHSALYTMMKDQYANYVVQKMIDMAEPAQRKIIMHKIRPHITTLRKYTYGKHILAKLEKYYLKNSPDLGPIGGPPNGML"
## 
## [[5]]
## [1] "MEVKGKKQFTGKSTKTAQEKNRFHKNSDSGSSKTFPTRKVAKEGGPKVTSRNFEKSITKLGKKGVKQFKNKQQGDKSPKNKFQPANKFNKKRKFQPDGRSDESAAKKPKWDDFKKKKKELKQSRQLSDKTNYDIVVRAKQMWEILRRKDCDKEKRVKLMSDLQKLIQGKIKTIAFAHDSTRVIQCYIQYGNEEQRKQAFEELRDDLVELSKAKYSRNIVKKFLMYGSKPQIAEIIRSFKGHVRKMLRHAEASAIVEYAYNDKAILEQRNMLTEELYGNTFQLYKSADHRTLDKVLEVQPEKLELIMDEMKQILTPMAQKEAVIKHSLVHKVFLDFFTYAPPKLRSEMIEAIREAVVYLAHTHDGARVAMHCLWHGTPKDRKVIVKTMKTYVEKVANGQYSHLVLLAAFDCIDDTKLVKQIIISEIISSLPSIVNDKYGRKVLLYLLSPRDPAHTVREIIEVLQKGDGNAHSKKDTEVRRRELLESISPALLSYLQEHAQEVVLDKSACVLVSDILGSATGDVQPTMNAIASLAATGLHPGGKDGELHIAEHPAGHLVLKWLIEQDKKMKENGREGCFAKTLVEHVGMKNLKSWASVNRGAIILSSLLQSCDLEVANKVKAALKSLIPTLEKTKSTSKGIEILLEKLST"

To use the program we’re going to use, we need to convert our amino acid sequences into an AAString object. This is how nearly all Bioconductor packages want AA or DNA/RNA input to formatted to standardize all packages.

pums_converted <- AAStringSetList(pums)

print(pums_converted)
## AAStringSetList of length 5
## [[1]] MSVACVLKRKAVLWQDSFSPHLKHHPQEPANPNMPVVLTSGTGSQAQPQPAANQALAAGTHSSPVPGSIGV...
## [[2]] MSVACVLKRKAVLWQDSFSPHLKHHPQEPANPNMPVVLTSGTGSQAQPQPAANQALAAGTHSSPVPGSIGV...
## [[3]] MSQPIMVQRRSGQGFHGNSEVNAILSPRSESGGLGVSMVEYVLSSSPADKLDSRFRKGNFGTRDAETDGPE...
## [[4]] MNHDFQALALESRGMGELLPTKKFWEPDDSTKDGQKGIFLGDDEWRETAWGASHHSMSQPIMVQRRSGQGF...
## [[5]] MEVKGKKQFTGKSTKTAQEKNRFHKNSDSGSSKTFPTRKVAKEGGPKVTSRNFEKSITKLGKKGVKQFKNK...

Now, let’s make some predictions about the structure of these proteins using the GOR4 method. There is an implementation of this method in the DECIPHER package.

structurePredictions = c() #initialize a variable to collect output from the function

for(i in 1:length(pums_converted)) {
  
  structurePredictions[i] <- PredictHEC(pums_converted[[i]])
  
  }

print(head(structurePredictions))
## [1] "CCHHHHHHHHHEEEECCCCCCCCCCCCCCCCCCCEEEEECCCCCCCCCCHHHHHHHHCCCCCCCCCCEEEEECCCCCHHHHHHHHHHCCCCEECCCCCCCCCECCCCCCCCCCCCCEHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCCCEEEECCCCCCCCCEEEECCCCCCCECCCCCCCCCCCEEEECCCCCCEEECCCCCEEECCCCCCCCCCEEEEEEEECCCCCCCEEEECCCCCCCCCCCHHHHHCCCCCCEECCCCCCCHHHCCCEEECCCCCCEECCCCCCEEECCCCCCCCCCCCCHHEEECCCCCCCCCEEEEECCCCCCCCECCCCCCCCCCCCCCCCCCCCCCEEECCCCCECECCCHHHEEEEECCCCHHHHHCCCHHHHHHHHHHHHHHHHHHHHHCCCCCCCCCCCCCCCCCEEEECCCCCCCCHHHHHHHHCCCCCECCEEECCECCCCCCCHHHHHHHHHHHHHHHHCCCCCCCHHHHHHHHEEEECCCCCCCCCCCCCCCCCCCCHHHHHHHHHHHHHHHHCHCCCCCCCCEECCCHHHCCCCEEEEEHCCCCCCCCCEEEECCCCEEEEHHHHHHHHHHHHHHHHHCCCCEECCCCCCCCCCCCCCCCCCCCCCCCCCCEEEEECCCCCCCCCCCCCEEECCCCCCCCCCEECCCCCCCCCEEECECCCCCCEEEEECCCCCCCEEEEECCCCCEEEECCCCCCCCCCEEECCEEECCCCCCCCCECCCCCCCCCCCCCCCEECCCCCCEEEECCCCCCCCEEEEECCCHHHHHECHCCCCECCCCCCCEEECCHCCCCCCCECCCCCHHHHHHHHCCCCCHHHHHHHHHHHHEECCCCCCCHHHHHHHHHCCHHHHHHHHHHHHHHHHHHEEHCCCCEEEEEEHHCCCHHHHHHHHHHHHHHHHHHHHHHCCHHHHHHHHHCCCCCHHHHHHHHHHHCCCEEEEEECCCCCEEEEEEEEECCCCCHHEEHHHHCCCEEEECCCCCCCEEEHHHHHCCCCCCCCHHHHHHHHHHHHHHHHCCCCEEEEEEECCCCCCCHHHEEHEHCCCEEEEEHCCCCCCEEEEEEECCCHHHHHEEEHHEEECCCCCCHHHHHHHHHHHHHHEHHEEECHCCCCCHHEEEECCCCHHHHHHHCCCCHHHHHHHHHHHHCCCCCECEECCCCCCCC"
## [2] "CCHHHHHHHHHEEEECCCCCCCCCCCCCCCCCCCEEEEECCCCCCCCCCHHHHHHHHCCCCCCCCCCEEEEECCCCCHHHHHHHHHHCCCCEECCCCCCCCCECCCCCCCCCCCCCEHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCCCEEEECCCCCCCCCEEEECCCCCCCECCCCCCCCCCCEEEECCCCCCEEECCCCCEEECCCCCCCCCCEEEEEEEECCCCCCCEEEECCCCCCCCCCCHHHHHCCCCCCEECCCCCCCHHHCCCEEECCCCCCEECCCCCCEEECCCCCCCCCCCCCHHEEECCCCCCCCCEEEEECCCCCCCCECCCCCCCCCCCCCCCCCCCCCCEEECCCCCECECCCHHHEEEEECCCCHHHHHCCCHHHHHHHHHHHHHHHHHHHHHCCCCCCCCCCCCCCCCCEEEECCCCCCCCHHHHHHHHCCCCCECCEEECCECCCCCCCHHHHHHHHHHHHHHHHCCCCCCCHHHHHHHHEEEECCCCCCCCCCCCCCCCCCCCHHHHHHHHHHHHHHHHCHCCCCCCCCEECCCHHHCCCCEEEEEHCCCCCCCCCEEEECCCCEEEEHHHHHHHHHHHHHHHHHCCCCEECCCCCCCCCCCCCCCCCCCCCCCCCCCEEEEECCCCCCCCCCCCCEEECCCCCCCCCCEECCCCCCCCCEEECECCCCCCEEEEECCCCCCCEEEEECCCCCEEEECCCCCCCCCCEEECCEEECCCCCCCCCECCCCCCCCCCCCCCCEECCCCCCEEEECCCCCCCCEEEEECCCHHHHHECHCCCCECCCCCCCEEECCHCCCCCCCECCCCCHHHHHHHHCCCCCHHHHHHHHHHHHEECCCCCCCHHHHHHHHHCCHHHHHHHHHHHHHHHHHHEEHCCCCEEEEEEHHCCCHHHHHHHHHHHHHHHHHHHHHHCCHHHHHHHHHCCCCHHHHHHHHHHCCCEEEEEECCCCCEEEEEEEEECCCCCHHEEHHHHCCCEEEECCCCCCCEEEHHHHHCCCCCCCCHHHHHHHHHHHHHHHHCCCCEEEEEEECCCCCCCHHHEEHEHCCCEEEEEHCCCCCCEEEEEEECCCHHHHHEEEHHEEECCCCCCHHHHHHHHHHHHHHEHHEEECHCCCCCHHEEEECCCCHHHHHHHCCCCHHHHHHHHHHHHCCCCCECEECCCCCCCC"  
## [3] "CCCCHEEEECCCCCCCCCCCEEEEECCCCCCCCCCEEEEEEEECCCCCCHHHHHECCCCCCCEECCCCCCCCCCCCCCCCCCHHHHHHHHCCCCCCCCEECCCCCCCCCCCCCCCCCCCCCCCCCCCCHEEEECCCCCCCCCCCCCCCCCCCCCCEEEECCCCCHHHHHHHHHHCHHHEECCCCCCCEEECCCCCEEEEECCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCHEEEEHCCCCCCCCCCCCCEEEECCCCCCCHHHHHHHHHHHCCCCCCCCCCCCCCCCCCCCCHHHHHHHHHHHHHHHHHHHHHHCCCCHHHHEEHCCCCCCCCCCCCCCHHHHHHHHHHHHCCCHHHHCCCCCCCCCCCEEECCCCCCCCCCEEEECCCCCCCCCCCEEECCCCCCEHHHHHHHHHHHHHHCCCEEEEECCCCCEEECCCCCCCCCCCCCCCCCCECCCEECCEEEECCCCCCEEEECCCCCCCCEEEEECCCCCCHHEEHEEECCCCCEEEECCCCCHCHEECCCCCCCEEECCCCCCCCCCCCCECCECCCCCCCCCCCCCCCCCCCCCCCCCCCEECCCCCCEEEECCCCCCCCEEEEECCCHHHHEECCCCCCEEECCCCCCCCCCHCCCCCCCCCCCCCHHHHHHHHCCCCCCHHHHHHCCEEEEECCCCCCCHHHHHHHHHCCHHHHHHHHHHHHHHHHHHHHCCCCCEEEEEEECCCCHHHHHHHHHHHCCCCCHHHHHHCCHHEHHHHHHHCCCHHHHHHHHHHCCCEEEEEECCCCCEEEEEEEEECCCCCHHEEHHHCCCCEEEEECCCCCCEEEEHHHHHCCHHHHHHHHHHHHHHHHHHHHHCCCCEEEEEEECCCCCCCCHEEEHHHHHHHHHHHHHCHCCCEEEEEEHHHHHHHHHHHHHHEEECCCCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCCCEEEEHCCCCHHHHHHHHHHHECCCCCCCCCCCCCCCC"                                                                                                                                                                                     
## [4] "CCCHHHHHHHHHHCCCCCCCCCCCCCCCCCCCCCCEEEEECCCCHHHHHHCCCCCCCCCCHEEEECCCCCCCCCCCEEEEECCCCCCCCCCEEEEEEEECCCCCCHHHHHECCCCCCCEECCCCCCCCCCCCCCCCCCHHHHHHHHCCCCCCCCEECCCCCCCCCCCCCCCCCCCCCCCCCCCCHEEEECCCCCCCCCCCCCCCCCCCCCCEEEECCCCCHHHHHHHHHHCHHHEECCCCCCCEEECCCCCEEEEECCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCHEEEEHCCCCCCCCCCCCCEEEECCCCCCCHHHHHHHHHHHCCCCCCCCCCCCCCCCCCCCCHHHHHHHHHHHHHHHHHHHHHHCCCCHHHHEEHCCCCCCCCCCCCCCHHHHHHHHHHHHCCCHHHHCCCCCCCCCCCEEECCCCCCCCCCEEEECCCCCCCCCCCEEECCCCCCEHHHHHHHHHHHHHHCCCEEEEECCCCCEEECCCCCCCCCCCCCCCCCCECCCEECCEEEECCCCCCEEEECCCCCCCCEEEEECCCCCCHHEEHEEEECCCCCCEECCCCCEEEEECCCHHHHEECCCCCCEEECCCCCCCCCCHCCCCCCCCCCCCCHHHHHHHHCCCCCCHHHHHHCCEEEEECCCCCCCHHHHHHHHHCCHHHHHHHHHHHHHHHHHHHHCCCCCEEEEEEECCCCHHHHHHHHHHHCCCCCHHHHHHCCHHEHHHHHHHCCCHHHHHHHHHHCCCEEEEEECCCCCEEEEEEEEECCCCCHHEEHHHCCCCEEEEECCCCCCEEEEHHHHHCCHHHHHHHHHHHHHHHHHHHHHCCCCEEEEEEECCCCCCCCHEEEHHHHHHHHHHHHHCHCCCEEEEEEHHHHHHHHHHHHHHEEECCCCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCCCEEEEHCCCCHHHHHHHHHHHECCCCCCCCCCCCCCCCC"                                                                                                                                                                                                           
## [5] "CCCCCCEEECCCCCHHHHHHHHEEECCCCCCCCCCCCEEEECCCCCCEEEECHHHHHHHHCCCCEEEEHCCCCCCCCCCCCCCCHHHHCHCCEECCCCCCHHHHHCCCCHHHHHHHHHHHHHHHHHCCCCCCHEEHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHCCHEEEEECCCCCHEEEEEEECCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEECCCCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCHHHHHHHHHHHHHHHCCCHHEEEECCCHHCHHHHHHHCHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCEEEEEEECCCCCCHHHHHHHHHHHHHHEEECCCCCHHHEEEEECCCCCCCCEEEEEECCHEEEEECCCCCHHHEHHHHHCCCCCHHHHHHEEEEEECCCCCCEECCCCCCHEEEEECCCCCCCHHHHHHHHEHHCCCCCCCCCCCHHHHHHHHHHHCCHHHHHHHHHHHHHHHHCCCCEEEEECCCCCCCCCCCCHHHHHHHHHHCCCCCCCCCCEEEEECCCCCHHHHHHHHHHHHHHHHCCCCCEEEEEHHHHHCCCCCCEHHHHCCCHEEHHHHHCHHHHHHHHHHHHHHHHCCCCHCCCCCCCCCHHHHHHHCCC"
write(structurePredictions, file="pum_predictions.txt",)

**Question 6: Examine the first 100 (or so) amino acid positions the file you produced. Do the structures appear similar at first glance? What is similar and/or different?



  1. Garnier, J., Osguthorpe, D.J., and Robson, B. (1978) Analysis of the accuracy and implications of simple methods for predicting the secondary structure of globular proteins. J. Mol. Biol. 120, 97-120.↩︎