Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 29 20:55
    codecov[bot] commented #264
  • Jan 29 20:54
    codecov[bot] commented #264
  • Jan 29 20:54
    jakobnissen edited #263
  • Jan 29 20:50
    jakobnissen opened #264
  • Jan 24 02:32
    kescobo labeled #263
  • Jan 23 06:47
    jakobnissen opened #263
  • Jan 18 09:51
    benjaminlozanow commented #262
  • Jan 14 03:15
    camilogarciabotero commented #262
  • Jan 14 02:53
    kescobo commented #262
  • Jan 14 02:53
    kescobo commented #262
  • Jan 13 20:29
    jakobnissen commented #262
  • Jan 13 20:27
    jakobnissen commented #262
  • Jan 13 18:39
    benjaminlozanow commented #262
  • Jan 13 18:38
    benjaminlozanow commented #262
  • Jan 13 16:27
    kescobo commented #262
  • Jan 12 23:22
    CiaranOMara commented #262
  • Jan 12 14:48
    benjaminlozanow edited #262
  • Jan 12 14:48
    benjaminlozanow edited #262
  • Jan 12 13:14
    benjaminlozanow opened #262
  • Nov 28 2022 10:33
    JuliaTagBot commented #209
Jakob Nybo Nissen
@jakobnissen
Ben J. Ward
@BenJWard
Maybe we can do it with an API then
Passing Val{true} is described
Jakob Nybo Nissen
@jakobnissen
I'd just export unsafe_setindex!.
Ben J. Ward
@BenJWard
or we could simply have unsafe_* version of the methods that edit any sequences.
Jakob Nybo Nissen
@jakobnissen
Yep, that's neater I think. Probably add a small docstring saying that it skips all boundschecks and copy-on-write checks :)
Ben J. Ward
@BenJWard
I think this is smart
I'll make that the next PR after the current one then!
Jakob Nybo Nissen
@jakobnissen
Hm, what's the intended use of CharSequence? It seems like it's a complicated String.
Ben J. Ward
@BenJWard
Pretty much! :laughing:
I think it's just to show that with BioSequences you could store any element type, using an alphabet.
I think each char is stored in 8 bits, and so if you were doing bitops you could do things more quickly... what kind of things I've no idea
CharSequences are also mutable which String is not
But really it's something that is there, but isn't really used much right now.
I do envisage other alphabets in the future to store, for example a sequence of SNPs and that sort of thing as BioSequences would let you do that, but again there's no need or call for it right now.
Ben J. Ward
@BenJWard
@jakobnissen Do you think there's any merit it seperating the process into three stages? - boundscheck -> cowcheck -> unsafe opertation, or do you think two steps of bounds & cow-check -> unsafe operation is enough?
Jakob Nybo Nissen
@jakobnissen
I don't think the user cares that much about which internal checks BioSequences are doing. They probably just want a safe option (default) and an unsafe but fast option (where the documentation clearly states exactly which precautions they should take). However, I don't think it'sa good idea to make the COW-check parts of the bounds heck so it can be skipped with @inbounds, because the user might th
might reasonably assume that @inbounds only skill skipsa boundscheck and so might use it wrong
One of the best things about the COW-principle is that the user benefits without even having to know it's there.
Jakob Nybo Nissen
@jakobnissen
Just a heads-up: AminoAcidAlphabet()[1] doesn't work currently on the v2 branch. You need to convert i - 1 to UInt8 first. Same with the NucleicAcidAlphabet{4} subtypes.
Ben J. Ward
@BenJWard
Good catch!
Jakob Nybo Nissen
@jakobnissen
With the code coverage bot currently being untrustworthy, is there any way to figure out how many lines in your code you've written tests for?
Jakob Nybo Nissen
@jakobnissen
@BenJWard I get deprecation warning when testing BioSequences due to a function in Twiddle:
┌ Warning: repeatbyte is deprecated, use repeatpattern instead
│ caller = count_01_bitpairs at counting.jl:79 [inlined]
└ @ Core ~/.julia/packages/Twiddle/MbfXo/src/counting.jl:79
Ben J. Ward
@BenJWard
@jakobnissen Yes I'm aware of that one, I think it's my fault, it's something in the bit-parallel site counting code I developed last year. I found a way to make some generic methods for bit-twiddling that work for all Unsigned sizes, with zero cost to performance, so I put them in Twiddle and also renamed some of them. I'll make a PR fixing this.
Guillermo Luque
@gluque
Hello there! I've installed Julia 1.3.0 but when installing BioSequences, it uses the 1.1 instead of the 2.0 version, do you know how to "force" the 2.0 version when installing?
Ben J. Ward
@BenJWard

@gluque Hiya,

Have you added the "BioJulia package registry" to your julia setup?

registry add https://github.com/BioJulia/BioJuliaRegistry.git
v2.0 of BioSequences, FASTX, Pseudoseq, and the newer packages (or newer versions of old packages) are being released through the "BioJulia package registry" now instead of the "General" registry.
Guillermo Luque
@gluque
Hello @BenJWard Thanks! It is working after updating the registry.
Ciarán O'Mara
@CiaranOMara
@BenJWard and @jakobnissen, have you guys seen https://github.com/tkf/BenchmarkCI.jl ?
Ghost
@ghost~5ede2c26d73408ce4fe64346
Hello! I understand that I should use FASTX for parsing FASTA files but how do I convert FASTX's FASTA records into a BioSequences type? I'm having a hard time finding this in the documentation.
Ghost
@ghost~5ede2c26d73408ce4fe64346
I found that I can use BioSequences.sequence(FASTX.FASTA.Record) to do this, in case anyone else is wondering the same thing.
Ben J. Ward
@BenJWard
Yep that's right. In any upcoming releases this method may be deprecated in favour of getting the user to simply use a constructor e.g. LongSequence{DNAAlphabet{2}}(record).
Ghost
@ghost~5ede2c26d73408ce4fe64346
Another question: I have Julia installed on two separate computers. On my Linux machine, I have the latest version of BioSequences.jl but my MacBook has v1.1.0. I am running update but it doesn't do anything. I have Julia v1.4 installed on both machines. I am updating from the general registry on both machines and I shouldn't have to add the BioJulia registry anymore if I understand things correctly.
Ghost
@ghost~5ede2c26d73408ce4fe64346
Solved. I removed ~/.julia/registries/General, then I ran ]registry update General, and then I reinstalled all of my bio-related packages. I think the problem was that BioTools.jl depends on an older version of BioSequences.jl. Sorry for spamming the chat!