The output in your most recent email looks normal to me.  Once you have
'input' bound to the [Sequence] in ghci, can you then run:

ghci> let seqs = map (toStr . seqdata) seqs
ghci> seqs

The result should look something like:

["CCTGCGGAAGATCGGCACTA...","CCATCGGTAGCGCATCCTTAGTCCAATTAAG...",...]

(ie. it should simply be a list of Strings)

On Tue, Oct 21, 2014 at 4:47 PM, Youens-Clark, Charles Kenneth - (kyclark) <
kycl...@email.arizona.edu> wrote:

> Dan,
>
> That was very helpful.  When I run your code on a different computer than
> the first one I was working on, I see this:
>
> ghic> input
> [Seq (SeqLabel {unSL = "Rosalind_6404"}) (SeqData {unSD =
> "CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCCTCCCACTAATAATTCTGAGG"})
> Nothing,Seq (SeqLabel {unSL = "Rosalind_5959"}) (SeqData {unSD =
> "CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCTATATCCATTTGTCAGCAGACACGC"})
> Nothing,Seq (SeqLabel {unSL = "Rosalind_0808"}) (SeqData {unSD =
> "CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGACTGGGAACCTGCGGGCAGTAGGTGGAAT"})
> Nothing]
> ghic> :t input
> input :: [Sequence]
>
> Which is entirely different from what I’m seeing on the other computer
> (see below).  Both are Macs.  As far as I can tell, all versions of the
> Haskell Platform and the modules are the same.
>
> Any ideas?
>
> Ken
>
> > On Oct 20, 2014, at 1:49 PM, Dan Fornika <dforn...@gmail.com> wrote:
> >
> > Hi Ken,
> >
> > I've also been working on the rosalind.info problem set.  If you'd like
> to see my answer for this problem, you can see it here:
> >
> >
> https://github.com/dfornika/rosalind/blob/master/04_gc_content/04_gc_content.hs
> >
> > If you'd prefer to work through the problem yourself, I can offer some
> advice to get started.  The internal sequence data in the Sequence type in
> Bio.Sequence.Fasta is a lazy bytestring.  You can access the sequence data
> with the 'seqdata' function from Bio.Sequence.Fasta, and convert it to a
> 'plain old' String with 'toStr'.
> >
> > If you need to work with they bytestrings, you can import
> Data.ByteString.Lazy.Char8. It should be imported 'qualified' so that it
> doesn't conflict with functions from the Prelude.
> >
> > Here is some code. I haven't had a chance to test it, so I apologize for
> any bugs.
> >
> > Dan
> >
> > module Main where
> >
> > import Bio.Core.Sequence
> > import Bio.Sequence.Fasta
> > import qualified Data.ByteString.Lazy.Char8 as B  -- not necessary for
> this example, but this is how you would import the bytestring functions.
> >
> > main :: IO()
> > main = do
> >   input <- readFasta "./input.fasta"
> >   let seqs = map (toStr . seqdata) seqs
> >   mapM_ putStrLn seqs
> >
> > On Mon, Oct 20, 2014 at 9:27 AM, Youens-Clark, Charles Kenneth -
> (kyclark) <kycl...@email.arizona.edu> wrote:
> > I’m currently working my way through the problems at “rosalind.info,”
> implementing each of my solutions in Perl, Python, and Haskell.  I’m stuck
> on the “GC” problem (http://rosalind.info/problems/gc/) as I need to
> parse a FASTA file with "Bio.Sequence.Fasta.”
> >
> > In ghci, I can easily do this:
> >
> > ghci> let f = readFasta "input.fasta"
> > ghci> f
> > [ID -----------------------------------------------------------------
> > Rosalind_6404
> >
> > COMMENT ------------------------------------------------------------
> >
> >
> > DATA ---------------------------------------------------------------
> >   0 CCTGCGGAAG ATCGGCACTA GAATAGCCAG AACCGTTTCT CTGAGGCTTC CGGCCTTCCC
> >  60 TCCCACTAAT AATTCTGAGG,ID
> -----------------------------------------------------------------
> > Rosalind_5959
> >
> > COMMENT ------------------------------------------------------------
> >
> >
> > DATA ---------------------------------------------------------------
> >   0 CCATCGGTAG CGCATCCTTA GTCCAATTAA GTCCCTATCC AGGCGCTCCG CCGAAGGTCT
> >  60 ATATCCATTT GTCAGCAGAC ACGC,ID ————————————————————————————————
> > …
> >
> > So I know it’s working, but I can’t figure out what to do with “f” now.
> I can see it’s type:
> >
> > ghci> :t f
> > f :: IO
> >        [Bio.Sequence.SeqData.Sequence Bio.Sequence.SeqData.Unknown]
> >
> > But what do I do with “f” to, say, iterate over the sequences and count
> G/C content, get the length of the sequence, etc.?
> >
> > Thanks,
> >
> > Ken
> >
>
>

Reply via email to