anchor.diff:  #r "BioFSharp.BioContainers.dll"
   
   (** 
  +
  +# TargetP BioContainer
  +
   TargetP 1.1 is a widely used tool to predict subcellular localization of proteins by predicting N-terminal presequences.
   We can leverage the power of targetP from F# by using it in a docker container. To get academical access to the targetP software,
   please contact the friendly people at [DTU](https://services.healthtech.dtu.dk/software.php).
   
  -After aquiring the softare you can create a dockerfile at the packages root and run 
  +
  +## The image
  +
  +After aquiring the software you can create a dockerfile that abides biocontainer conventions at the packages root and run 
   
   `docker build . -t nameOfYourContainer:yourTag` 
   
  -to get the image needed.
  +to get the image needed. Here is an example of a possible dockerfile:
   
   ```(docker)
   ################## BASE IMAGE ######################
  
positive.code: # SignalP install
  ADD ./signalp-4.1f.Linux.tar.gz /opt/
  ```
  *)
  
  (** 
  As always, we need to define the docker client endpoint, image, and container context to run:
  *)
  (***do-not-eval***)
  
negative.code: It may not always be convenient to analyze files on the disk. To use a memory stream of a 
  `FastAItem` instead, we can write it to a stream and analyze it using the `runWithStream` function
  
  _Note: in versions before 2.0.0, this function is named `run`_
  *)
  open System.IO
  open BioFSharp.IO
  
  let testSequence = "SEQUENCE" |> BioFSharp.BioArray.ofAminoAcidString
  
  let testFasta = 
      FastA.createFastaItem "Header" testSequence
  
  (***include-value:testFasta***)
  
  let stream = new MemoryStream()
  
  [testFasta]
  |> FastA.writeToStream BioFSharp.BioItem.symbol stream
  
  //reset position of the memory stream
  stream.Position <- 0L
  